C语言第5章循环结构程序设计.ppt

上传人:鲁** 文档编号:569140983 上传时间:2024-07-27 格式:PPT 页数:47 大小:1.39MB
返回 下载 相关 举报
C语言第5章循环结构程序设计.ppt_第1页
第1页 / 共47页
C语言第5章循环结构程序设计.ppt_第2页
第2页 / 共47页
C语言第5章循环结构程序设计.ppt_第3页
第3页 / 共47页
C语言第5章循环结构程序设计.ppt_第4页
第4页 / 共47页
C语言第5章循环结构程序设计.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《C语言第5章循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言第5章循环结构程序设计.ppt(47页珍藏版)》请在金锄头文库上搜索。

1、全国计算机等级考试二级C语言培训第第5章章 循环结构程序设计循环结构程序设计_主讲教师:姜 毅2024/7/271全国计算机等级考试二级C语言培训章节知识点: 5.1 while语句与dowhile语句5.2 for循环语句5.3 循环嵌套语句5.4 break语句及continue语句的应用2024/7/272全国计算机等级考试二级C语言培训知知识点点所占分所占分值考考试概率概率难易程度易程度循循环结构的构的认识和和执行原理行原理2 2分分100%100%whilewhile语句的句的执行原行原理理2 2分分60%60%dodowhilewhile语句的一句的一般形式和般形式和执行原行原理理

2、2 2分分80%80%forfor语句的一般形式句的一般形式和和执行原理行原理2 2分分70%70%循循环结构的嵌套构的嵌套6 6分分100%100%breakbreak和和continuecontinue语句在循句在循环结构中构中的使用的使用4 4分分100%100%笔试部分2024/7/273全国计算机等级考试二级C语言培训知知识点点所占分所占分值考考试概率概率难易程度易程度循循环结构的构的一般形式和正确使用一般形式和正确使用1010分分90%90%breakbreak语句的使用句的使用5 5分分40%40%上机部分2024/7/274全国计算机等级考试二级C语言培训 循环结构是结构化程序

3、设计的三种基本结构之一,也是最重要、最常用的一种基本结构。 其特点是:在给定条件成立时,反复执行某程序段,直到给定条件不成立时为止。 给定的条件称为循环条件,反复执行的程序段称为循环体。循环结构概述:2024/7/275全国计算机等级考试二级C语言培训2024/7/276循环结构也称重复结构:程序中反复执行的一组指令或程序段。循环体:被反复执行的程序段。循环变量:用来控制循环是否继续进行的变量。 循环结构有两种类型即当型循环和 直到型循环。全国计算机等级考试二级C语言培训方框图及执行过程 : 非0(真) 0(假) 表达式 语 句 当型循环 非 0(真) 0(假) 语句A 表达式 直到型循环20

4、24/7/277全国计算机等级考试二级C语言培训5.1 while语句与dowhile语句由while语句构成的循环也称”当”循环。一般形式如下:while(表达式) 循环体语句循环体语句 whilewhile循环流程图2024/7/278全国计算机等级考试二级C语言培训2024/7/279while语句的说明:(1) while语句属当型循环,即先判断条件(表达式),再执行循环体。(2) 表达式为一条件,用于控制循环是否可继续执行,故称控制表达式。(3) 语句A为内嵌式语句,是循环结构的循环体。它可以是单语句也可以是复合语句,且该语句中必须包含有对循环条件进行修改的语句。 非0 (真) 0

5、(假) 语句A 表达式 全国计算机等级考试二级C语言培训2024/7/2710例例5.1:编程求:编程求1+2+3+100的值。的值。分析: 求和的过程为: 1) S=1 S1 = S0 + 1 2) S=1+2 S2 = S1 + 2 3) S=1+2+3 S3 = S2 + 3 100) S=1+2+ +100 S100 = S99+100S0 = 0求和表达式: S = S + i初值: S = 0循环次数 i :1100全国计算机等级考试二级C语言培训2024/7/2711流程图:程序:main ( ) int s, i; s = 0,i = 1; while ( i = 100 )

6、s+=i; i+; printf(s=%ldn, s); 循环条件控制语句循环条件改变语句全国计算机等级考试二级C语言培训注意: 如果循环体中包含一个以上的语句,应该用花括弧括起来,以复合语句的形式出现。如果不加花括弧,则while语句的范围只到while后的第一个分号处。 在循环体中应该有使循环趋向结束的语句,否则会导致死循环。如上例中的语句改写成如下形式: i=1; while ( i = 100 ) s+=i; i+; 则while语句的循环体语句为: s+=i; 循环变量i的值没有改变,循环不能终止,陷入死循环全国计算机等级考试二级C语言培训5.2 do-while5.2 do-whi

7、le语句语句构成构成的循环的循环 由由do-while语句构成语句构成的循环称为的循环称为”直到型直到型”循环,循环,do-while语句的一般形式语句的一般形式为:为: do 循环体语句循环体语句 while(表达式表达式);2024/7/2713全国计算机等级考试二级C语言培训2024/7/2714 执行内嵌语句A,再判断表达式(条件)若为真,则继续执行内嵌语句A,再判断表达式(条件),直到表达式的值为假时,执行do-while后面的语句。执行过程:与while语句的不同: do-while语句至少执行循环体一次,但while语句当条件为假时不执行循环体语句。全国计算机等级考试二级C语言培

8、训2024/7/2715例:while与do-while区别include main( )int i=65; doputchar(i); i+;while(iA);include main( )int i=65; while(iA) putchar(i); i+; 无输出输出A全国计算机等级考试二级C语言培训例例5.2:编程求:编程求1+2+3+100的值。的值。2024/7/2716#include “stdio.h”void main ( ) int s, i; s = 0; i = 1; do s+=i; i+; while( i = 100 ); printf(s=%ldn, s);

9、全国计算机等级考试二级C语言培训5 5.2 .2 forfor循环语句循环语句一般形式为:for(表达式1;表达式2;表达式3) 循环体语句 在所有循环语句中for语句使用最为灵活,它完全可以取代while语句。 2024/7/2717各部分的作用:表达式1 :循环变量赋初值。表达式2 :判断循环条件,若省略,则认为循环条件恒为“真”。表达式3 :修改循环变量的值。语 句 :循环体全国计算机等级考试二级C语言培训2024/7/2718说明: for语句的一般形式中的“表达式1”可以省略。此时应该在for语句之前给循环变量赋初值。 如果表达式2省略,即不判断循环条件(认为表达式始终为真),循环会

10、无终止的运行下去。 表达式3省略时,应另外设置条件保证循环能正常结束。如在循环体内修改循环变量。 全国计算机等级考试二级C语言培训2024/7/2719说明: 表达式1和表达式3可以是简单的表达式,也可以是一个逗号表达式;它可以与循环变量有关,也可以与循环变量无关。 循环体如果有多条语句,必须用大括号括起来。 以上三个表达式在语法上都可以省略,但分号不能省,例如:for(;)。 循环条件表达式一般是关系表达式或逻辑表达式, 它的判断依据依然是看最后结果,结果为0, 循环结束, 不为0, 循环继续。全国计算机等级考试二级C语言培训2024/7/2720如:for (i=1; ;i+) sum=s

11、um+i;它相当于:i=1; while (1) sum=sum+i; i+;该循环是死循环如:for (i=1; i100; ) sum=sum+i; i+; 在循环体内修改循环变量,循环可以正常终止相当于: while (i100) sum=sum+i; i+;如:for ( ; i100; ) sum=sum+i; i+;(1)在循环语句前给循环变量赋初值(2)循环体内修改循环变量全国计算机等级考试二级C语言培训2024/7/2721例:for( y=20,x=1 ;x-y ;x+=x ) printf(%d,%dn,x,y);循环变量赋初值循环条件循环变量增值该语句输出如下:1, 19

12、2, 184, 178, 16全国计算机等级考试二级C语言培训例5.4:用for语句求1+2+3+100的和。main( ) int i, sum=0;for (i=1;i=100;i+ ) sum= sum + i; printf(“sum=%dn”, sum);2024/7/2722全国计算机等级考试二级C语言培训2024/7/2723例:求 n!分析: 求阶乘的过程为: 1) S=1 S1 = S0 1 2) S=12 S2 = S1 2 3) S=123 S3 = S2 3 n) S=12 n Sn = Sn-1100 S0 = 1求阶乘表达式: S = S i初值: S = 1循环次

13、数 i :1n全国计算机等级考试二级C语言培训2024/7/2724定义符号常量 N定义变量 i, ss=1; i=1iNs *= ii+输出 sYN流程图:程序:#define N 10main ( ) int i; long int s=1; for ( i=1; i=N; i+ ) s *= i; printf(s=%ldn, s); 全国计算机等级考试二级C语言培训2024/7/27251. 三种循环可以互相代替。2. for、while属当型循环,dowhile循环属直到型循环。3. 在for循环的循环体中无须对循环变量进行修改,其它两种循环则必须在循环体中对循环变量进行修改。4.

14、for循环的初始条件可在表达式1中进行设置,其它两种循环则必须在进入循环之前进行设置。三种循环几点说明:全国计算机等级考试二级C语言培训2024/7/2726例:求 水仙花数,即这个数等于它的百位、十位和个位数的立方和。如153是一个水仙花数,因为153分别用三种循环语句编写该程序。全国计算机等级考试二级C语言培训2024/7/2727#include void main( ) int n=100,i,j,k; /*i、j、k用来放这个数的百位、十位和个位*/ printf(水仙花数是:); while (n1000) i=n/100; j=(n/10)%10; k=n%10; if (n=i

15、*i*i+j*j*j+k*k*k) printf(%6dn,n); n=n+1; 全国计算机等级考试二级C语言培训2024/7/2728#include void main( ) int n=100,i,j,k; printf(“水仙花数是:”); do i=n/100; j=(n/10)%10; k=n%10; if (n=i*i*i+j*j*j+k*k*k) printf(%6d,n); n=n+1; while (n1000); 全国计算机等级考试二级C语言培训2024/7/2729#include void main( ) int n=100,i,j,k; printf(“水仙花数是:

16、”); for(n=100;n100) break; printf( sum=%dn, sum) ;例:2024/7/2732全国计算机等级考试二级C语言培训5. 4. 2 continue语句 continue是继续的意思, 所以continue语句的功能就是跳过循环中剩余的语句而继续执行下一次循环。continue语句只能用在循环语句中, 用在其它语句中没有任何作用。2024/7/2733 continue语句只用于循环结构的内部,常与if语句联合起来使用,以便在满足条件时提前结束本次循环。全国计算机等级考试二级C语言培训2024/7/2734例 对除5的倍数以外的1100的数求和。mai

17、n( )int i,s; s=0; for(i=1;i=100;i+) if (! (i%5) continue; s+=i;printf(“%d,%dn”,i,s); 如果if判断语句为真,则跳出本次循环,回到循环条件,判断是否进行下一次循环此处,当i为5的倍数时,!(i%5)为真,跳出本次循环,不执行continue下面的语句,直接进入下一次循环,即执行for语句运行序列如下: i if(!(i%5) si 1 假 s=0+1=1 2 假 s=1+2=3 3 假 s=3+3=6 4 假 s=6+4=10 5 真 不执行 6 假 s=10+6=16 全国计算机等级考试二级C语言培训m a i

18、 n( ) i n t i; f o r( i=1; i1 0 0; i+) if( i%7! =0) c o n t i n u e;/* 不能整除7就跳出本次循环*/ p r i n t f( “ %d” , i) ; 例 :2024/7/2735全国计算机等级考试二级C语言培训 break语句跳出本层循环break语句只能向外跳出一层, 例如在循环语句中嵌套了switch语句, 而break在switch语句中, 那么它只能跳出switch语句, 而循环还要继续。如果在循环嵌套语句中,break也是只能向外跳出一层。 continue跳出本次循环而继续执行本层循环中的下一次循环。小结:2

19、024/7/2736全国计算机等级考试二级C语言培训 我们称在一个循环体的内部包含了另外一个完整的循环结构成为循环结构的嵌套。内嵌的循环结构中还可以继续嵌套循环(即为多层循环)。每一层循环结构在逻辑上都必须是完整的。通常把里面带的循环称为“ 内循环” , 外面的循环称为“ 外循环” 。5.4 循环嵌套语句2024/7/2737说明: 嵌套的原则: 不允许交叉 循环与分支可以相互嵌套但不允许交叉。全国计算机等级考试二级C语言培训 3种循环结构( f o r循环、 w h i l e循环、 d o-w h i l e循环) 可以相互嵌套。需要理解的是, 内层的循环在语法上是外层循环的循环体的一部分

20、。因此, 外层循环每进行一轮, 内层循环要一直循环到结束。w h i l e ( 表达式1) f o r ( 表达式1; 表达式2; 表达式3) 例如: 2024/7/2738全国计算机等级考试二级C语言培训2024/7/2739* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *输出图形:for(i=1;i=4;i+) printf(“* * * * * * * *”); printf(“n”); 全国计算机等级考试二级C语言培训2024/7/2740 其中语句:printf(“* * * * * * * *”);等价于for

21、(j=1;j=8;j+) printf(“*”);于是构成了二重循环语句:for(i=1;i=4;i+) for(j=1;j=8;j+) printf(“*”); printf(“n”); 全国计算机等级考试二级C语言培训2024/7/2741 上面的例子中: 外循环由外循环控制变量i控制,i由1递增到4。for(i=1;i=4;i+) for(j=1;j=8;j+) printf(“*”); printf(“n”); 每1次的外循环中,都要执行由内循环控制变量j控制的8次内循环操作和1次换行操作。 由此:每次内循环输出一个星号,外循环输出一行(8个)星号,4次外循环,输出了4行8列星号。全国

22、计算机等级考试二级C语言培训2024/7/2742例 输出九九乘法表1 * 1 = 11 * 2 = 2 2 * 2 = 41 * 3 = 3 2 * 3 = 6 3 * 3 = 9 1 * 9 = 9 2 * 9 =18 9 * 9 = 81递增 19递增 99递增 39递增 29相同为1相同为2相同为3相同为9全国计算机等级考试二级C语言培训2024/7/2743main( ) int i ,j ; for ( i = 1 ; i = 9 ; i + ) for ( j = 1 ; j = i ; j + ) printf(%d*%d=%2d , i, j, i*j ); printf (

23、 n); 程序 :全国计算机等级考试二级C语言培训2024/7/2744例 输出如下图形: * * * * * * * * * * * * * * * * * * * * * * * *全国计算机等级考试二级C语言培训2024/7/2745 * * * * * * * * * * * * * * * * * * * * * * * *分析:共有5行,外循环 i:15第一行输出4个空格,1个星号第三行输出2个空格,5个星号第二行输出3个空格,3个星号第五行输出0个空格,9个星号空格用循环变量j控制,j=5-i星号用循环变量k控制,k=2*i-1全国计算机等级考试二级C语言培训2024/7/2746程序 :main( )int i,j,k; for(i=1;i=5;i+) for(j=1;j=5-i;j+) printf(“ ”); for(k=1;k=2*i-1;k+) printf(“*”); printf(“n”); 全国计算机等级考试二级C语言培训真题剖析2024/7/2747

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号