c语言程序题及解析
单元测试二
一、单项选择题
1、阅读下述程序段,设变量 c 的值是 68,运行结果是( )。
提示:小写字母 a 的 ASCII 码是 97, 大写字母 A 的 ASCII 码是 65。
char c;
if(c>='A' && c<='Z')
printf("%c\n", c+32);
else
printf("%d\n", c);
A. D
B. 100
C. d
D. 68
答案:C
2、阅读下面程序段,s 的值是( )。
int a=1, b=2, c=6, s;
if(a<=b || c<0 || b
s=b+c;
else
s=a+b+c;
A. 10
B. 8
C. 11
D. 9
答案:B
3、如下程序段的功能是判断一个 4 位自然数个位和十位数字是否相
同,在划线处__应该填写表达式( )。
int num;
scanf ("%d",&num);
if(num>=1000 && num<10000)
if (__)
printf("该 4 位自然数个位和十位数字相同\n");
else
printf("该 4 位自??数个位和十位数字不同\n");
A. num%10 == num/10%10
B. num/1000 == num%10
C. num/10%10 == num/100%10
D. num/100%10 == num%10
答案:A
4、下面程序的运行结果是( )。
#include
int main(void) {
int a=1, b=2, c=3;
if(a==1 && b==2)
if(b !=2 || c!=3)
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, b, c);
return 0;
}
A. 1.3.3
B. 1,3,2
C. 1,2,3
D. 3,2,1
答案:C
5、如有定义语句 int a,b; double x; 则下列选项中没有错误的是
( )。提示:(int)x 表示将变量 x 的值强制转换成 int 类型。若 x
初始值为 3.2 则(int)x 的结果是 int 类型,值为 3。
A.
switch(x%2) {
case 0: a++; break;
case 1: b++; break;
default: a++; b++;
}
B.
switch((int)x%2 ) {
case 0: a++; break;
case 1: b++; break;
default: a++; b++;
}
C.
switch(x%2) {
case 0: a++; break;
case 1.0: b++; break;
default: a++; b++;
}
D.
switch((int)x%2.0) {
case 0: a++; break;
case 1: b++; break;
default: a++; b++;
}
答案:B
6、对于以下代码:
int i=6;
if(i<= 6)
printf("hello\n");;
else
printf("bye-bye\n");;
下面哪句话是对的?
A. 打印出"hello"
B. 打印出"hello bye-bye"
C. 打印出"bye-bye"
D. 不能通过编译
答案:D
7、在代码:
while( !e )
中,!e 等价于( )。
A. e == 0
B. e!=0
C. e == 1
D. e != 1
答案:A
8、对于以下代码:
int i=6;
do {
printf("%d", i--);
} while(0);
哪句话是对的?
A. 打印不出东西
B. 打印