第5章循环结构
- 格式:docx
- 大小:20.06 KB
- 文档页数:10
第5章循环结构第五章循环结构一、单项选择题(本大题共20小题,每小题1分,共20分)1.执行下面程序段后,输出字符B的个数是()x=0;while(x<=5){printf("B");x+=2;}A.0个B.3个C.5个D.6个2.在下述程序中,for循环执行的次数是()main( ){int i =0,j=10,k=2,s=0;for(; ;){i+=k;if(i>j){printf("%d\n",s);break;}s+=i;}}A.4 B.5 C.6 D.73.执行下面程序段后,输出字符A的个数是()for(i=0;i<=5;i+=2)printf(“A”);A.0个B.3个C.5个D.6个4.执行while(表达式)循环的条件是()A.当表达式的值为0时B.仅当表达式的值为1时C.当表达式的值非0时D.当表达式的值不为1时5.下列程序段输出的结果是()for(i=1;i<3;i+ +)for(j=1;j<3;j+ +)printf("%d",i+j);A.2 3 3 4 B.2 3 4C.2 3 D.23 4 3 46.对do语句while(表达式);结构的循环,下列说法正确的是()A.当表达式的值为非零时不执行循环体B.循环体至少被执行一次C.当表达式的值为零时循环体一次也不执行D.循环体仅被执行一次7.只能在循环语句中用于结束本轮循环的语句是()A.break; B.continue; C.goto D.if10.下列程序段的输出结果是()i=1;while(i<3){j=1;while(j<=i){printf(“%d”,i+j);j++;}i++;printf(“\n”);}A. 2 3 3 4B. 2 3 4C. 2 3D. 23 4 3 48.下列程序段的输出结果是()a=100;a=a+l;while(a>120);printf(“%d”,a);A.100B.101C.120D.1219.关于break和continue语句,下列说法正确的是()A.在循环体中可以用break语句结束本次循环B.在循环体中可以用continue语句结束本次循环C.break语句仅能使用在switch结构中D.可以使用continue语句跳出switch结构10.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是()A.表达式1B.表达式2C.表达式3D.表达式l和表达式311.下列语句中不能..实现循环结构的语句是()A.if语句B.while语句C.do—while语句D.for语句12.以下程序的输出结果是()main(){ int y=10;while(y——);printf("y=%d",y);A.y=-1B.y=0C.y=1D.y=随机值13.关于break语句,以下说法不正确...的是 ( )A.它可以用于循环语句中B.它可以用于switch语句中C.可以从最内层循环结构中直接跳出最外层循环结构D.可以从当前switch结构中跳出14.执行下面程序段后,a的值是( )int a=100;do{a++;}while(a>120);A.100B.101C.120D.12115.在下列选项中,没有构成死循环的程序段是()A.int i=100;B.for(;;);while(1){ i=i%100+1;if(i>100) break;}C.int k=1000;D.int s=36;do{++k;}while(k>10000);while(s);--s;二、多项选择题(本大题共5小题,每小题2分,共10分)1.下列循环将会产生死循环的有()A.while(1); B.do{ }while(0);C.do{ }while(1); D.for(k=1;k>―10;k+ +); E.for(k=1;k=10;k+ +,k――);2.下列关于break、goto、continue语句的说法中正确的是()A. break语句能够用于循环语句中B. break语句不能用于switch语句中C. goto语句可以用于直接从多层循环中退出D. continue语句可用于跳出循环体E. continue语句不能用于switch语句中3.下面能执行循环结构的语句有()A.if语句B.while语句C.do—while语句D.for语句E.switch语句三、简答题(本大题共4小题,每小题4分,共16分)1.用while循环结构完成下面程序段的功能。
s=0for(i=1;i<=10;i++)s+=i;2.写出do-while语句的一般形式及其执行过程。
3.写出for语句的一般形式并分析循环体被执行的条件。
4.简述break语句和continue语句在循环体中的功能。
5.写出for语句的一般形式及执行过程。
6.设有下面程序:void main(void){int x;x=1;while(x<20){printf("x=%d\n",x);}请把程序改写为for结构。
7.下面是求1到100之和的程序main( ){int i,sum=0;for(i=1;i<=100;i++)sum+=i;printf("%d\n",sum);}问如何修改循环体,使其仅求前10个数之和。
四、阅读分析题(本大题共6小题,每小题5分,共30分)1.阅读下面程序:void main(void){int s=0,n=0,x;label: scanf("%d",&x);if(x>0){s+=x;n++;printf("s=%d,n=%d,even=%f\n",s,n,1.0,*s/n); } if(x!=0)goto label;elseprintf("good bye!");}当依次输入12 -3 -6 5 13 0↙时,写出程序的运行结果。
2.阅读下面程序,写出运行结果。
main(){int x,sum=0;loop1:scanf(“%d”,&x);{if(x%2= =0){sum+=x;printf(“sum =%d\n”,sum);}goto loopl;}sum-=x;printf( “sum=%d\n”,sum);}当程序执行时输入数据1 2 3 4 5 6 7 8 ↙,写出程序运行结果。
3.阅读下面程序,写出运行结果。
main(){int a[3][3],i,j;for (i=0;i<3,i+ +)for(j=0,j<3;j+ +)a[i][j]=i+j;for(i=0;i<3;i++){for(j=0;j<=i;j+ +)printf(“%2d”,a[i][j]);printf(“\n”);}}3.请阅读分析下列程序,然后写出程序的循环次数和运行结果。
main(void){int i;for(i=1; i<6; i+ +){if(i%2){printf("@");continue;}printf("*");}printf("\n");}4.阅读分析下面程序后,写出程序的运行结果。
#include “stdio.h”main( ){int n,m;for(n=1;n<=5;n++){for(m=1;m<=4;m++)printf("%4d",m n);printf("\n");}}5.下列程序的功能和输出结果是什么?void main(void){int k=0,total=0;while(k<=100){total+=k;k++;}print("total=%d\n",total);}6.分析下列两个程序的区别,并写出它们的运行结果。
void main(void) void main(void){ {int y=0,s,k; int y=0,s,k;for(k=0;k<6;k++) for(k=0;k<6;k++){ s=k*k; s=k*k;y+=s; y+=s;}printf("y=%d\n",y); printf("y=%d\n",y);} }7.写出下面程序的功能及运行结果。
main(){int n=1,sum=0;do{sum=sum+n;n+=2;}while(n<100);printf("sum=%d\n",sum);}8.阅读下列程序,当依次输入11,l2,l3,14,16这5个数时,请写出程序的运行结果。
void main(void){int x ,i ,s=O ;for(i=O ;i<5;i++){scanf("%d",&x);if(x%2)continue ;printf("%d\t",x);s+=x;}printf("\n");printf("s=%d\n",s);}9.阅读下列程序并写出运行结果。
main( ){int s=0,k=1,i ;for(i=0;i<10;i++){k=k+i ;s+=k ;if(i>3) break ;s+=2*k :printf("s=%d\n",s);}printf("s=%d\n",s);}五、程序设计题(本大题共2小题,每小题12分,共24分)1.用以下近似公式编一个求π的近似值的程序。
121)1(715131141--++-+-=-n n π,其中n 的值由键盘输入。
2.从键盘上输入一个正整数n(n ≤10),求n 的阶乘并输出结果。
3.从键盘上输入20个整数,求其中正数的累加和并输出结果。
4.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果。
5.编程求20至100之间素数的累加和并输出该累加和。
6.从键盘上输入30个整数,输出其中能被3整除的数,并求出所有能被3整除的数之和。