书签 分享 收藏 举报 版权申诉 / 47
上传文档赚钱

类型C语言程序设计教程(第5版)-第5章-循环结构.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3377073
  • 上传时间:2022-08-25
  • 格式:PPTX
  • 页数:47
  • 大小:680.06KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言程序设计教程(第5版)-第5章-循环结构.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言程序设计 教程 循环 结构
    资源描述:

    1、第第5 5章章 循环结构循环结构 李丽娟李丽娟 20192019年年8 8月月第5章 循环结构本章主要内容1.for循环语句结构2.while循环语句结构3.do-while循环结构4.break和continue语句的作用5.循环结构的嵌套6.案例分析第5章 循环结构循环循环就是重复地执行某些语句。程序中的循环次数是有限的,循环次数是有限的,由循环条件决定可以确定循环次数。C语言提供了3种循环结构语句:for语句 while语句 do_while语句5.1 for语句for语句是一种计数循环。循环次数由循环变量来控制。for语句的一般形式为:for(;)for语句的3个重要的组成部分:1初始

    2、表达式初始化循环控制变量。2条件表达式测试循环条件。3循环表达式更新循环控制变量的值。5.1 for语句for语句的语法功能:1计算的值。该表达式是对循环控制变量进行初始化。2判断的值。该表达式就是循环条件,若该表达式的值为“真”,则执行;若该表达式的值为“假”,则退出循环,执行循环结构外的语句。3计算的值。该表达式更新循环控制变量的值。4转第2步。for(;)5.1 for语句for语句的流程图:注意:若中有多条语句,则构成复合语句,被包含在一对花括号中。若只有一条,可以不使用花括号。初始表达式 条件表达式 语句体 循环表达式 F T 5.1 for语句例例1:编写程序,求几何级数之和:分析

    3、:分析:该数学表达式为123100。设:sum为级数的和(初值为零);i为循环变量;将i从1按步长为1增加到100,循环计算:sum=sum+i;求得该级数的和。程序:example5_1.c 1001ii5.1 for语句 for语句所具有的特性。1可以省略,但须保留分号(;),同时在for之前必须给循环控制变量赋值,形式为:;for(;)2一般不可省略,否则为无限循环。例如:for(i=1;i+)sum=sum+i;相当于条件总为真,程序会一直不停地执行直到“数据溢出”。5.1 for语句3亦可省略,但在循环语句体中必须有语句来修改循环变量,以使条件表达式的值在某一时刻为假,使程序能正常结

    4、束循环。例如:for(sum=0,i=1;i=100;)sum=sum+i;i+;43个表达式均省略,即for(;),为无限循环,程序中要避免避免这种情况的发生。5.1 for语句5条件表达式可以是关系表达式、数值表达式。只要表达式的值不等于零,就执行循环体语句。如:for(i=0;(c=getchar()!=n;i+=c);6初始表达式、循环表达式可以是逗号表达式,用来完成逗号表达式中各表达式的功能。例如:for(sum=0,i=1;i=100;i+,i+)相当于:sum=0;for(i=1;i0,b0;如果ab,或者输入的值为负数,则程序提示输入错误,不进行任何计算,直接退出程序。i bi

    5、 ai5.1 for语句程序流程图:程序:example5_2.c 思考:思考:该算法的缺点;设计更好的算法。假如输入的数可以为任意整数,如果ab,计算 ;如果ab,则计算 。请设计算法并编写程序验证。i bi aii ai bi5.1 for语句例例3 3:编写程序,从键盘输入m和n的值,用符号“*”在屏幕上打印出如下所示具有m行n列的矩形图案。*分析:分析:图案有规律,共有m行,每行有n个*号。可采用循环嵌套的方式:第1层(外层)控制行数,用i来表示,输出m行“*”;第2层(内层)控制列数,用j来表示,输出n列“*”。5.1 for语句算法流程图如图所示:虚线框内是内层循环,用来输出每一行

    6、的n个*号。程序:example5_3.c 思考:怎样利用for循环的嵌套,输出更多有规律的平面图案。关键:找出图案的规律。5.1 for语句例例4 4:编写一个可以为小学生提供加法、减法和乘法的二元算术运算练习的程序,计算100以内的两个数的和、两个数的差和两个数得的积,每次测试10 个题目,依次由学生输入答案,并由计算机判断输入的答案是否正确,最后由计算机给出简单评价。分析:分析:根据题意,组成算术表达式的操作符有3种形式:+、*,分别用1、2、3来代表。用ops表示操作符,a,b分别代表两个操作数;a,b和ops由计算机随机生成,并计算表达式的值result;用户输入表达式的结果inpu

    7、t;将input与result进行比较;通过比较的结果,给出对计算结果的评价。5.1 for语句程序算法流程图如图所示:程序:example5_4.c程序特别处理:如果(ab),计算(ab);否则计算(ba)。思考:思考:1如果每次测试的题目不止10个,需要怎样修改算法和程序?2如果要求程序在结束了一组测试之后,可以继续进行测试,需要怎样修改算法和程序?3如果要加入两位数的除法计算,需要怎样修改算法和程序?iN 定义整型变量 i,right=0,error=0 定义整型变量 a,b,op,result,input 定义字符型变量 ops 随机生成 a,b,ops;用 switch 生成算术表达

    8、式;输出对错统计结果 N Y 用户输入运算结果;判断用户输入结果的对错;i+开始 结束 5.2 while语句while语句的一般形式为:while()循环语句;循环变量表达式;和一起构成循环体语句。while语句的语法功能:1计算的值,若该值为“假”,则跳出循环,执行循环体后面的语句;若该值为“真”,则执行循环体语句。2重复步骤1的操作。while语句的流程图如图所示5.2 while语句 while()循环语句;循环变量表达式;关于while语句的几点说明。1不可缺少,其作用是更新计算循环变量的值,使循环能正常结束。2若没有,则有可能会使程序出现无限循环而发生错误。3由于while循环是先

    9、判断的值,后决定是否执行,因此,有可能一次也没有执行。5.2 while语句例例5 5:改写程序,将例5-1所示的简单几何级数求和问题用while语句来实现。(阅读、思考、比较)5.2 while语句例例6 6:编写程序,从键盘输入一个正整数n,求n!。分析:分析:n!=n*(n1)*(n2)*2*1 (约定:n0,0!=1)计算机在计算阶乘时,是从1开始计算直到n为止。用i代表循环变量,s代表n!的结果值,则循环计算表达式:s=s*i,即可求得n!。算法流程图如图所示。算法流程图如图所示。程序:程序:example5_6.c思考:能否用思考:能否用forfor循环实现?循环实现?5.2 wh

    10、ile语句例例7 7:编写程序,统计从键盘输入的字符个数(回车换行符也是一个字符),当遇到结束标志时程序结束。分析:分析:关键是循环计数。设置一个累加器count(初值为0),每次从键盘输入一个字符,只要该字符的值不等于结束标志,累加器的值就增1:count=count+1;算法流程图如图所示。程序:程序:example5_7.c count=0(ch=getchar()!=EOF count=count+1 输出 count F T 开始 结束 5.2 while语句例例8 8:阅读练习:【例5-8】编写程序,进行学生某门课程成绩的分类统计。从键盘输入每位学生的成绩等级,以大小写的A、B、C

    11、、D和E表示成绩等级,A为最高,D为最低。统计出总人数及各成绩段的人数,忽略回车键和空格键,以EOF作为输入结束。思考:算法流程图的其他表示方法。5.3 do-while语句do_while语句的一般形式为:do while();do_while语句的语法功能:1执行,2计算;若该表达式的值为“真”,则执行步骤1;若该表达式的值为“假”,则退出循环语句结构。do_while语句的流程图如图所示注意:注意:要避免出现无限循环而发生错误。表达式的值0 F T 5.3 do-while语句集中循环的特点比较:do_while与while和for循环的区别:do_while循环中的至少会执行一次;而w

    12、hile和for循环中的有可能一次也不被执行。for循环和while循环的算法流程图描述是一致的。for循环适合于循环次数确定的情况。对大多数问题,do_while、while和for循环是可以互换的。5.3 do-while语句例9:求几何级数的和:用do_while语句的形式实现。分析:分析:循环变量i的值从1100递增,i的初值为1、终值为100,累加器sum的初值为0 循环计算:sum=sum+i。算法流程图如图所示。程序:exam5_9.c1001ii 初始化循环变量 i=1 级数的和 sum=0 sum=sum+i;i+;i100 输出 sum T F 开始 结束 5.3 do-w

    13、hile语句例例1010:编写程序,从键盘输入x的值,求 ,直到最后一项绝对值小于le7(即107)为止(注:x为弧度值)。分析:分析:关键是对多项式进行分解计算。第1项为x;从第2项开始,每一项都是前一项乘以一个因子:(n=3,5,7,9)用s代表sin x的值,s的初值为0;用t代表每一项的值,t的初值为x;从第2项开始,后面每1项的值为:(n=3,5,7,9)循环计算表达式:s=s+t;直到t的值满足精度要求为止。357sin3!5!7!xxxxx2(1)xn n2(1)()xn ntt 5.3 do-while语句算法流程图如图所示。程序:example5_10.c思考:程序怎样控制计

    14、算的精度?可否用while和for循环来实现?其他算法。double s,t,x;int n=1 输入 x 的值 s=0;t=x;s=s+t;n=n+2;t=t*(x*x)/(n*(n1);fabs(t)le7 输出结果:sin(x)的值 T F 开始 结束 5.4 用于循环中的break语句和continue语句1break语句语句break语句可用于分支结构和循环语句结构。break语句的作用:跳出当前的控制结构。在循环语句中,要谨慎使用break语句。常用于循环语句体内某一个if条件分支的语句中,用来表示在循环过程中满足某一条件时,结束循环。5.4 用于循环中的break语句和conti

    15、nue语句例例1111:编写程序,求圆面积在100平方米为以内的半径,输出所有满足条件的半径值和圆面积的值,并输出第1个大于100的圆半径和圆面积。分析:分析:计算圆面积的表达式为:r2。依次取半径为1,2,3,循环计算圆的面积area;当area100时结束。算法流程图如图所示,外层虚线框为循环结构,内层虚线框为if结构。程序:程序:example5_11float pi=3,14159,area;int r;r=1 r10 area=pi*r*r area100 break;输出 r,area r+输出跳出循环的 r,area 值 F T F T 开始 结束 5.4 用于循环中的break

    16、语句和continue语句循环结构中若采用了break语句,其算法结构属于非结构化的设计。用于结束当前循环语句的break语句都可以修改成不使用break语句的形式。应尽量避免使用break语句,满足结构化的要求。思考:思考:怎样修改例11的程序,使其成为结构化的程序。提示5.4 用于循环中的break语句和continue语句2continue语句语句continue语句的一般形式为:continue;continue的语法规则:结束本次循环,提前进入下一轮循环。注意:注意:continue语句不会跳出循环结构,而是提前进行下一个循环。while语句和do_while语句遇到continue

    17、时,程序会立刻转到条件表达式,开始下一轮循环;而在for语句中遇到continue时,程序会立刻转到循环表达式,更新循环变量,开始下一轮循环。5.4 用于循环中的break语句和continue语句例例1212:编写程序,输出在50100中不能被3整除的数。分析:分析:对任意正整数n,若n%30,则输出该数n;如果n%30,则不输出该数n。算法流程图如图所示:程序:程序:example5_12.c 思考:思考:不使用continue语句,怎样修改程序?5.4 用于循环中的break语句和continue语句 continue语句同break语句一样,也有可能会破坏程序的结构化,使程序成为非结构

    18、化的程序,因此,应当尽量避免使用continue语句。提示5.4 用于循环中的break语句和continue语句例例1313:编写程序,循环地从键盘输入整数,计算并输出数的个数、总和以及算术平均值,若输入了数字0,则不计入总数,以结束标志作为输入的结束。分析:分析:假设从键盘输入的整数为n,数据的个数为count,数据的总和为sum,算术平均值为average。如果n=0,则计数count的值不增加,不计入总和;否则count的值增1,总合sum=sum+n。最后的算术平均值为average=sum/n。算法流程图如图所示:程序:程序:example5_ 13.c 思考:思考:不使用cont

    19、inue语句,怎样修改程序?5.4 用于循环中的break语句和continue语句比较break语句和continue语句的区别:例例1414:阅读程序:example5_14.c 和example5_14a.c。比较break语句和continue语句在程序中的区别。注意:为确保算法的结构化,清尽量不用或少用break和continue语句。5.5 循环结构的嵌套循环结构的嵌套,指的是在某一种循环结构的语句中包含有另一个循环结构。理论上,循环嵌套的深度不受限制,但实际中不提倡使用嵌套层次太多的循环结构。循环结构嵌套时,要注意:嵌套的层次不能交叉;嵌套的内外层循环不能使用同名的循环变量;并列

    20、结构的内外层循环允许使用同名的循环变量。5.5 循环结构的嵌套例例1515:编写程序,在屏幕上输出阶梯形式的乘法口诀表。分析;分析;乘法口诀表可以由9行9列来表示,可用i代表行,j代表列。其中:第1行有1列 第2行有2列 第i行有i列利用循环嵌套,算法流程图如图所示:程序:程序:example5_15.c i=1 i9 i+定义循环变量 i,j j=1 ji 输出 j*i 的值 j+换行 F F T 开始 结束 T 5.6 goto语句goto语句是一种无条件转向语句,可以用在程序的任何地方。goto语句的一般形式为:goto ;goto语句的作用:转到标号语句所在的地方继续执行。说明:为任何

    21、合法的标识符;放在某个语句前面并加上冒号“:”作为语句的标号;只对goto 语句有意义,带有标号的语句被称作标号语句。例如:error:、end:、exp:等均为合法的语句的标号。5.6 goto语句 goto语句是一种非结构化的语句。goto语句会破坏结构化程序的逻辑结构,严重时会造成程序错误,因此,在程序设计中应尽量少用或不用goto语句。goto语句常用于在深层嵌套的情况下从里层完全退出到嵌套的最外层。特别提示如:for()for()for();if(mistake)goto error;error:;5.6 goto语句例16:阅读【例5-16】,用 goto语句计算简单几何级数的和。

    22、回顾该问题的其他解决方案。例例1717:编写程序,输出40以内的能同时被3和4整除的数。分别给出两种算法:使用goto语句。1001isumi5.6 goto语句算法流程图:算法为非结构化的或:程序:程序:example5_17.c 5.6 goto语句不使用goto语句来实现。算法流程图:程序:程序:example5_18.c 比较例5-17和例5-18的算法。思考结构化算法的思想。5.7 程 序 范 例【例5-19】编写程序,输出ASC序列中从33127(十进制)的字符对照表。算法核心:简单的循环输出。【例5-20】设公鸡每只5元,母鸡每只3元,小鸡每元3只,现用100元钱买100只鸡,编

    23、写一个程序,算出可以各买多少只鸡?算法核心:循环嵌套。5.7 程 序 范 例【例5-21】编写程序,在屏幕上输出下面的结果,输出数据的行数通过键盘输入,要求在520行之间。3 5 7 9 6 8 10 12 9 11 13 15 12 14 16 18 15 17 19 21算法核心:分析输出数据的规律,简单循环结构。5.7 程 序 范 例【例5-22】输出如图5-19所示的图案,图案的最大宽度值(水平方向*号的个数)由键盘输入。要求最大的宽度值必须为奇数。算法核心:分析输出数据的规律,用循环嵌套。*5.8 本 章 小 结1.主要讨论了3种循环语句:for、while和do_while循环。2

    24、.了解了break 语句、continue 语句和goto语句的作用。3.3种循环可互相嵌套以构成各种混合嵌套结构。4.while循环和for循环都要先判断条件再执行循环体语句,因此,有可能一次也不执行循环体语句,而do_while循环不论怎样都会先执行一次循环体语句。5.使用循环结构时要注意避免以下几个方面的问题。循环体语句为复合语句,但没有使用花括号。程序发生无限循环。混淆break 语句与continue语句的功能。本 章 习 题一、填空题。【题5.1】【题5.10】二、单选题。【题5.11】【题5.18】三、编程题。【题5.22】【题5.23】【题5.26】【题5.227】【题5.29】【题5.39】【题5.43】附加:请编写程序,输出下面7种图案。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言程序设计教程(第5版)-第5章-循环结构.pptx
    链接地址:https://www.163wenku.com/p-3377073.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库