C语言课件:第五章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言课件:第五章.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 第五
- 资源描述:
-
1、共 38 页 第 1 1 页本章要点本章要点: : 建立循环程序设计的基本概念和逻辑思维建立循环程序设计的基本概念和逻辑思维 掌握循环程序设计的方法掌握循环程序设计的方法共 38 页 第 2 2 页什么是循环?什么是循环?为什么要使用循环?为什么要使用循环?l循环是有规律的重复操作。循环是有规律的重复操作。将复杂问题将复杂问题分解分解为简单的操作过程,程序只对简单过程描述,为简单的操作过程,程序只对简单过程描述,这些过程的多次这些过程的多次重复重复就可完成对问题的求解。就可完成对问题的求解。重复的频繁性决定了循环在程序设计中必不可重复的频繁性决定了循环在程序设计中必不可少!少!1001nyn问
2、题问题1 1:问题问题2 2:问题问题3 3:问题分解问题分解循环控制循环控制共 38 页 第 3 3 页l if-goto 循环循环l while循环循环l for循环循环l do while循环循环 先判断后循环先判断后循环 先循环后判断先循环后判断 特点:特点:难点:难点: C提供四种循环控制:提供四种循环控制:共 38 页 第 4 4 页一般形式:一般形式: goto 标号标号; 标号:语句标号:语句 其中:其中:标号用标识符表示,即由字母、数字和标号用标识符表示,即由字母、数字和下划线组成,且首字符必须为字母或下下划线组成,且首字符必须为字母或下划线划线。不能用整数作标号。不能用整数
3、作标号。用途:用途:1. 与与if语句一起构成循环结构。语句一起构成循环结构。2. 从循环体中跳到循环体外从循环体中跳到循环体外(一般指最深层)。一般指最深层)。3. 改变程序自上而下的执行顺序。改变程序自上而下的执行顺序。缺点:滥用缺点:滥用goto语句,可使程序无规律、可读性差。语句,可使程序无规律、可读性差。共 38 页 第 5 5 页#include “stdio.h”main( ) int i=1,s=0;L1: if(i=100) s=s+i; i+ ; goto L1; printf(“s=%dn”,s); i=100开始i=1,s=0s=s+i ,i+零零非零非零结束输出s 求
4、和求和 s=1+2+100运行结果运行结果: S=?共 38 页 第 6 6 页1.1.whilewhile循环语句的形式循环语句的形式 whilewhile(表达式)语句(表达式)语句 先判断条件,后执行语句先判断条件,后执行语句表达式语句零零非零非零2.2.执行过程执行过程注意注意: :v 循环体若包含一个以上循环体若包含一个以上语句,应该用花括号括起语句,应该用花括号括起来来( (使用复合语句使用复合语句) )。v 循环体内应注意设置修循环体内应注意设置修改循环条件的语句。否则改循环条件的语句。否则循环无法终止。循环无法终止。v 如果表达式的值第一次如果表达式的值第一次计算就等于计算就等
5、于0 0,则循环体一,则循环体一次也不执行。次也不执行。共 38 页 第 7 7 页 求求1001nni=1,sum=0i=100?sum=sum+ii=i+1零零非零非零#include “stdio.h”main() int i=1,sum=0; while (i=100) sum=sum+i; i+; printf(%d,sum);思考:删除思考:删除i+;i+;后果?后果? 调换调换i+;i+;与求和语句的后果?与求和语句的后果?共 38 页 第 8 8 页 输入一批正数,输入输入一批正数,输入0时表示输入结束,时表示输入结束,求这些正数的和。求这些正数的和。#include “std
6、io.h”main( ) int s=0, x; scanf(“%d”,&x); while( x!=0 ) s=s+x; scanf(“%d”,&x); printf(“s=%dn”,s); 零零非零非零x!=0开始s=0s=s+x结束输出s输入正数x输入正数x思考:取消循环内的输入语句后果?思考:取消循环内的输入语句后果? 共 38 页 第 9 9 页1. dowhile1. dowhile循环语句的形式循环语句的形式 do do 语句语句 while(while(表达式)表达式); 先执行语句,后判断条件先执行语句,后判断条件 2. 执行过程执行过程说明:说明:(1 1)dowhiled
7、owhile循环语句循环语句首先执行循环体,然后计首先执行循环体,然后计算表达式并检查循环条件,算表达式并检查循环条件,所以所以循环体至少执行一次。循环体至少执行一次。(2 2)退出)退出dowhiledowhile循环循环的条件与退出的条件与退出whilewhile循环的循环的条件相同。条件相同。表达式语句零零非零非零5.3 dowhile5.3 dowhile循环语句循环语句共 38 页 第 1010 页表达式=0?语句零零非零非零i=100?sum=sum+ii=i+1i=1,sum=0 用用do-while型循环求:型循环求:1001nn#include “stdio.h”main()
8、 int i=1, sum=0; do sum=sum+i; i+; while (i=100) ; printf(%d,sum);共 38 页 第 1111 页表达式=0?语句零零非零非零i=n?s=s*ii=i+1i=1,s=1输入n 用用do-while型循环求型循环求n!S=123(n-1) n#include stdio.hmain() int i=1;long s=1; scanf(“%d”,&n); do s*=i; i+; while (i=n) ; printf(%d!=%ldn”,n,s);共 38 页 第 1212 页 用迭代法求用迭代法求a的算数平方根。公式的算数平方根
9、。公式 :xn=0.5*(xn-1+a/xn-1) 确定初值为确定初值为x0, 取取a/2为为x0的初值,迭代结束条件的初值,迭代结束条件:|x1-x0|1e-5); printf(“squrt(a)=%fn”,x1);表达式=0?语句零零非零非零 |x1-x0|10-5 ?x0=x1x1=(x0+a/x0)/2输入ax1=a/2输出a,x1共 38 页 第 1313 页注意注意: :当当whilewhile后的表达式为后的表达式为真真时,时,whilewhile语句和语句和dowhiledowhile语句的结果相同,否则不同。语句的结果相同,否则不同。main( )int i , s=0;s
10、canf(“%d”,&i); while(i=10) s=s+i; i+; printf(“s=%dn”, s); 输入:输入:1 打印:打印:55输入:输入:11 打印:打印:0main( )int i , s=0; scanf(“%d”,&i); do s=s+i; i+; while(i=10) ; printf(“s=%dn”, s); 输入:输入:1 打印:打印:55 输入:输入:11 打印:打印:11共 38 页 第 1414 页1.for1.for循环语句的形式循环语句的形式 forfor( 表达式表达式11; 表达式表达式22; 表达式表达式33)语句)语句表达式2表达式1语句
11、表达式3零零非零非零2. 执行过程执行过程说明:说明:(1)(1)计算表达式计算表达式1;1;(2)(2)计算表达式计算表达式2 2,值非零执行,值非零执行循环体,计算表达式循环体,计算表达式3 3,重复,重复(3)(3)表达式表达式1 1仅被执行一次;表仅被执行一次;表达式达式2 2决定了是否继续执行循环决定了是否继续执行循环; ;表达式表达式3 3则不断修改循环控制变则不断修改循环控制变量的值。量的值。(4)(4)三个表达式均可省略,分号三个表达式均可省略,分号不能省略。不能省略。for for 循环体可以是循环体可以是复合语句。复合语句。共 38 页 第 1515 页3.说明:说明:(1
12、)基本的应用形式:基本的应用形式:forfor(循环变量赋初值;循环条件;循环变量增值)(循环变量赋初值;循环条件;循环变量增值) 求级数求级数12+22+32+前前10项之和。项之和。main() int i, sum=0; for (i=1;i=10;i+) sum=sum+i*i; printf(%d,sum);共 38 页 第 1616 页(2)三个表达式均可缺省,但起分割作用的两个分)三个表达式均可缺省,但起分割作用的两个分号不可省略。号不可省略。 例如:例如:for( ; ; ) 相当于相当于while (1) 语句语句(3)表达式)表达式1和表达式和表达式3可为逗号表达式。可为逗
13、号表达式。 例:例: int i,j,sum; for(sum=0, i=0,j=100;i=j;i+,j- ) sum=sum+i+j;共 38 页 第 1717 页 输出输出100以内所有偶数的和与所有奇数的和。以内所有偶数的和与所有奇数的和。#include “stdio.h”main() int I,s1=0,s2=0; for(i=1;i100;i+) if(i%2=0) s2=s2+i; else s1=s1+i; printf(“s1=%d,s2=%dn”,s1,s2); 共 38 页 第 1818 页 输出所有被整除,并能被整除余,被整除输出所有被整除,并能被整除余,被整除缺缺
14、1的两位数。的两位数。 #include stdio.h main( ) int i; for( i=10; i100; i+) if( i%3=0&i%5=3&(i+1)%7 = = 0) printf(%dn, i ); 共 38 页 第 1919 页#include stdio.hmain( ) long f,f1,f2; int i; f1=f2=1; printf(“%8ld%8ld”,f1,f2); for( i=3; i2)Fn=1(n=1,n=2),Fn=Fn-1+Fn-2 (n2)运行结果运行结果程序运行演示程序运行演示共 38 页 第 2020 页 for语句和语句和whi
15、le语句先判断条件,后执行语句,语句先判断条件,后执行语句,故循环体有可能一次也不执行,而故循环体有可能一次也不执行,而dowhile语句语句的循环体的循环体至少执行一次至少执行一次。 必须在必须在while 语句和语句和dowhile语句之前对循环体语句之前对循环体变量赋初值,而变量赋初值,而for语句可在表达式语句可在表达式1中对循环变中对循环变量赋初值。量赋初值。 在循环次数已经确定的情况下,习惯用在循环次数已经确定的情况下,习惯用for语句;语句;而对于循环次数不确定只给出循环结束条件的问而对于循环次数不确定只给出循环结束条件的问题,习惯用题,习惯用while语句解决。语句解决。共 3
16、8 页 第 2121 页1. 1. 定义:定义:在循环体内又包含一个循环结构,称为循在循环体内又包含一个循环结构,称为循环嵌套。三种循环都可以嵌套。下面几种都是合环嵌套。三种循环都可以嵌套。下面几种都是合法的嵌套形式:法的嵌套形式: for( ; ; ) while( ) for循环体嵌套循环体嵌套while循环体循环体for( ; ; ) for( ; ; ) for循环体嵌套循环体嵌套for循环循环共 38 页 第 2222 页do do while( ); while( );do_while循环循环体体嵌套嵌套do_while循环循环while( ) do while( ); while
展开阅读全文