电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C语言程序设计(第二版) 教学课件 ppt 作者 978-7-302-32355-6 kj-第5章循环结构程序的设计

36页
  • 卖家[上传人]:E****
  • 文档编号:89345534
  • 上传时间:2019-05-23
  • 文档格式:PPT
  • 文档大小:314.50KB
  • / 36 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第1页,第5章 循环结构程序的设计,本章概述 本章的学习目标 主要内容,第2页,本章概述,本章主要通过大量程序实例介绍while、do-while及for循环结构的使用方法 本章还将介绍初学者编程难点之一的多重循环结构的使用方法 在本章中还会介绍较多的程序算法,第3页,本章的学习目标,本章教学目的: 掌握几种循环语句(goto、while、do-while、for)的使用方法 掌握break和continue语句的使用方法 能使用嵌套方法编写程序。 本章教学重点:掌握while、do-while、for循环语句 本章教学难点:循环嵌套,第4页,主要内容,5.1 while语句和do-while语句 5.2 for语句 5.3 嵌套循环结构 5.4 break语句和continue语句 5.5 goto语句和用goto语句构成的循环 5.6 程序设计举例 5.7 本章小结,第5页,5.1 while语句和do-while语句,while语句用来实现“当型”循环结构,其一般形式如下: while(表达式) 循环体语句 其执行过程是: 计算表达式的值,若表达式为非0值时,执行while语句中

      2、的循环体语句,并再次计算表达式的值,此过程重复执行,一直到表达式的值为0,循环结束。,5.1.1 while语句,第6页,例5.1 用while语句求1+3+5+99。,# include int main() int i,n,sum=0; i=1; while(i=99) sum+=i; i+=2; printf(“sum=%dn“,sum); return 0; ,第7页,对于while语句,有几点需要注意: (1)循环体若包含一个以上的语句,应该用花括弧括起来。若不加花括弧,则while循环体语句的范围只到while后面第一个分号处。,(2)若表达式的值为0,循环体一次也不执行.,(3)在循环体中一定要有使循环趋向于结束的语句,否则循环永不结束,形成死循环。,第8页,5.1.2 do-while语句,一般格式: do 循环体语句组; while(循环继续条件); /*分号不能缺省*/,思考题:例题5.1用do-while语句如何来实现?,第9页,执行过程: (1)先执行循环体语句组。 (2)计算“循环继续条件”表达式。若“循环继续条件”表达式的值为非 0(真),则转向(1)继续执

      3、行;否则,转向(3)。 (3)执行do-while的下一条语句。,do-while循环语句最重要的特点是:先执行一次循环体语句组,然后再判断循环条件。,第10页,例5.2 从键盘输入若干个数,求它们的和,当和大于1000时停止执行。 # include int main() int n,sum=0; do scanf(“%d“, ,第11页,本题思路:为了实现逆序输出一个正整数,需要把该数按逆序逐位拆开,然后输出。从一个数中分离一位数,可以对10求余。,345 num 345%10=5 digit 345/10=34 num 34%10=4 digit 34/10=3 num 3%10=3 digit 3/10=0 num 当num最后变成0时,处理过程结束。,赋值给,例5.3 从键盘输入一个正整数,各位数码顺序颠倒输出。如输入345,输出543。,第12页,# include int main() int num,digit; printf(“Input a number: “); scanf(“%d“, ,第13页,5.2 for语句,1、一般格式: for(表达式1;表达式2;表

      4、达式3) 循环体语句组;,(1)若表达式1存在,则先计算表达式l的值,然后转向步骤(2),若表达式1不存在,则直接进入步骤(2)。 (2)计算表达式2的值,若其值为真(值为非0),则执行for语句中指定的循环体语句,然后执行下面第(3)步。若为假(值为0)则结束循环,转到第(4)步。 (3)若表达式3存在,则计算表达式3的值,然后转向步骤(2),若表达式3不存在,则直接转向步骤(2)。 (4)循环结束,执行for语句下面的一个语句。,图5.3for语句流程图,第14页,1、for后面括号里的3个表达式都可以省略,但其中 的两个分号不能省略 for( ; ; ) printf(“#”);,2、若表达式1被省略,则应在for语句之前给循环 变量赋初值。 i=1; sum=0; for(;i=10; i+) sum+=i;,3、若表达式2被省略,即不判断循环条件,则循环 无终止地进行下去。也就是认为表达式2始终为真 4、若表达式3被省略,则程序设计者应另外设法保 证循环能正常结束。,for语句需要注意的是:,第15页,5、若省略表达式1和表达式3,只有表达式2, 即只给循环条件,则在这种情况

      5、下,完全等 同于while语句 i=1; sum=0; for(;i=10; ) sum+=i; i+;,6、若3个表达式都省略时,则无终止地循环。,7、表达式1可以是设置循环变量初值的赋值 表达式,也可以是与循环变量无关的其他表 达式 例如:for(sum=0,i=0;i=10;i+) sum+=i;,8、表达式2可以是任何合法的C语言表达式 只要其值为非零,就执行循环体,第16页,for语句是C语言中最灵活也是应用最广泛的循环结构, 可以替代while和do-while语句,思考题:例题5.1用for语句如何实现?,例5.4输入一个110间的整数,用for语句求这个数的阶乘。,main() int i,sum; for(sum=0,i=1;i=99;i=i+2) sum=sum+i; printf(“the num is %d”,sum); ,# include int main() int i,n; long s=1; scanf(“%d“, ,第17页,例5.5 输入一行字符并计算出字符个数。,#include int main() int n=0; printf(“Input

      6、 a string: “); for(; getchar()!=n; n+); printf(“%dn“,n); ,程序中的循环条件为getchar()!=n,判断从键盘输入的字符是不是回车。,第18页,5.3 嵌套循环结构的概念和实现,循环的嵌套是指一个循环体内又包含另一个完整的循环结构。内嵌的循环中还可以嵌套循环,这就是多层循环。,while循环、dowhile循环和for循环不仅可以自身嵌套,而且可以互相嵌套 。,例5.6 在屏幕上输出如下的一张九九乘法表。,1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=3

      7、6 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81,第19页,思路: 九九乘法表,共有9行;我们可以用一个循环变量i来依次表示第i(1 i 9)行; 对于第i行来说,它又有i个等式, 可以用一个循环变量j来依次表示第j(1 j i)个等式;第i行第j列的等式刚好是j和i相乘的式子。,# include int main() int i,j; for(i=1;i10;i+) for(j=1;j=i;j+) printf(“%d*%d=%-3d“,j,i,i*j); printf(“n“); return 0; ,第20页,例5.7 在计算机屏幕上输出如下图形。 * * * * *,思路: 上述图形中,共有5行,可以通过循环依次输出每一行。 每一行中可分成两部分,前面由若干个空格组成,后面是由若干个星号组成。具体空格和星号由当前的行数来决定 。,# include int main() int i,j,k,n=5; for(i=0;in;i+) for(j=0;jn-i;j+) printf(“ “); for(k=0;k=2*i;k+) printf(“*“); p

      8、rintf(“n“); return 0; ,第21页,5.4 break语句和continue语句,while(表达式) 语句块1 if(条件) break; 语句块2 ,1、break语句 break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句。 格式如下:,第22页,例5.8 输入一个正整数m,判断它是否为素数。,思路:判断一个数m否为素数,需要检查该数m是否能 被2 m-1之间的整数整除。数学上能证明,只需要检查 该数m是否能被2 之间的整数整除即可 。,设i取2, 上的整数,如果m不能被该区间上的任何一个数整除,即对每一个i,m%i都不为0,则m是素数;但是只要找到一个i,使m%i为0,则m肯定不是素数 。,#include int main() int i,m,k; printf(“Input a number: “); scanf(“%d“, ,第23页,2、continue语句,格式如下: while(表达式) 语句块1 if(条件) continue; 语句块2 ,continue语句作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接

      9、着进行下一次是否执行循环的判定。,思考题:continue语句和break语句的区别?,第24页,例5.9 输入100个整数,求其中正整数之和。,思路:输入一个数以后,累加之前先判断该数是否是正数,若是则累加,否则则将该数忽略(即跳出本次循环)。,# include int main() int i=0,n; long sum=0; while (i100) scanf(“%d“, ,第25页,5.5 goto语句和用goto语句构成循环,C语言中,goto语句为无条件转向语句。 一般形式为: goto 语句标号; 功能:无条件使程序的流程从当前所在的位置转向标号所指定的语句位置去执行。,使用goto语句,需要注意以下几点: (1)语句标号用标识符表示,它的命名规则与变量名相同,即由字母、数字和下划线组成,其第一个字符必须为字母或下划线。不能用整数来做标号。 例如:“ goto label_123;” 是合法的, 而 “ goto 123;” 是不合法的。 (2) 在带标号的语句中,语句标号与语句之间用冒号作分隔。 例如: label_123 : a=50;,第26页,goto语句与if语句一起构成循环结构,如下的例子即是二者组成的循环结构。 例5.10 用if语句和goto语句构成循环,求1+2+3+n的值。 # include int main() int i,n,sum=0; i=1; scanf(“%d”, goto语句可使程序的流程变的毫无规律、可读性差,在程序设计中尽量不用。,第27页,例5.11 从键盘输入1000个学生某一门课的成绩值(百分制),统计大于或等于80分的人数、大于或等于60分并且小于80分的人数、小于60分的人数。 分析:可以通过循环实现。每次循环输入一个成绩值,判断该成绩值属于哪一种类型,然后让相应的变量累加。循环结束后

      《C语言程序设计(第二版) 教学课件 ppt 作者 978-7-302-32355-6 kj-第5章循环结构程序的设计》由会员E****分享,可在线阅读,更多相关《C语言程序设计(第二版) 教学课件 ppt 作者 978-7-302-32355-6 kj-第5章循环结构程序的设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.