2-1
分数 2
作者 王俊玲-ktp
单位 集美大学
以下对C语言函数的描述中,正确的是(A)。
A.
C程序由一个或一个以上的函数组成
B.
函数既可以嵌套定义又可以递归调用
C.
函数必须有返回值,否则不能使用函数
D.
C程序中调用关系的所有函数必须放在同一个程序文件中
2-2
分数 2
作者 张庆
单位 集美大学
能把函数处理结果的两个数据返回给主调函数,下面的方法中不正确的是(D )
A.
return 数组的首址
B.
形参用数组
C.
用两个全局变量
D.
return 两个数
2-3
分数 2
作者 wangxiu
单位 福州大学
若有以下调用语句,则不正确的 fun( )函数的首部是( D)。
main( )
{ …
int a[50], n;
…
fun(n, &a[9]);
…
}
A.
void fun(int m, int x[ ])
B.
void fun(int s, int h[41])
C.
void fun(int p, int *s)
D.
void fun(int n, int a)
2-4
分数 2
作者 xuwz
单位 广东东软学院
以下正确的函数声明形式是(B )。
A.
int func(int x , int y)
B.
int func(int , int);
C.
int func(int x ; int y);
D.
int func(int x , y);
2-5
分数 2
作者 李廷元
单位 中国民用航空飞行学院
已定义以下函数
int fun(int *p) { return *p; }
该函数的返回值是__C__。
A.
不确定的值
B.
形参p中存放的值
C.
形参p所指存储单元中的值
D.
形参p的地址值
2-6
分数 2
作者 王俊玲-ktp
单位 集美大学
某程序中对myfun函数有此说明:void myfun( ); 此说明的含义是(A)。
A.
myfun函数无返回值
B.
myfun函数的返回值可以是任意的数据类型
C.
myfun 函数的返回值是无值型的指针类型
D.
指针myfun指向一个函数,该函数无返回值
2-7
分数 2
作者 王俊玲-ktp
单位 集美大学
以下函数值的类型是 ( A)。
- fun (float x)
- { float y; y= 3*x-4; return y;}
A.
int
B.
不确定
C.
void
D.
float
2-8
分数 2
作者 崔孝凤
单位 山东理工大学
对于一维数组名作为函数实参,以下描述正确的是( B)。
A.
实参数组类型与形参数组类型可以不一致。
B.
必须在主调函数中说明此数组的大小。
C.
函数调用时是将实参数组中的所有元素值复制到形参数组中。
D.
实参数组名与形参数组名必须保持一致。
2-9
分数 2
作者 张高燕
单位 浙大城市学院
以下关于函数叙述中,错误的是( B)。
A.
函数未被调用时,系统将不为形参分配内存单元
B.
实参与形参的个数必须相等,且实参与形参的类型必须对应一致
C.
当形参是变量时,实参可以是变量、常量或表达式
D.
如函数调用时,实参与形参都为变量,则这两个变量不可能占用同一内存空间
2-10
分数 2
作者 李克峰
单位 山东交通学院
如果所有的变量按照下面的程序进行定义和声明,那么在main()函数中所有可用的变量为 (C)。
- void fun(int x)
- {
- static int y;
- ……
- return;
- }
- int z;
- void main( )
- {
- int a,b;
- fun(a);
- ……
- }
A.
x,y
B.
x,y,z
C.
a,b,z
D.
a,b,x,y,z
2-11
分数 2
作者 崔孝凤
单位 山东理工大学
以下关于局部变量和全局变量的叙述错误的是(C )。
A.
main函数中定义的变量是局部变量。
B.
局部变量可以与全局变量重名。
C.
形式参数不是局部变量。
D.
在所有函数外定义的变量是全局变量。
2-12
分数 2
作者 王俊玲-ktp
单位 集美大学
有如下程序,执行后输出结果是(D)。
- void f(int x,int y)
- {
- int t;
- if(x<y)
- { t=x; x=y; y=t; }
- }
- int main()
- {
- int a=4,b=3,c=5;
- f(a,b);
- f(a,c);
- f(b,c);
- printf("%d,%d,%d\n",a,b,c);
- return 0;
- }
A.
3,4,5
B.
5,3,4
C.
5,4,3
D.
4,3,5
2-13
分数 2
作者 王俊玲-ktp
单位 集美大学
有以下程序,程序的执行结果是(D)。
- char fun(char x , char y)
- {
- if(x<y)
- return x;
- return y;
- }
-
- int main( )
- {
- int a='9',b='8',c='7';
- printf("%c \n",fun(fun(a,b) ,fun(b,c) ));
-
- return 0;
- }
A.
函数调用出错
B.
8
C.
9
D.
7
2-14
分数 2
作者 qin
单位 中国人民解放军海军工程大学
有以下程序
- #include <stdio.h>
- void f(int *p,int *q);
- main(){
- int m=1,n=2,*r=&m;
- f(r, &n);
- printf("%d,%d",m,n);
- }
- void f(int *p,int *q)
- {
- p=p+1;
- *q=*q+1;
- }
程序运行后的输出结果是(B)
A.
2,3
B.
1,3
C.
1,4
D.
1,2
2-15
分数 2
作者 张高燕
单位 浙大城市学院
执行下面程序,正确的输出是(A)。
- int x = 5, y = 7;
- void swap ( )
- {
- int z ;
-
- z = x ; x = y ; y = z ;
- }
- int main(void)
- {
- int x = 3, y = 8;
- swap ( ) ;
- printf ("%d,%d \n", x , y ) ;
-
- return 0 ;
- }
A.
3,8
B.
8,3
C.
5,7
D.
7,5
2-16
分数 2
作者 李廷元
单位 中国民用航空飞行学院
5-6. 下列程序的输出结果是(A)
- #include <stdio.h>
-
- int x1 = 30, x2 = 40;
- sub(int x, int y) {
- x1 = x; x = y; y = x1;
- }
-
- int main()
- {
- int x3 = 10, x4 = 20;
- sub(x3, x4);
- sub(x2, x1);
- printf("%d,%d,%d,%d\n", x3, x4, x1, x2);
- return 0;
- }
A.
10,20,40,40
B.
10,20,30,40
C.
10,20,40,30
D.
20,10,30,40
2-17
分数 2
作者 王俊玲-ktp
单位 集美大学
以下程序的输出的结果是_C___。
- #include<stdio.h>
- int x=3;
- void incre();
- int main()
- {
- int i;
- for (i=1;i<x;i++) incre();
- return 0;
- }
- void incre()
- {
- static int x=1;
- x*=x+1;
- printf(" %d",x);
- }
A.
3 3
B.
2 2
C.
2 6
D.
2 5
2-18
分数 2
作者 李廷元
单位 中国民用航空飞行学院
5-5. 下列程序的输出结果是(C)
- #include <stdio.h>
-
- int fun3(int x) {
- static int a = 3;
- a += x;
- return (a);
- }
-
- int main()
- {
- int k = 2, m = 1, n;
- n = fun3(k); n = fun3(m);
- printf("%d\n", n);
- return 0;
- }
A.
3
B.
4
C.
6
D.
9
2-19
分数 2
作者 周强
单位 青岛大学
执行以下程序,打印输出的内容是:(A)
- #include <stdio.h>
- int x=5;
- void incx( ){
- x++;
- }
- int main( ){
- int x=3;
- incx( );
- printf("%d\n", x);
- return 0;
- }
A.
3
B.
4
C.
5
D.
6
2-20
分数 2
作者 黄龙军
单位 绍兴文理学院
对于以下函数:
- int f(int n) {
- return n>1 ? f(n-1) * n : 1;
- }
调用f(6)的结果是(B )
A.
120
B.
720
C.
1
D.
以上都错
2-1
分数 4
作者 张泳
单位 浙大城市学院
若有下列定义,则以下不合法的表达式是( D)。
- struct student{
- int num;
- int age;
- };
- struct student stu[3] = {{101, 20}, {102, 19}, {103, 20}}, *p = stu;
A.
(p++)->num
B.
p++
C.
(*p).num
D.
p = &stu.age
2-2
分数 4
作者 范玉玲
单位 浙江大学
若有以下语句,则下面表达式的值为1002的是(D)。
struct student {int age; int num;}; struct student stu[3]={{1001,20},{1002,19},{1003,2}}; struct student *p; p=stu;
A.
(p++)->num
B.
(p++)->age
C.
(*p).num
D.
(*++p).age
2-3
分数 4
作者 往年试卷
单位 浙江大学
对于以下结构定义,++p->str
中的++
加在_A___。
- struct {
- int len;
- char *str;
- } *p;
A.
指针str上
B.
指针p上
C.
str指的内容上
D.
以上均不是
创建提问
2-4
分数 4
作者 张泳
单位 浙大城市学院
对于以下结构定义,(*p)->str++中的++加在(D)。
struct { int len; char *str; } *p;
A.
指针str上
B.
指针p上
C.
str指向的内容上
D.
语法错误
2-5
分数 4
作者 范玉玲
单位 济南大学
有以下程序
#include <stdio.h> struct S { int a,b; }data[2]={10,100,20,200}; main() { struct S p=data[1]; printf("%d\n",++(p.a)); }
程序运行后的输出结果是(B)
A.
20
B.
21
C.
10
D.
11
2-6
分数 4
作者 张泳
单位 浙大城市学院
如果结构变量s中的生日是“1984年11月11日”,下列对其生日的正确赋值是(D)。
- struct student
- {
- int no;
- char name[20];
- char sex;
- struct{
- int year;
- int month;
- int day;
- }birth;
- };
- struct student s;
A.
year = 1984; month = 11; day = 11;
B.
birth.year = 1984; birth.month = 11; birth.day = 11;
C.
s.year = 1984; s.month = 11; s.day = 11;
D.
s.birth.year = 1984; s.birth.month = 11; s.birth.day=11;
2-7
分数 4
作者 张泳
单位 浙大城市学院
下列程序的输出结果是( B)。
- struct stu{
- char num[10];
- float score[3];
- };
-
- int main( )
- {
- struct stu s[3] = {{ "20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}};
- struct stu *p = s;
- int i;
- float sum = 0;
-
- for(i=0; i<3; i++){
- sum = sum + p->score[i];
- }
- printf("%6.2f", sum);
-
- return 0;
- }
A.
260.00
B.
270.00
C.
280.00
D.
285.00
2-8
分数 4
作者 张泳
单位 浙大城市学院
以下程序的输出结果是( C)。
- struct stu{
- int x;
- int *y;
- } *p;
- int dt[4] = {10, 20, 30, 40};
- struct stu a[4] = {50, &dt[0], 60, &dt[1], 70, &dt[2], 80, &dt[3]};
-
- int main( )
- {
- p=a;
- printf("%d,", ++p->x);
- printf("%d,", (++p)->x);
- printf("%d", ++(*p->y));
-
- return 0;
- }
A.
10,20,20
B.
50,60,21
C.
51,60,21
D.
60,70,31
2-9
分数 4
作者 吴年志
单位 湖北汽车工业学院
以下选项中,能定义s为合法的结构体变量的是___B___。
A.
- typedef struct abc
- { double a;
- char b[10];
- } s;
B.
- struct
- { double a;
- char b[10];
- }s;
C.
- struct ABC
- { double a;
- char b[10];
- } ;
- ABC s;
D.
- typedef ABC
- { double a;
- char b[10];
- } s;
2-10
分数 4
作者 C课题组
单位 福州大学至诚学院
以下程序运行后的输出结果是【 C 】。
- #include<stdio.h>
- typedef struct
- {
- int no;
- double score;
- }REC;
-
- void fun(REC x)
- {
- x.no=20;
- x.score=92.5;
- }
-
- int main()
- {
- REC a={10,80.0};
- fun(a);
- printf("%d,%.1lf\n",a.no,a.score);
- return 0;
- }
A.
20,80.0
B.
20,92.5
C.
10,80.0
D.
10,92.5
2-11
分数 4
作者 usx程序设计类课程组
单位 绍兴文理学院
以下程序的输出结果是( D)。
- struct XY{
- int x;
- int y;
- }s[2]={5, 3, 2, 6};
- int main(){
- printf("%d\n",s[0].y*s[1].y);
- return 0;
- }
A.
30
B.
6
C.
10
D.
18
2-12
分数 4
作者 黄龙军
单位 绍兴文理学院
以下代码段的输出结果是(B )。
- struct Stu{
- char name[9];
- int age;
- } p[5]={"John",18,"Iris",19,"Mary",17,"Jack",16};
- for(int i=0;i<4;i++) p[4].age+=p[i].age;
- p[4].age/=4;
- printf("%d\n",p[4].age);
A.
18
B.
17
C.
16
D.
不确定
2-13
分数 4
作者 王秀秀
单位 山东交通学院
若有以下说明语句,
- struct birthday
- {
- int year;
- int month;
- int day;
- }day1;
则下面叙述正确的是( D)。
A.
day1
为结构体类型名
B.
struct birthday
为结构体变量名
C.
month
为结构体变量名
D.
day1
为结构体变量名
2-14
分数 4
作者 王秀秀
单位 山东交通学院
如果结构变量s
中的生日是“1990年12月15日”,下列对其生日的正确赋值是(D)。
- struct student
- {
- int no;
- char name[20];
- char sex;
- struct{
- int year;
- int month;
- int day;
- }birth;
- };
- struct student s;
A.
- year = 1990;
- month = 12;
- day = 15;
B.
- birth.year = 1990;
- birth.month = 12;
- birth.day = 15;
C.
- s.year = 1990;
- s.month = 12;
- s.day = 15;
D.
- s.birth.year = 1990;
- s.birth.month = 12;
- s.birth.day=15;
2-15
分数 4
作者 王秀秀
单位 山东交通学院
设有如下定义,则对data
中的a
成员的正确引用是(B)。
- struct sk
- {
- int a;
- float b;
- } data, *p=&data;
A.
(*p).data.a
B.
(*p).a
C.
p->data.a
D.
p.data.a
2-16
分数 4
作者 王秀秀
单位 山东交通学院
设有如下定义,则对data中的a成员的正确引用是(D)。
- struct sk
- {
- int a;
- double b;
- } data, *p = &data;
A.
(*p).data.a
B.
(*p).a
C.
p->data.a
D.
p.data.a
2-17
分数 4
作者 王秀秀
单位 山东交通学院
当定义一个结构变量时,系统分配给它的内存空间大小是( A)。
A.
各成员所需内存量的总和
B.
结构中第一个成员所需内存量
C.
成员中占内存量最大者所需容量
D.
结构中最后一个成员所需内存量
2-18
分数 4
作者 王秀秀
单位 山东交通学院
若有定义
- typedef struct {
- int n;
- char ch[8];
- } PER;
以下叙述中正确的是( B )。
A.
PER是结构体变量名
B.
PER是结构体类型名
C.
typedef struct 是结构体类型
D.
struct 是结构体类型名
2-19
分数 4
作者 王秀秀
单位 山东交通学院
typedef double real;
的含义是:(C)
A.
定义double类型变量real
B.
定义real类型的变量double
C.
将real声明为double类型的别名,real的使用和double一致
D.
将double声明为real类型的别名,double的使用和real一致
2-20
分数 4
作者 LianBin
单位 浙大宁波理工学院
结构体定义如下:
struct date
- {
- int month;
- int day;
- int year;
- };
struct student
- {
- char name[10];
- int age;
- char gender;
- struct date birthday;
- }std[30],*p=std;
相关程序的如下语句有错误的是:(D)
A.
(*p).birthday.day = std[15].birthday.day;
B.
printf("%c",(*(p+5)).gender);
C.
scanf("%c",&p->gender);
D.
scanf("%d",&p.age);
2-1
分数 5
作者 李廷元
单位 中国民用航空飞行学院
下列关于C语言数据文件的叙述中正确的是__D__。
A.
文件由ASCII码字符序列组成,C语言只能读写文本文件
B.
文件由二进制数据序列组成,C语言只能读写二进制文件
C.
文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.
文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
2-2
分数 5
作者 崔孝凤
单位 山东理工大学
文件操作的一般步骤是(B )。
A.
读/写文件→修改文件→关闭文件
B.
打开文件→读/写文件→关闭文件
C.
读/写文件→打开文件→关闭文件
D.
读文件→写文件→关闭文件
2-3
分数 5
作者 张泳
单位 浙大城市学院
定义FILE *fp; 则文件指针fp 指向的是(D)。
A.
文件在磁盘上的读写位置
B.
文件在缓冲区上的读写位置
C.
整个磁盘文件
D.
文件类型结构体
2-4
分数 5
作者 崔孝凤
单位 山东理工大学
关于文件指针,以下说法错误的是(D )。
A.
只有通过文件指针变量才能调用相应文件。
B.
定义文件指针变量时,FILE必须大写。
C.
一个文件指针变量只能对应一个文件。
D.
一个文件指针变量可以同时对应多个文件。
2-5
分数 5
作者 张泳
单位 浙大城市学院
若fopen()函数打开文件失败,其返回值是( C)。
A.
1
B.
-1
C.
NULL
D.
ERROR
2-6
分数 5
作者 张泳
单位 浙大城市学院
以下可作为函数fopen中第一个参数的正确格式是(D )。
A.
c:user\text.txt
B.
c:\user\text.txt
C.
"c:\user\text.txt"
D.
"c:\\user\\text.txt"
2-7
分数 5
作者 崔孝凤
单位 山东理工大学
若想对文本文件进行只读操作,打开此文件的方式是(D )。
A.
"rb"
B.
"w"
C.
"ab"
D.
"r"
2-8
分数 5
作者 CLL
单位 上海第二工业大学
下列语句可以向文本文件readme.txt尾部继续添加数据,则正确的打开文件语句是:(B)
A.
fp=fopen("readme.txt", "ab");
B.
fp=fopen("readme.txt", "a+");
C.
fp=fopen("readme.txt", "rb");
D.
fp=fopen("readme.txt", "w");
2-9
分数 5
作者 张泳
单位 浙大城市学院
函数fgetc的作用是从指定文件读入一个字符,该文件的打开方式必须是( D)。
A.
只写
B.
追加
C.
读或读写
D.
答案B和C都正确
2-10
分数 5
作者 张泳
单位 浙大城市学院
若以“a+”方式打开一个已存在的文件,则以下叙述正确的是( A)。
A.
文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
B.
文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作
C.
文件打开时,原有文件内容被删除,只可作写操作
D.
以上各种说法都不正确
2-11
分数 5
作者 张泳
单位 浙大城市学院
函数fscanf()的正确调用形式是( D) 。
A.
fscanf(fp, 格式字符串, 输出表列);
B.
fscanf(格式字符串, 输出表列, fp);
C.
fscanf(格式字符串, 文件指针, 输出表列);
D.
fscanf(文件指针, 格式字符串, 输入表列);
2-12
分数 5
作者 C课程组
单位 成都信息工程大学
在C语言中,下面关于文件操作正确的叙述是(B)
A.
对文件操作时需要先关闭文件
B.
对文件操作时需要先打开文件
C.
对文件操作时,必须先检查文件是否存在,然后再打开文件
D.
对文件操作时打开和关闭文件的顺序没有要求
2-13
分数 5
作者 余贞侠
单位 成都信息工程大学
按照文件的存储方式,文件可以分为(C)
A.
数据文件与程序文件
B.
文本文件与字符文件
C.
二进制文件与文本文件
D.
格式文件与流式文件
2-14
分数 5
作者 徐镜春
单位 浙江大学
当下面什么情况下,文件打开方式“w+”和“a+"有同样的效果。(B)
A.
打开文件既写又读
B.
要打开的文件存在且为空
C.
要打开的文件存在且不为空
D.
打开文件只写不读
2-15
分数 5
作者 唐艳琴
单位 中国人民解放军陆军工程大学
有以下程序:
#include <stdio. h>
int main()
{
FILE*fp;
int k,n,a[6]=[1,2,3,4,5,6];
fp = fopen("d2. dat", "w");
fprintf(fp, "%d%d%d\n", a[0], a[1], a[2]);
fprintf(fp, "%d%d%d\n", a[3], a[4], a[5]);
fclose(fp);
fp fopen("d2. dat","r");
fscanf(fp, "%d%d",&k,&n);
printf("%d %d\n",k,n);
fclose(fp);
return 0;
}
程序运行后的输出结果是(C )
A.
1 2
B.
1 4
C.
123 456
D.
123 4
2-16
分数 5
作者 C课程组
单位 湖南工程学院
为写文本文件my.txt而打开其的正确写法是(D )。
A.
fp=fopen("my.txt","r")
B.
fp=fopen("my.txt","rb")
C.
fp=fopen("my.txt","wb")
D.
fp=fopen("my.txt","w")
2-17
分数 5
作者 唐艳琴
单位 中国人民解放军陆军工程大学
有如下定义,下面说法正确的是(D)。
- FILE *fp;
- fp=fopen("a.txt","w");
A.
若文件不存在,则无法将其打开
B.
文件打开后,初始读写位置取决于文件内有无内容,如有,则在文件最后
C.
可以对文件进行读写操作
D.
会打开一个空的文本文件
2-18
分数 5
作者 伍建全
单位 重庆科技学院
以只读方式打开一个已有的文本文件test.txt,已有文件指针声明FILE* fp,正确调用fopen函数的方法是:(B)
A.
fp = fopen("test.txt", "a");
B.
fp = fopen("test.txt", "r");
C.
fp = fopen("test.txt", "rb");
D.
fp = fopen("test.txt", "w");
2-19
分数 5
作者 CLL
单位 上海第二工业大学
若要“打开二进制文件进行读/写/追加”,在fopen函数中应使用的文件打开方式是(B )。
A.
"wb"
B.
"ab+"
C.
"wb+"
D.
"w+"
2-20
分数 5
作者 郑卫华
单位 新疆科技学院
如果二进制文件a.dat已经存在,现在要求写入全新数据,应以(B )方式打开。
A.
”w”
B.
”wb”
C.
”w+”
D.
”wb+”