一、选择题
1. 以下非法的赋值语句是
A: n=(i=2,++i);    B: j++;    C: ++(i+1);    D: x=j>0;
2. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2 的值是
A: 6        B: 0        C: 2        D: 1
3. 阅读以下程序:
  main()
  { int x;
  scanf(%d,&x);
  if(x--<5) printf(%d,x);
  else printf(%d,x++);
  }
  程序运行后,如果从键盘上输人5,则输出结果是( )。
A: 3        B: 4        C: 5        D: 6
4. 有如下程序
main0
{ int a=2,b=-1,c=2;
if(a<b)
if(b<0) c=0;
else c++
printf("%d\n",c);
}
该程序的输出结果是
A: 0        B: 1        C: 2        D: 3
5.   有以下程序
#include <stdio.h>
main()
{ int a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是( )
A: 2,1        B: 3,2        C: 4,3        D: 2,-1
6.  两次运行下面的程序,如果从键盘上分别输入6 4,则输出结果是
main( )
{ int x;
scanf("%d",&x);
if(x + + >5) printf("%d",x);
else printf("%d\n",x - -); }
A: 7 5        B: 6 3        C: 7 4        D: 6 4
7.   能表示x 为偶数的表达式是
A: x%2==0    B: x%2==1    C: x%2        D: x%2!=0
8. 下面的程序段中共出现了几处语法错误?
int a,b;
scanf("%d",a);
b=2a;
if(b>0) printf("%b",b);
A: 1        B: 2        C: 3        D: 4
9.   C 语言中,逻辑“真”等价于
A: 大于零的数    B: 大于零的整数        C: 非零的数        D: 非零的整数
10. C 语言的 switch 语句中,case
A: 只能为常量
B: 只能为常量或常量表达式
C: 可为常量及表达式或有确定值的变量及表达式
D: 可为任何量或表达式
11. 已知int i=10;表达式"20-0<=i<=9"的值是
A: 0        B: 1        C: 19        D: 20
12. 设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&&k 的值为
A: 1        B: 2        C: 3        D: 0
13. 逻辑运算符两侧运算对象的数据类型
A: 只能是0 1
B: 只能是0 或非0 正数
C: 只能是整型或字符型数据
D: 可以是任何类型的数据
14. 能正确表示“当x 的取值在[110][200210]范围内为真,否则为
假”的表达式是(
A: (x>1&&(x<10)&&(x>200)&&(x<210)
B: x>1||(x<10)||(x>200)||(x<210)
C: x>1&&(x<10)||(x>200)&&(x<210)
D: x>1||(x<10)&&(x>200)||(x<210)
15. 已知x43,ch=’a,y0;则表达式(x>y&&ch<b&&!y)的值
是(
A: 0        B: 1        C: 语法错误        D:
16. 执行下列语句后a 的值为
int a5,b6,w1,x2,y3,z4;
(aw>x)&&(by>z);
A: 5        B: 0        C: 2        D: 1
17. 以下程序的输出结果是(
main()
{ int a5,b0,c0;
if(ab+c) printf(***\n);
else printf(“$$$\n”);
}
A: 有语法错误不能通过编译
B: 可以通过编译但不能通过连接
C: ***
D: $$$
18. 以下程序的输出结果是(
main()
{ int m5;
if(m++>5) printf(“%d\n”,m);
else printf(%d\n,m--);
}
A: 4        B: 5        C: 6        D: 7
19. 若运行时给变量x 输入12,则以下程序的运行结果是(
main()
{ int x,y;
scanf(“%d”,&x);
yx>12?x+10x12;
printf(“%d\n”,y);
}
A: 0            B: 22        C: 12        D: 10
20. w1,x2,y3,z4,则表达式w<x?wy<z?yz 的值是
A: 4        B: 3        C: 2        D: 1
21. 设有int a2,b;则执行ba&&1;语句后,b 的结果是
A: 0        B: 1        C: 2        D: 3
22. 设有int m1,n2;++m==n 的结果是
A: 0        B: 1        C: 2        D: 3
23. 设有int n2;++n+1==4 的结果是
A: true        B: false        C: 1        D: 0
24. 设有int n2;++n+1==4n 的结果是
A: 1        B: 2        C: 3        D: 4
25. 以下使i 的运算结果为4 的表达式是
A: int i0,j0; (i3,(j++)+i);
B: int i1,j0; ji((i3)*2);
C: int i0,j1; (j==1)?(i1)(i3);
D: int i1,j1; i+j+2;
26. a=5,b=2 ,表达式a= =b 的值为
A: 2        B: 1        C: 0一个完整的c语言程序        D: 5
27. 若执行以下程序时从键盘上输入9_______则输出结果是
main()
{ int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
}
A: 11        B: 10        C: 9            D: 8
28. main()
{ int a,b,d241;
ad/100%9;
b(1)&&(1);
printf(%d,%d,a,b;
}
A: 6,1        B: 2,1        C: 6,0        D: 2,0
29. 若有int x10,y20,z30;以下语句执行后x,y,z 的值是(
if (x>y)
zx;xy;yz;
A: x10,y20,z30
B: x20,y30,z30
C: x20,y30,z10
D: x20,y30,z20
30. 下列表达式中能表示a 0 100 之间的是
A: a>0&a<100    B: !(a<0||a>100)    C: 0<a<100    D: !a>0&&a<100
31. 为了避免嵌套的ifelse 语句的二义性,C 语言规定else 总是与(
组成配对关系。
A: 缩排位置相同的if
B: 在其之前未配对的if
C: 在其之前未配对的最近的if
D: 同一行上的if
32. 已知:int x,a,b;下列选项中错误的if 语句是
A: if(a=b) x++;                B: if(a<=b) x++;
C: if(a-b) x++;                    D: if(x) x++;
33. 当把以下四个表达式用作if 语句的控制表达式时,有一个选项与其它
三个选项含义不同,这个选项是( )。
A: k%2        B: k%2==1        C: (k%2)!=0        D: !k%2==1
34. 设有定义:int a=2,b=3,c=4;,则以下选项中值为0 的表达式是( )。
A: (!a==1)&&(!b==0)        B: a        C: a && b        D: a||(b+b)&&(c-a)
35. 以下程序段的输出结果是。
int a=10,b=50,c=30
if(a>b)
a=b
b=c
c=a
printf("a=%d b=%d c=%d\n",a,b,c)
A: a=10 b=50 c=10        B: a=10 b=30 c=10        C: a=50 b=30 c=10        D: a=50 b=30 c=50

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。