循环结构程序设计习题答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

循环结构程序设计习题答案一、单选题。1.下面有关for循环的正确描述是()A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判定表达式C.在for循环中,不能用break语句跳出循环体D.for循环体语句中,可以包含多条语句,但要用花括号括起来[解答]:D。2.对于for(表达式1;;表达式3)可理解为()A.for(表达式1;1;表达式3)B.for(表达式1:1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)[解答]:B。3.以下正确的描述是()。A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句[解答]:B。4.C语言中()。A.不能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环D.do—while语句构成的循环,当while语句中的表达式值为零时结束循环[解答]:D。5.C语言中while和do-while循环的主要区别是()A.do—while的循环体至少无条件执行一次B.while的循环控制条件比do—while的循环控制条件严格C.do—while允许从外部转到循环体内D.do-while的循环体不能是复合语句[解答]:A。6.下面程序段不是死循环的是()。A.intI=100;B.for(;;);while(1){I=I%100+1;if(I100)break;}C.intk=0;D.ints=36;do{++k;}while(s);while(k=0);--s;[解答]:C。7.以下能正确计算1*2*3*……*10的程序是()。A.do{i=1;s=1;B.do{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;do{s=s*i;do{s=s*i;i++;i++;}while(i=10);}while(i=10);[解答]:C。8.下面程序的运行结果是()。#includestdio.hvoidmain(){inty=10;do{y--;}while(--y);printf(%d\n,y--);}A.-1B.1C.8D.0[解答]:B。9.下面程序的运行结果是()。#includestdio.hvoidmain(){intnum=0;while(num=2){num++;printf(%d\n,num);}}A.1B.12C.123D.1234[解答]:C。10.若运行以下程序时,从键盘输入3.62.4CR(CR表示回车),则下面程序的运行结果是()。#includemath.h#includestdio.hvoidmain(){floatx,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)1.0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A.1.500000B.1.600000C.2.000000D.2.400000[解答]:B。二、看程序,写运行结果。1.若运行以下程序时,从键盘输入2473↙,则下面程序的运行结果是()。#includestdio.hvoidmain(){intc;while((c=getchar())!=’\n’)switch(c-‘2’){case0:case1:putchar(c+4);case2:putchar(c+4);breakcase3:putchar(c+3);default:putchar(c+2);break;}printf(“\n”);}[解答]:668977。2.若运行以下程序时,从键盘输入ADescriptor↙,则下面程序的运行结果是()。#includestdio.hvoidmain(){charc;Intv0=0,v1=0,v2=0;do{switch(c=getchar()){case’a’:case’A’:case’e’:case’E’case’i’:case’I’:case’o’:case’O’:case’u’:case’U’:v+=1;default:v0+=1;v2+=1;}}while(c!=’n\’);printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);}[解答]:v0=12,v1=4,v2=12。3.下面程序的运行结果是()。#includestdio.hvoidmain(){inti,b,k=0;for(i=1;i=5;i++){b=i%2;while(b--=0)k++;}printf(“%d,%d”,k,b);}[解答]:8,-2。4.下面程序的运行结果是()。#includestdio.hvoidmain(){inta,b;for(a=1,b=1;a=100;a++){if(b=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf(“%d\n”,a);}[解答]:8。5.下面程序的运行结果是()。#includestdio.hvoidmain(){inti,j,x=0;for(i=0;i2;i++){x++;for(j=0;j=3;j++){if(j%2)continue;x++;}x++;}printf(“x=%d\n”,x);}[解答]:x=8。6.下面程序的运行结果是()。#includestdio.hvoidmain(){inti;for(i=1;i=5;i++){if(i%2)printf(“*”);elsecontinue;printf(“#”);}printf(“$\n”);}[解答]:*#*#*#$。7.下面程序的运行结果是()。#includestdio.hvoidmain(){inti,j,a=0;for(i=0;i2;i++){for(j=0;j4;j++){if(j%2)break;a++;}a++;}printf(“%d\n”,a);}[解答]:4。8.下列程序运行后的输出结果是()。#includestdio.hvoidmain(){inti,j,k;for(i=1;i=4;i++){for(j=1;j=20-3*i;j++)printf();for(k=1;k=2*i-1;k++)printf(%3s,*);printf(\n);}for(i=3;i0;i--){for(j=1;j=20-3*i;j++)printf();for(K=1;k=2*i-1;k++)printf(%3s,*);printf(\n);}}[解答]:*************************9.下列程序运行后的输出结果是()#includestdio.hvoidmain(){inti,j,k;for(i=1,i=6;i++){for(j=1;j=20-3*j;j++)printf(%3d,k);for(k=i-1;k0;k--)printf(%3d,k);printf(\n0);}}[解答]:112112321123432112345432112345654321)三、程序填空。1.下面程序的功能是将小写字母变成对应的大写字母后的第二个字母,其中y变成A,z变成B,请在内填入正确内容。#includestdio.hvoidmain(){charc;while((c=getchar())!=’\n’){if(c=’a’&&c=’z’){;for(c’Z”&&c=”Z”+2);}printf(“%c”,c);}}[解答]:c-=30,c-=26。2.下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输入m,n中的较大数,请在内填入正确内容。#includestdio.hvoidmain(){intm=0,n=0;charc;while(()!=’\n’){if(c=’A’&&c=’Z’)m++;if(c=’a’&&c=’z’)n++;}printf(“%d\n”,mn?);}[解答]:c=getchar(),n:m。3.下面程序的功能是把316表示为两个加数分别能被13和11整除。请在内填入正确内容。#includestdio.hvoidmain(){inti=0,j,k;do{i++;k=316-13*i;}while();j=k/11;printf(“316=13*%d+11*%d”,i,j);}[解答]:k%11。4.从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束。请在内填入正确内容。#includestdio.hvoidmain(){floatx,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(){if(xamax)amax=x;if()amin=x;scanf(“%f”,&x);}printf(amax=%f\namin=%f\n,amax,amin);}[解答]:x=0,xamin。5.求算式xyz+yzz=532中x,y,z的值(其中xyz和yzz分别表示一个三位数)。请在内填入正确内容。#includestdio.hvoidmain(){intx,y,z,i,result=532;for(x=1;;x++)for(y=1;;y++)for(z=0;;z++){i=100*x+10*y+z+100*y+10*z+z;if()printf(x=%d,y=%d,z=%d\n,x,y,z);}}[解答]:x10,y10,z10,i==result。6.根据公式e=1+1/1!+1/2!+1/3!+…求e的近似值,精度要求为10-6。请在内填入正确内容。#includestdio.hvoidmain(){inti;doublee,new;e=1.0;new=1.0;for(i=1;;i++){;;}printf(e=%f\n,e)}[解答]:new=1e-6,new/=(double)i,e+=new。7.完成用一元人民币换成一分、两分、五分的所有兑换方案。请在内填入正确内容。#includestdio.hvoidmain(){inti,j,k,l=1;for(i=0;i=20;i++)for(j=0;;j++){;if(k=0){printf(%2d,%2d,%2d,i,j,k);;if(l%5==0)printf(\n);}}}[解答]:j=50,k=100-i*5-j*2,l=l+1。8.统计正整数的各位数字中零的个数,并求各位数字中的最大者。请在内填入正确内容。#includestdio.hvoidmain(){intn,count,max,t;count=max=0;scanf(“%d”,&n);do{;if()++count;elseif()max=t;;}while(n);printf(“count=%d,max=%d”,count,max);}[解答]:t=n%10,t==0,maxt,n/=10。四、编程题。1.根据公式Π²/6≈1/1²+1/2²+1/3²+…+1/n²,求Π的近似值,直到最后一项的值小于10的负六次方为止。[解答]:#includestdio.h〉#includemath.hmain(){longi=1;doublepi=0;while(I*I=10e+6){pi=pi+1.0/(i*i);i++;}pi-sqrt(6.0*pi);print

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功