(完整版)c语言第六章循环结构程序设计(习题册答案)_第1页
(完整版)c语言第六章循环结构程序设计(习题册答案)_第2页
(完整版)c语言第六章循环结构程序设计(习题册答案)_第3页
(完整版)c语言第六章循环结构程序设计(习题册答案)_第4页
(完整版)c语言第六章循环结构程序设计(习题册答案)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章 循环结构程序设计基础练习 (A)一、选择题1、C 语言中 while 和 do-while 循环的主要区别是( A )。A)do-while 的循环体至少无条件执行一次B)while 的循环控制条件比 do-while 的循环控制条件严格C)C) do-while 允许从外部转到循环体内D)do-while 的循环体不能是复合语句2、以下描述中正确的是( C)。A)由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用 复合语句循环由 do 开始,用 while 结束,在 while (表达式)后面不能写分号 定要有能使B) do-whileC) 在 do-

2、while 循环体中,作D) do-while 循环中,根据情况可以省略3、设有程序段int k=10;while(k) k=k-1; 则下面描述中正确的是( A )。A )while 循环执行 10 次C)循环体语句一次也不执行4、下列循环语句中有语法错误的是(Dwhile 后面表达式的值变为零( “假”)whileB )循环是无限循环D)循环体语句执行一次 )。的操A) while(x=y) 5 ;B) while(0) ;C) do 2 ; while(x=b) ; D) do x+ while(x=10) ;5、 已知int i=1 ;执行语句while (i+<4);后,变量i

3、的值为( C )。A) 3B) 4C) 5D) 66、语句 while(!E); 中的表达式 !E 等价于( A )。A) E=0B) E!=1C) E!=0 D) E=17、 下面程序段的运行结果是(A )。a=1; b=2; c=2;while(a<b<c) t=a; a=b; b=t; c-; printf( “ %d,%d,%d” ,a,b,c);A) 1,2,0 B) 2,1,0 C) 1,2,1D) 2,1,18、 下面程序的运行结果是(C )。#include <stdio.h>main()int num=0;while(num<=2)num+;pr

4、intf( “ %n”d ,num);A) 1B) 1C) 1D) 12 2 23 39、 以下能正确计算1 X 2 X 3 x-x 10的程序段是( C )。A) doi=1; s=1; s=s*i; i+;while(i<=10);C) i=1; s=1;dos=s*i;i+; while(i<=10);10、下面程序的运行结果是( D#in clude <stdio.h> main () int y=10;do y_; while(_y); printf(“ ”涉);B) doi=1; s=0; s=s*i;i+; while(i<=10);D) i=1;

5、s=0; dos=s*i; i+;while(i<=10);A) -111、已知int i=1,j=0 ;执行下面语句后j的值是while(i)switch(i) case 1: i+=1 ;case 2: i+=2case 3: i+=3default: i-;D) 0D )。j+; break ;;j+; break ;j+; break j+ ; break ;A) 112、若运行以下程序时,从键盘输入#in clude <stdio.h> main () B) 2D)死循环2473<回车,则下面程序的运行结果是(C)int c;while(c=getchar()

6、!= 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(” a、n );A) 668977二、填空题B) 668966C) 66778777D) 66887661、 执行下面程序段后,k值是36。k=1; n=263; do k*=n%10; n/=10; while(n);2、 下面程序的运行结果是_s=254 。#in clude <stdio.h>m

7、ain ()int a,s ,n,count;a=2; s=0; n=1;coun t=1;while(co un t<=7) n=n *a; s=s+n; +co un t; printf(“ s=%d' ,s);3、 下面程序段的运行结果是_* *_。x=2;do pri ntf(“ *”WXile(!x=O);,则下面程序的运行结果4、 运行以下程序时,从键盘键入China#<CR> (<CR>代表回车)是 5,5。#in clude <stdio.h>main ()in t v1=0,v2=0; char ch;while(ch=get

8、char()!= #')switch(ch)case a':case h':default: v1+; case o' :v2+;printf( “ d,%d ,v1,v2);三、编程:1、编程求1*3*5*7*9的值2、编写程序计算下列算式的值:1 1 1 1匚二 1 十H 一 十 一 + 一 1ai4X XX X直到某一项A<=0.000001时为止。输出最后C的值。3、从键盘输入的字符中统计数字字符的个数,用换行符结束循环。1、参考答案:main () int i;long p=1;do p=p*i;i=i+2; while (i<=9);pr

9、intf(“1*3*5*9=%ihd ,t);2、参考答案:#define E 0.000001main () float x,y=1,s=0 ;prin tf("Please en ter x=");scanf("%f",&x);while(1/y>E) s=s+1/y ;y=y*x ;prin tf("S=%fn",s);3、参考答案:main () int n=0;char c;c=getchar();while(c!=') if(c>= ' O' &&c<=&#

10、39; 9' ) n+; c=getchar();printf(“ n” ,n);能力提高(B)一、选择填空题1、 下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。#in clude <stdio.h>main ()int m=0,n=0;char c;while(A_)!= ' n')if(c>= A' &&c<= Z' ) m+; if(c>= a' &&c<= z' ) n+;printf(“ ”

11、 ,m<n? _ A );(1) A) c=getchar()B)getchar() C )scanf( “ C ,c)(2) A) n:mB) m:nC) m:m D)n:n2、 下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。#i nclude <stdio.h>mai n()int a,max=0;scanf( “ %cf ,&a); while( _ B)if(max<a) max=a; scanf( “ %cf ,&a); printf(“ %cf ,max);A) a=0B)aC)!a=1D)!a3、 下面程序的功

12、能是计算正整数2345的各位数字平方和,请选择填空。#in clude <stdio.h>main () int n, sum=0;n=2345; do sum=sum+ B;n=C;while( n);printf( “ sum=%d ,sum);(1) A) n%10B) (n%10)*(n%10)C) n/10D) (n/10)*(n/10)(2) A) n/1000 B) n/100C) n/10D) n%10二、读懂程序,并按照程序的功能将程序补充完整1、下面程序的功能是用“辗转想除法”求两个正整数的最大公约数。请填空。#in elude <stdio.h>m

13、ain ()int r,m,n;scanf( “ %d %d,&m,&n);if(m<n) r=m,m=n,n=r ;r=m% n;while(r) m=n; n=r; r= _m%n ; printf(“ n”n);2、 下面程序的功能是用do-while语句求1至1000之间满足“用 3除余2 ;用5除余3; 用7除余2”的数,且一行只打印五个数。请填空。#in clude <stdio.h>main ()int i=1,j=0;doif(i%3=2&&i%5=3&&i%7=2 )printf( “ %4d ,i);j=j+

14、1;if( i%5=0) printf( n” ); i=i+1;while(i<1000);3、 等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被 4整除的所有的和。请填空。#in clude <stdio.h>main ()int a,d,sum;a=2; d=3; sum=0;dosum+=a;a+=d :if( sum%4=0) printf(n%d,sum);while(sum<200);第2讲基础练习(A)一、 选择题1、 下面有关for循环的正确描述是(D )。A) for循环只能用于循环次数已经确定的情况B) for循环是先执行

15、循环体语句,后判断表达式C) 在for循环中,不能用break语句跳出循环体D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来2、 对for(表达式1;表达式3)可理解为(B )。A) for(表达式1;0;表达式3)B) for(表达式1;1;表达式3)C) for( 表达式 1; 表达式 1; 表达式 3)D) for( 表达式 1; 表达式 3; 表达式 3) 3 、下列说法中正确的是( C ) 。A) break 用在 switch 语句中,而 continue 用在循环语句中。 B ) break 用在循环语句中,而 continue 用在 switch 语句中。

16、C) break 能结束循环,而 continue 只能结束本次循环。D) continue 能结束循环,而 break 只能结束本次循环。4、以下正确的描述是( B )。5、6、7、8、9、continue 语句的作用是结束整个循环的执行 只能在循环体内和 switch 语句体内使用 break 语句 在循环体内使用 break 语句或 continue 语句的作用相同 从多层循环嵌套中退出时,只能使用 若 i 为整型变量,则以下循环执行次数是(A)B)C)D)goto 语句B)。for(i=2;i=0;) printf(-“-);%d”A )无限次B ) 0 次以下 for 循环的执行次数

17、是( C for(x=0,y=0;(y=123)&&(x<4);x+) A )是无限循环B )循环次数不定以下不是无限循环的语句为(A)B)C) D),iC) )。D)2 次C )执行 4 次D )执行 3 次Afor(y=0,x=1;x>+y;x=i+) i=x for(;x+=i);while(1) x+; for(i=10;i-) sum+=i;)。执行语句 for(i=1;i+<4;); 后变量 i 的值是A)3B)4C)5下面程序段( D for(t=1;t<=100;t+) D)C )。不定)。scanf( “ %d” ,&x) ;

18、if(x<0) continue; printf(“ %3d” ,t);10、A )当 x<0 时整个循环结束C ) printf 函数永远也不执行 下面程序段( C x=3; doB)D)x>=0 时什么也不输出 最多允许输出 100 个非负整数)。y=x-;if(!y) printf(“ xprintf(“ #” );while(1<=x<=2);A )将输出 #C )是死循环二、写出下列程序的运行结果1 、 #include <stdio.h>main()int i;for(i=1;i<=5;i+)if(i%2) printf(); con

19、tinue; B )将输出 #*D )含有不合法的控制表达式*#*#*#$else con ti nue; printf(“#” );printf(n”);2、#in elude <stdio.h>#* #* 曲*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");3、#include <stdio.h>2, 3main ()int i,k=0;for(i=1;i

20、+)k+;while(k<i*i)k+;if(k%3=0) goto loop;loop: printf( “ %d,%d ,i,k);三、编程:1、求 1-3+5-7+-99+101 的值。解: main() int i,t=1,s=0 ;for(i=1 ; i<=101 ; i+=2) t=t*i;s=s+t ;t=t>0?-1:1:printf("%dn",s);能力提高(B)一、写出下列程序的运行结果1、#in clude <stdio.h>x=8main ()int i,j,x=0;for(i=0;i<2;i+)x+;for(j=0;j<=3;j+) if(j%2) con ti nue; x+; x+; printf(“ x=%” ,x);2、i=6,k=4#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论