C语言程序题及解析.pdf
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、填空题
1、语句 if(4/5 > 3/4)
a=1; else
a=0; 运行后,a 的值是________ 。 答案:0
2、表达式:!!"2010-01-27" 的值为________ 。(以 1 表示真,0 表示假) 答案:1
3、若变量 x 已正确定义并赋值,则表达式(-10<x<0)的值为 ________ 。 答案:0
4、写出表示“ x 的取值在 [-10, 0] 的范围内,结果为真,否则为 假”表达式________ 。注意不需要任何空格。 答案:x>=-10&&x<=0 或 x<=0&&x>=-10 或 !(x<-10||x>0)。
5、若:int a=6, b=0, c=3; 则表达式:a && b || b - c 的结果是________ 。(以 1 表示真,0 表 示假) 答案:1
单元测试二
一、单项选择题
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
a++; 中的表达式 x%3 等价于( A. x%3==1 B. x%3!=0 C. x%3==2
)。
D. x%3==0 答案:B
13、循环语句 while (!x&&!y) 中的循环条件表达式等价于( A. x=0 && y=0 B. !(x || y) C. !(x==0 || y==0) D. !(x==0 && y==0) 答案:B
4、下面程序的运行结果是( )。 #include <stdio.h> 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);
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. 打印出 5 C. 打印出 6 D. 因为 while(0),无法编译 答案:C
9、对于以下代码: int i; for(i=0; i<10; i++)
y = 0; else
y = 1; 等价于( )。 A. y=0; if(x!=0)
if(x>0) y=1;
else y=-1;
)。 )。
B. y=0; if (x>=0)
if(x) y=1;
else y=-1;
C. if(x>=0)
y=0; if(x)
y=1; else
y=-1; D. if(x != 0)
11、对 for(表达式 1;;表达式 3) 可理解为( )。
A. for(表达式 1; 1; 表达式 3) B. for(表达式 1; 表达式 3; 表达式 3) C. for(表达式 1; 表达式 1; 表达式 3) D. for(表达式 1; 0; 表达式 3) 答案:A
12、循环语句 while(x%3)
14、假设有定义:int k; 下面代码编译运行的情况是( for(k=1; k; k++)
printf ("%d ", k); A. 编译错误 B. 能运行,正常结束 C. 以上说法都不对 D. 能运行,是死循环 答案:B
15、对于 int x, y; 语句 if(x < 0)
y = -1; else if(!x)
for(i=0;i<= __ ;) printf("%d\n", i+=2);
A.18 B.20
C.9 D.10 答案:A
18、若 k 为整型变量,则下面 while 循环执行的次数为( k=10; while(k>=5)
k=k-1; A. 4 次 B. 7 次 C. 5 次 D. 6 次 答案: D
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
)。
19、下面程序的输出结果是( int main(void) {
int s, k; for(s=1, k=2; k<5; k++)
s+=k; printf("%d\n", s); return 0; } A. 9 B. 15 C. 1 D. 10 答案: D
)。
20、下面有关 for 循环的正确描述是( )。 A. for 循环只能用于循环次数已经确定的情况。 B. for 循环是先执行循环体语句,后判断表达式。 C. for 循环的循环体可以包含多条语句,但必须用花括号括起来。 D. 在 for 循环中,不能用 break 语句跳出循环体。 答案: C
printf("%d", i); for 循环后,i 的值是多少? A. 9 B. i 不存在 C. 10 D. i 没有确定的值 答案:C
10、以下哪个 for 语句是错误的? A. for(i=0; i<10; i--); B. for(i=0, j=0; i<10; i++; j++ ); C. for(i=0; i<10, j<10; i++); D. for(i=0; j<10; j++ ); 答案:B
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) {
if(x > 0) y = 1;
else y = -1;
答案:A
16、若 k 为整型,以下 while 循环执行( k=2; while(k=0)
printf("%d", k), k--; printf("\n"); A. 无限次 B. 2 次 C. 0 次 D. 1 次 答案:C
)次。
17、要使下面程序输出 10 个整数,则在划线处__填入正确的数是 ( )。
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
} 答案:17
10、以下代码的输出是________ 。 int i,x,y; i=x=y=0; do {
++i; if(i%2)
x+=i, i++; y +=i++; } while(i<=7); printf("%d %d %d", i, x, y); 答案:9 1 20
7、若有:int x = 5; 则:! x<10 的值是________。(以 1 表示真,0 表示假) 答案:1
8、现有 int x=0,y=4; 表达式-10<x&&y<0 的结果是________ 。 答案:0
9、以下程序的输出是________ 。 #include <stdio.h>
int main(void) { int x = 15; while(x > 10 && x < 50) { ++x; if(x / 3) { ++x; break; } else continue; } printf("%d\n",x); return 0;
2、阅读下面程序段,s 的值是( int a=1, b=2, c=6, s; if(a<=b || c<0 || b<c)
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)
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) {
6、若变量已正确定义,执行 scanf("%d%c%f", &op1, &op, &op2); 输入________ 之后,op1 的值为 1,op 的值为'*',op2 的值为 2.0。 (如果小数点后有零,请只以一个 0 表示) 答案:1*2 或 1* 2 或 1*2.0 或 1* 2.0 或 1*2. 或 1* 2.