C语言程序设计-第六章循环控制练习题【附答案】

上传人:新** 文档编号:568203421 上传时间:2024-07-23 格式:PDF 页数:29 大小:175.14KB
返回 下载 相关 举报
C语言程序设计-第六章循环控制练习题【附答案】_第1页
第1页 / 共29页
C语言程序设计-第六章循环控制练习题【附答案】_第2页
第2页 / 共29页
C语言程序设计-第六章循环控制练习题【附答案】_第3页
第3页 / 共29页
C语言程序设计-第六章循环控制练习题【附答案】_第4页
第4页 / 共29页
C语言程序设计-第六章循环控制练习题【附答案】_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《C语言程序设计-第六章循环控制练习题【附答案】》由会员分享,可在线阅读,更多相关《C语言程序设计-第六章循环控制练习题【附答案】(29页珍藏版)》请在金锄头文库上搜索。

1、第六章第六章循环控制循环控制第六章循环控制6.1选择题【题 6.1】设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是。A)while 循环执行 10 次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次【题 6.2】设有以下程序段int x=0,s=0;while(!x!=0) s+=+x;printf(“%d”,s);则。A)运行程序段后输出 0B)运行程序段后输出 1C)程序段中的控制表达式是非法的 D)程序段执行无限次【题 6.3】语句 while(!E);中的表达式!E 等价于。A)E=0B)E!=1C)E!=0D)E=1【题 6.4】

2、下面程序段的运行结果是。a=1; b=2; c=2;while(abc) t=a; a=b; b=t; c-; printf(“%d,%d,%d”,a,b,c);A)1,2,0B)2,1,0C)1,2,1D)2,1,1【题 6.5】下面程序段的运行结果是。x=y=0;while(x15) y+,x+=+y;printf(“%d,%d”,y,x);A)20,7B)6,12C)20,8D)8,20【题 6.6】下面程序段的运行结果是。int n=0;while(n+=2); printf(“%d”,n);A)2B)3C)4D)有语法错【题 6.7】设有程序段t=0;while(printf(“*”

3、)t+;if(t3) break;则下面描述正确的是。A)其中循环控制表达式与 0 等价B)其中循环控制表达式与0等价C)其中循环控制表达式是不合法的 D)以上说法都不对【题 6.8】下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。#include main()int a,b,t;scanf(“%d %d”,&a,&b);while(【1】)if(ab)t=a; a=b; b=t;printf(“%d,%d”n”,a,b);scanf(“%d %d”,&a,&b);【1】 A)!a=bB)a!=bC)a=bD)a=b【题 6.9】下面程序的功能是

4、将从键盘输入的一组字符中统计出大写字母的个数 m 和小写字母的个数 n,并输出 m、n 中的较大者,请选择填空。#include main()int m=0,n=0;char c;while(【1】)!=n)if(c=A&c=a&c=z) n+;printf(“%dn”,mn? 【2】);【1】 A)c=getchar()B)getchar()C)scanf(“%c”,c)【2】 A)n:mB)m:nC)m:mD)n:n【题 6.10】下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中 y 变成A,z 变成 B。请选择填空。#include main()char c;while(c

5、=getchar()!=n)if(c=a&cZ)【2】;printf(“%c”,c);【1】 A)c+=2B)c-=32C)c=c+32+2D)c-=30【2】 A)c=B B)c=AC)c-=26D)c=c+26【题 6.11】下面程序的功能是在输入的一批正整数中求出最大者,输入 0 结束循环,请选择填空。#include main()int a,max=0;scanf(“%d”,&a);while(【1】)if(maxa) max=a;scanf(“%d”,&a);printf(“%d”,max);【1】 A)a=0B)aC)!a=1D)!a【题 6.12】下面程序的运行结果是。#incl

6、ude main()int num=0;while(num=2)num+;printf(“%dn”,num);A)1B)1C)1D)1 2 2 2 3 3 4【题 6.13】若运行以下程序时,从键盘输入 2473,则下面程序的运行结果是。#include main()int c;while(c=getchar()!=n)switch(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;printf(“n”);A)668977B)

7、668966C)66778777D)6688766【题 6.14】C 语言中 while 和 do-while 循环的主要区别是。A) do-while 的循环体至少无条件执行一次B) while 的循环控制条件比 do-while 的循环控制条件严格C) do-while 允许从外部转到循环体内D) do-while 的循环体不能是复合语句【题 6.15】以下能正确计算 12310 的程序段是。A)doi=1; s=1;B)doi=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; dos=

8、s*i; dos=s*i; i+; i+; while(i=10); while(i=10);【题 6.16】以下程序段。x=-1;dox=x*x;while(!x);A)是死循环B)循环执行二次C)循环执行一次D)有语法错误【题 6.17】以下描述中正确的是。A) 由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B) do-while 循环由 do 开始,用 while 结束,在 while(表达式)后面不能写分号C) 在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零(“假” )的操作D) do-while 循环中,根据

9、情况可以省略 while【题 6.18】若有如下语句int x=3;do printf(“%dn”),x-=2; while(!(-x);则上面程序段。A)输出的是 1B)输出的是 1 和-2C)输出的是 3 和 0D)是死循环【题 6.19】下面程序的功能是计算正整数 2345 的各位数字平方和,请选择填空。#include main()int n,sum=0;n=2345;dosum=sum+【1】;n=【2】;while(n);printf(“sum=%d”,sum);【1】 A)n%10B)(n%10)*(n%10)C)n/10D)(n/10)*(n/10)【2】 A)n/1000B)

10、n/100C)n/10D)n%10【题 6.20】下面程序是从键盘输入学号,然后输出学号中百位数字是 3 的学号,输入 0 时结束循环。请选择填空。#include main()long int num;scanf(“%ld”,&num);doif(【1】) printf(“%ld”,num);scanf(“%ld”,&num);while(【2】);【1】 A)num%100/10=3B)num/100%10=3 C)num%10/10=3D)num/10%10=3【2】 A)n=n-2B)n=nC)n+D)n-=1【题 6.21】等比数列的第一项 a=1,公比 q=2,下面程序的功能是求满

11、足前 n 项和小于 100的最大 n,请选择填空。#include main()int a,q,n,sum;a=1; q=2; n=sum=0;do【1】;+n; a*=q;while(sum100);【2】;printf(“%dn”,n);【1】 A)sum+B)sum+=aC)sum=a+aD)a+=sum【2】 A)n=n-2B)n=nC)n+D)n-=1【题 6.22】下面程序的功能是把 316 表示为两个加数的和,使两个加数分别能被 13 和 11整除。请选择填空。#include main()int i=0,j,k;do i+; k=316-13*i; while(【1】);j=k

12、/11;printf(“316=13*%d+11*%d”,i,j);【1】 A)k/11B)k%11C)k/11=0D)k%11=0【题 6.23】下面程序的运行结果是。#include main()int y=10;do y-; while(-y);printf(“%dn”,y-);A)-1B)1C)8D)0【题 6.24】若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是。#include main()char c;int v0=0,v1=0,v2=0;doswitch(c=getchar()case a: case A:case e: case E:

13、case i: case I:case o: case O:case u: case U: v1+=1;default: v0+=1; v2+=1;while(c!=n);printf(“v0=%d,v1=%d,v2=%dn”,v0,v1,v2);A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11D)v0=12,v1=4,v2=12【题 6.25】下面程序的运行结果是。#include main()int a=1,b=10;do b-=a; a+; while(b-0);printf(“a=%d,b=%dn”,a,b);A)a=3,b=11B)

14、a=2,b=8C)a=1,b=-1D)a=4,b=9【题 6.26】下面有关 for 循环的正确描述是。A) for 循环只能用于循环次数已经确定的情况B) for 循环是先执行循环体语句,后判断表达式C) 在 for 循环中,不能用 break 语句跳出循环体D) for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来【题 6.27】对 for(表达式 1;表达式 3)可理解为。A)for(表达式 1;0;表达式 3)B)for(表达式 1;1;表达式 3)C)for(表达式 1; 表达式 1;表达式 3)D)for(表达式 1; 表达式 3;表达式 3)【题 6.28】若 i

15、为整型变量,则以下循环执行次数是。for(i=2;i=0;) printf(“%d”,i-);A)无限次B)0 次C)1 次D)2 次【题 6.29】以下 for 循环的执行次数是。for(x=0,y=0;(y=123)&(x+y;x=i+) i=xB) for(;x+=i);C) while(1) x+; D) for(i=10;i-) sum+=i;【题 6.31】下面程序段的运行结果是。for(y=1;y10;) y=(x=3*y,x+1),x-1);printf(“x=%d,y=%d”,x,y);A)x=27,y=27B)x=12,y=13C)x=15,y=14D)x=y=27【题 6

16、.32】下面程序段的运行结果是。for(x=3;x100) break;B) for(;);C) int k=0;do +k; while(k=0);D) int s=36;while(s); -s;【题 6.34】执行语句 for(i=1;i+4;);后变量 i 的值是。A)3B)4C)5D)不定【题 6.35】有一堆零件(100 到 200 之间) ,如果分成 4 个零件一组的若干组,则多 2 个零件;若分成 7 个零件一组,则多 3 个零件;若分成 9 个零件一组,则多 5 个零件。下面程序是求这堆零件总数,请选择填空。#include main()int i;for(i=100;i20

17、0;i+)if(i-2)%4=0)if(!(i-3)%7)if(【1】)printf(“%d”,i);A)i%9=5B)i%9!=5C)(i-5)%9!=0D)i%9=5【题 6.36】下面程序的功能是计算 1 至 50 中是 7 的倍数的数值之和,请选择填空。#include main()int i,sum=0;for(i=1;i=50;i+)if(【1】) sum+=I;printf(“%d”,sum);A)(int)(i/7)=i/7B)(int)i/7=i/7C)i%7=0D)i%7=0【题 6.37】下面程序的功能是计算 1 至 10 之间的奇数之和及偶数之和。请选择填空。#incl

18、ude main()int a,b,c,i;a=c=0;for(i=0;i=10;i+=2)a+=i;【1】;c+=b;printf(“偶数之和=%dn”,a);printf(“奇数之和=%dn”, 【2】);【1】 A)b=i-B)b=i+1C)b=i+D)b=i-1【2】 A)c-10B)cC)c-11D)c-b【题 6.38】下面程序的运行结果是。#include main()int i;for(i=1;i=5;i+)switch(i%5)case 0: printf(“*”); break;case 1: printf(“#”); break;default: printf(“n”);

19、case 2: printf(“&”);A)#&*B)#&C)#D)#& & & &* & * & *【题 6.39】下面程序的运行结果是。#include main()int x,i;for(i=1;i=100;i+)x=i;if(+x%2=0)if(+x%3=0)if(+x%7=0)printf(“%d”,x);【题 6.40】下面程序段的功能是计算 1000!的末尾含有多少个零。请选择填空。(提示:只要算出 1000!中含有因数 5 的个数即可)for(k=0,i=5;i=1000;i+=5)m=i;while(【1】) k+; m=m/5; 【1】 A)m%5=0B)m=m%5=0C)

20、m%5=0D)m%5!=0【题 6.41】下面程序的功能是求算式 xyz+yzz=532 中 x,y,z 值(其中 xyz 和 yzz 分别表示一个三位数) ,请选择填空。#include main()int x,y,z,i,result=532;for(x=1;x10;x+)for(y=1;y10;y+)for(【1】;z10;z+)i=100*x+10*y+z+100*y+10*z+z;if(【2】)printf(“x=%d,y=%d,z=%dn”,x,y,z);【1】 A)z=xB)z=1C)z=0D)z=y【2】 A)i/result=1 B)i=resultC)i!=resultD)

21、i=result【题 6.42】下面程序是输出一个正整数等差数列的前十项,此数列前四项之和及之积分别是 26 和 880,请选择填空。#include main()int a,d,i,s,f,x;/* a 是第一项 */for(a=1;a30;a+)for(d=1; 【1】;d+)s=0; f=1; x=a;for(i=1;i=4;i+)s=s+x;f=f*x;x=x+d;if(s=26&f=880)for(i=0;i10;i+)printf(“%3d”, 【2】);printf(“n”);【1】A)d=aB)空C)d=5D)da【2】A)a+i*dB)i*dC)a+(i+1)*dD)a+d【

22、题 6.43】下面程序的运行结果是。#include main()int i,b,k=0;for(i=1;i=0) k+;printf(“%d,%d”,k,b);A)3,-1B)8,-1C)3,0D)8,-2【题 6.44】以下正确的描述是。A) continue 语句的作用是结束整个循环的执行B) 只能在循环体内和 switch 语句体内使用 break 语句C) 在循环体内使用 break 语句或 continue 语句的作用相同D) 从多层循环嵌套中退出时,只能使用 goto 语句【题 6.45】下面程序段。for(t=1;t=100;t+)scanf(“%d”,&x);if(x0) c

23、ontinue;printf(“%3d”,t);A)当 x=0 时什么也不输出C)printf 函数永远也不执行D)最多允许输出 100 个非负整数【题 6.46】下面程序段。x=3;doy=x-;if(!y) printf(“x”); continue; printf(“#”);while(1=x=2);A)将输出#B)将输出#*C)是死循环D)含有不合法的控制表达式【题 6.47】以下是死循环的程序段是。A) for(i=1;)if(+i%2=0) continue;if(+i%3=0) break;B) i=32767;do if(i0) break; while(+i);C) for(

24、i=1;) if(+i10) continue;D) i=1;while(i-);【题 6.48】以下描述正确的是。A) goto 语句只能用于退出多层循环B) switch 语句中不能出现 continue 语句C) 只能用 continue 语句来终止本次循环D) 在循环中 break 语句不能独立出现【题 6.49】与下面程序段等价的是。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+)

25、 printf(“%4d”,n);C) 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);else continue;break;【题 6.50】下面程序的功能是将从键盘输入的偶数写成两个素数之和。请选择填空。#include #include main()int a,b,c,d;scanf(“%d”,&a);for(b=3;b=a/2;b+=2)for(c=2;csqrt(b) d=【1】; else break;for(c=2;csqrt(d) print

26、f(“%d=%d+%dn”,a,b,d);【1】 A)a+bB)a-bC)a*bD)a/b【题 6.51】下面程序的运行结果是。#include main()int k=0; char c=A;doswitch(c+)case 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=k/3;k+;while(cG);printf(“k=%dn”,k);A)k=3B)k=4C)k=2D)k=0【题 6.52】若运行以下程序时,从键盘输入 3.6 2.4

27、(表示回车) ,则下面程序的运行结果是。#include #include main()float x,y,z;scanf(“%f %f”,&x,&y);z=x/y;while(1)if(fabs(z)1.0) x=y; y=z; z=x/y; else break;printf(“%fn”,y);【题 6.53】下面程序的运行结果是。#include main()int a,b;for(a=1,b=1;a=20) break;if(b%3=1) b+=3; continue; b-=5;printf(“%dn”,a);A)7B)8C)9D)10【题 6.54】下面程序的运行结果是。#incl

28、ude main()int i,j,x=0;for(i=0;i2;i+)x+;for(j=0;j=3;j+)if(j%2) continue;x+;x+;printf(“x=%dn”,x);【题 6.55】下面程序的运行结果是。#include main()int i;for(i=1;i=5;i+)if(i%2) printf(“*”);else continue;printf(“#”);printf(“$n”);A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$【题 6.56】下面程序的运行结果是。#include main()int i,j,a=0;for(i=0;i2;i+

29、)for(j=0;j4;j+)if(j%2) break;a+;a+;printf(“%dn”,a);A)4B)5C)6D)76.2填空题【题 6.57】下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。int n=0,c;c=getchar();while(【1】)if(【2】) n+;c=getchar();【题 6.58】下面程序的功能是用公式2222213121116n求 的近似值,直到最后一项的小于 10- 6为止。请填空。#include #include main()long i=1;【1】 pi=0;while(i*i=10e+6) pi=【2】; i

30、+; pi=sqrt(6.0*pi);printf(“pi=%10.6fn”,pi);【题 6.59】有 1020 个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?请填空。#include main()int day,x1,x2;day=0; x1=1020;while(【1】) x2=【2】; x1=x2; day+; printf(“day=%dn”,day);【题 6.60】下面程序的功能是用“辗转想除法”求两个正整数的最大公约数。请填空。#include main()int r,m,n;scanf(“%d %d”,&m,&n);if(mn) 【1】;r=m%n

31、;while(r) m=n; n=r; r=【2】; printf(“%dn”,n);【题 6.61】当运行以下程序时,从键盘键入 right?(代表回车) ,则下面程序的运行结果是。#include main()char c;while(c=getchar()!=?) putchar(+c);【题 6.62】下面程序的运行结果是。#include main()int a,s,n,count;a=2; s=0; n=1; count=1;while(count=7) n=n*a; s=s+n; +count; printf(“s=%d”,s);【题 6.63】当运行以下程序时,从键盘键入 Ch

32、ina#(代表回车) ,则下面程序的运行结果是。#include main()int v1=0,v2=0; char ch;while(ch=getchar()!=#)switch(ch)case a:case h:default: v1+;case o: v2+;printf(“%d,%dn”,v1,v2);【题 6.64】执行下面程序段后,k 值是。k=1; n=263;do k*=n%10; n/=10; while(n);【题 6.65】下面程序段中循环体的执行次数是。a=10;b=0;do b+=2; a-=2+b; while(a=0);【题 6.66】下面程序段的运行结果是。x=

33、2;do printf(“*”); x-; while(!x=0);【题 6.67】下面程序段的运行结果是。i=1; a=0; s=1;do a=a+s*i; s=-s; i+; while(i=10);printf(“a=%d”,a);【题 6.68】下面程序的功能是用 do-while 语句求 1 至 1000 之间满足“用 3 除余 2;用 5除余 3;用 7 除余 2”的数,且一行只打印五个数。请填空。#include main()int i=1,j=0;doif(【1】)printf(“%4d”,i);j=j+1;if(【2】) printf(“n”);i=i+1;while(i10

34、00);【题 6.69】下面程序的功能是统计正整数的各位数字中零的个数,并求各位数字中的最大者。请填空。#include main()int n,count,max,t;count=max=0;scanf(“%d”,&n);dot=【1】;if(t=0) +count;else if(maxt) 【2】;n/=10;while(n);printf(“count=%d,max=%d”,count,max);【题 6.70】等差数列的第一项 a=2,公差 d=3,下面程序的功能是在前 n 项和中,输出能被 4 整除的所有的和。请填空。#include main()int a,d,sum;a=2;

35、d=3; sum=0;dosum+=a;a+=d;if(【1】) printf(“%dn”,sum);while(sum200);【题 6.71】下面程序的功能是求 1111的个、十、百位上的数字之和。请填空。#include main()int i,s=1,m=0;for(i=1;i=11;i+) s=s*11%1000;do m+=【1】; s=【2】; while(s);printf(“m=%dn”,m);【题 6.72】当运行以下程序时,从键盘输入 1 2 3 4 5 -1(代表回车) ,则下面程序的运行结果是。#include main()int k=0,n;do scanf(“%d

36、”,&n); k+=n; while(n!=-1);printf(“k=%d n=%dn”,k,n);【题 6.73】下面程序的运行结果是。#include main()int i,x,y;i=x=y=0;do+i;if(i%2!=0) x=x+i; i+; y=y+i+;while(i=7);printf(“x=%d,y=%dn”,x,y);【题 6.74】下面程序的运行结果是。#include main()int a,b,i;a=1; b=3; i=1;doprintf(“%d,%d,”,a,b);a=(b-a)*2+b;b=(a-b)*2+a;if(i+%2=0) printf(“n”)

37、;while(b100);【题 6.75】当运行以下程序时,从键盘输入-1 0(代表回车) ,则下面程序的运行结果是。#include main()int a,b,m,n;m=n=1;scanf(“%d %d”,&a,&b);doif(a0) m=2*n; b+; else n=m+n; a+=2; b+; while(a=b);printf(“m=%d n=%d”,m,n);【题 6.76】下面程序段是找出整数的所有因子,请填空。scanf(“%d”,&x);i=1;for(;【1】;)if(x%i=0) printf(“%3d”,i);i+;【题 6.77】鸡兔共有 30 只,脚共有 90

38、 个,下面程序段是计算鸡兔各有多少只,请填空。for(x=1;x=29;x+)y=30-x;if(【1】) printf(“%d,%dn”,x,y);【题 6.78】下面程序段的运行结果是。for(a=1,i=-1;-1=i1;i+) a+; printf(“%2d”,a); printf(“%2d”,i);【题 6.79】若 for 循环用以下形式表示:for(表达式 1;表达式 2;表达式 3) 循环体语句则执行语句 for(i=0;i3;i+) printf(“*”);时,表达式 1 执行【1】次,表达式 3 执行【2】次。【题 6.80】下面程序的功能是计算 1-3+5-7+-99+1

39、01 的值,请填空。#include main()int i,t=1,s=0;for(i=1;i=101;i+=2) 【1】; s=s+t; 【2】; printf(“%dn”,s);【题 6.81】以下程序是用梯形法求 sin(x)*cos(x)的定积分。求定积分的公式为:11)()()(2niixfhbfafhs其中 xi=a+ih, h=(b-a)/n。设 a=0,b=1.2 为积分上下限,积分区间分隔数 n=100,请填空。#include main()int i,n; double h,s,a,b;printf(“Input a,b:”);scanf(“%lf %lf”, 【1】);

40、n=100; h=【2】;s=0.5*(sin(a)*cos(a)+sin(b)*cos(b);for(i=1;i=n-1;i+) s+=【3】;s*=h;printf(“s=%10.4lfn”,s);【题 6.82】以下程序的功能是根据公式求 e 的近似值,精度要求! 31! 21! 111e为 10- 6。请填空。#include main()int i; double e,new;【1】; new=1.0;for(i=1; 【2】;i+) new/=(double)i; e+=new; printf(“e=%fn”,e);【题 6.83】下面程序的运行结果是。#include main(

41、)int i,t,sum=0;for(t=i=1;i=10;)sum+=t; +i;if(i%3=0) t=-i;else t=i;printf(“sum=%d”,sum);【题 6.84】下面程序的运行结果是。#include main()int i;for(i=1;i=5;i+)switch(i%2)case 0: i+; printf(“#”); break;case 1: i+=2; printf(“*”);default: printf(“n”);【题 6.85】下面程序的运行结果是。#include main()int i,j=4;for(i=j;i=2*j;i+)switch(i

42、/j)case 0:case 1: printf(“*”); break;case 2: printf(“#”);【题 6.86】下面程序的功能是求出用数字 0 至 9 可以组成多少个没有重复的三位偶数。请填空。#include main()int n,i,j,k;n=0;for(i=1;i=9;i+)for(k=0;k=8; 【1】)if(k!=i)for(j=0;j=9;j+)if(【2】) n+;printf(“n=%dn”,n);【题 6.87】下面程序的功能是输出 1 至 100 之间每位数的乘积大于每位数的和的数。请填空。#include main()int n,k=1,s=0,m

43、;for(n=1;ns) printf(“%d”,n);【题 6.88】下面程序的功能是求 1000 以内的所有完全数。请填空。(说明:一个数如果恰好等于它的因子之和(除自身外) ,则称该数为完全数,例如:6=1+2+3,6 为完全数)#include main()int a,i,m;for(a=1;a=1000;a+)for(【1】;i=a/2;i+) if(!(a%i) 【2】;if(m=a) printf(“%4d”,a);【题 6.89】下面程序的功能是完成用一元人民币换成一分、两分、五分的所有兑换方案。请填空。#include main()int i,j,k,l=1;for(i=0;

44、i=20;i+)for(j=0;j=50;j+)k=【1】;if(【2】)printf(“ %2d %2d %2d “,i,j,k);l=l+1;if(l%5=0) printf(“n”);【题 6.90】下面程序的功能是从三个红球、五个白球、六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案。请填空。#include main()int i,j,k;printf(“n hong bai hei n”);for(i=0;i=3;i+)for(【1】;j=5;j+)k=8-i-j;if(【2】) printf(“ %3d %3d %3d n”,i,j,k);【题 6.91】若从键盘输

45、入 65 14(代表回车符) ,则下面程序的运行结果是。#include main()int m,n;printf(“Enter m,n:”);scanf(“%d %d”,&m,&n);while(m!=n)while(mn) m-=n;while(nm) n-=m;printf(“m=%dn”,m);【题 6.92】下面程序的运行结果是。#include main()int y,a;y=2; a=1;while(y-!=-1)doa*=y;a+;while(y-);printf(“%d,%d”,a,y);【题 6.93】下面程序的运行结果是。#include main()int i,j;fo

46、r(i=0;i=3;i+)for(j=0;j=5;j+)if(i=0|j=0|i=3|j=5) printf(“*”);else printf(“”);printf(“n”);【题 6.94】下面程序的运行结果是。#include main()int i,j;for(i=4;i=1;i-)for(j=1;j=i;j+) putchar(#);for(j=1;j=4-i;j+) putchar(*);putchar(n);【题 6.95】下面程序的运行结果是。#include main()int i,k=0;for(i=1;i+)k+;while(ki*i)k+;if(k%3=0) goto l

47、oop;loop: printf(“%d,%d”,i,k);【题 6.96】下面程序段的运行结果是。i=1; s=3;dos+=i+;if(s%7=) continue;else +i;while(s15);printf(“%d”,i);【题 6.97】若用 0 至 9 之间不同的三个数构成一个三位数,下面程序将统计出共有多少种方法。请填空。#include main()int i,j,k,count=0;for(i=1;i=9;i+)for(j=0;j=9;j+)if(【1】) continue;else for(k=0;k=9;k+)if(【2】) count+;printf(“%d”,c

48、ount);【题 6.98】下面程序的功能是计算 100 至 1000 之间有多少个数其各位数字之和是 5。请填空。#include main()int i,s,k,count=0;for(i=100;i=1000;i+)s=0; k=i;while(【1】) s=s+k%10; k=【2】; if(s!=5) 【3】;else count+;【题 6.99】下面程序的功能是从键盘输入的 10 个整数中,找出第一个能被 7 整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist” 。请填空。#include main()int i,a;for(i=1;i=10;i+)scan

49、f(“%d”,&a);if(a%7=0) printf(“%d”,a); 【1】; if(【2】) printf(“not existn”);【题 6.100】下面程序的功能是打印 100 以内个位数为 6 且能被 3 整除的所有数。请填空。#include main()int i,j;for(i=0; 【1】;i+)j=i*10+6;if(【2】) continue;printf(“%d”,j);【题 6.101】下面程序的运行结果是。#include main()int i=1;while(i=15)if(+i%3!=2) continue;else printf(“%d”,i);prin

50、tf(“n”);【题 6.102】下面程序的运行结果是。#include main()int i,j,k=19;while(i=k-1)k-=3;if(k%5=0) i+; continue; else if(k5) break;i+;printf(“i=%d,k=%dn”,i,k);【题 6.103】下面程序的运行结果是。#include main()int a,y;a=10; y=0;doa+=2; y+=a;if(y50) break;while(a=14);printf(“a=%d y=%dn”,a,y);【题 6.104】下面程序的运行结果是。#include main()int i

51、=5;doswitch(i%2)case 4: i-; break;case 6: i-; continue;i-; i-;printf(“%d”,i);while(i0);6.3编程题【题 6.105】每个苹果 0.8 元,第一天买 2 个苹果,第二天开始,每天买前一天的 2 倍,直至购买的苹果个数达到不超过 100 的最大值。编写程序求每天平均花多少钱?【题 6.106】试编程序,求一个整数任意次方的最后三位数。即求 xy的最后三位数,要求x,y 从键盘输入。【题 6.107】编写程序,从键盘输入 6 名学生的 5 门成绩,分别统计出每个学生的平均成绩。第六章第六章循环控制答案循环控制答案

52、第六章循环控制【题 6.1-6.56】 CBAAD CBB(CA)(DC) BCAAC CCB(BC)(BC) (BD)BDDB DBBCACDCCD D(BC)BDC (CD)(CA)DBD CCCCB BBBBA A【题 6.57】 【1】c!=n【2】c=0&c=9【题 6.58】 【1】double【2】pi+1.0/(i*i)【题 6.59】 【1】x1【2】x1/2-2【题 6.60】 【1】r=m,m=n,n=r【2】m%n【题 6.61】 sjhiu【题 6.62】 s=254【题 6.63】 5,5【题 6.64】 36【题 6.65】 3【题 6.66】 * *【题 6.6

53、7】 a=-5【题 6.68】 【1】i%3=2&i%5=3&i%7=2【2】j%5=0【题 6.69】 【1】n%10【2】max=t【题 6.70】 sum%4=0【题 6.71】 【1】s%10【2】s/10【题 6.72】 k=14 n=-1【题 6.73】 x=1,y=20【题 6.74】 1,3,7,15,31,63,【题 6.75】 m=4 n=2【题 6.76】 i=1e-6【题 6.83】 sum=19【题 6.84】 *#【题 6.85】 * * * * #【题 6.86】 【1】k+=2【2】j!=i&j!=k【题 6.87】 【1】m=n【2】m【3】m/=10【题 6

54、.88】 【1】m=0,i=1【2】m+=i【题 6.89】 【1】100-i*5-j*2【2】k=0【题 6.90】 【1】j=1【2】k=0&k=6【题 6.91】 m=1【题 6.92】 1,-2【题 6.93】 * * * * * * * * * * * * *【题 6.94】 # # # # # # *# # * *# * * *【题 6.95】 2,3【题 6.96】 8【题 6.97】 【1】i=j【2】k!=i&k!=j【题 6.98】 【1】k【2】k/10【3】continue【题 6.99】 【1】break【2】i=11【题 6.100】 【1】i=9【2】j%3!=0

55、【题 6.101】 2 5 8 11 14【题 6.102】 i=6,k=4【题 6.103】 a=16 y=60【题 6.104】 3 1 1【题 6.105】 #include main()int day = 0, buy = 2;float sum = 0.0, ave;dosum += 0.8 * buy;day+;buy *= 2;while (buy = 100);ave = sum / day;printf(“%f”, ave);【题 6.106】 #include main()int i;for (i=1; i100; i+)if (i * i % 10 = i | i * i

56、 % 100 = i)printf(“%3d”, i);或:#include main()int i;for (i=1; i100; i+)if (i * i % 10 = i)printf(“%3d”, i);else if (i * i % 100 = i)printf(“%3d”, i);【题 6.107】 #include main()int i, x, y, last = 1;printf(“Input x and y:”);scanf(“%d%d”, &x, &y);for (i=1; i=y; i+)last = last * x % 1000;printf(“nThe last

57、 3 digits of %d * * %d is: %dn”, x, y, last%1000);【题 6.108】 #include main()int i, j;float g, sum, ave;for (i=1; i=6; i+)sum = 0;for (j=1; j=5; j+)scanf(“%f”, &g);sum += g;ave = sum / 5;printf(“No.%d ave=%5.2fn”, i, ave);键盘输入: 95 70 73 67 6460 65 77 86 9071 93 63 80 9087 83 91 95 89100 93 89 92 8552 63 66 70 71运行结果: No.1 ave=73.80No.2 ave=75.60No.3 ave=79.40No.4 ave=89.00No.5 ave=91.80No.6 ave=64.40

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号