在二级考试中,选择题占10分。
21.以下关于C源程序的叙述中正确的是___(21)___
A.注释只能出现在程序的开始位置或语句后面
B.一行中不能写多条语句
C.一条语句可以分写在多行中
D.一个源程序只能保存在一个文件中
22.C源程序中的命令#include与#define是在___(22)___阶段被处理的。
A.预处理 B.编译 C.连接 D.执行
23.以下语句中有语法错误的是___(23)___
A.printf("%d",0xAB); B.printf("%f",3.45E2.5);
C.printf("%d",037); D.printf("%c",'\\');
24.已有声明"int x=5,y;float z=2;",以下表达式中语法正确的是_____(24)____ 。
A.y=x%z B.x>0?y=x:y=-x C.y=x/2=z D.y=x=z/2
25.已知字母A的ASCII码是65,字母a的ASCII码是97,变量c中存储了一个大写字母的编码.若要求将c中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是______(25)_____
A.c=tolower(c) B.c=c+32 C.c=c-'A'+'a' D.c=(c+'A')&-'a'
26.一元二次方程a*a*x +bx+c=0有两个相异实根的条件是a≠0且b*b -4ac>0,以下选项中能正确表示该条件的C语言表达式是 ___(26)___ 。
A.a!=0,b*b-4*a*c>0 B.a!=0||b*b-4*a*c>0
C.a && b*b-4*a*c>0 D.!a && b*b-4*a*c>0
27.以下关于break和continue语句的叙述中正确的是 ___(27)______ 。
A.break和continue语句都可以出现在switch语句中
B.break和continue语句都可以出现在循环语句的循环体中
C.在循环语句和switch语句之外允许出现break和continue语句
D.执行循环语句中的break或continue语句都将立即终止循环
28.若有一函数定义为"int f(int x,int *y){return x/*y;}",声明该函数的正确形式是__(28)___ .
A.void f(int,int); B.int *f(int,int *);
C.int f(int *,int *); D.int f(int,int *);
29.已知有声明"char a[]="program",*p=a+1;",则执行以下语句不会输出字符a的是 _____(29)______ .
A.putchar(*p+4); B.putchar(*(p+4));
C.putchar(a[sizeof(a)-3]); D.putchar(*(a+5));
30.已有定义和声明:
1 2 3 4 5 6 7 | struct student { int no; char name[20]; struct { int year,month,day; } birth; } s; |
若要求将日期"1989年11月12日"保存到变量s的birth成员中,则能实现这一功能的程序段是____(30)____ 。
A.year=1989; month=11;day=12;
B.s.year=1989;s.month=11;s.day=12;
C.birth.year=1989;birth.month=11;birth.,day=12;
D.s.birth.year=1989;s.birth.month=11;s.birth.day=12;
21.C 22.A 23.B 24.D 25.D 26.C 27.B 28.D 29.A 30.D