1、第5章 循环结构程序设计5.1 基本知识点while语句的使用格式和注意事项do-while语句的使用格式和注意事项for语句的使用格式和注意事项break和continue语句在循环语句中的应用 循环结构的嵌套 使用goto语句实现循环结构 穷举法程序设计方法 迭代程序设计方法5.2 练习题5 1. 单项选择题(1)语句while (!e);中的条件!e等价于 A 。A. e=0B. e!=1C. e!=0D. e(2)下面有关for循环的正确描述是 D 。A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在for循环中,不能用break语句
2、跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中 D 。A. 不能使用do-while语句构成的循环B. do-while语句构成的循环必须用break语句才能退出C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是 A 。A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-
3、while的循环体不能是复合语句(5)以下程序段 C 。int x=-1;do x=x*x; while (!x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误(6)下列语句段中不是死循环的是_C_。A. i=100; while (1) i=i%100+1; if (i=20) break; B. for (i=1;i+) sum=sum+1;C. k=0; do +k; while (k=0);D. s=3379; while (s+%2+3%2) s+;(7)与以下程序段等价的是_A_。while (a) if (b) continue; c;A. while (a
4、)B. while (c) if (!b) c; if (!b) break; c; C. while (c)D. while (a) if (b) c; if (b) break; c; (8)以下程序的输出结果是_B_。#include main() int i; for (i=4;i=10;i+) if (i%3=0) continue; COUTi; A. 45B. 457810C. 69D. 678910(9)以下程序的输出结果是_C_。#include main() int num=0; while (num=2) num+; coutnumendl; A. 1B. 1C. 1D.
5、 1 2 2 2 3 3 42. 填空题(1)以下程序的运行结果是_S=7_。#include main() int s=0,k; for (k=7;k=0;k-) switch(k) case 1: case 4: case 7: s+; break; case 2: case 3: case 6: break; case 0: case 5: s+=2; break; couts;(2)以下程序的运行结果是 i=8 。#include main()int i=1,s=3;dos+=i+;if (s%7=0)continue;else+i; while (s15);Couti;(3)以下程序
6、的运行结果是_。#include main() int i,j; for (i=4;i=1;i-) cout*; for (j=1;j=4-i;j+) cout*; coutn; 输出结果: * * * *(4)以下程序的运行结果是_。#include main() int i,j,k; for (i=1;i=6;i+) for (j=1;j=20-2*i;j+) cout ; for (k=1;k=i;k+) couti; coutendl; 输出结果: 1 22 333 4444 55555 666666(5)以下程序的运行结果是_。#include main() int i,j,k; f
7、or (i=1;i=6;i+) for (j=1;j=20-3*i;j+) cout ; for (k=1;k=i;k+) cout0;k-) coutk; coutendl; 输出结果: 1 121 12321 1234321 123454321 12345654321(6)以下程序的运行结果是_。#include main() int i,j,k; for (i=1;i=4;i+) for (j=1;j=20-3*i;j+) cout ; for (k=1;k=2*i-1;k+) cout*; cout0;i-) for (j=1;j=20-3*i;j+) cout ; for (k=1;
8、k=2*i-1;k+) cout*; coutendl; 输出结果: * * * * * * *3. 编程题(1)编写一个程序,求之值。(2)编写一个程序,求s=1+(1+2)+(1+2+3)+(1+2+3+n)的值。(3)编写一个程序,用户输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果。(4)编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。(5)编写一个程序,求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12。(6)编写一个程序,求e的值。(7)编写一个程序,求满足如下条件的最大
9、的n:(8)某人摘下一些桃子,卖掉一半,又吃了一只;第二天卖掉剩下的一半,又吃了一只;第三天、第四天、第五天都如此办理,第六天一看,发现就剩下一只桃子了。编写一个程序,采用迭代法问某人共摘了多少只桃子。(9) 输入一批非0数,直到输入0时为止,计算其中奇数的平均值和偶数的乘积。(东师大,01年)(10)求一组整数中的正数之积与负数之和,直到遇到0时结束。(东师大,03年)(11)输入一组实数,求前10个正数的平均值。(东师大,02年)(12)编程求1200中能被2,3,5除余1的前10个整数。(东师大,02年)(13)输入100个整数,统计这些数中能被3或5整除数所占的百分比。(东师大,02年
10、)(14)计算并输出200600中能被7整除,且至少有一位数字是3的所有数的和。(东师大,01年)(15)输出1999中能被5整除,且百位数字是5的所有整数。(东师大,04年)(16)设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321),求N值。(东师大,03年)(17)有这样一个三位数,该三位数等于其每位数字的阶乘之和,即abc=a!+b!+c!。(如:145=1!+4!+5!)(东师大,04年)(18)编写程序求出满足下列条件的四位数:该数是个完全平方数;千位、十位数字之和为10,百位、个位数字之积为12。(东师大,05年)(19)已知abc+cba=1333,其中
11、a,b,c均为一位数,编写一个程序求出abc分别代表什么数字。(东师大,05年)(20)100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。试编写程序计算大、中、小马的数目。(东师大,06年)(21)求1100之间数的每位数的乘积大于每位数的和的数。(东师大,07年)(22)一个正整数与3的和是5的倍数,与3的差是6的倍数,编写一个程序求符合条件的最小数。(东师大,08年)(23)为了求正整数n的平方根,可以使用如下迭代法求解:(南师大04)使用C语言编写一个完整的程序,以求出用户从键盘上输入的任何正整数的平方根。24.有一口深度为h米的水井,井底有一只青蛙,它每天白天能够沿井壁向上爬m米,夜里则顺井壁向下滑n米,若青蛙从某个早晨开始向外爬,试编写一个函数:对于任意指定的h,m,n值(均为自然数),计算青蛙多少天能够爬出井口?并简要说明程序实现的基本思想。(南师大09)求平方根,乒乓球比赛题目