c语言循环结构练习(24页).doc
-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 .标准答案: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.一次也不执行 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<stdio.h>main() int Y=100;while(Y-);printf("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. 以下程序段的输出结果是()int x=0,y=5,z=3;while(z->0&&+x<5) y=y-1;printf("%d,%d,%dn",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 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. 运行以下程序后,如果从键盘上输入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,%dn",v1,v2); (2分)A.2,0 B.5,0 C.5,5 D.2,5 .标准答案:C考生答案:12. main( )int p7=11,13,14,15,16,17,18, i=0,k=0;while(i<7&&pi%3) k =k+ pi; i+; printf("%dn", k); 执行后输出结果是( ) (2分)A.58 B.53 C.38 D.24 .标准答案:C考生答案:13. 有以下程序段: int x=3; do printf("%d",x-=2); while(!(-x); 其输出结果是( ) (2分)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;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 C.不输出任何内容 D.死循环 .标准答案:B考生答案:17. 有以下程序段:int s=0,a=1,n;scanf("%d",&n);do s+=1;a=a-2;while(a!=n);printf("%dn",s);若要使程序的输出值为2,则应该从键盘给n输入的值是( ) (2分)A.-1 B.-3 C.-5 D.0 .标准答案:B考生答案:18. 有以下程序段:int i=0,s=0;do if(i%2)i+;continue; i+;s+=i;while(i<7);printf("%dn",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+; while(!i); n+;printf("n=%dn",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的值为 ( )int i=10;sum=0;dosum+=i; i+;while(i<10); (2分)A.0 B.1 C.11 D.10 .标准答案:D考生答案:22. 以下程序段满足什么条件时循环会结束:int n=0,p;doscanf("%d",&p);n+;while(p!=12345&&n<3); (2分)A.p的值不等于12345并且n的值小于3B.p的值等于12345并且n的值大于等于3C.p的值不等于12345或者n的值小于3D.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;i<10;i+=2) s+=i+1;printf("%dn",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 C.acegi D.abcdefghi .标准答案:B考生答案:26. 下述for语句,假定运行时输入的值不是876int 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 "stdio.h"main() int k=4,n; for(n=0;n<k;n+) if(n%3!=0)continue; k-; printf("%d,%d",n,k); (3分)A.1,1 B.2,2 C.3,3 D.4,4 .标准答案:C考生答案:28. 以下程序执行后sum的值是( )main() int i,sum;for(i=1;i<6;i+) sum+=i;printf("%dn",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("%dn",s); (3分)A.10 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("%dn",b); (3分)A.3 B.4 C.5 D.6 .标准答案: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("%dn",n); (3分)A.4 B.3 C.2 D.1 .标准答案: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分)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; x+; x+; printf("x=%dn",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.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 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+) 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("%dn",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=%dn",s); (3分)A.5050 B.6 C.5 D.0 .标准答案:B考生答案:第 24 页-