第5章 循环结构程序设计

合集下载

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 ” ) ; /*换行打印*/

第5章 循环结构程序设计

第5章 循环结构程序设计
龙诚数码:
do-while语句的简单应用 do-while语句的简单应用
【例5.3】用辗转相除法求m和n的最大公约数 5.3】用辗转相除法求m
定义m、 、 定义 、n、r m<n T F m和n交换 和 交换 r=m%n m=n n=r 当r != 0时 时 输出最大公约数m 输出最: 算法和程序:
main( ) { int m,n,r; scanf("%d, %d",&m,&n); if (m<n) { r=m; m=n; n=r; } do { r=m%n; 程序运行情况如下: 程序运行情况如下: m=n; 24, 60 24, n=r; 12 }while(r!=0); while(r!=0 printf("%d\n",m); }
for语句的算法 for语句的算法
流程图 计算表达式1 计算表达式
表达式2 表达式 为真? 为真
15
N-S结构图 结构图 for (表达式 表达式 表达式 表达式1;表达式 表达式3) 表达式 表达式2;表达式 N 语句
Y 语句 计算表达式3 计算表达式
例如: 例如: 可部分或全部省略, 可部分或全部省略, main( ) 但“;”不可省略 { int i,sum; sum=0; for ( i=1; i<=100; i++) i=1 i<=100; sum=sum+i; sum=sum+i; printf("sum=%d\n",sum); }
龙诚数码:
18
for语句的简单应用 for语句的简单应用
【例5.4】求n! ,即计算p=1×2×3×…×n 5.4】 即计算p=1× 的值。 的值。

第五章 循环结构程序设计

第五章 循环结构程序设计

第五章循环结构程序设计循环结构是结构化程序设计的三种基本结构之一,也是最重要、最常用的一种基本结构。

其特点是:在给定条件成立时,反复执行某程序段,直到给定条件不成立时为止。

给定的条件称为循环条件,反复执行的程序段称为循环体。

根据开始或结束循环的条件不同,在C 语言中可以用如下语句实现循环:1. 用goto语句和if语句构成循环。

2. 用while循环语句。

3. 用do-while循环语句。

4. 用for循环语句。

5.1 语句标号、goto语句及用goto语句构成的循环1.语句标号语句标号就是给程序中的某一个语句定义的标识符,标号可以是任意合法的标识符,但在语句标号和它所标识的语句之间必须加一个冒号作为分隔符。

C程序中的任何一个可执行语句之前都可以加上语句标号。

例如:stop:printf(“END\n”);通常,语句标号只是用作goto 语句的转向目标。

如:goto stop;如果程序中没有用goto语句改变程序的执行顺序,也就没有必要出现语句标号。

2.goto语句goto语句称为无条件转向语句,goto语句的一般形式为:goto 语句标号;goto语句的作用是把程序的执行转移到语句标号所在的位置,但这个语句标号必须与此goto语句在同一个函数之内。

goto语句不符合结构化程序设计的原则,因为无条件转向使得程序的结构没有规律、可读性差。

对于初学者来说应尽量避免使用goto语句,但如果使用goto语句能够大大地提高程序的执行效率,也可以使用。

3.用goto语句构成的循环结构goto语句通常与if语句配合构成条件转移语句,用来实现构成循环或跳出循环等功能。

例5.1统计从键盘输入的一行字符的个数。

#include <stdio.h>main(){int n= 0;char ch;printf("input a string\n");loop: ch= getchar();n++;if(ch!='\n') /*字符'\n'是结束从键盘输入字符串的标志*/goto loop;n=n-1; /*不要统计字符'\n'*/printf("%d",n);}当用户从键盘上输入一个字符后,先执行n++进行计数,然后判断该字符是否为'\n'字符,若该字符不是'\n'字符,则转移至loop构成循环;否则不执行goto语句,程序在输出n的值后结束。

清华大学VB经典教案第五节——循环结构程序设计

清华大学VB经典教案第五节——循环结构程序设计

每循环一次,循环变量的值自动加一个
步长,然后判断循环变量的值是否“超 越”终值,如果“超越”,则结束循环,
否则进行下一次循环,用如图5-1所示
的流程图表示。
说明: (1)循环变量、初值、终值、步长都是数值类型; (2)步长可正可负,但不能为0,否则,循环将变成死循环或 无限循环;步长为1时,[Step <步长>]可以省略; (3)当初值小于终值时,步长为正;当初值大于终值时,步 长为负; 通过初值、终值、步长可以计算循环体的循环次数,计算公 式如下: 循环次数=Int((终值-初值)/步长)+1 注意:如果循环次数≤0,即当初值小于终值时,步长为负 ,或者当初值大于终值时,步长为正,则循环体一次都不执行。 (4)Exit For可以退出其所在层的For…Next循环,这一点在 多重循环中尤为重要。
分析:假设某个三位的正整数为n, 要判断n是否是“水仙花数”,关键是 要求出n的百位数字a、十位数字b和个 位数字c,即 百位数字a = n \ 100 十位数字b = n \ 10 Mod 10 个位数字c = n Mod 10
5.2 While…Wend循环 While…Wend循环用于循环次数未知的循环,其语法格式 如下: While <条件表达式> [<语句组>] Wend 当条件表达式的值为True时执行循环体,为False时结束 循环,用如图5-5所示的流程图表示。
入项;组合框是由文本框和列表框组合而成,因此,组合框 具有文本框和列表框的功能,既可以输入项也可以选择项,
但任意时刻最多只能选择一个项,选中的项将显示在组合框
中。
5.5.1 列表框 1.列表框的常用属性 (1)List属性 存放列表框中的所有项,是一个一维字符串数组,数组 名为List,下标为项的索引值,从上到下,第一个项的索引值 为0,第二个项的索引值为1,以此类推。 (2)ListCount属性 返回列表框中项的个数。 (3)ListIndex属性 返回当前选中项的索引值。若有多个项被选中,则返回 最后一个选中项的索引值;也可以给该属性赋一个整数值来选 中对应索引值的项;如果没有选中任何项,ListIndex属性值 为-1。 (4)Selected属性 判断列表框中的某个项是否被选中,选中为True,否则 为False。该属性是一个一维布尔或逻辑型数组,数组名为 Selected,下标为项的索引值。

C语言程序设计_05循环结构程序设计

C语言程序设计_05循环结构程序设计

5.2 DO…WHILE循环结构 5.2.1 DO…WHILE语句的格式 DO…WHILE语句的一般格式为: DO 语句 WHILE(表达式); DO…WHILE语句中的表达式表示循环的条件,可 以是任何表达式,常用的是关系表达式和逻辑表达 式。表达式必须加圆括号。语句是重复执行的部分, 称作循环体。
由亍循环体在表达式2乊后表达式3乊前执行所以把循环体语句放在表达式3的开头循环体语句不原来的i构成逗号表达式作为循环语句新的表达式3从而也就没有循环体语句了
第5章 循环结构程序设计
5.1 WHILE循环结构 5.2 DO…WHILE循环结构 5.3 FOR循环结构 5.4 与循环有关的控制语句 5.5 3种循环语句的比较 5.6 循环的嵌套 5.7 循环结构程序举例 本章小结
图5-6 FOR语句执行过 程
FOR语句的执行过程如图5-6所示。具体由以下几步 完成: (1)求表达式1。 (2)求表达式2,并判定其值为0或非0。若值为非0, 转步骤(3);否则结束FOR语句。 (3)执行语句,然后求表达式3。 (4)转向步骤(2)。 由FOR语句的执行流程可知,表达式1的作用是为循 环控制的有关变量赋初值,表达式2是循环控制条件, 表达式3用于修正有关变量,语句是重复执行部分。
【例5.7】输入20个数,求出其中的最大值与最小值。
5.3.3 FOR语句的各种变形 1.在FOR语句中省略表达式 FOR语句中的3个表达式可以部分或全部省略,下面 给出语句的4种基本变形。 (1)表达式1移至FOR语句前,但它后面的分号必 须保留。这时FOR语句的形式为: 表达式1; FOR(; 表达式2; 表达式3) 语句
(2)表达式3移至循环体语句之后,但它前面的分 号必须保留。FOR语句的形式为: FOR(表达式1; 表达式2;) { 语句; 表达式3; } 对于求P=5!的程序段,省略表达式3,将其放在循环 体中,则程序段写成:

第5章-循环结构程序设计PPT优秀课件

第5章-循环结构程序设计PPT优秀课件
17
5.3.1 前测型Do…Loop循环语句
格式:
Do [While | Until <条件表达式>] <语句块> [Exit Do] <语句块>
Loop
18
5.3.1 前测型Do…Loop循环语句
前测型Do…Loop循环的流程图
Do While…Loop流程图
Do Until…Loop流程图
条件表达式 值为真?
格式:
Do <语句块> [Exit Do] <语句块>
Loop [While | Until <条件表达式>]
23
5.3.1 后测型Do…Loop循环语句
说明:
后测型Do…Loop循环语句与前测型Do…Loop循环语句的主 要区别在于:
后测型要先执行一次循环体,再判断条件;而前测型要 先判断条件,然后根据判断结果决定是否执行循环体。因此 对于后测型,不管条件是否满足,循环体至少有一次执行机 会。
16
5.3 Do…Loop循环语句
导入:
Do…Loop循环也属于条件型循环,即根据条件的 成立与否来决定是否执行循环。Do…Loop循环的应 用具有很强的灵活性,主要体现在:它既能指定循环 开始条件,又能指定循环结束条件;既能构成前测型 Do…Loop循环语句,又能构成后测型Do…Loop循 环语句。
25
5.3.1 后测型Do…Loop循环语句 【例5-10】将400~600间能够被3整除的数 输出(上机练习)
【例5-11】(略)
26
5.4 循环嵌套
介绍:
一个循环结构中又包含一个或多个循环结构被称为 循环嵌套,或称多重循环。 多重循环对嵌套的层数没有限制。有几层嵌套,就 称为几重循环,如二重循环、三重循环、四重循环 等。一般地,把嵌套在一个循环体内部的另一个循 环结构称为内循环;这样,嵌套了其他内循环部分 的循环结构就称为外循环。 为了使多重循环结构具有较好的可读性,通常用缩 进方式书写相应的源代码。

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

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

14
第5章
循环结构程序设计
5.2 for语句 结构
1. for语句一般形式: for 目标变量 in 序列对象: 循环体语句 说明:
for语句的首行定义了目标变量和遍历的序 列对象,后面是需要重复执行的语句块。语 句块中的语句要向右缩进,且缩进量要一致。
15
第5章
循环结构程序设计
注意:
(1)for语句是通过遍历任意序列的元素来建立 循环的。 (2)for 语句也支持一个可选的else块,一般格 式如下: for 目标变量 in序列对象: 语句块 else: 语句
5
第5章
循环结构程序设计
在while语句中使用else子句
while exp: 循环体 else: 语句
Python可以在循环语句中使用else子句,即构 成了while.......else循环结构。
6
第5章
循环结构程序设计
例 :求

100
n 1
n
开始 sum,n=0,1 n<=100
1)问题分析:
29
第5章
循环结构程序设计
5.4 循环控制语句
有时候我们需要在循环体中提前跳 出循环,或者在某种条件满足时,不执行 循环体中的某些语句而立即从头开始新的 一轮循环,这时就要用到循环控制语句 break、continue和pass语句。
30
第5章
循环结构程序设计
(1) break语句
一般格式 break 功能
371printdddijk40728python语言程序设计第5章循环结构程序设计第5章循环结构程序设计循环结构程序设计51while语句当型循环52for语句结构53循环的嵌套54循环控制语句55循环结构程序举例2第5章循环结构程序设计循环结构的基本类型exptaf

第5章 循环结构程序设计

第5章 循环结构程序设计

输入学生2的三门课成绩,并计算平均值后输出
scanf(“%f,%f,%f”,&s1,&s2,&s3);
aver=(s1+s2+s3)/3;
printf(“aver=%7.2f”,aver); 要对50个学生进行相同操作
重复50次
大多数的应用程序都会包含循环结构
循环结构和顺序结构、选择结构是结构 化程序设计的三种基本结构,它们是各 种复杂程序的基本构造单元
(1) 先求解表达式1 (2) 求解表达式2,若其值为真,执行循环体, 然后执行下面第(3)步。若为假,则结束循环, 转到第(5)步 (3) 求解表达式3 (4) 转回上面步骤(2)继续执行 (5) 循环结束,执行for语句下面的一个语句
5.4用for 语句实现循环
for(i=1;i<=100;i++) sum=sum+i; 等价于 用for语句更简单、方便 i=1; while(i<=100) { sum=sum+i; i++; }
要向计算机输入全班50个学生的成绩
分别统计全班50个学生的平均成绩 求30个整数之和 教师检查30个学生的成绩是否及格
5.1为什么需要循环控制
例如:全班有50个学生,统计各学生 三门课的平均成绩。
输入学生1的三门课成绩,并计算平均值后输出 scanf(“%f,%f,%f”,&s1,&s2,&s3); aver=(s1+s2+s3)/3; printf(“aver=%7.2f”,aver);
n 1
100
5.3用do---while语句实现循环
解题思路:
sum=0 i=1 sum=sum+i i=i+1

第5章 循环结构程序设计PPT课件

第5章 循环结构程序设计PPT课件

}
C语言程序设计
第5章 循环结构程序设计
§ 5.2 用while语句实现循环i=1w; hile (i<=100)
2、while语句的注意事项
{ sum=sum+i;
注意:
i++; }
(1) 循环体如果包含一个以上的语句,应该用花括弧括
起来,以复合语句形式出现
(2) 在循环体中应有使循环趋向于结束的语句。如果无
C语言程序设计
第5章 循环结构程序设计
§ 5.2 用while语句实现循环
1、while语句的一般形式
while语句用来实现“当型”循环结构 一般形式: while (表达式)
循环体语句
当表达式为非0值时,执行while 语句中的循环体语句 其特点是:
先判断表达式,后执行语句
C语言程序设计
第5章 循环结构程序设计
} 运行结果:
}
1↙ sum=55 再运行一次:
}说明:当while后面的表达式的第一次的
值为“真”时,两种循环得到的结果相
11↙ sum=0
同。否则,二者结果不相同
C语言程序设计
第5章 循环结构程序设计
§ 5.4 用for语句实现循环
1、for语句的一般形式
C语言中的for语句使用最为灵活,不仅可以用于 循环次数已经确定的情况,而且可以用于循环次数 不确定而只给出循环结束条件的情况,它完全可以 代替while语句
语句,转到第(5)步
(3) 求解表达式3
(4) 转第(2)步骤继续执行
(5) 循环结束,执行for语句下面的一个语句
C语言程序设计
第5章 循环结
执行表达式1
循环初始条件

第5章-C语言程序设计(第2版)教材习题答案

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。

2011年10月第二版。

ISBN:978-7-302-26972-4。

售价:35元。

【答案版本】本习题答案为2012年2月修订版本。

一、选择题1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。

A. while循环执行10次B. 循环是无限循环C. 循环体语句执行一次D. 循环体语句一次也不执行2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。

A. 运行程序段后输出1B. 程序段执行无限次C. 运行程序段后输出0D. 程序段中的控制表达式是非法的3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。

A. int a=1,b=2; while(b--);B. int a=1,b=2; do a++; while(a==b);C. int a=1,b=2; while(a=3);D. int a=1,b=2; do b-- while(b==0);4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。

do{ printf(“%d\n”,i--); } while(i!=0);A. 0B. 1C. 5D. 无限5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。

A. 0B. 5C. 10D. 无限6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。

A. break语句用于循环体内,它将结束该循环B. break语句用于开关语句,它结束该开关语句C. break语句用于if语句的内嵌语句内,它结束该if语句D. break语句在一个循环体内可使用多次7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。

C语言程序设计循环结构程序设计

C语言程序设计循环结构程序设计


体现式

语句
假如体现式旳值一开始就为0,则语 句一次也不会被执行。
上一页
下一页
while语句举例
问题: 求学生旳平均成绩,以输入负数成绩为结束
算法分析:
1. 定义变量score存储学生成绩,定义s=0存储累加旳成绩,
定义n=0统计录入旳成绩数目。
2. 输入第一种学生旳score
3. 若score>=0,执行第4步,不然执行第7步
上一页
下一页
例: 求 1+2 +…+99
分析:用变量i从1到99循环, 把i旳值累加到变量s中,最 终输出s旳值。
程序如下:
#include<stdio.h> main( ) { int i,s=0;
for(i=1;i<=99;i++) s=s+i;
printf(“s=%d”,s); }
上一页
下一页
在某些情况下,for语句中旳体现式1、2、3都能够 省略,而改用其他旳方式来实现这些功能。我们还用 上面旳例子阐明for语句省略体现式旳情形。
上一页
下一页
1.省略体现式1: #include<stdio.h> main( ) { int i=1,s=0;
for(;i<=99;i++) s=s+i;
因为do-while语句至 少要被执行一次,特
别要注意n和s旳取值 问题!
s=s+score;
}while(score>=0);
if(n>1) printf (“ \n %f” ,(s-score)/(n-1));
else printf(“no student score!”);

循环结构程序设计

循环结构程序设计

第5章 循环结构程序设计
5.1 循环语句 5.1.2 while语句 while语句用来实现“当型”循环结构。 while语句的一般形式如下: while(表达式) 语句 /*循环体*/ 功能:当表达式的值为真时,执行 while语句中的循环体。
表达式 真

语句
第5章 循环结构程序设计
5.1 循环语句 5.1.2 while语句 while语句用来实现“当型”循环结构。 while语句的一般形式如下: while(表达式) 语句 /*循环体*/ 功能:当表达式的值为真时,执行 while语句中的循环体。
例5.6 判断一个数m是否是素数。
开始 输入m
i=2
i<=m-1 假 真 m%i==0 真 假 i=i+1 真 假
#include <stdio.h> main() { int m,i; scanf("%d",&m); for(i=2;i<=m-1;i++) if(m%i==0) break; if(i<=m-1) printf("%d不是素数",m); else printf("%d是素数",m); }
第5章 循环结构程序设计
5.2 多重循环 在循环体语句中又包含有另一个完整的循环结构的 形式,称为循环的嵌套(又称双重循环)。如果内循环 体中又有嵌套的循环语句,则构成多重循环。 嵌套在循环体内的循环体称为内循环,外面的循环称为 外循环。 while、do…while、for三种循环都可以互相嵌套。
a=1
a<=9 真 b=1
假 b<=9 真 输出a×b=c b=b+1 a=a+1

VB第5章 循环结构程序设计

VB第5章 循环结构程序设计

教案讲稿第五章循环结构程序设计[旧课复习]:复习内容:1.多分支选择结构语句2.选择结构的嵌套复习目的:学生回顾多分支选择结构的实现语句和嵌套语句的使用复习时长:大约8分钟[新课导入]:导入方式:以日常生活中的实例让学生理解什么是循环结构导入目的:增强学生的理解能力导入时长:大约7分钟[新课讲授]:重点:Do…Loop和For…Next循环语句的使用难点:多重循环语句的使用方法:运用多媒体辅助教学,采用讲授法和案例教学法5.1循环语句循环结构是专门用于实现有规律的重复性操作的算法结构,是结构化程序设计的3种基本结构之一。

所谓循环,是指在一定的条件下多次重复执行一组语句。

循环结构由两部分组成。

(1)循环体:即要重复执行的语句序列。

(2)循环控制部分:指定循环条件来控制重复次数的语句。

正常情况下,循环次数必须是有限的。

5.1.1 Do…Loop语句若事先不知道循环次数,只知道循环结束条件,可以使用Do…Loop循环。

Do…Loop循环语句有前测型循环和后测型循环两种语法结构。

1. 前测型Do…Loop循环前测型循环是先判断条件,根据条件成立与否决定是否执行循环体,这种情况下,循环体有可能一次都不被执行。

前测型循环有两种语法格式:格式1(当型前测型):Do While〈条件〉[〈语句列1〉][ Exit Do ][〈语句列2〉]Loop格式2(直到前测型):Do Until 〈条件〉[〈语句列1〉][ Exit Do ][〈语句列2〉]Loop说明:(1)当VB执行Do While…Loop循环时,先判断指定的条件,若条件为True,执行循环体,条件为False时退出循环;当执行Do Until…Loop循环时,先判断指定的条件,若条件为False,执行循环体,条件为True时退出循环。

(2)〈条件〉是条件表达式,为循环的条件,其值为True或False。

如果省略条件即条件为Null,则条件会被当作False。

第5章 循环结构程序设计

第5章 循环结构程序设计
计举例
例5.8 例5.9 例5.10 例5.11 例5.12
– 三种循环的比较:
• 三种循环可用来处理同一问题,一般它们可以互相代替。 • do-while循环类似于while循环。do-while循环至少要执 行一次循环体,而while和for循环在进入循环体之前,首先 要判断循环条件,如果条件不成立,则循环体一次也不执 行就结束循环流程。 • while和do-while循环,在while后面指定循环条件。而 for循环可以在表达式3中包含促使循环结束的操作,甚至可 以将循环体中的操作全部放到表达式3中。 • 用while和do-while循环时,循环变量初始化的操作应在 while和do-while之前完成。而for语句可以在表达式1中实 现循环变量的初始化。 首页 上一页
5.2 实现循环结构的语句
• while语句
while语句用于构成“当型”循环结构。 形式: while (表达式 表达式) 表达式 {循环体语句 循环体语句 } 其流程如右图所示: 例5.1 例5.2

关于while循环结构的注意事项:
• while循环结构的特点是“先判断,后执行”。 • 若循环体中包含多个语句,则应以复合语句的形式出现。 • 循环体内要有促使循环结束的条件。否则会形成“死循 环”。 • 为使循环能正确开始运行,要做好循环前的准备工作。 首页 上一页
5.3 循环嵌套的概念及实现
循环的嵌套是指:在一个循环体内又包含了另一个完整的循 环结构。三种循环不仅可以自身嵌套,而且还可以互相嵌套。 例5.6 例5.7
– 使用循环的嵌套结构的注意事项
• 外层循环应“完全包含”内层循环,不能发生交叉。 • 嵌套的循环控制变量一般不应同名,以免造成混乱。 • 嵌套的循环要注意正确使用“缩进式”书写格式来明 确嵌套循环的层次关系,以增加程序的可读性。

C语言程序设计教程(第4版)_第5章_循环结构

C语言程序设计教程(第4版)_第5章_循环结构

5.1 for语句
程序流程图: 程序:example5_2.c 思考: ①该算法的缺点; ②设计更好的算法。 ③假如输入的数可以为任意整数, 如果a≤b,计算 i ; 如果a>b,则计算 i 。 请设计算法并编写程序验证。
i b ia ia i b
5.1 for语句
例3:编写程序,从键盘输入m和n的值,用符号“*”在屏幕 上打印出如下所示具有m行n列的矩形图案。 ******* ******* ******* ******* ******* ******* ******* ******* 分析: ①图案有规律,共有m行,每行有n个*号。 ②可采用循环嵌套的方式: 第1层(外层)控制行数,用i来表示,输出m行“*” ; 第2层(内层)控制列数,用j来表示,输出n列“*” 。
100
5.1 for语句
for语句所具有的特性。 1.<初始表达式>可以省略,但须保留分号(;),同时在for之 前必须给循环控制变量赋值,形式为: <初始表达式>; for(;<条件表达式>;<循环表达式>) <循环体语句> 2.<条件表达式>一般不可省略,否则为无限循环。 例如: for(i=1;; i++) sum =sum+i; 相当于条件总为真,程序会一直不停地执行直到“数据溢出”。
5.2 while语句
例7:编写程序,统计从键盘输入的字 符个数(回车换行符也是一个字符) ,当遇到结束标志时程序结束。 分析:关键是循环计数。
开始 count=0
(ch=getchar())!=EOF
F
设置一个累加器count(初值为0),
每次从键盘输入一个字符,只要该字 符的值不等于结束标志,累加器的值 就增1:count=count+1; 算法流程图如图所示。 程序: example5_7.c

C言语课件-第5章 循环结构程序设计

C言语课件-第5章 循环结构程序设计
C言语课件-第5章 循环结 构程序设计
C言语课件-第5章 循环结构程序设计
循环结构的概念
1 基本概念
循环结构是一种程序设计结构,用于重复执 行特定的代码块。
2 分类
循环结构可以分为while循环、do while循环和 for循环。
3 循环流程控制结构
循环结构由控制条件、循环体和循环控制语 句组成。
3 下一学习步骤建议
提供学习者下一步继续深入学习的建议和资源。
4 循环的几种实现方式
循环可以通过不同的控制条件和循环体实现 不同的功能。
while循环
1 语法格式
while(条件表达式) { // 循环语句块
}
2 例子讲解
使用while循环计算1到100的和。
do while循环
1 语法格式
do { // 循环语句块
} while(条件表达式);
2 例子讲解
1 游戏规则
玩家猜测计算机生成的随 机数字,根据提示进行猜 测,直到猜对或者达到最 大次数。
2 代码实现分析
介绍猜数字游戏的代码实 现思路和算法。
3 代码实现细节讲解
详细演示如何使用循环结 构实现猜数字游戏。
小结
1 学习重点回顾
回顾循环结构的概、语法和应用场景。
2 学习难点梳理
梳理学习过程中遇到的难点和需要进一步掌握的知识点。
1 break语句
用于跳出循环体,终止循环的执行。
2 continue语句
用于跳过本次循环的剩余代码,继续下一次 循环。
循环小结
1 循环的优缺点
循环结构可以使代码更简洁、高效,但滥用可能导致逻辑错误和性能问题。
2 循环应用的场景举例
循环结构常用于处理数组、列表、文件等需要重复操作的情况。

《C语言程序设计》课件 《C语言程序设计》课件 第5章-循环结构程序设计

《C语言程序设计》课件 《C语言程序设计》课件 第5章-循环结构程序设计

Page 28
参考代码
#include<stdio.h> void main() {
char ch; int char_num=0,int_num=0,other_num=0; while((ch=getchar())!=‘\n’) //回车键结束输入 {
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') char_num++;
printf("************\n ");
printf("************\n ");
printf("************\n ");
printf("************\n "); printf("************\n "); 等价 for(int i=1;i<=8;i++)
{ s=s+i;
i++; //表达式3移至循环体末尾
}
printf("s=%d",s);
}
<<C语言程序设计>>
Page 19
随堂练习
例 编程计算n的阶乘。
n!=1 2 3 ……〔n-1〕 n
思路:
类似于累加求和,每一次循环乘上一个数字,求和 将和初始化为0,这里应把积初始化为?
<<C语言程序设计>>
#include "stdio.h" void main( ) { int i,sum=0;

第五章-循环结构程序设计编程题(参考答案)

第五章-循环结构程序设计编程题(参考答案)

第五章循环结构程序设计1.用for循环语句编程输出1~20之间的所有整数,两数之间以空格分隔。

#include<stdio.h>void main(){int i;for(i=1;i<=20;i++)printf("%d ",i);printf("\n");}2.用for循环语句编程输出20~1之间的所有整数,两数之间以空格分隔。

#include<stdio.h>void main(){int i;for(i=20;i>=1;i--)printf("%d ",i);printf("\n");}3.用for循环语句编程输出A~Z之间的所有字符,两字母之间以空格分隔,要求一行输出8个字符。

#include<stdio.h>void main(){char c;for(c='A';c<='A'+25;c++){putchar(c);}}4.输出100~200之间所有能被3和7整除的数(每行输出4个数)。

#include<stdio.h>void main(){int i,j=0;for(i=100;i<=200;i++){if(i%21==0){ j++;printf("%12d",i);if(j%4==0) printf("\n");}}}5.输出1至1000之间所有满足用3除余2、用5除余3、用7除余2的数(要求每行只输出5个数)。

#include<stdio.h>void main(){for(i=1;i<=1000;i++){if((i%3==2)&&(i%5==3)&&(i%7==2)){ j++;printf("%12d",i);if(j%5==0) printf("\n");}}}6.先读入一个正整数n,然后计算并显示前n个偶数的和。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


9
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
• 5.1.8 goto语句 语句 • goto(转向)语句是一种无条件转移语句。 • goto语句的使用格式为: • goto 语句标号; • 其中标号是一个有效的标识符,这个标识符加上一个“:”一起出 现在函数内某处,执行goto语句后,程序将跳转到该标号处并执 行其后的语句。
11
)。
• A. 6,10

C. 4,6
D. 3,4
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
• 【例5-4】执行下列程序段,其中的do-while循环一共执行 • • • • static int x; do x+=x*x; while (x); )。
15




• •

冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
结束语
• 循环结构是程序中一种很重要的结构,利用它可以在给定条件成 立时,反复执行某程序段。本章讨论了循环结构的思想、三种循 环语句和其他实现跳转功能的语句,配有相关题解,以供读者复 习练习使用。

5
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
• 5.1.4 do-while语句 语句 • do-while语句的一般形式为: • • • do 语句; while(表达式);
• 这个循环与while循环的不同在于:它先执行循环中的语句,然后 再判断表达式是否为真 • 其执行过程,如图所示。

【例5-7】与下列程序段的基本功能不相同的是( x=0; LOOP:++; if(x<10) goto LOOP; A. for(x=0;x<10;x++); B. x=10; C. do D. x=0; x=0; while(x++<9); while (x++<10);
13
)。


16

【例5-9】下列程序的主要功能是求出所有3位整数中能被8整除余7,或 者被7整除余8的所有整数。请填写程序中缺少的语句成份。 • main() • { int k=100; • do if( ) • printf("%d\n",k); • while(k++<999); • }
• • • • • • • • • • • • • • • • •
【例5-6】执行下列程序段后的输出是 x=0; while(x<3) for(;x<4;x++) {printf("%1d",x++); if(x<3)continue; else break; printf("%1d\n",x); }
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
第5章 循环结构程序设计 章
5.1 知识点回顾 5.2 典型例题分析

1
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
5.1 知识点回顾
• 5.1.1 循环结构的设计思想 • 循环结构是程序中一种很重要的结构。其特点是,在给定条件成 立时,反复执行某程序段,直到条件不成立为止。 • C语言提供了多种循环语句,可以组成各种不同形式的循环结构。 • (1)while语句。 • (2)for语句。 • (3)do-while语句。
14
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21

【例5-10】编写一个程序,统计并输出能被3整除或能被5整除或能被7整 除的所有3位整数。 【例5-11】编写一个程序,依次输入5个学生的7门课程的成绩,每输入 一个学生的7门课程成绩后,立即统计并输出该学生的总分和平均分。 【例5-12】有一个偶数,当它分别被3、4、5、6除时,余数均为2,编 写程序,求满足上述条件的最小偶数。 【例5-13】编写程序,计算并输出所有三位整数中能被4整除且十位不是 4的数之和与其中的最大数、最小数。 【例5-14】一球从200米高度自由落下,每次落地后反跳回原高度的四分 之一,再落下。编程序,求它第10次落地时共经过的路程及第10次落地 后反弹的高度。 【例5-15】编写程序,计算并输出下面级数前n项中(n=50)偶数项的和。 1*2*3+2*3*4+3*4*5+……+n*(n+1)*(n+2)+…

3
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
• 5.1.3 for语句 语句 • 在C语言中,for语句使用最为灵活,它完全可以取代while语句。 它的一般形式为: • for(表达式1;表达式2;表达式3) 语句; • for语句最简单的应用形式也是最容易理解的形式如下: • for(循环变量赋初值;循环条件;循环变量增量) 语句; • 循环变量赋初值总是一个赋值语句,它用来给循环控制变量赋初 值;循环条件是一个关系表达式,它决定什么时候退出循环;循 环变量增量,定义循环控制变量每循环一次后按什么方式变化。 这三个部分之间用“;”分开。
语句
真 表达式 假

6
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
• 5.1.5 多重循环 • 如果一个循环体内又包含另一个完整的循环结构,称为循环的嵌 套。内嵌的循环中又可以嵌套循环,这就是多重循环。 • 多重循环的嵌套次数可以是任意的,按照嵌套层次数,分别叫两 重循环、三重循环等。处于内部的循环叫内循环,处于外部的循 环叫外循环。

2
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
• 5.1.2 while语句 语句 • while语句的一般形式为: • while(表达式) 语句; • 其中表达式是循环条件,语句为循环体。 • 其执行过程,如图所示。出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
5.2 典型例题分析
• 【例5-1】在三种循环结构中,先执行循环操作内容(即循环体), 后判断控制循环条件的循环结构是 循环结构。 • 【例5-2】三种循环语句都能解决循环次数已经确定的次数型循环, 其中 循环语句最适合。 • 【例5-3】执行下列程序段后的输出是( • • • x=l; while(x<=3) x++,y=x+++x; printf("%d,%d",x,y); B. 5,8
次。
• 【例5-5】下列程序段的输出结果是( • • • • A. ** for(i=0;i<1;i+=l) for(j=2;j>0;j--) printf("*"); B. *** C. **** D. ******

12
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21

8
{ …… if(表达式2) break; ……
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
• 5.1.7 continue语句 语句 • continue(延续)语句的作用是跳过循环体中剩余的语句而强行 执行下一次循环。continue语句只用在for、while、do-while等循 环体中,常与if条件语句一起使用,用来加速循环。 • continue语句在while中的使用形式: • while(表达式1) • • • • } { …… if(表达式2) continue; ……
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
• • • • • • • • • • •
【例5-8】阅读下列程序,写出程序运行后的输出结果 main( ) {int x=18,i; for(i=2;i<9;i++) if(x%i==0) { printf("%1d\n",i); x=x/i--; if(x==0)break; } }

4
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
• 使用for语句还要注意以下几个问题: • (1)for循环中的“表达式1(循环变量赋初值)”、“表达式2 (循环条件)”和“表达式3(循环变量增量)”都是可选择项, 即可以省略,但“;”不能省。 • (2)表达式1可以是设置循环变量的初值的赋值表达式,也可以 是其他表达式。 • (3)表达式1和表达式3可以是一个简单表达式或逗号表达式。 • (4)表达式2一般是关系表达式或逻辑表达式,但也可以是数值 表达式或字符表达式,只要其值非零,就执行循环体。

7
冶金工业出版社
高等学校21世纪计算机教材 高等学校21世纪计算机教材 21
• 5.1.6 break语句 语句 • break(间断)语句通常用在循环语句和switch语句中。当break 用于开关语句switch中时,可使程序跳出switch而执行switch以后 的语句。 • 当break语句用于do-while、for、while循环语句中时,可使程序 终止循环而执行循环后面的语句,通常break语句总是与if语句连 在一起。即满足条件时便跳出循环。 • break语句在while中的使用形式: • while(表达式1) • • • • }
相关文档
最新文档