ImageVerifierCode 换一换
格式:PPT , 页数:38 ,大小:772KB ,
文档编号:7375460      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-7375460.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(momomo)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(《C语言程序设计(第三版)》课件第5章 循环结构程序设计.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

《C语言程序设计(第三版)》课件第5章 循环结构程序设计.ppt

1、l掌握循环结构的基本特点掌握循环结构的基本特点l掌握掌握3种循环语句:种循环语句:for语句、语句、while语句和语句和do-while语句语句l学会利用学会利用for语句、语句、while语句和语句和do-while语句语句设计简单的循环程序设计简单的循环程序l了解了解goto语句构成的循环语句构成的循环 5.1 循环的基本概念循环的基本概念【问题问题】如何计算如何计算1+2+3+4+100 s=s+i;/*投入投入i 枚硬币到枚硬币到s中中*/i=i+1;/*计算下次投币数计算下次投币数*/5.1.1 方法的探索方法的探索s=0;/*盒子开始为空盒子开始为空*/i=1;/*第第1次投币次

2、投币*/while(i=100)/*100次投币次投币*/s=s+i;/*投入投入i 枚硬币到枚硬币到s中中*/i=i+1;/*计算下次投币数计算下次投币数*/5.1.2 循环结构语句循环结构语句 lfor 循环循环lwhile 循环循环ldo-while 循环循环5.2 while循环循环lwhile循环通过循环通过while语句实现。语句实现。while循环又循环又称为称为“当型当型”循环。循环。l一般格式为:一般格式为:l while(表达式表达式)语句语句l其中,括号后面的语句可以是一条语句,也可以是其中,括号后面的语句可以是一条语句,也可以是复合语句。它们都称为循环体。复合语句。它们

3、都称为循环体。l while语句的执行过程为:语句的执行过程为:l(1)计算并判断表达式的值。若值为计算并判断表达式的值。若值为0,则结束循,则结束循环,退出环,退出while语句;若值为非语句;若值为非0,则执行循环体,则执行循环体l(2)转步骤转步骤(1)5.2 while循环循环l流程图流程图【例例5-1】计算计算s=1+2+3+100。#include void main()int i,s;i=1;s=0;while(i=100)/*循环控制循环控制*/s=s+i;i=i+1;printf(s=%dn,s);【注意注意】l循环体包括一条或多条语句,多条语句必须用循环体包括一条或多条语句

4、,多条语句必须用一对花括号一对花括号“”括起来。括起来。l合理的循环是有限次循环。如果循环不能退出,合理的循环是有限次循环。如果循环不能退出,则称为则称为“死循环死循环”,在程序设计中应该避免出,在程序设计中应该避免出现。现。l控制循环执行的次数因素包括循环中的循环条控制循环执行的次数因素包括循环中的循环条件、控制循环的主要变量的初值和终值以及每件、控制循环的主要变量的初值和终值以及每次变化的幅度等。次变化的幅度等。l例如,上例中例如,上例中i有效地控制了循环的运行,有效地控制了循环的运行,i从从1循环到循环到100,每次加,每次加1,循环运行了,循环运行了100次,次,i也也可以称为循环变量

5、。可以称为循环变量。【注意注意】l如果只有一个循环变量,而且循环变量每次有如果只有一个循环变量,而且循环变量每次有固定的增加和减少,则循环的次数可以用以下固定的增加和减少,则循环的次数可以用以下公式计算:公式计算:l循环次数循环次数=(终值终值-初值初值)/步长步长+1l步长为循环变量每次增加或减少的值,例如,步长为循环变量每次增加或减少的值,例如,上例循环次数为:上例循环次数为:(1001)/1+1,即,即100次。次。l步长可以为负数。步长可以为负数。【例例5-2】计算计算1到到100之间所有之间所有3的倍数的和。的倍数的和。#include void main()int i,s;i=3;

6、s=0;while(i=99)s=s+i;i=i+3;printf(s=%dn,s);5.3 do-while循环循环 ldo-while循环,又称为循环,又称为“直到型直到型”循环循环,用用do-while语句来实现,其一般格式为:语句来实现,其一般格式为:do 语句语句 while(表达式表达式);ldo-while语句的执行过程为:语句的执行过程为:先执行循环体语句再判断表达式的值。若值先执行循环体语句再判断表达式的值。若值为为0,则结束循环,退出,则结束循环,退出do-while语句;若值语句;若值为非为非0,则继续执行循环体。,则继续执行循环体。5.3 do-while循环循环流程图

7、流程图【例例5-3】计算计算s=1+2+3+100。#include void main()int i,s;i=1;s=0;do s=s+i;i=i+1;while(i=100);printf(s=%dn,s);注意注意ldo-while循环和循环和while循环可以完成相同的任务。例循环可以完成相同的任务。例如上面的程序都可以计算出如上面的程序都可以计算出1到到100的数的和。的数的和。ldo-while循环的循环条件的判断在循环体的后面,所循环的循环条件的判断在循环体的后面,所以和以和while循环有区别,例如下面的两个程序:循环有区别,例如下面的两个程序:int i=1;s=0;int

8、i=1,s=0;while(i1)do s=s+i;s=s+i;i=i+1;i=i+1;while(i1);printf(s=%dn,s);printf(s=%dn,s);l左边的程序运行结果为左边的程序运行结果为:s=0l右边的程序运行结果为右边的程序运行结果为:s=1。5.4 for循环循环 lfor循环是循环的一种标准形式,循环是循环的一种标准形式,通过通过for语句实现,语句实现,其其语法如下:语法如下:lfor(;)l表达式,通常用于循环的初始化。包括循环变量的赋表达式,通常用于循环的初始化。包括循环变量的赋初值、其他变量的准备等;初值、其他变量的准备等;l表达式,循环的条件判断式,

9、如果为空则相当于真值;表达式,循环的条件判断式,如果为空则相当于真值;l表达式,通常设计为循环的调整部分,主要是循环变表达式,通常设计为循环的调整部分,主要是循环变量的变化部分;量的变化部分;l循环体,由一条或多条语句构成,多条语句需要用一循环体,由一条或多条语句构成,多条语句需要用一对花括号括起来。对花括号括起来。5.4 for循环循环流程图流程图【例例5-4】计算计算s=1+2+3+100。#include void main()int i,s;for(i=1,s=0;i=100;i+)s=s+i;printf(s=%dn,s);注意注意 lfor循环可以用以下循环可以用以下while循环

10、代替:循环代替:;while();l表达式可以是多个表达式构成的逗号表达式,例如表达式可以是多个表达式构成的逗号表达式,例如i=1,s=0;。l、构成循环的控制部分,、构成循环的控制部分,3个表达式之间用个表达式之间用分号分隔。分号分隔。l表达式可以放在表达式可以放在for循环的前面,但后面的分号不循环的前面,但后面的分号不能少,例如:能少,例如:l;for(;);注意注意l表达式也可以省略,相当于始终为真值,从而构表达式也可以省略,相当于始终为真值,从而构成无条件循环,循环将不能终止,需要采取其他措施。成无条件循环,循环将不能终止,需要采取其他措施。l表达式也可以省略,但作为循环变量的调整功

11、能不表达式也可以省略,但作为循环变量的调整功能不能缺少,可以在循环体中完成,例如下面的能缺少,可以在循环体中完成,例如下面的for循环。循环。lfor(i=1,s=0;i=100;)s=s+i+;l如果表达式和都省略的话,相当于如果表达式和都省略的话,相当于while循环,循环,例如下面的程序形式:例如下面的程序形式:i=1,s=0;for(;i=100;)/*相当于相当于 while(i=100)*/s=s+i+;注意注意l、均省略,即:、均省略,即:lfor(;);l相当于相当于while(1);。循环的所有控制和计算功能。循环的所有控制和计算功能都必须在循环体中完成,这样的循环适合于随机

12、都必须在循环体中完成,这样的循环适合于随机退出循环程序的情况。退出循环程序的情况。l表达式也可以省略,但必须至少保留一个分号,表达式也可以省略,但必须至少保留一个分号,即:即:lfor(;);一个分号即是一条空语句。一个分号即是一条空语句。l如果、均省略,即如以下形式:如果、均省略,即如以下形式:lfor(;);这将构成一个死循环。这将构成一个死循环。【例例5-5】计算计算1+1.5+2.0+2.5+3.0+3.5+10。#include void main()float i,s;/*i,s需要定义为需要定义为float型型*/for(i=1,s=0;i=10;i=i+0.5)s=s+i;pr

13、intf(s=%fn,s);5.5 循环嵌套循环嵌套(1)while()while()(2)for(;)for(;)(3)do do while();while();(4)while()for(;)(5)for(;)while(;)(6)do for(;);while();【例例5-6】计算计算s=1+(1+2)+(1+2+3)+(1+2+3+4+10)。#include void main()int i,j,s;for(i=1,s=0;i=10;i+)for(j=1;j=i;j+)s=s+j;printf(s=%dn,s);变量跟踪表变量跟踪表5.6 break语句、语句、continue语

14、句和语句和goto语句语句 l5.6.1 break语句lswitch结构中可以用结构中可以用break语句跳出结构去执语句跳出结构去执行行switch语句的下一条语句。实际上,语句的下一条语句。实际上,break语句也可以用来从循环体中跳出,常常和语句也可以用来从循环体中跳出,常常和if语语句配合使用。例如:句配合使用。例如:lfor(i=1;i100)break;l当变量当变量i100时退出循环。时退出循环。lbreak语句不能用于循环语句和语句不能用于循环语句和switch语句之语句之外的任何其他语句中。外的任何其他语句中。5.6 break语句、语句、continue语句和语句和got

15、o语句语句l5.6.2 continue语句语句l与与break语句退出循环不同的是,语句退出循环不同的是,continue语句语句只结束本次循环,接着进行下一次循环的判断,如只结束本次循环,接着进行下一次循环的判断,如果满足循环条件,继续循环,否则退出循环。果满足循环条件,继续循环,否则退出循环。l5.6.3 goto语句语句lgoto语句为无条件转向语句,形式为:语句为无条件转向语句,形式为:lgoto 语句标号语句标号l语句标号用标识符表示,命名规则同变量名。语句标号用标识符表示,命名规则同变量名。【例例5.7】阅读下面程序,写出运行结果。阅读下面程序,写出运行结果。#include v

16、oid main()int i,s;for(i=1,s=0;i=10;i+)if(i%2=0)continue;if(i%10=7)break;s=s+i;printf(s=%dn,s);5.7 程序举例程序举例 l【例例5-8】计算计算s=12348。#include void main()int i;long s;for(i=1,s=1;i=8;i+)s=s*i;printf(s=%ldn,s);【例例5-9】打印图形。打印图形。#include void main()int i,j;for(i=1;i=5;i+)for(j=1;j=i;j+)printf(*);printf(n);/*每

17、输出一行需要换行每输出一行需要换行*/循环变量的功能循环变量的功能l控制循环控制循环l作为循环体中算法的引用变量作为循环体中算法的引用变量for(i=0;i100;i+)s=s+i;for(i=1;i=100;i+)s=s+i;for(i=1,j=1;i=100;i+)s=s+j;j=j+1;for(i=0;i100;i+)s=s+i+1;0+1+2+0+1+2+99+991+2+3+1+2+3+100+1001+2+3+1+2+3+100+1001+2+3+1+2+3+100+100for(i=2,j=1;i=200;i=i+2)s=s+j;j=j+1;控控制制控控制制+引引用用【例例5-9

18、】打印图形。打印图形。l分析分析for(i=1;i=4;i+)/*控制输出控制输出4行行*/for(j=1;j=i-1;j+)printf();/*输出输出i-1个空格个空格*/for(j=1;j=2*i-1;j+)printf(*);/*输出输出2*i-1个星号个星号*/printf(n);/*输出一行后换行输出一行后换行*/【例例5-10】计算计算100以内的所有素以内的所有素数之和。数之和。l【分析分析】l从定义来判断,除了从定义来判断,除了1和本身之外,没有其他和本身之外,没有其他因子,所以程序的任务是依次判断因子,所以程序的任务是依次判断1到到100之之间所有的数是否为素数,如果是,

19、将其累加。间所有的数是否为素数,如果是,将其累加。最后输出累加的和。最后输出累加的和。l需要嵌套的循环,外循环控制产生需要嵌套的循环,外循环控制产生1到到100的的数的循环,循环变量的值也正是内循环需要数的循环,循环变量的值也正是内循环需要判断的对象;内循环首先判断当前的循环变判断的对象;内循环首先判断当前的循环变量的值是否为素数,是则累加。循环结束后量的值是否为素数,是则累加。循环结束后输出累加的和。输出累加的和。【例例5-10】计算计算100以内的所有素以内的所有素数之和。数之和。#include void main()int i,j,s=0;for(i=2;i=100;i+)/*设置循环

20、产生设置循环产生2100之间的数之间的数*/for(j=2;ji-1)/*i是素数,因为是素数,因为2 i-1没有没有i的因子的因子*/s=s+i;printf(%dn,s);以上程序中以上程序中j=i-1也可以改成也可以改成j=i/2或或j=3)l很显然,很显然,Fibonacci数列依次为:数列依次为:1,1,2,3,5,8,13,21,34【例例5-11】计算计算Fibonacci数列前数列前20项的和。项的和。#include void main()int f1,f2,f;int i;long s;f1=f2=1;s=f1+f2;for(i=1;i=18;i+)f=f1+f2;/*得到

21、一个新数得到一个新数*/s=s+f;f1=f2;/*重置两个数重置两个数*/f2=f;printf(%ldn,s);l 循环结构是面向过程编程中三种结构中最重循环结构是面向过程编程中三种结构中最重要的一种结构,学好它是学好这门课程的关要的一种结构,学好它是学好这门课程的关键。本章介绍的内容主要包括:键。本章介绍的内容主要包括:l三种循环结构三种循环结构while、do-while和和for循环循环(goto也可以构成循环,通常不用)也可以构成循环,通常不用)l break语句、语句、continue语句和语句和goto语句语句l while循环和循环和do-while循环的条件判断一个循环的条

22、件判断一个在前,一个在后,为导致循环体执行的次数在前,一个在后,为导致循环体执行的次数不同,需要密切注意。不同,需要密切注意。lfor循环为标准的功能很强的循环,通常用循环为标准的功能很强的循环,通常用于可控制的循环,对于程序的维护和阅读都于可控制的循环,对于程序的维护和阅读都是最佳选择。是最佳选择。lbreak语句和语句和continue语句可以改变循环运语句可以改变循环运行的方向,主要用于特殊情况的处理,但不行的方向,主要用于特殊情况的处理,但不能控制能控制if和和goto构成的循环。构成的循环。l循环结构的实质是重复执行一系列语句,这循环结构的实质是重复执行一系列语句,这种重复性是在循环条件的有效控制之下完成种重复性是在循环条件的有效控制之下完成的。程序的关键在于如何控制循环的条件,的。程序的关键在于如何控制循环的条件,在恰当的时机由在恰当的时机由“真真”变变“假假”而退出循环。而退出循环。l求求1-2+3-4+5-6+7+99-100。l输出所有的三位水仙花数。所谓水仙花数是指输出所有的三位水仙花数。所谓水仙花数是指所有位的数字的立方之和等于该数,例如:所有位的数字的立方之和等于该数,例如:l153=13+53+33 l编写程序输出下面的图形。编写程序输出下面的图形。1234567890

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|