1、2015-2016(2)循环结构练习题一、单选题 (共40题,共100分)1. 以下正确的描述是( ) (2分)语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句标准答案:B考生答案:2. 下面的关键字中,不能够从循环体中跳出循环体外的是() (2分) 标准答案:D考生答案:3. 以下叙述中错误的是() (2分)A.语句标号是由合法的标识符后面加一个冒号构成语句的作用是把程序的执行转向语句标号所在的位置语句必须与语句标号在同一个函数内D.结构化程
2、序设计主张使用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. 下述程序的输出结果是( )。#includemain() int Y=100;while(Y-);printf(y=%d,Y); (2分)=0 =1 =随机
3、值 =-1 标准答案:D考生答案:7. 执行下面的程序后的输出结果为( )int x,y,z;x=20,y=40,z=15;while(yx)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&+x5) y=y-1;printf(%d,%d,%dn,x,y,z); (2分),2,0 ,2,-1 ,3,-1 ,-2,-5 标准答案:B考生答案:9. 下述语句执行后,变量k的值是()int k=1;while(k+
4、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()intv1=0,v2=0;charch;while(ch=getchar()!=#)switch(ch)casea:caseh:default:v1+;case0:v2+;printf(%d,%dn,v1,v2); (2分),0,0,5,5标
5、准答案:C考生答案:12. main()intp7=11,13,14,15,16,17,18,i=0,k=0;while(i7&pi%3) k=k+pi;i+;printf(%dn,k);执行后输出结果是() (2分)标准答案:C考生答案:13. 有以下程序段:intx=3;doprintf(%d,x-=2);while(!(-x);其输出结果是() (2分)D.死循环标准答案:C考生答案:14. 以下叙述正确的是() (2分)语句构成的循环不能用其它语句构成的循环来代替。语句构成的循环只能用break语句退出。C.用do-while语句构成的循环,在while后的表达式为非零时结束
6、循环。D.用do-while语句构成的循环,在while后的表达式为零时结束循环标准答案:D考生答案:15. 以下程序段的输出是()intx=7,y=5,z=1;doif(!(z%x)if(!(z%y)printf(%d,z);break;z+;while(z!=0); (2分)标准答案:B考生答案:16. 有以下程序段:intx=23;doprintf(%d,x-);while(!x);其输出结果是() (2分)C.不输出任何内容D.死循环标准答案:B考生答案:17. 有以下程序段:ints=0,a=1,n;scanf(%d,&n);dos+=1;a=a-2;while(a!=n);prin
7、tf(%dn,s);若要使程序的输出值为2,则应该从键盘给n输入的值是() (2分)标准答案:B考生答案:18. 有以下程序段:inti=0,s=0;doif(i%2)i+;continue;i+;s+=i;while(i7);printf(%dn,s);其输出结果是() (2分)标准答案:A考生答案:19. 下列程序段的输出结果是()inti,n=0;for(i=2;i5;i+)doif(i%3)continue;n+;while(!i);n+;printf(n=%dn,n); (2分)=5=2=3=4标准答案:D考生答案:20. 在C语言的循环语句for,while,do-while语句中
8、,用于直接中断最内层循环的语句是() (2分)标准答案:C考生答案:21. 执行以下语句后sum的值为()inti=10;sum=0;dosum+=i;i+;while(i3;j-)if(j%3)j-;-j;-j;printf(%d,j); (3分)3423标准答案:B考生答案:24. 以下程序的输出结果是()main()inti,s=0;for(i=1;i10;i+=2)s+=i+1;printf(%dn,s); (3分)A.自然数1到9的累加和B.自然数1到10的累加和C.自然数1到9中奇数之和D.自然数1到10中偶数之和标准答案:D考生答案:25. 以下程序的输出结果是()main()i
9、nti;for(i=A;iI;i+,i+)printf(%c,i+32);printf(n); (3分)A.编译不通过,无输出标准答案:B考生答案:26. 下述for语句,假定运行时输入的值不是876inti,x;for(i=0,x=1;i=9&x!=876;i+)scanf(%d,&x); (3分)A.循环10次B.循环9次C.无限循环D.一次也不循环标准答案:A考生答案:27. 以下程序段的输出结果是()#includemain()intk=4,n;for(n=0;nk;n+)if(n%3!=0)continue;k-;printf(%d,%d,n,k); (3分),1,2,3,4标准答案
10、:C考生答案:28. 以下程序执行后sum的值是()main()inti,sum;for(i=1;i6;i+)sum+=i;printf(%dn,sum); (3分)C.不确定标准答案:C考生答案:29. 以下程序的输出结果是()main()inti=0,s=0;for(;)if(i=3|i=5)continue;if(i=6)break;i+;s+=i;printf(%dn,s); (3分)D.程序进入死循环标准答案:D考生答案:30. 下面程序段的输出结果是()inta=1,b;for(b=1;b=8)break;if(a%2=1)a+=5;continue;a-=3;printf(%dn
11、,b); (3分)标准答案:B考生答案:31. 下列程序的输出结果是()main()inti,j,m=0,n=0;for(i=0;i2;i+)for(j=0;j=i)m=1;n+;printf(%dn,n); (3分)标准答案:D考生答案:32. 下列程序段的输出结果是()intk=0,m=0;inti,j;for(i=0;i2;i+)for(j=0;j3;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()inti,j,x=0;for(i=0;i2
12、;i+)x+;for(j=0;j3;j+)if(j%2)continue;x+;x+;printf(x=%dn,x); (3分)=4=8=6=12标准答案:B考生答案:34. 以下循环体的执行次数是()main()inti,j;for(i=0,j=1;i=j+1;i+=2,j-)printf(%dn,i); (3分)标准答案:C考生答案:35. 以下程序段的输出结果为()intx,i;for(i=1;i100) break;(;) ; k=0;do+k;while(k10); s=36;while(s); -s;标准答案:C考生答案:37. 以下程序的输出结果是()main()inti;for
13、(i=1;i6;i+)if(i%2)printf(#);continue;printf(*); (3分)A.#*#*#B.#C.*D.*#*#*标准答案:A考生答案:38. 以下程序的输出结果是()main()inta,b;for(a=1,b=1;a=10)break;if(b%3=1)b+=3;continue;printf(%dn,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. 下面程序段的输出结果为()inti,s;s=0;for(i=1;i5)break;printf(s=%dn,s); (3分)标准答案:B考生答案: