总共42题共100分
一、单选题 (共30题,共60分)
1. 测试char型mm右起第六位是否为1,若为1,则表达式的值为非零,否则表达式的值为0,以下不能实现此功能的表达式为()。 (2分)
A.mm&040 B.mm&0x20 C.mm&32 D.mm&6 标准答案:D
2. 以下选项中不是C语句的是 (2分) A.int i; B.;
C.a=5,c=10 D.printf(\标准答案:C
3. 以下不能定义为用户标识符的是() (2分) A.Main B._0 C._int D.sizeof 标准答案:D
4. 在ASCII代码表中可以看到每一个小写字母比它相应的大写字母的ASCII吗()A.大32 B.大26 C.小32 D.小26 标准答案:A
5. 以下循环体的执行次数是( ) main() { int i,j;
for(i=0,j=1;i<=j+1;i+=2,j--) printf(\ (2分)
A.3 B.2 C.1 D.0 标准答案:C
6. 下列能正确表示a≥10或a≤0的关系表达式是()。 (2分) A.a>=10 or a B.a>=10 ︱ a C.a>=10 ︱︱ a
D.a>=10 && a 标准答案:C
7. 以下程序输出结果是( ) main() { int m=5;
if (m++>5) printf(\ else printf(\} (2分)
A.7 B.6 C.5 D.4 标准答案:B
8. 表达式(double)(1/2)的值为() (2分) A.0.5 B.0.0 C.0 D.1 标准答案:B
9. 以下4个选项中,不能看作一条语句的是( ) (2分) A.; B.A=0,B=0,C=0; C.if(A>0); D.if(B==0) m=1;n=2; 标准答案:D
10. 执行下面程序段,给x、y赋值时,不能作为数据分隔符的是( ) int x,y;
scanf(\(2分)
A.空格 B.TAB键 C.回车 D.逗号 标准答案:D
11. 以下程序段的输出是() int i=0,a=0; while(i
2分) ({
for(;;) {
if((i)==0) break; else i--; }
i+=11;a+=i; }
printf(\(2分)
A.21 B.32 C.33 D.11 标准答案:B
12. 若整型变量x的值为8,则下列表达式中值为1的表达式是( ) (2分) A.x+=x-=x=x B.x%=x-1 C.x%=x%=3 D.x/=x+x 标准答案:B
13. 下列程序的输出结果是( ) main( )
{ double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(\} (2分)
A.3 B.3.2 C.0 D.3.07 标准答案:C
14. 有以下程序 main() {
int m,n,p;
scanf(\printf(\}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是()A.m=123n=456p=789 B.m=123 n=456 p=789 C.m=123,n=456,p=789 D.123 456 789 标准答案:A
15. 以下程序的输出结果是()
#include \
void main() {
int a=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf(\
else
printf(\
2分) (
printf(\
} (2分)
A.2 B.3 C.43 D.44 标准答案:A
16. 有以下程序 main() {int x,y,z;
x=y=1; z=x++,y++,++y; printf(\}
程序运行后的输出结果是( )。 (2分)
A.2,3,3 B.2,3,2 C.2,3,1 D.2,2,1 标准答案:C
17. 下面程序段的输出结果是() int a=1,b;
for(b=1;b<=10;b++) {
if(a>=8) break;
if(a%2==1){a+=5;continue;} a-=3; }
printf(\(2分)
A.3 B.4 C.5 D.6 标准答案:B
18. 执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是( ) main()
{ char s[100]; int c, i;
scanf(\ printf(\ (2分)
A.123,456,789 B.1,456,789 C.1,23,456,789 D.1,23,456 标准答案:D
19. 有以下程序段: int i=0,s=0; do {
if(i%2){i++;continue;} i++;s+=i; }
while(i
printf(\
其输出结果是( ) (2分)
A.16 B.13 C.28 D.21 标准答案:A
20. 运行以下程序的结果为( ) main() {
int num=0; while (num {num++;
printf(\}
} (2分)
A.1234 B.123 C.12 D.1 标准答案:B
21. 以下程序段不是死循环的是( ) (2分) A.int i=100; while(1) { i=i0+1; if(i>100) break; }
B.for(;;) ;
C.int k=0; do{++k;} while(k D.int s=36; while(s); --s; 标准答案:C
22. 以下程序的输出结果是() main() {
int a=5,b=4,c=3,d=2; if(a>b>c)
printf(\ else if((c-1>=d)==1) printf(\ else
printf(\} (2分)
A.2 B.3
C.4 D.编译时有错,无结果 标准答案:B
23. 以下程序运行后的输出结果是() int f1(int x,int y) {
return x>y?x:y; }
int f2(int x,int y) {
return x>y?y:x; }
main() {
int a=4,b=3,c=5,d,e,f; d=f1(a,b);d=f1(d,c); e=f2(a,b);e=f2(e,c); f=a+b+c-d-e;
printf(\} (2分)
A.3,4,5 B.5,3,4 C.5,4,3 D.3,5,4 标准答案:C
24. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=1,k=32)后,x的值为()A.4 B.16 C.32 D.52 标准答案:C
25. 若有以下程序段(n所赋的是八进制数): int m=32767,n=032767; printf(\
执行后输出的结果是() (2分)
A.32767,32767 B.32767,032767 C.32767,77777 D.32767,077777 标准答案:A
26. 以下叙述中正确的是( ) (2分) A.程序应尽可能短
B.为了编程的方便,应当根据编程人员的意图使程序的流程随意转移 C.虽然注释会占用较大篇幅,但程序中还是应有尽可能详细的注释 D.在Turbo C环境下,运行的程序就是源程序 标准答案:C
27. 下面叙述不正确的是( ) (2分) A.C语句末尾必须有分号
B.C语言中无论是整数还是实数都能准确的表示 C.运算符“%”只能用于整数运算
D.乘除运算符优先级高于加减运算符 标准答案:B
2分) (
相关推荐: