1、第五章 循环控制5.1选择题【题 5.1】设程序段int k=10;while(k=0)k=k-1;则下面描述中正确的是_.A)while循环执行 10次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次【题 5.2】设有以下程序段int x=0,s=0;while(!x!0) s+=+x;printf(”d” ,s);则_.A)运行程序段后输出 0 B)运行程序段后输出 lC)程序段中的控制表达式是非法的 D)程序段执行无限次【题 5.4】下面程序段的运行结果是_.a1;b2;c2;while(amain() int a,b,t;scanf(“%d%d”,while(1)
2、 if(ab)t=a;a=b;b=t;printf(“%d,%dn”,a,b);scanf(“%d%d”,1A)!a=b B)a!=b C)a=b D)a=b【题 5.9】下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数 m和小写字母的个数 n,并输出 m、n 中的较大者,请选择填空。#includemain() int m0,n0;char c;while(1)!n) if(cAwhile(1)if(maxmain()int num0;while(num (表示回车),则下面程序的运行结果是。 #includemain()int c;while(cgetchar()!=n)swit
3、ch(c-2)case 0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);default:putchar(c+2);break;A)668977 B)668966 C)66778777 D)6688766题 514C 语言中 while和 dowhile循环的主要区别是_。A)dowhile的循环体至少无条件执行一次B)while的循环控制条件比 dowhile的循环控制条件严格C)dowhile允许从外部转到循环体内D)dowhile的循环体不能是复合语句题 515 以下能正确计算 12310的程序段是_.
4、A)do i=1;s=1;s=s*i;i+;while (imain()int n,sum=0;n2345;dosum=sum+1;n=2;while(n);printf(“sum=%d”,sum);1 A)n%10 B)( n%10)*( n%10) C)n/10 D)( n/10)*( n/10)2 A)n/1000 B)n/100 C) n/10 D)n%100题 521等比数列的第一项 a=1,公比 q=2, 下面程序的功能是求满足前 n项和小于 100的最大 n,请选择填空。#includemain()int a,q,n,sum;a=1;q=2;n=sum=0;do1;+n;a*=q
5、;while(summain()int a=1,b=10;dob-=a; a+; while(b- - main()int i; for(i100;imain()int i,sum=0;for(i=1;imain()int a,b,c,i;a=c=0;for(i=0;imain()int i;for(i=1;imain()int i,b,k=0;for(i1;i=0) k+;printf(”d,d” ,k,b)A)3,-1 B) 8,-1 C)3,0 D)8,-2题 544 以下正确的描述是_.A)continue语句的作用是结束整个循环的执行B)只能在循环体内和 switch语句体内使用 b
6、reak语句C)在循环体内使用 break语句或 continue语句的作用相同D)从多层循环嵌套中退出时,只能使用 goto语句题 545下面程序段_.for(t1;t0 时什么也不输出C)printf函数永远也不执行 D)最多允许输出 100个非负整数题 548以下描述正确的是_。A)goto语句只能用于退出多层循环 B)switch语句中不能出现 continue语句C)只能用 continue语句来终止本次循环 D)在循环中 break语句不能独立出现题 549与下面程序段等价的是_。for(n=100;nmain() int k=0;char c=A;do switch (c+)ca
7、se A:k+;break;case B:k-;case C:k+=2;break;case D:k=k%2;continue;case E:k=k*10;break;default:k=k3;k+;while(cmain()int i,j,x=0;for(i=0;i=1 day=0;x1=1020;while(1) x2=2;x1=x2;day+;printf(“day=%dn”,day);1 x1 2x1/2-2题 560下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。请填空。#includemain() int r,m,n;scanf(”dd” ,a=2;s=0;n=1;cou
8、nt=1;while(count(代表回车),则下面程序的运行结果是_.#include main() int v1=0,v2=0;char ch;while (ch=getchar()!=#)switch(ch) case a;case h;default:v1+;caseo:v2+;printf(“%d,%dn”,v1,v2);5,5题 564 执行下面程序段后,k 值是_.k=1;n=263;dok*=n%10;n/=10;while(n);36题 568 下面程序的功能是用 dowhile语句求 1至 1000之间满足“用 3除余 2;用 5除余 3,用 7除余 2”的数,且一行只打印
9、五个数。请填空。#include main() int i=1;j=0;doif(1)printf(“%4d”,i);j=j+1;if(2) printf(“n”);i=i+1;while(i(表示回车),则下面程序的运行结果是_.#include main()int k0,n;do scanf(”d” ,while(n!=-1);printf(“k=%d n=%dn”,k,n); k=14 n=-1题 577 鸡兔共有 30只,脚共有 90个,下面程序段是计算鸡兔各有多少只,请填空for(x=1;xmain()int i,t=1,s=0;for(i=1;imain()int i,j;for(
10、i=0;imain()int i,j;for(i=4;i=1;i- -)for(j=1;jmain()int i,s,k,count=0;for(i100;ivoid main() int i,a;for(i=1;imain()int i,j;for(i=0;【1】 ;i+)j=i*10+6;if(【2】) continue;printf(“d” ,j); 1 imain()int a,y;a=10;y=10;doa+=2;y+=a;if(y50)break;while(a=14);printf(“a=%d y=%dn”,a,y);a=16 y=54题 5104 下面程序的运行结果是#incl
11、udemain()int i=5;doswitch(i%2)case 4:i-;break;case 6:i-;continue;i- -;i- -;printf(“%d”,i);while(i0);3 1 -15.3 编 程 题题 5105每个苹果 0.8元,第一天买 2个苹果,第二天开始,每天买前一天的 2倍,直至购买的苹果个数达到不超过 100的最大值。编写程序求每天平均花多少钱?题 5106试编程序,找出 1至 99之间的全部同构数。同构数是这样一组数:它出现在平方数的右边。例如:5 是 25右边的数,25是 625右边的数,5 和 25都是同构数。题 5108编写程序,从键盘输入 6
12、名学生的 5门成绩,分别统计出每个学生的平均成绩。题 5.105 # include main () int day=0, buy=2;float sum=0.0,ave;do sum+=0.8*buy;day+; buy*=2; while (buymain () int i;for(i=1; imain () int i;for (i=1; imain( ) inti,j;float g,sum,ave;for(i1;i60 65 77 86 9071 93 63 80 9087 83 91 95 89100 93 89 92 85运行结果:NO1 ave7380NO2 ave7560NO3 ave7940NO4 ave8900NO5 ave9180NO6 ave6440