您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 第5章循环结构程序设计
1第5章循环结构程序设计1.单项选择题(1)for(i=1;i9;i+=1);该循环共执行了B次。A.7B.8C.9D.10(2)inta=2;while(a=0)a--;该循环共执行了A次。A.0B.1C.2D.3(3)执行完循环for(i=1;i100;i++);后,i的值为B。A.99B.100C.101D.102(4)以下for语句中,书写错误的是D。A.for(i=1;i5;i++);B.i=1;for(;i5;i++);C.for(i=1;i5;)i++;D.for(i=1,i5,i++);(5)C语句,在循环条件初次判断为假,还会执行一次循环体。A.forB.whileC.do-whileD.以上都不是(6)循环结构的特点是C。A.从上至下,逐个执行B.根据判断条件,执行其中一个分支C.满足条件时反复执行循环体D.以上都对(7)C语言while语句中,用于条件的表达式是D。A.关系表达式B.逻辑表达式C.算术表达式D.任意表达式(8)inta=1,x=1;循环语句while(a10)x++;a++;的循环执行A。A.无限次B.不确定次C.10次D.9次(9)下列程序段执行后s的值为A。inti=1,s=0;while(i++)if(!(i%3))break;elses+=i;A.2B.3C.6D.以上均不是(10).设有程序段intk=10;while(k==0)k=k-1;则下面描述中正确的是C。A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次(11).设有以下程序段intx=0,s=0;while(x!=0)s+=++x;printf(“%d”,s);则下面描述中正确的是A。2A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次(12).下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空。#includestdio.hintmain(){inta,b,t;scanf(“%d%d”,&a,&b);while(B){if(ab){t=a;a=b;b=t;}printf(“%d,%d”\n”,a,b);scanf(“%d%d”,&a,&b);}rerurn0;}A.!a=bB.a!=bC.a==bD.a=b(13).下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。#includestdio.hintmain(){intm=0,n=0;charc;while((A)!=‘\n’){if(c=‘A’&&c=‘Z’)m++;if(c=‘a’&&c=‘z’)n++;}printf(“%d\n”,mn?(A);return0;}3A.c=getchar()和n:mB.getchar()和m:nC.scanf(“%c”,c)和m:nD.以上都正确(14).下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。#includestdio.hintmain(){inta,max=0;scanf(“%d”,&a);while(B){if(maxa)max=a;scanf(“%d”,&a);}printf(“%d”,max);return0;}A.a==0B.aC.!a==1D.!a(15).下面程序的运行结果是C。#includestdio.hintmain(){intnum=0;while(num=2){num++;printf(“%d\n”,num);}rerurn0;}A.1B.1C.1D.12223344(16).C语言中while和do-while循环的主要区别是A。A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句(17).以下程序段C。x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行二次C.循环执行一次D.有语法错误(18).以下能正确计算1×2×3×…×10的程序段是C。A.doB.do{{i=1;s=1;i=1;s=0;s=s*i;s=s*i;i++;i++;}}while(i=10);while(i=10);C.i=1;s=1;D.i=1;s=0;dodo{{s=s*i;s=s*i;i++;i++;}}while(i=10);while(i=10);(19).下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。#includestdio.hintmain(){intn,sum=0;n=2345;do5{sum=sum+B;n=B;}while(n);printf(“sum=%d”,sum);rerurn0;}A.n%10和.n/1000B.(n%10)*(n%10)和n/10C.n/10和n/100D.(n/10)*(n/10)和n%10(20).以下描述中正确的是C。A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D.do-while循环中,根据情况可以省略while(21).若i为整型变量,则以下循环执行次数是B。for(i=2;i==0;)printf(“%d”,i--);A.无限次B.0次C.1次D.2次(22).下面有关for循环的正确描述是D。A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来(23).对for(表达式1;;表达式3)可理解为B。A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)(24).下面程序的功能是计算1至50中是7的倍数的数值之和,请选择填空。#includestdio.h6intmain(){inti,sum=0;for(i=1;i=50;i++)if(D)sum+=i;printf(“%d”,sum);return0;}A.(int)(i/7)=i/7B.(int)i/7==i/7C.i%7=0D.i%7==0(25).以下正确的描述是B。A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句作用相同D.从多层循环嵌套中退出时,只能使用goto语句(26).下面程序段D。for(t=1;t=100;t++){scanf(“%d”,&x);if(x0)continue;printf(“%3d”,t);}A.当x0时整个循环结束B.x=0时什么也不输出C.printf函数永远也不执行D.最多允许输出100个非负整数(27).与下面程序段等价的是C。for(n=100;n=200;n++){if(n%3==0)continue;printf(“%4d”,n);}A.for(n=100;(n%3)&&n=200;n++)printf(“%4d”,n);B.for(n=100;(n%3)||n=200;n++)printf(“%4d”,n);7C.for(n=100;n=200;n++)if(n%3!=0)printf(“%4d”,n);D.for(n=100;n=200;n++){if(n%3)printf(“%4d”,n);elsecontinue;break;}(28).下面程序的运行结果是A。#includestdio.hintmain(){inti;for(i=1;i=5;i++){if(i%2)printf(“*”);elsecontinue;printf(“#”);}printf(“$\n”);return0;}A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$(29).下面程序的运行结果是A。#includestdio.hintmain(){inti,j,a=0;for(i=0;i2;i++){for(j=0;j4;j++){if(j%2)break;8a++;}a++;}printf(“%d\n”,a);rerurn0;}A.4B.5C.6D.72.填空题(1)三种循环语句是等价的。(2)当循环体中的switch语句内有break语句,则只跳出switch语句。同样,当for语句中有循环语句,内有break语句,则只跳出for语句。(3)循环体执行遇到continue语句时提前结束本次循环进行下一次循环是否进行的判断。(4)下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0,请为程序填空。intmain(){inti,x,y=1;scanf(%d,&x);for(i=2;i=x/2;i++)if(x%i==0){y=0;break;}printf(%d\n,y);return0;}(5)输入N个实数,输出其中的最大值、最小值。#includestdio.hintmain(){9floatno1,nmax,nmin;scanf(%d,&n);scanf(%f,&no1);nmax=no1;for(i=2;i=n;i++){scanf(%f,&no1);if(no1nmax)nmax=no1;}printf(MAX=%fMIN=%f\n,nmax,nmin);return0;}(6)输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。#includestdio.hintmain(){charch;while((ch=getchar())!='\n'){if(ch='0'&&ch='9')s1++;if(ch='a'&&ch='z'||ch='A'&&ch='Z')s2++;}return0;}3.阅读下列程序,写出程序运行的输出结果(1)结果:8,5,2intmain(){inty=9;for(;y0;y--)if(y%3==0){printf(%d,--y);continue;}return0;10}(2)结果:1024intmain(){intk,n,m;n=10;m=1;k=1;while(k++=n)m*=2;printf(%d\n,m);return0;}(3)结果:3,1,-1intmain(){inti=5;do{switch(i%2){case4:i--;break;case6:i--;continue;}i--;i--;printf(i=%d,i);}while(i0);return0;}(4)结果:8#includestdio.hintmain(){intk=0;charc='A';do11{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;break;case'E':k=k*10;break;default:k=k/3;}k++;}while(c'G');printf(k=%d\n,k);return0;}(5)输入数据:24结果:2468#includestdio.hintmain(){ints=1,t=1,a,n;scanf(%d%d,&a,&n);for(inti=1;in;i++){t=t*10+1;s=s+t;}s*=a;pr
本文标题:第5章循环结构程序设计
链接地址:https://www.777doc.com/doc-6116484 .html