第5章循环控制结构作业

合集下载

T-C-2-第5章_循环

T-C-2-第5章_循环
4
5.2 用while语句和do-while语句实现循环 while语句和 -while语句实现循环 语句和do 5.2.1 用while语句实现循环 语句实现循环 • while语句用来实现“当型”循环结 语句用来实现“当型” 语句用来实现 构 一般形式: 一般形式: while (表达式 语句 表达式) 表达式 当表达式值为非0时 执行循环体( 当表达式值为非 时,执行循环体( 即内嵌语句)。其特点:先 )。其特点 即内嵌语句)。其特点 先判断表达 执行循环体。 式,后执行循环体。
解题思路
2 3 63 麦子的总粒数是: 麦子的总粒数是: + 2 + 2 + 2 + … + 2 1 分别计算出每一格的麦子粒数,累加起来就得到总 分别计算出每一格的麦子粒数, 粒数。 据估算, 小麦约有1.42×108 粒 , 由此 粒数 。 据估算 , 1m3 小麦约有 × 可以计算出小麦的体积。 可以计算出小麦的体积。
8
5.2.2 用do-while语句实现循环 do-while语句实现循环
例题 5.2 求1+2+3+…+100的和 的和 #include <stdio.h> void main() sum=0 i=1 { int i=1,sum=0; do /* 在循环开始时不检查条件,先执行一次循环体 */ 在循环开始时不检查条件, sum=sum+i { sum=sum+i; i=i+1 i++; T }while(i<=100); i<=100 printf(“%d\n”,sum); F ; }
第五章
本章要点
循环的基本概念 不同形式的循环控制 多重循环问题

C语言 第五章-循环结构程序设计

C语言 第五章-循环结构程序设计

执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/

高树芳C语言程序设计--第五章

高树芳C语言程序设计--第五章

VC程序代码
21
5.4
for循环结构
相关知识:
求解表达式1
1.for语句 见执行过程图。 2. for语句的说明 三个表达式均可省略, 但两个分号不可省略。
假 计算表达式2 真 循环体语句
求解表达式3
for语句的后续语句
22
5.2
while(当型)循环结构
[课堂训练5-4] 用for循环编程实现倒计时效果。即在屏幕上 固定位置显示10,然后清除之,再显示9,之后 是8……,至到1。
是成绩非-1等。
10
5.2
while(当型)循环结构
相关知识:
1.while语句的一般形式 2.while语句的说明 3.循环结构的构造方法 4.if语句与循环语句的区别
11
5.2
while(当型)循环结构
[课堂训练5-2] 计算s=1+1/2+1/3+1/4+„„+1/n,直到s大于或等 于3为止,输出n的值。 提示: 这是“标志”型循环。设置实型变量s并设初值为 0.0,设置整型变量i并设初值为1,循环条件是 s<=3,重复内容是s=s+1.0/i,注意要使用1.0实型 常量,或者将1或i作强制类型转换,将其转换为 实数,否则运算结果为0。
20
5.4 for循环结构 案例5-6 跳动的“O”
[案例任务]
编程实现字符“O”从屏幕的左端移动到右端。每一 秒种移动一下,形成跳动的效果。运算结果大致如 下。
[解决方案]首先显示一个O,延时片刻,然后光标
后退(用转义字符),再显示一个空格和一个O。循 环以上功能直到光标到屏幕最右端。
WIN-TC程序代码
[解决方案]该循环至少执行1次,使用do„while

第5章(联合循环机组总体布置)

第5章(联合循环机组总体布置)

第5章联合循环机组总体布置燃气-蒸汽联合循环结构图联合循环机组举例S109FA大型燃气-蒸汽联合循环发电机组由PG9351FA型燃气轮机,D10型、三压、再热、双缸双流式汽轮机,390H型氢冷发电机和三压、再热、自然循环余热锅炉组成。

燃气轮机、蒸汽轮机和发电机刚性串联在一根长轴上,燃气轮机进气端(冷端)输出功率,轴配置形式为GT-ST-GEN。

转速为3000rpm,从发电机方向看按逆时针方向转动。

燃气一蒸汽联合循环中的燃气轮机和汽轮机可以设计成单轴布置或多轴布置。

单轴布置即燃气轮机轴系和汽轮机组的轴系串联成一个轴系,共同驱动同一台发电机。

多轴布置即燃气轮机和汽轮机各自驱动单独的发电机。

单轴、分轴;“几拖一”一、单轴布置单轴布置只有一台发电机及相关的输变电设备,余热锅炉一般不需加装旁通烟囱和挡板,同时使辅助设施(如冷却水系统)可以统一布置,使设备简化,布置紧凑,厂房面积小,土建成本降低,使整个电厂紧凑高效,电站投资降低。

西门子公司认为,单轴机组设备造价可比多轴机组低约5%。

位于发电机和汽轮机之间的自同步离合器,大大提高了电厂运行灵活性。

由于离合器的采用,在启动过程中,燃机可以先按简单循环方式启动和运行,汽轮机处于脱开状态。

一旦汽轮机转速升至额定转速,离合器就自动同步燃气轮发电机和汽轮机。

由此实现更短的启动和停机时间,更短的维修停运时间和更高的净出力系数。

同步离合器使燃气轮机能保持其灵活的运行特性,还可以补偿轴系膨胀。

快速变负荷能力增加了电厂效益,尤其是当电网需要调峰和短时稳频运行时,电厂可以快速回应电网需求,为用户带来额外的收益,因为峰电具有更高的电价。

单轴联合循环电厂蒸汽系统单轴联合循环电厂厂房布置GUD是德文Gas und Dampf的缩写,意为“燃气和蒸汽”单轴联合循环电厂动力岛图单轴联合循环400MW电厂一、单轴布置单轴联合循环机组具有以下优点:①系统简化,设备费用降低;②变工况下效率下降较少;③控制系统简化;④运行维护简化;⑤高的可靠性和利用率。

循环结构

循环结构

第5章 循环----三类循环
for语句的一般形式为: for (<初始表达式>;<条件表达式>;<循环表达式>) { <循环体语句> } 1.计算<初始表达式>的值。该表达式是对循 环控制变量进行初始化。 2.判断<条件表达式>的值。该表达式就是循 环条件,若该表达式的值为“假”,则退出循 环,执行循环结构外的语句;若该表达式的值 为“真”,则执行<循环体语句>。 3.计算<循环表达式>的值。该表达式更新循 环控制变量的值。 4.转第2步。
课堂练习: 求1,1+2,1+2+3...... 数列中前n项的值
第5章 循环---数列问题
【例5-3】编写程序,从键盘输入x的值, x x , 直到最后一项 求 sin x x x 3! 5! 7! 绝对值小于le−7(即10−7)为止 (注:x为弧度值)。
3 5 7
开始
计算机导论A
第5讲 循环结构
第5章循环结构
1. for循环语句结构 2. while循环语句结构 3. do-while循环结构 4. break和continue语句的作用 5. 循环结构的嵌套 6. 案例分析
第5章 循环----导引
例5-1:计算10道简单的加、减、乘、除和取余的运算题
/*6-1 分支程序-----循环*/ #include<stdio.h> main() { int a,b,i,n; char op; printf("please input express:"); scanf("%d%c%d",&a,&op,&b); switch(op) { case '+':printf("%d+%d=%d\n",a,b,a+b); break; case '-':printf("%d-%d=%d\n",a,b,a-b); break; case '*':printf("%d*%d=%d\n",a,b,a*b); break; case '%':printf("%d%%%d=%d\n",a,b,a%b); break; case '/':if(b!=0) printf("%d/%d=%d\n",a,b,a/b); else printf("error\n"); break; }}

第5章 循环结构1

第5章 循环结构1

说明:
(3)最简单的应用形式: for(循环变量赋初值;循环条件;循环变量增值) 例如:for(i=1;i<=10;i++) sum=sum+i; (4)三个表达式均可缺省,但起分割作用的两个分号 不可省略。 例如:for( ; ; ) i=1;for(;i<=10;i++) sum=sum+i; 或 for(i=1;i<=10;) {sum=sum+i;i++;} • 表达式1省略,应在for之前对循环变量赋初值 • 表达式2省略,则不判断条件,循环无终止进行下去 • 表达式3省略,则应另设法保证循环的结束
5.4
循环的嵌套
一个循环体内又包含另一个完整的循环结构称为循 环的嵌套。
① while() {… while() {…} } ② do {… do {…} while(); } while() ; ③ for(;;) { for(;;) {…} }
5.4
④ while() {… do {…} while(); … } 说明:
在许多问题中都需要用到循环结构,如
要求计算全校每个学生的平均成绩,计算两 个正整数的最大公约数和最小公倍数等都需
要用到循环控制。C语言中有三种循环语句, 分别是while语句、do…while语句和for语 句。
5.1 while循环语句
while循环语句是用来实现“当型”循环结构的。 它的特点是先判断表达式,后执行语句。 格式: while(表达式) 语句; 该语句的执行顺序是:先计算表达式的值,再判 断其值是否为“真”(即非0)。若结果为“真”, 则执行语句;此过程重复执行,直到表达式的值为 “假”(即为0)时,结束循环。其流程图和N-S图 分别如图5-1和5-2所示。

第五章程序的基本控制结构


5.1.1 赋值语句
• 赋值语句是任何程序设计语言中的最基本的语句。 形式如下:
• 变量名=表达式 •或 • 对象名.属性=表达式
5.1.2 输入输出数据
• 除界面外,一个计算机程序通常可分为3部分,即 输入、处理和输出。本书第四章中介绍了Visual Basic输入和输出丰富的内容和形式,提供了多种 手段,并可通过各种控件实现输入输出操作,使 输入输出灵活多样、方便直观。(具体内容请参 照本书)
5.2.1 行IF语句
• 单行条件语句比较简单,其格式如下: • If 条件 Then语句1 [Else 语句2]
5.2.2 块 IF 语句
• 因为单行IF语句后不能写多条语句(实际上,用 “:”号分割,也可以写多条语句,但通常不这 么做),所以有时满足不了程序的需求。(具体 内容请参照本书)
5.2.3 IF 语句的嵌套
5.3.4多重循环
• For循环、While循环和Do循环都允许嵌套,可以 嵌套多层,遵循就近配对原则。
5.3.5应用案例1——色彩变幻的背景
• (具体内容请参照本书)
5.3.6 应用案例2——列表框购物程序
• (具体内容请参照本书)
5.4 控制语句
• Visual Basic 中除了上面介绍的语句以外,还有 一些控制语句,例如惹人争议的GoTo语句、退出 循环的ExitDo语句、结束程序运行的End语句等。
• 本章将逐一介绍顺序结构的基本语句,选择结构、 多分支结构及循环结构语句。熟练掌握这些结构 语句,就可以编写较为复杂的程序了。
5.1 顺序结构程序设计
• 所谓顺序结构,就是按照语句的书写顺序依次执 行。一般的程序设计语言中,顺序结构的语句主 要是赋值语句、输入/输出语句等。在Visual Basic中也有赋值语句,而输入/输出可以通过文 本框控件、标签控件、InputBox函数、MsgBox函 数等来实现。下面介绍几种基本顺序结构的语句 和方法。

选择结构、循环结构--习题


下列各语句中,能够且仅输出整型变量 a、b中最大值的是( (3) (3)下列各语句中,能够且仅输出整型变量 下列各语句中,能够且仅输出整型变量a
A. if(a>b) printf( ”%d\n ”,a); printf( ”%d\n ”,b); printf(” %d\n” printf(” %d\n” B. printf( ”%d\n ”,b); if(a>b) printf( ”%d\n ”,a); printf(” %d\n” printf(” %d\n” C. if(a>b) printf( ”%d\n ”,a); else printf( ”%d\n ”,b); printf(” %d\n” printf(” %d\n” D. if(a<b) printf( ”%d\n ”,a); printf( ”%d\n ”,b); printf(” %d\n” printf(” %d\n”
x的值是( (2) 假定所有变量均已正确定义,下列程序段运行后 假定所有变量均已正确定义,下列程序段运行后x )。
,x=35 ; a=b=c=0 a=b=c=0, x=35; if(!a) x- ; else if(b) ;if(c) x=3 ;else x=4; -; x=3; A.34 B.4 C.35 D.3 )。
C)0.500000
D)1.000000
5.18 以下 4 个选项中,不能看做一条语句的是 A); B)a=5,b=2.5,c=3.6; C)if(a<5); D)if(b!=5)x=2;y=6; 5.19 若 int k=8;则执行下列程序后,变量 k 的正确结果是 main() {int k=8; switch(k) {case 9:k+=1; case 10:k+=1; case 11:k+=1;break; default:k+=1;} printf("%d\n",k);} A)12 B)11 C)10 5.20 阅读如下程序段 #include "stdio.h" main() { int a=45,b=40,c=50,d; d=a>30?b:c; switch(d) { case 30 : printf("%d,",a); case 40 : printf("%d,",b); case 50 : printf("%d,",c); default : printf("#");}} 则输出的结果是

VFP第4、5部分(循环结构)


步长可正可负
* 仍计算阶乘 此处步长为负 仍计算阶乘,此处步长为负 clea Input "请输入自然数 to n 请输入自然数:" 请输入自然数 j=1 for i=n to 1 step -1 j=j*i endfor ? N, "!= ",j return
当循环
步长循环
input “请输入终值:” to n 请输入终值: 请输入终值 input “请输入步长:” to k 请输入步长: 请输入步长 i=1 do while i<=n <命令序列 命令序列> 命令序列 i=i+k endddo for i=1 to n step k <命令序列 命令序列> 命令序列 endfor|next
改变循环变量值 clea s=0 i=1 do while i<=100 s=s+i i=i+1 enddo ?"1+2+3+...+100=",s retu
例:求n的阶乘 的阶乘
clea Input "请输入自然 数:" to n j=1 for i=1 to n j=j*i endfor ? N, "!= ",j return * 100以内自然数求和 以内自然数求和 clea s=0 for i=1 to 100 s=s+i endfor ? "1+2+3+...+100=",s return
DO WHILE .T. 结构
• 此种表述的条件,必须设置强制退出的语 此种表述的条件, 句来完成退出循环, 句来完成退出循环,否则会出现死循环的 情形。 情形。 DO WHILE .T. … EXIT &&用来强制退出循环 用来强制退出循环 … ENDDO

5章 循环结构


【例六】 expr1 求∑i =1+2+3+4 „+99+100 (i=1~100) 假(0)
expr2
main() 真(非0) { 循环体 int i , s=0; for (i=1;i<=100;i++) s=s+i; printf(“Sum=%d\n”,s);
expr3
}
5.4 for语句循环结构
第五章 循环结构
第5章 循环结构程序设计
学习本章后,应当掌握如下知识。 (1)四种循环结构的语法格式。 (2)四种循环结构中循环变量的设定与改 变。 (3) while语句、do…while语句的区别。 (4)跳转语句break与continue的使用。
第5章 循环结构程序设计
在C语言中可用以下语句构成循环: • if „ goto
5.7 应用实例
【例5.13】用公式 求 π 的≈ 近似值,直到某一项的绝对值小 1.0e-6 于为止。 【 例 5.15】 打 印 出 所 有 的 “ 水 仙 花 数 ” , 所 谓 “水仙花数”是指一个三位数,其各位数字立方 和等于该数本身。例如: 153 是一个“水仙花 3 3 3 3 数”,因为153 =1 +5 +3 。 【例5.16】一球从100米高度自由落下,每次落地 后反跳回原高度的一半;再落下,求它在第 10 次落地时,共经过多少米?第10次反弹多高?
5.4 for语句循环结构
3、可以用字符代替数字进行计数。 例如: for(i=„a‟;i<=„z‟;i++) 4、第二个表达式可以不是单纯的对第一个表达式中变量大小 的判断。 例:求12+22+32+……n2,当s〉300时n的值。 main() { int i,s=0; for(i=1;s<=300;i++) s+=i*i; printf("s=%d\n",s); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章 循环控制结构 一、单选题 1、下列循环的输出结果是( B ) #include int main( ) { int n=10 while (n>7) { n--; printf("%d\n",n); } } A. 10 9 8 B. 9 8 7 C. 10 9 8 7 D. 9 8 7 6

2、以下程序的输出结果是( A ) #include int main( ) { int n=4; while(n--)printf("%d ",--n); } A. 2 0 B. 3 1 C. 3 2 1 D. 2 1 0

3、设有以下程序段,则下面描述中正确的是( C) #include int main( ) { int k=10; while(k==0) k=k-1; } A. while循环执行10次 B. 循环是无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次

4、有以下程序段,while循环执行的次数是( C) #include int main( ) { int k=0; while(k=1) k++; } A. 无限次 B. 有语法错,不能执行 C. 一次也不执行 D. 执行一次

5、 设K为整形,则下面的while循环执行( B )次 #include int main( ) { int k=2; while(k==0) { printf("%d",k); k--; } printf("\n"); } A. 无限次 B. 0次 C. 1次 D. 2次

6、读程序,输出结果是(C ) #include int main( ) { int num=0; while (num<=2) { num++; printf("%d",num); } } A. 1 B. 2 2 C. 1 2 3 D. 1 2 3 4

7、下面程序段的运行结果是(A ) #include int main( ) { int a,b,c; a=1;b=2;c=2; 2 1 1 12 while(aprintf("%d,%d,%d",a,b,c); } A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,1

8、 假定a和b为int型变量,则执行以下语句后b的值为 D #include int main( ) { int a=1,b=10; do { b=b-a; a++; } while (b-->0); } A. -3 B. -2 C. -1 D. -4

9、以下程序段____C__ #include int main( ) { int x=-1; do {x=x*x;} while(!x); } A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误

10、有如下程序,该程序的执行结果是(B ) #include int main( ) { int x=23; do printf("%d",x--); while(!x); } A. 321 B. 23 C. 不输出任何内容 D. 陷入死循环

11、执行以下程序后,输出的结果是(D ) #include int main( ) { int y=10; do {y--;} while(--y); printf("%d\n",y--); } A. -1 B. 1 C. 8 D. 0 12、 若输入字符串:abcde,则输出为(D ) #include int main( ) { char ch; while((ch=getchar())=='e') printf("*"); } A. * B.*** C. **** D. 空

13、如果输入为:ABCdef,执行下面一段程序后,则输出为( B ) #include int main( ) { char ch; while((ch=getchar( ))!='\n') { if(ch > ='A' && ch < ='Z')ch=ch+32; else if(ch>='a' && ch<'z') ch=ch-32; printf("%c",ch); } printf("\n"); } A. ABCdef B. abcDEF C. abc D. DEF

14、以下描述中正确的是(C ) A. 由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B. do-while 循环由do开始,用while结束,在 while(表达式)后面不能写分号 C. 在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零(“假”)的操作 D. do-while 循环中,根据情况可以省略 while

15、以下叙述正确的是(D ) A. do-while语句构成的循环不能用其它语句构成的循环来代替。 B. do-while语句构成的循环只能用break语句退出。 C. 用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D. 用do-while语句构成的循环,在while后的表达式为零时结束循环。 91 8 16、以下程序的输出结果是(D ) #include int main( ) { int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d %d ",x--,y) ; } A. 10 1 9 2 B. 9 8 7 6 C. 10 9 9 0 D. 10 10 9 1

17、若i为整型变量,则以下循环执行次数是(B ) #include int main( ) { int i; for(i=2;i==0; ) printf("%d",i--); } A. 无限次 B. 0次 C. 1次 D. 2次

18、以下循环体的执行次数是(C ) #include int main( ) { int i,j; for(i=0,j=1;i<=j+1;i+=2,j--) 0 printf("%d \n",i); } A. 3 B. 2 C. 1 D. 0

19、 设i,j为int型变量,则下面for循环语句的执行结果是(B ) #include int main( ) { int i; for(i=10,j=0;j<2;j++) { if(i%3) i--; --i; --i; printf("%d ",i) } } A. 6 3 B. 7 4 C. 6 2 D. 7 3

20、 下面程序的输出是(B ) #include int main( ) { int y=9; for( ;y>0;y--) if(y%3==0) {printf("%d",--y);continue;} } A. 741 B. 852 C. 963 D. 875421

21、有以下程序,其输出结果是(C ) #include int main( ) { int x,i; for(i=1;i<=50;i++) { x=i; if(x%2==0) if(x%3==0) if(x%7==0) printf("%d",i); } } A. 28 B. 27 C. 42 D. 41

22、 执行下面的程序后,a的值为(C ) #include int main( ) { int a,b; for (a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) { b-=2; continue; } b=4 7 10 b+=5; printf(“%d%d”,a,b); } } A. 11 B. 15 C. 12 D. 13

23、执行下面的程序后,a的值为(B ) #include int main( ) { int a,b; for (a=1,b=1;a<100;a++) { if (b>=20) break; if (b%3==1) { b+=3; continue; } b-=5; } } A. 7 B. 8 C. 9 D. 10

24、若x是int型变量,以下程序段的输出结果是( )。 #include int main( ) { int x; for(x=3;x<6;x++) printf((x%2)?(”* * %d”):(”# # %d\n”),x); } A. * * 3 # # 4 * * 5 B. # # 3 * * 4 # # 5 C. # # 3 * * 4 # # 5 D. * * 3 # # 4 * * 5

25、以下程序的输出结果是( ) #include int main( ) { int i; for(i=1;i<6;i++) { if(i%2) {printf("#");continue;}

相关文档
最新文档