一、单项选择题
1. 以下程序的输出结果是______。
#include<stdio.h>
void main()
{ int num=0; while(num<=2) { num++; printf("%d",num); } }
A. 2 B. 1 C. 123 D. 12
参考标准答案 :C
2. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是______。
#include <stdio.h>
void 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
参考标准答案 : D
3. 以下描述中正确的是______。
A. 由于do-while循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B. do-while循环由do开始,用while结束,因此在while(表达式)后无需加分号。
C. 在do-while循环体中,一定要有能使while后面表达式的值变为“假”的操作。
D. do-while循环中,根据情况可以省略while。
参考标准答案 : C
4. 下面程序段的输出结果是______。
int i=10;
while(i>7) { i--; printf(" %d",i); }
A. 10 9 8 B. 9 8 7 C. 10 9 8 7 D. 8 9 10
参考标准答案 :B
5. 若i为整型变量,则以下循环执行的次数是______。
for(i=2;i==0;) printf("%d",i--);
A. 无限次 B. 0次 C. 1次 D. 2次
参考标准答案 : B
6. 执行下面程序段后,i值是______。
int i=0; do {++i; if(i%2!=0);}while(i<=100);
A. 101 B. 100 C. 99 D. 98
参考标准答案 : A
7. 若变量都已正确说明,则以下程序段输出为______。
int a=1,b=2,c,d;
if (a==b) c=d=a;
else c=b;
d=b;
printf("c=%d,d=%d",c,d);
A. c=1,d=1 B. c=1,d=2 C. c=2,d=1 D. c=2,d=2
参考标准答案 : D
8. 以下程序输出结果是______。
#include <stdio.h>
void main ( )
{ int m=5;
if (m++>5) printf("%d\n",m);
else printf("%d\n",m--); }
A. 7 B. 6 C. 5 D. 4
参考标准答案: B
9. 在C语言中______。
A. 不能使用do_while语句构成的循环
B. do_while语句构成的循环必须用break语句才能退出
C. do_while语句构成的循环,当while语句中的表达式为非0时结束循环
D. do_while语句构成的循环,当while语句中的表达式为0时结束循环
参考标准答案案: D
10. 在下列选项中,没有构成死循环的程序段是______。
A. int i=100; while (1) {i=i%100+1; if(i>100)break;}
B. for(;;);
C. int k=1000; do{--k} while (k)
D. int s=36; while(s>=0);++s;
参考标准答案: C
11. 以下叙述正确的是______。
A. 可以把define和if定义为用户标识符
B. 可以把define定义为用户标识符,但不能把if定义为用户标识符
C. 可以把if定义为用户标识符,但不能把define定义为用户标识符
D. define和if都不能定义为用户标识符
参考标准答案: B
12. 下面有关for循环的正确描述是______。
A. for循环只能用于循环次数已经确定的情况
B. for循环是先执行循环体语句,后判定表达式
C. 在for循环中,不能用break语句跳出循环体
D. for循环体语句中,可以包含多条语句,但要用花括号括起来 参考标准答案: A
13. 下面说法中正确的是______。
A.编程时,应该尽量控制嵌套循环的重数。
B.编程时,变量名应尽可能的简短。
C.编程时,应多用goto语句,以增强程序的灵活性。
D.编程时,要尽可能的简洁而新颖,可理解性是第二位的。
参考标准答案: A
14. 以下程序的输出结果是______。
# include <stdio.h>
void main()
{ int i=0, j=0, k=6;
if ((++i>0)||(++j>0)) k++;
printf("%d, %d, %d\n", i, j, k);
}
A. 0, 0, 6 B. 1, 0, 7 C. 1, 1, 7 D. 0, 1, 7
参考标准答案 B
15. C语言的for语句中的表达式可以部分或全部省略,但两个______不可省略。但当三个表达式均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。
A. “<” B. “++” C. “;” D. “,”
参考标准答案 C
16. 以下程序段中不能根据x值正确计算出y值的是______。
A. if(x>0) y=1; B. y=0;
else if(x==0) y=0; if(x>0) y=1;
else y=-1; else if(x<0) y=-1 ;
C. y=0; D. if(x>=0)
if(x>=0); if(x>0) y=1;
if(x>0) y=1 ; else y=0;
else y=-1; else y=-1;
参考标准答案 C
17. 设有程序段: int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); ,则运行程序段后______。
A.输出0 B.输出1
C.控制表达式是非法的 D.执行无限次
参考标准答案 B
18. 以下的for循环,______。for(x=0,y=0;(y!=123)&&(x<4);x++);
A.执行3次 B.执行4次
C.循环次数不定 D.是无限循环
参考标准答案 B
19.请阅读以下程序:
#include<stdio. h>
void main()
{ float a,b; scanf("%f",&a);
if (a<10.0) b=1.0/a;
else if((a<0.5)&&(a!=2.0))b= 1.0/(a十2.0);
else if(a<10.0) b= 1.0/a ;
else b=10.0;
printf("%f\n",b);
}
若运行时输入2.0(回车),则上面程序的输出结果是______。
A. 0.000000 B. 0.500000 C. 1. 000000 D. 0.250000
参考标准答案 B
20. 语句while (!e);中的条件!e等价于______。
A. e==0; B. e!=1 C. e!=0 D. ~e
参考标准答案 A
21. 以下程序输出结果为______。
#include <stdio.h>
void main()
{ int i,b,k=0;
for(i=1;i<=5;i++) { b=i%2; while (b-->=0) k++;} printf("%d,%d\n",k,b); }
A. 3,-1 B. 8,-1 C. 3,0 D. 8,-2
参考标准答案 D
22. 下面程序的运行结果是______。
int y=10; do { y--;} while(--y); printf("%d\n",y--);
A. -1 B. 1 C. 8 D. 0
参考标准答案 D
23. 有如下程序段运行结束后x的值为______。
int x,y;
for(x=1,y=1;x<=100;x++)
{ if (y>=20) break; if (y%3==1) { y+=3;continue;} y-=5; }
printf("%d\n",x);
A. 9 B. 8 C. 7 D. 6
参考标准答案 B
24.循环语句for(i=100;i;i-=30); 的执行次数为______。
A. 3次 B. 4次 C. 5次 D. 0次
参考标准答案 B
25. 设有程序段:int n=0; while(n++<3); printf("%d",n);,则运行结果是______。
A. 2 B. 3 C. 4 D. 以上都不对
参考标准答案 C
二、判断题
1. do-while语句构成的循环只能用break语句退出。
参考标准答案 :错
2. C语言的While循环语句中,While后一对圆括号中的表达式的值决定了循环体是否进行,因此,进入While循环后,一定要有能使表达式的值变为0的操作。
参考标准答案 :对
3. C语言程序的三种基本结构是嵌套结构、递归结构、顺序结构。
参考标准答案:错
4. if (x!=y) scanf("%d",&x);else scanf("%d",&y); 语句语法是错误的。
参考标准答案 :错
5. if语句执行时,首先计算紧跟在if后面一对圆括号中的表达式的值,如果表达式的值为非零("真"),则执行if后的"语句",然后去执行if
语句后的下一个语句。
参考标准答案 :对
6. 语句int x=3;do { printf("%d\n",x-=2);} while(!(--x)); 输出的是1和-2。
参考标准答案: 对
7. 语句 x=3; do {printf("%2d",x--);} while(!x); 的执行结果是3。
参考标准答案 : 对
8. 执行完下面程序段后,k的值为0。
int i,j,k; for(i=0,j=10;i<=j;i++,j--) k=j-i;
参考标准答案 : 对
9. if (x>0) printf ( "%f ",-x )语句语法是正确的。
参考标准答案 :错
10. for后的一对圆括号中,可以出现各种形式的与循环控制无关的表达式。
参考标准答案 :对
11. 用do-while语句构成循环时,只有在while后的表达式为非0时结束循环。
参考标准答案 : 错
12. 若i为整型变量,则以下循环 i=0; while(i=0)i++;一次也不执行。
参考标准答案 : 对
13. 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
参考标准答案 :对
14. while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。
参考标准答案 : 对
15. for循环中,如果表达式2为空,则该循环一定是死循环。
参考标准答案 : 错
三、填空题
1. 下面程序的运行结果是___________。
#include<stdio.h>
void main()
{ int a=0,i=0;
while(a<=6){++i;a+=i;}
printf("%d\n",a); }
参考标准答案: 10
2. 有以下程序
#include<stdio. h>
void main( )
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf("%d\n",x); }执行后输出结果是___________。
参考标准答案:-4
3. 运行以下程序后,如果从键盘上输入student#<回车>,则输出结果为___________。
#include<stdio.h>
void main()
{ int v1=0,v2=0; char ch;
while((ch=getchar( ))!='#')
switch(ch){case 'd':case 't':default: v1++;case 'a': v2++;}
printf("%d,%d\n",v1,v2);}
参考标准答案 : 7,7
4. 若输入整数12345,以下程序的输出结果为___________。
#include<stdio.h>
void main()
{ int x,y; scanf("%d",&x);
do{y=x%10;printf("%d",y);x/=10;} while(x);}
参考标准答案 : 54321
5.
以下程序输出的结果是___________。
#include<stdio.h>
void main()
{ int i,j;
for(j=10;j<11;j++){for(i=9;i==j-1;i++)printf("%d",j);}}
参考标准答案 :10
6.
以下程序的运行结果是___________。
#include <stdio.h>
void main()
{int a,b,c; int s,w=0,t=0; a=-1;b=3;c=3;
if(c>0) s=a+b;
if(a<=0) {if(b>0) if(c<=0)w=a-b; }
else if(c>0)w=a-b;
else t=c; printf("%d,%d,%d\n",s,w,t); }
参考标准答案 :2,0,0
7.
下面程序的运行结果是___________。
#include<stdio.h>
void main()
{ int a=0,i=0;
do{++i;a+=i;} while(a<=6);
printf("%d\n",a); }
参考标准答案 :10
8.
以下程序完成的功能是___________。
#include <stdio.h>
void main( )
{ int shu;
printf("请输入一个整数%%d:\n");
scanf("%d", &shu );
if ( shu < 0 )
shu = -shu;
printf(" %d\n", shu );
}
参考标准答案 :输出从键盘上输入数据的绝对值
9.
下面是计算n!的值的程序。
#include<stdio.h>
void main()
{ int i,s,n; s=1; scanf("%d",&n);
for(i=1;i<=n;i++)___________;
printf("s=%d\n",s); }
参考标准答案 : s=s*i
10.
以下程序输出结果为___________。
#include"stdio.h"
void main()
{ int i;
for(i=0;i<10;i++);
printf("%d",i); }
参考标准答案 : 10