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






