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语句,假定运行时输入的值不是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 ""main(){int k=4,n;for(n=0;n<k;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考生答案:。