资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第六章第六章循环控制循环控制第六章循环控制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】下面程序段的运行结果是。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(“*”)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】下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数 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=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】下面程序的运行结果是。#include 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)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=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 循环中,根据情况可以省略 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)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,下面程序的功能是求满足前 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/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: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)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 为整型变量,则以下循环执行次数是。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.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;i200;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 之间的奇数之和及偶数之和。请选择填空。#include 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”);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)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)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【题 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) continue;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(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+) 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) printf(“%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(表示回车) ,则下面程序的运行结果是。#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】下面程序的运行结果是。#include 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+)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+; 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;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】当运行以下程序时,从键盘键入 China#(代表回车) ,则下面程序的运行结果是。#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=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(i1000);【题 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; 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”,&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”);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 个,下面程序段是计算鸡兔各有多少只,请填空。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+101 的值,请填空。#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】);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()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/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;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;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】若从键盘输入 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;for(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 loop;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”,count);【题 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+)scanf(“%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);printf(“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=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 门成绩,分别统计出每个学生的平均成绩。第六章第六章循环控制答案循环控制答案第六章循环控制【题 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.67】 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.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【题 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 % 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 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
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号