在二级考试中,C语言的选择题占10分。
21.以下叙述中正确的是21
A.C语言系统以函数为单位编译源程序 B.main函数必须放在程序开始
C.用户定义的函数可以被一个或多个函数调用任意多次 D.在一个函数体内可以定义另外一个函数
22.以下选项中,不能用作c语言标识符的是 22
A.print B.FOR C.&a D._00
23.已知int类型数据在内存中存储长度为2个字节,以下语句中能正确输出整数32768的是 23
A.printf("%d",32768); B.printf("%ld",32768);
C.printf("%f",32768); D.printf("%c",32768);
24.已知有声明"int a=3,b=4,c=5;",以下表达式中值为0的是 24
A.a&&b B.a<=b C.a||b&&c D.!(!c||1)
25.已知有声明"long x,y;"且x中整数的十进制表示有n位数字(n>4 && n<10),若要求去掉整数x十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是 25
A.y=x/(10*(n-1)) B.y=x%(10*(n-1)) C.y=x%(long)pow(10,n-1) D.y=x%(10^(n-1))
26.已知有声明"int x,y;",若要求编写一段程序实现"当x大于等于0时y取值1,否则Y取值-1",则以下程序段中错误的是___26___
A.if(x>=0) y=1; else y=-1; B.y=x>=0?1:-1; C. switch() { case x>=0: y=1; break; default: y=-1; } D. switch(x-abs(x)) { case 0: y=1; break; default: y=-1; } |
27.已知有声明"int m[]={5,4,3,2,1},i=0;",下列对m数组元素的引用中,错误是___27___
A.m[++i] B.m[5] C.m[2*2] D.m[m[4]]
28. 已知有声明"char s[80];",若需要将键盘输入的一个不含空格的字符串保存到组中,则下列语句中正确的是
A.scanf("%s",s); B.scanf("%s",s[0]); C.s=gets(); D.s=getchar();
29.若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是 29
A.实参和其对应的形参占用同一存储单元 B.形参不占用存储单元
C.同名的实参和形参占用同一存储单元 D.形参和实参占用不同的存储单元
30.已知有声明"int i,a[10],*p=a;",现需要将1--l0保存到a[0]--a[9]中,以下程序段中不能实现这一功能的是 30
A.for(i=0;i<10;i++) a[i]=i+1; B.for(i=0;i<10;i++) p[i]=i+1; C.i=1;while(p<a+10) *p++=i++; D.i=1;while(p<a+10) *a++=i++; |
21.C 22.C 23.B 24.D 25.C 26.C 27.B 28.A 29.D 30.D