c语言循环结构练习
2015-2016(2)循环结构练习题
一、单选题(共40题,共100分)
1. 以下正确的描述是()(2分)
语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
标准答案:B
考生答案:
2. 下面的关键字中,不能够从循环体中跳出循环体外的是()(2分)
标准答案:D
考生答案:
3. 以下叙述中错误的是()(2分)
A.语句标号是由合法的标识符后面加一个冒号构成
语句的作用是把程序的执行转向语句标号所在的位置
语句必须与语句标号在同一个函数内
D.结构化程序设计主张使用goto语句,使用goto语句的程序可读性强标准答案:D
考生答案:
4. 有以下程序段,while 循环执行的次数是()
int k=0;
while(k=1)k++; (2分)
A.无限次
B.有语法错,不能执行
C.一次也不执行
D.执行1次
标准答案:A
考生答案:
5. 运行以下程序的结果为()
main()
{
int num=0;
while (num<=2)
{num++;
printf("%d",num);
}
} (2分)
标准答案:B
考生答案:
6. 下述程序的输出结果是()。
#include<>
main()
{ int Y=100;
while(Y--);
printf("y=%d",Y);
(2分)
=0 =1 =随机值 =-1 标准答案:D
考生答案:
7. 执行下面的程序后的输出结果为()
int x,y,z;
x=20,y=40,z=15;
while(y>x)
x+=4,y-=4;
z/=2;
printf("%d,%d,%d",x,y,z); (2分)
,36,30 ,8,7 ,28,7 ,28,
标准答案:C
考生答案:
8. 以下程序段的输出结果是()
int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z); (2分)
,2,0 ,2,-1 ,3,-1 ,-2,-5 标准答案:B
考生答案:
9. 下述语句执行后,变量k的值是()
int k=1;
while(k++<10); (2分)
D.此为无限循环,值不定
标准答案:B
考生答案:
10. 下面程序的运行结果是()。
main()
{ int c1=2, c2=0;
while(!c2--)
printf("%d,%d", c1--, c2);
} (2分)
,-1 B.不输出任何内容
,-1 ,0 标准答案:C
考生答案:
11. 运行以下程序后,如果从键盘上输入china#main( )
{ int v1=0,v2=0;
char ch ;
while((ch=getchar())!='#')
switch(ch)
{
case 'a':
case 'h':
default: v1++;
case '0': v2++;
}
printf("%d,%d\n",v1,v2);
(2分)
,0 ,0 ,5 ,5
标准答案:C
考生答案:
12. main( )
{
int p[7]={11,13,14,15,16,17,18}, i=0,k=0;
while(i<7&&p[i]%3)
{
k =k+ p[i]; i++;
}
printf("%d\n", k);
}
执行后输出结果是()(2分)
标准答案:C
考生答案:
13. 有以下程序段: int x=3; do { printf("%d",x-=2);} while(!(--x)); 其输出结果是( ) (2分)
D.死循
环
标准答案:C
考生答案:
14. 以下叙述正确的是( ) (2分)
语句构成的循环不能用其它语句构成的循环来代替。
语句构成的循环只能用break语句退出。
C.用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D.用do-while语句构成的循环,在while后的表达式为零时结束循环
标准答案:D
考生答案:
15. 以下程序段的输出是()
int x=7,y=5,z=1;
do
{
if(!(z%x))
if(!(z%y))
{printf("%d",z);break;}
z++;
}while(z!=0); (2分)
标准答案:B
考生答案:
16. 有以下程序段:
int x=23;
do
{ printf("%d",x--);}
while(!x);
其输出结果是( ) (2分)
C.不输出任何内容
D.死循
环
标准答案:B
考生答案:
17. 有以下程序段:
int s=0,a=1,n;
scanf("%d",&n);
do
{
s+=1;a=a-2;
}
while(a!=n);
printf("%d\n",s);
若要使程序的输出值为2,则应该从键盘给n输入的值是( ) (2分)
标准答案:B
考生答案:
18. 有以下程序段:
int i=0,s=0;
do
{
if(i%2){i++;continue;}
i++;s+=i;
}
while(i<7);
printf("%d\n",s);
其输出结果是( ) (2分)
标准答案:A
考生答案:
19. 下列程序段的输出结果是()
int i,n=0;
for(i=2;i<5;i++)
{
do
{
if(i%3)continue;
n++;
}while(!i);
n++;
}
printf("n=%d\n",n); (2分)
=5 =2 =3 =4
标准答案:D
考生答案:
20. 在C语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是() (2分)
标准答案:C
考生答案:
21. 执行以下语句后sum的值为( )
int i=10;sum=0;
do
{sum+=i; i++;}
while(i<10); (2分)
标准答案:D
考生答案:
22. 以下程序段满足什么条件时循环会结束:
int n=0,p;
do
{
scanf("%d",&p);
n++;
}while(p!=12345&&n<3); (2分)
的值不等于12345并且n的值小于3
的值等于12345并且n的值大于等于3
的值不等于12345或者n的值小于3
的值等于12345或者n的值大于等于3
标准答案:D
考生答案:
23. 设j为int型变量,则下面for循环语句的执行结果是()
for(j=10;j>3;j--)
{ if(j%3) j--;
--j;--j;
printf("%d ",j);
} (3分)
3 4 2 3
标准答案:B
考生答案:
24. 以下程序的输出结果是( )
main()
{ int i,s=0;
for (i=1;i<10;i+=2) s+=i+1;
printf("%d\n",s);
} (3分)
A.自然数1到9的累加和
B.自然数1到10的累加和
C.自然数1到9中奇数之和
D.自然数1到10中偶数之和
标准答案:D
考生答案:
25. 以下程序的输出结果是( )
main()
{int i;
for(i='A';i<'I';i++,i++)printf("%c",i+32);
printf("\n");
} (3分)
A.编译不通过,无输出
标准答案:B
考生答案:
26. 下述for语句,假定运行时输入的值不是876
int i,x;
for(i=0,x=1;i<=9&&x!=876;i++)
scanf("%d",&x); (3分)
A.循环10次
B.循环9
次
C.无限循环
D.一次也不循
环
标准答案:A
考生答案:
27. 以下程序段的输出结果是()
#include ""
main()
{
int k=4,n;
for(n=0;n { if(n%3!=0)continue; k--; } printf("%d,%d",n,k); (3分) ,1 ,2 ,3 ,4 标准答案:C 考生答案: 28. 以下程序执行后sum的值是( ) main() { int i,sum; for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); } (3分) C.不确 定 标准答案:C 考生答案: 29. 以下程序的输出结果是() main() { int i=0,s=0; for(;;) { if(i==3||i==5)continue; if(i==6) break; i++; s+=i; } printf("%d\n",s); } (3分) D.程序进入死循环 标准答案:D 考生答案: 30. 下面程序段的输出结果是() int a=1,b; for(b=1;b<=10;b++) { if(a>=8) break; if(a%2==1){a+=5;continue;} a-=3; } printf("%d\n",b); (3分) 标准答案:B 考生答案: 31. 下列程序的输出结果是( ) main( ) { int i, j, m=0, n=0; for(i=0; i<2; i++) for(j=0; j<2; j++) if(j>=i) m=1; n++; printf("%d\n",n); (3分) 标准答案:D 考生答案: 32. 下列程序段的输出结果是() int k=0,m=0; int i,j; for(i=0;i<2;i++) { for(j=0;j<3;j++) k++; k-=j; } m=i+j; printf("k=%d,m=%d",k,m); (3分) =0,m=3 =0,m=5 =1,m=3 =1,m=5 标准答案:B 考生答案: 33. 以下程序的输出结果是 main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<3;j++) { if(j%2) continue; x++; } x++; } printf("x=%d\n",x); } (3分) =4 =8 =6 =12 标准答案:B 考生答案: 34. 以下循环体的执行次数是( ) main() { int i,j; for(i=0,j=1;i<=j+1;i+=2,j--) printf("%d \n",i);} (3分) 标准答案:C 考生答案: 35. 以下程序段的输出结果为() int x, i; for(i=1;i<=50;i++) { x=i; if(x%2==0) { x++; if(x%3==0) { x++; if(x%7==0) { x++;printf("%d ",i);} } } } (3分) 标准答案:D 考生答案: 36. 以下程序段不是死循环的是()(5分) i=100; while(1) { i=i%100+1; if(i>100) break; } (;;) ; k=0; do{++k;} while(k<10); s=36; while(s); --s; 标准答案:C 考生答案: 37. 以下程序的输出结果是( ) main() { int i; for(i=1;i<6;i++) { if(i%2){printf("#");continue;} printf("*"); } } (3分) A.#*#*# B.##### C.***** D.*#*#* 标准答案:A 考生答案: 38. 以下程序的输出结果是( ) main() { int a,b; for(a=1,b=1;a<=100;a++) {if(b>=10) break; if (b%3==1) {b+=3;continue;} } printf("%d\n",a); (3分) 标准答案:D 考生答案: 39. 设x和y均为int型变量,则执行以下的循环后,y值为( ) for(y=1,x=1;y<=50;y++) { if(x==10)break; if (x%2==1) {x+=5;continue;} x-=3; } (3分) 标准答案:C 考生答案: 40. 下面程序段的输出结果为()int i,s; s=0; for(i=1;i<101;i++) { s+=i; if(s>5) break; } printf("s=%d\n",s); (3分) 标准答案:B 考生答案: