《广技师C语言复习题4. 练习(循环结构)(有答案)(11页).doc》由会员分享,可在线阅读,更多相关《广技师C语言复习题4. 练习(循环结构)(有答案)(11页).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-广技师C语言复习题4. 练习(循环结构)(有答案)-第 11 页一、选择题1. 设有如下程序段,则下面描述正确的是 int k=10; while (k=0) k=k-1;Awhile循环执行10次 B循环是无限循环C循环体语句一次也不执行 D循环体语句执行一次2. 下面程序段的运行结果是 a=1; b=2; c=2;while(abc) t=a; a=b; b=t; c-;pirntf(“%d, %d, %d”,a,b,c);A1,2,0 B2,1,0 C1,2,1 D2,1,13. 下面程序段的运行结果是 。int n=0;while(n=2) n+; printf(“%d”,n);A2
2、 B3 C4 D有语法错误4. 设有如下程序段,则描述正确的是 。t=0;while (printf(“*”)t+; if(t3) break;A其中循环控制表达式与0等价B其中循环控制表达式与0等价C其中循环控制表达式是不合法的D以上说法都不对5. 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对等数时结束循环,请选择填空。#includeint main()int a,b,t; scanf(%d%d,&a,&b); while( ) if(ab) t=a;a=b;b=t; printf(%d,%dn,a,b); scanf(%d%d,&a,&b); return 0;A!
3、a=b Ba!=b Ca=b Da=b8. 下面程序的功能是在输入的一系列正整数中求出最大者,输入0结束循环,请选择填空。#includeint main()int a,max=0; scanf(%d,&a); while( ) if(maxa) max=a; scanf(%d,&a); printf(%dn,max); return 0;A!a=0 Ba!=0 Ca= =0 Da=09. 下面程序的运行结果是 。#includeint main()int num=0; while(num=2) num+; printf(%d,num); return 0;A1 B12 C123 D12341
4、1. 以下程序的功能是计算一个整数的各位数字之和,请选择填空。#includeint main()int n,m=0; scanf(%d,&n); for( ; n!=0; ) m ; n/=10; printf(%dn,m); return 0;A+=n%10 B=n%10 C+=n D=n/1013. 以下程序段 。x=-1;do x=x*x;while(!x);A是死循环 B循环执行二次 C循环执行一次 D有语法错误14. 以下描述中正确的是 。Awhile、do-while、for循环中的循环体语句都至少被执行一次Bdo-while循环中,while(表达式)后面的分号可以省略Cwhi
5、le循环体中,一定要有能使while后面表达式的值变为“假”的操作Ddo-while循环中,根据情况可以省略while15.下面程序的功能是计算正整数2345的各位数字的平方和,请填空。#include int main( ) int n=2345,sum=0; do sum=sum+ ;n= ;while(n);printf(“sum=%d”,sum);return 0;An%10 B(n%10)*(n%10)Cn/10 D(n/10)*(n/10)An/1000 Bn/100 Cn/10 Dn%1017. 下面程序的运行结果是 。#includeint main() int y=10; d
6、o y-;while(-y); printf(%dn,y-); return 0;A-1 B1 C8 D018.下面有关for循环的正确描述是 。Afor循环只能用于循环次数已经确定的情况Bfor循环是先执行循环体语句,后判断表达式Cfor循环中,不能用break语句跳出循环体Dfor循环的循环体语句中,可以包含多条语句,但必须用花括号括起来19. 对for(表达式1; ;表达式3)可理解为 。Afor(表达式1;0;表达式3) Bfor(表达式1;1;表达式3)Cfor(表达式1;表达式1;表达式3)Dor(表达式1;表达式3;表达式3)20. 若i为整型变量,则以下循环执行次数是 。for
7、 (i=2; i= =0; ) printf(“%d”,i-);A无限次 B0次 C1次 D2次21. 以下不是无限循环的语句为 。Afor(y=0, x=1; x+y; x=i+) i=x;Bfor( ; ; x+=i);Cwhile(1) x+;Dfor(i=10; ; i-) sum+=i;24. 下面程序的功能是求算式xyz+yzz=532中的x,y,z的值(其中xyz和yzz分别表示一个三位数),请选择填空。#include int main( ) int x,y,z,I,result=532; for(x=1;x10;x+)for(y=1;y10;y+) for( ; z10; z
8、+) i=100*x+10*y+z+100*y+10*z+z; if ( ) printf(“x=%d,y=%d,z=%dn”,x,y,z);return 0;Az=x Bz=1 Cz=0 Dz=yAi/result=1 Bi=result Ci!=result Di=result25. 以下正确的描述是 。Acontinue语句的作用是结束整个循环的执行B只能在循环体内和switch语句体内使用break语句C在循坏体内使用break语句或continue语句的作用相同D从多层循环嵌套中退出,只能使用goto语句26. 在下面的程序中, 。#includeint main()int t,x;
9、 for(t=1;t=100;t+) scanf(%d,&x); if(x0) continue; printf(%3d,t); return 0;A当x=0时什么也不输出Cprintf函数永远也不执行D最多允许输出100个非负整数28. 下面程序的运行结果是 。#include int main( ) int a,b; for( a=1, b=1; a=20) break;if(b%3= =1) b+=3;continue;b - =5; printf(“%dn”,a);return 0;A7 B8 C9 D10答案:1. C 2. A 3. B 4. D 5. B 6. C A 7. D
10、C 8.B 9. C10. A 11. A 12. C 13. C 14. C 15. B C 16. B D 17. D18. D 19. B 20. B 21. A 22. D 23. B 24. C D 25. B26. D 27. C 28. B二、填空题1. 下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。int n=0, c;c=getchar( );while( ) if( ) n+; c=getchar( )3. 当运行以下程序时,从键盘键入right?,则下面程序的运行结果是 。#includeint main()char c; while(c=g
11、etchar( )!=?) putchar(+c); putchar(n); return 0;4. 下面程序的运行结果是 。#includeint main()int a=2,s=0,n=1,count=1; while(count=0);7. 下面程序段的运行结果是 。x=2;do printf(“*”); x-; while(!x= =0);8. 下面的程序的功能是用do-while语句求11000之间满足“用3除余2,用5除余3,用7除余2”的数,且一行只打印5个数,请填空。#include int main( ) int i=1,j=0; do if printf(“%4d”,i);
12、 j+; if printf(“n”); i=i+1; while(i1000);return 0;9. 当运行以下程序时,从键盘输入“1 2 3 4 5 -1”,则下面程序的运行结果是 。#includeint main() int k=0,n; do scanf(%d,&n);k+=n;while(n!=-1); printf(k=%d n=%dn,k,n); return 0;10. 下面程序的运行结果是 。#includeint main()int i=0,x=0,y=0; do +i; if(i%2!=0) x=x+i;i+; y=y+i+; while(i=7); printf(x
13、=%d,y=%dn,x,y); return 0;12. 鸡、兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,x代表有多少只鸡,y代表有多少只兔子,请填空完成程序。for(x=1; x=30; x+) y=30-x; if( ) printf(“%d,%dn”,x,y);13. 下面程序段的运行结果是 。for(a=1,i=-1; -1=i1; i+) a+; printf(“%2d”,a);printf(“%2d”,i);14. 下面程序的功能是1-3+5-7+-99+101的值。请填空。#includeint main()int i,t,s=0,q=1; for(i=1;i=1
14、01;i+=2) t= ; s=s+t; q= ; printf(%dn,s); return 0;16. 下面程序的运行结果是 。#includeint 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); return 0;17. 下面程序的功能是统计用数字0-9可以组成多少个没有重复数位的3位偶数。请填空。#includeint main()int n=0,i,j,k; for(i=1;i=9;i+) for(k=
15、0;k=8; ) if(k!=i) for(j=0;j=9;j+) if( ) printf(%dn,i*100+j*10+k); n+; printf(n=%dn,n); return 0;18. 下面程序的功能是输出1-100之间满足每位数的乘积大于每位数的和的数。请填空。#includeint main() int n,k=1,s=0,m; for(n=1;ns) printf(%5d,n); printf(n); return 0;20. 若从键盘输入65 14,则下面程序的运行结果是 。#includeint main()int m,n; printf(Enter m,n:); sc
16、anf(%d%d,&m,&n); while(m!=n) while(mn) m-=n; while(nm) n-=m; printf(m=%dn,m); return 0;21. 下面程序的功能是计算100-1000之间有多少个数其各位数字之和是5。请填空。#includeint main() int i,s,k,count=0; for(i=100;i=a & c=A & c=Z2. (x1) x1/2-23. sjhiu4. s=2545. 5,56. 37. *8. (i%3=2 & i%5=3 & i%7=2) (j%5=0)9. k=14 n=-110. x=1,y=2011. i=1e-616. *17. k+=2 j!=i & j!=k18. m=n m m/=1019. j=1 k=0 & k=620. m=121. k k/10 continue22. break k=10