第六章 循环结构《C语言程序设计教程》(清华大学出版社第三版) 章节关过卷

2025-06-27
| 2份
| 15页
| 128人阅读
| 2人下载

内容正文:

<C语言程序设计教程>清华大学出版社(第3版) 第六章 循环结构程序设计 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 选择题(共10题,每小题2分,共20分) 1、下列循环中,没有语法错误的是 。 A、 int i=1; While(i<=10) i++; printf(“%d ”,i); B、int i=1; while(i<=10) i++; printf(“%d ”,i); C、int i=1; do {i++; } while(i<=10) printf(“%d ”,i); D、int i; for(i=1;i<=10) {sum+=i;i++;} printf(“%d ”,i); 【答案】B 【解析】A选项中,while关键字大写;B选项中,do-while的while后面没有分号;D选项中,for括号中有三个表达式,可以空着,但必须写分号。故选B。 2、下列循环程序段中,不是死循环的是 。 A、int j=0; while(j<=0);j++; B、int k; for(k=5; ;k--); C、int i=16,s=0; while(s<=20) s=i%15+1; D、int z=9; for(;z;) –z; 【答案】D 【解析】A选项中,while后有分号,循环控制变量z的值在循环体中没有被改变,一直为真,是死循环。B选项中,for循环表达式2没有书写,一直为真,是死循环。C选项中,s一直被重新赋值,一直小于20,是死循环。故选D。 3、以下能正确计算1+2+3+4+5的程序段是 。 原创精品资源学科网独家享有版权,侵权必究! A、do{ i=1;s=0; s+=i++; }while(i<=5); B、do{ i=1;s=1; s+=i++; }while(i<=5); C、i=1;s=0; do{ s+=i++; } while(i<=5); D、i=1;s=0; do{ s+=++i; } while(i<=5); 【答案】C 【解析】A、B选项中,i和s赋初值在循环体内,每一次循环,又会被重新赋值,排除。D选项中,s+=++i,++在前,i的值会变成2跳过了1, 排除。故选C。 4、在for循环中,判断循环是否终止的时候是 。 A、在测试循环条件时进行判断 C、循环执行过程中判断 B、任何地方,只要条件不满足就终止 D、以上均不正确 【答案】A 【解析】for循环中在表达式2进行循环条件判断。故选A。 5、 下列有关for循环说法正确的是 。 A、在for循环中循环体至少执行一次。 B、在for循环语句中省略表达式1,表达式3则相当于while语句。 C、在for循环语句中省略表达式2,则循环条件总是为假。 D、for语句中表达式1,表达式2,表达式3均可省略,分号也不要写。 【答案】B 【解析】A选项中,在for循环中表达式2一开始为假,循环体一次也不执行。C选项中,在for循环语句中省略表达式2,则循环条件总是为真。D选项中,for语句中表达式1,表达式2,表达式3均可省略,但分号要写。 6、执行下列程序段后,结果为 。 int k=0; do{ k++; }while(k++<=3); printf(“%d”,k); A、3 B、4 C、5 D、6 【答案】D 【解析】最后一轮循环,当K=5,判断条件不成立时,后置加还会加1.故选D。原创精品资源学科网独家享有版权,侵权必究! 7、下列程序段执行后x值为 ,共执行几次?。 int x=8; do{ x++; }while(x++>9); A、9 1 B、10 1 C、9 2 D、10 2 【答案】B 【解析】要注意条件,只成立了一次,循环结束后,后置加加1,x值为10。故选B。 8、执行下列程序段后,结果为 。 int x,s=0; for(x=1;x<=20;x++) { s+=x; if(s>15) break; } printf(“%d,%d ”,x,s); A、21,6 B、6,21 C、15,5 D、5,15 【答案】B 【解析】这个循环中,x>=20和s>15时会结束循环,要注意if里面的条件,故选B。 9、执行下列程序段后,结果为 。 int a=21,s=0; do{ if(a++%3==0) continue; s+=a; a+=5; }while(s<=30) ; printf(“%d ,%d ”, a,s);} A、34,52 B、52,34 C、31,48 D、48,31 【答案】A 【解析】在这个循环中,要注意判断完if语句条件时,a的值加1,s+=a是a加1后的值。故选A。 10、如有程序段: int i=0; while(i++);原创精品资源学科网独家享有版权,侵权必究! 则下面描述正确的是 。 A、该循环是死循环 B、该循环执行1次 C、循环结束后i的值为1 D、以上说法都不对 【答案】C 【解析】i的初始值为0,在条件判断中i为后置加,先使用i的值判断,条件不成立循环结束,i的值加1。故选C。 二、填空题(共6空,每空2分,共12分) 1、循环结构的控制语句有while语句、 、 。 【答案】do-while语句 for语句 2、while语句和do-whlie语句的区别在于 。 【答案】第一次判断条件不成立,while语句循环体一次也不执行,do-while语句循环体会被执行一次 3、跳出循环可以用关键字 。 【答案】break 4、break语句和continue语句在循环体的作用区别在于 。 【答案】break是结束循环,continue是跳过循环体后面的语句,提前进入下一次循环 5、若有程序段如下: int i; float m=1.0; for(i=1;i<=5;i++) m/=i; 则程序段功能是 。 【答案】求 三、程序运行题(共6题,每小题3分,共18分) 1、以下程序的运行结果是 。 #include<stdio.h> void main() { int x=8,y=6,t; while(x-->++y) t=x;y=x;y=t; printf("%d,%d ",x,y); }原创精品资源学科网独家享有版权,侵权必究! 【答案】6,7 2、以下程序的运行结果是 。 #include<stdio.h> void main() { char ch; while((ch=getchar())!=’E’) if(ch>=’A’&&ch<=’Z’) putchar(ch-’A’+’a’); } 从键盘输入abA2DC5UEFD<回车> 【答案】adcu 3、 以下程序的运行结果是 。 #include<stdio.h> void main() { int x; for(x=1;x<=20;x++) if(x%2==0) if(x++%3==0) printf(“%d\t”,x); } 【答案】7 13 19 4、 以下程序的运行结果是 。 #include<stdio.h> void main() { int i=6; do{ switch(i%2) { case 4:i--;break; case 3:continue; } i=i-2; printf(“i=%d\t”,i); }while(i>0); } 【答案】i=4 i=2 i=0 5、 以下程序的运行结果是 。 #include<stdio.h> void main() 原创精品资源学科网独家享有版权,侵权必究! { int i,j; for(i=0;i<5;i++) for(j=0;j<10;j++) { if(j==6) break; if(i<3) continue;} printf(“i=%d,j=%d ”,i,j); } 【答案】i=5,j=6 6、 以下程序的运行结果是 。 #include<stdio.h> void main() { i int i,j,k=2; for(i=1;i<=3;i++) { j=1; while(j<=10) { if(j%3==0) k+=j; j++;} } printf("%d ",k); } 【答案】56 四、程序填空题(共6空,每空5分,共30分) 1、求1+3+6+10+15+21+28+36+45+55的和,请填空。 #include<stdio.h> void main() { int t=2; for(i=1;i<=55; ) sum+=i; printf("sum=%d ",sum); } 【答案】int sum=0,i; i+=t++原创精品资源学科网独家享有版权,侵权必究! 2、 输入一行字符,将其中的数字字符转换为数字,并计算它们的和。例如“AB12D354D9F67”,则和为442。请填空。 #include<stdio.h> void main() { char ch; while((ch=getchar())!=’ ’) if(ch>=’0’&&ch<=’9’) s= else { sum+=s; } sum+=s; } 【答案】 int sum=0,s=0; s*10+ch-’0’; s=0; 3、 百鸡问题,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、母、雏各几何? #include<stdio.h> void main() { int i,j; for(i=0;i<20;i++) for(j=0;j<33;j++) if( ) printf(“%5d%5d%5d ”,i,j,100-i-j); } 【答案】15*i+9*j+(100-i-j)==300 五、程序改错题(共20分) 1、输出200以内的所有素数,10个为一行。现有2处错误,请在找出错误语句,并写出完整的正确语句。(找出错误2分,改正错误3分) L1 #include<stdio.h> L2 void main() L3 { int n,t,flag,count=0; L4 for(n=1;n<200;n++) L5 { for(t=1;t<=n/2;n++) L6 if(n%t==0) flag=0;原创精品资源学科网独家享有版权,侵权必究! L7 if(flag) L8 { printf(“%5d”,n); L9 count++; L10 if(count%10==0) printf(“ ”);} L11 } } 【答案】 L3 { int n,t,flag=1,count=0; L5 { for(t=2;flag&&t<=n/2;n++) 2、输出Fbonacci数列前40项,4个为一行。现有2处错误,请在找出错误语句,并写出完整的正确语句。(找出错误2分,改正错误3分) L1 #include<stdio.h> L2 void main( ) L3 { int f1=1,f2=1,i; L4 for(i=2;i<=40;i++) L5 { printf(“%5d%5d”,f1,f2); L6 if(i%4==0) printf(“ ”); L7 f1=f1+f2; L8 f2=f2+f1; L9 } } 【答案】 L4 for(i=2;i<=40;i+=2) L6 if(i%2==0) printf(“ ”); 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ <C语言程序设计教程>清华大学出版社(第3版) 第六章 循环结构程序设计 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 选择题(共10题,每小题2分,共20分) 1、下列循环中,没有语法错误的是 。 A、 int i=1; While(i<=10) i++; printf(“%d ”,i); B、int i=1; while(i<=10) i++; printf(“%d ”,i); C、int i=1; do {i++; } while(i<=10) printf(“%d ”,i); D、int i; for(i=1;i<=10) {sum+=i;i++;} printf(“%d ”,i); 2、下列循环程序段中,不是死循环的是 。 A、int j=0; while(j<=0);j++; B、int k; for(k=5; ;k--); C、int i=16,s=0; while(s<=20) s=i%15+1; D、int z=9; for(;z;) –z; 3、以下能正确计算1+2+3+4+5的程序段是 。 A、do{ i=1;s=0; s+=i++; }while(i<=5); B、do{ i=1;s=1; s+=i++; }while(i<=5); C、i=1;s=0; do{ s+=i++; } while(i<=5); D、i=1;s=0; do{ s+=++i; } while(i<=5); 4、在for循环中,判断循环是否终止的时候是 。 A、在测试循环条件时进行判断 C、循环执行过程中判断 B、任何地方,只要条件不满足就终止 D、以上均不正确 原创精品资源学科网独家享有版权,侵权必究! 5、 下列有关for循环说法正确的是 。 A、在for循环中循环体至少执行一次。 B、在for循环语句中省略表达式1,表达式3则相当于while语句。 C、在for循环语句中省略表达式2,则循环条件总是为假。 D、for语句中表达式1,表达式2,表达式3均可省略,分号也不要写。 6、执行下列程序段后,结果为 。 int k=0; do{ k++; }while(k++<=3); printf(“%d”,k); A、3 B、4 C、5 D、6 7、下列程序段执行后x值为 ,共执行几次?。 int x=8; do{ x++; }while(x++>9); A、9 1 B、10 1 C、9 2 D、10 2 8、执行下列程序段后,结果为 。 int x,s=0; for(x=1;x<=20;x++) { s+=x; if(s>15) break; } printf(“%d,%d ”,x,s); A、21,6 B、6,21 C、15,5 D、5,15 9、执行下列程序段后,结果为 。 int a=21,s=0; do{ if(a++%3==0) continue; s+=a; a+=5; }while(s<=30) ; printf(“%d ,%d ”, a,s);} A、34,52 B、52,34 C、31,48 D、48,31 原创精品资源学科网独家享有版权,侵权必究! 10、如有程序段: int i=0; while(i++); 则下面描述正确的是 。 A、该循环是死循环 B、该循环执行1次 C、循环结束后i的值为1 D、以上说法都不对 二、填空题(共6空,每空2分,共12分) 1、循环结构的控制语句有while语句、 、 。 2、while语句和do-whlie语句的区别在于 。 3、跳出循环可以用关键字 。 4、break语句和continue语句在循环体的作用区别在于 。 5、若有程序段如下: int i; float m=1.0; for(i=1;i<=5;i++) m/=i; 则程序段功能是 。 三、程序运行题(共6题,每小题3分,共18分) 1、以下程序的运行结果是 。 #include<stdio.h> void main() { int x=8,y=6,t; while(x-->++y) t=x;y=x;y=t; printf("%d,%d ",x,y); } 2、以下程序的运行结果是 。 #include<stdio.h> void main() { char ch; while((ch=getchar())!=’E’) if(ch>=’A’&&ch<=’Z’) putchar(ch-’A’+’a’); }原创精品资源学科网独家享有版权,侵权必究! 从键盘输入abA2DC5UEFD<回车> 3、 以下程序的运行结果是 。 #include<stdio.h> void main() { int x; for(x=1;x<=20;x++) if(x%2==0) if(x++%3==0) printf(“%d\t”,x); } 4、 以下程序的运行结果是 。 #include<stdio.h> void main() { int i=6; do{ switch(i%2) { case 4:i--;break; case 3:continue; } i=i-2; printf(“i=%d\t”,i); }while(i>0); } 5、 以下程序的运行结果是 。 #include<stdio.h> void main() { int i,j; for(i=0;i<5;i++) for(j=0;j<10;j++) { if(j==6) break; if(i<3) continue;} printf(“i=%d,j=%d ”,i,j); } 6、 以下程序的运行结果是 。 #include<stdio.h> void main() { i int i,j,k=2;原创精品资源学科网独家享有版权,侵权必究! for(i=1;i<=3;i++) { j=1; while(j<=10) { if(j%3==0) k+=j; j++;} } printf("%d ",k); } 四、程序填空题(共6空,每空5分,共30分) 1、求1+3+6+10+15+21+28+36+45+55的和,请填空。 #include<stdio.h> void main() { int t=2; for(i=1;i<=55; ) sum+=i; printf("sum=%d ",sum); } 2、 输入一行字符,将其中的数字字符转换为数字,并计算它们的和。例如“AB12D354D9F67”,则和为442。请填空。 #include<stdio.h> void main() { char ch; while((ch=getchar())!=’ ’) if(ch>=’0’&&ch<=’9’) s= else { sum+=s; } sum+=s; } 3、 百鸡问题,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、母、雏各几何?原创精品资源学科网独家享有版权,侵权必究! #include<stdio.h> void main() { int i,j; for(i=0;i<20;i++) for(j=0;j<33;j++) if( ) printf(“%5d%5d%5d ”,i,j,100-i-j); } 五、程序改错题(共20分) 1、输出200以内的所有素数,10个为一行。现有2处错误,请在找出错误语句,并写出完整的正确语句。(找出错误2分,改正错误3分) L1 #include<stdio.h> L2 void main() L3 { int n,t,flag,count=0; L4 for(n=1;n<200;n++) L5 { for(t=1;t<=n/2;n++) L6 if(n%t==0) flag=0; L7 if(flag) L8 { printf(“%5d”,n); L9 count++; L10 if(count%10==0) printf(“ ”);} L11 } } 2、输出Fbonacci数列前40项,4个为一行。现有2处错误,请在找出错误语句,并写出完整的正确语句。(找出错误2分,改正错误3分) L1 #include<stdio.h> L2 void main( ) L3 { int f1=1,f2=1,i; L4 for(i=2;i<=40;i++) L5 { printf(“%5d%5d”,f1,f2); L6 if(i%4==0) printf(“ ”);原创精品资源学科网独家享有版权,侵权必究! L7 f1=f1+f2; L8 f2=f2+f1; L9 } } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

第六章 循环结构《C语言程序设计教程》(清华大学出版社第三版) 章节关过卷
1
第六章 循环结构《C语言程序设计教程》(清华大学出版社第三版) 章节关过卷
2
第六章 循环结构《C语言程序设计教程》(清华大学出版社第三版) 章节关过卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。