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

c语言程序设计教程(二)ppt

291页
  • 卖家[上传人]:tia****nde
  • 文档编号:70631321
  • 上传时间:2019-01-17
  • 文档格式:PPT
  • 文档大小:825.81KB
  • / 291 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、C语言程序设计教程(二),第5章 循环结构 第6章 数组 第7章 函数,第5章 循环结构,循环结构与顺序结构、选择结构一起构成了解决各种复杂程序设计的基础,它主要用于处理那些需要重复执行的操作。相对于程序设计的三种结构,循环结构是最难掌握的,同时,它也是最重要的。C语言中构成循环结构的语句有三类:while循环,do-while循环和for循环。 通过本章学习,应掌握三类循环结构及其综合应用,强化循环的程序设计思想。,5.1 问题的提出,在许多问题中需要用到循环结构,我们先看两个实际问题。第一个问题是打印如图5-1所示图案。另外一个问题是计算从键盘输入n的阶乘(先不考虑溢出问题)。 * * * * * * * * * 图5-1 菱形图案,5.1 问题的提出(续),看到第一个问题,很多初学者觉得这个问题很简单,只要学习过printf语句,就能写出程序: #include void main() printf(“ * n“); printf(“ * n“); printf(“ * n“); printf(“ * n“) printf(“*n“); printf(“ * n“) printf

      2、(“ * n“); printf(“ * n“); printf(“ * n“); ,5.1 问题的提出(续),很显然,这个程序完全能够完成题目的要求,同时也能看出程序设计员没有利用循环结构,如果再按照相应的规律增加几十行,甚至几百行的话,那么又应该如何写此程序呢? 第二个问题如果再不使用循环结构的话就不能完成了,因为在程序执行之前,程序员本身并不知道用户输入的n的值到底是多少。类似的问题应该如何解决呢?学习完本章的内容后,回头再来看这些问题,如果能熟练掌握循环结构程序设计思想的话,这些问题将迎刃而解。 常用的循环语句包括三类:while循环,do-while循环和for循环。,5.2 while 循环结构,while语句是循环结构结构程序中很常用的语句,该语句通常用于构成“当型”循环结构。,5.2.1 while语句的基本形式,while语句的一般形式为: while (表达式) 循环体语句; 其执行过程为:先计算表达式的值,如果表达式的值为“真”(非0),则执行循环体语句,同时修改相应的变量后,再计算表达式,重复该过程,直到表达式的值为“假”(0)时退出循环。,5.2.2 whil

      3、e语句的应用,例5-1编程实现:从键盘输入n,计算n!(本例不考虑溢出问题)。 分析:先从键盘输入n,先判断n是否大于0,若小于0则提示用户正确输入,若等于0或1,则输出结果为1,若大于1则利用公式计算n!的值,然后输出即可。 程序代码如下: #include void main() int n; int i=1,sum=1; printf(“Please input a number: “); scanf(“%d“,5.2.2 while语句的应用(续),if(n1) while(i=n) sum*=i; i+; printf(“The result of n! is :%dn“,sum); ,5.2.2 while语句的应用(续),运行结果: Please input a number: -4 Error!Enter again: 0 The result of n! is 1 Please input a number: 4 The result of n! is :24,5.2.2 while语句的应用(续),例5-2 编程实现:将从键盘输入的一串字符显示在屏幕上,遇到字符“*

      4、”时终止(用while语句实现)。 分析:输入一个字符,判断该字符是否为终止符号“*”,若不是终止符号则继续输入,碰到回车符号开始接收输入,碰到“*”结束输入。 本例不能输出“*”,请读者思考如何设计程序使得能输出“*”。,5.2.2 while语句的应用(续),程序代码如下: #include void main() char c; printf(“Please input a string end with *:n“); c=getchar(); while(c!=*) putchar(c); c=getchar(); ,5.2.2 while语句的应用(续),运行结果: Please input a string end with *: -4 56780 -4 56780 Guangxi* Guangxi,5.2.2 while语句的应用(续),例5-3 编程实现:输入某门课程的若干名同学的成绩,以-1作为结束输入的标志,计算该门课程的平均成绩。 分析:先输入一个成绩,若输入-1,直接结束,否则,使用循环结构计算总成绩,同时用计数器记录输入成绩个数,最后利用公式:平均分=总成绩/

      5、输入成绩个数,来求取平均成绩。,5.2.2 while语句的应用(续),程序代码如下: #include void main() int n=0; float sum=0,score=0; printf(“Please input the score end with -1: “); scanf(“%f“,5.2.2 while语句的应用(续),if(score=0) while(score!=-1) sum+=score; scanf(“%f“, ,5.2.2 while语句的应用(续),运行结果: Please input the score end with -1: -4 No score! Please input the score end with -1: 90 86 48 84 -1 The average score is 77.00,5.2.2 while语句的应用(续),注意: (1)循环体若包含一个以上的语句,则要用花括弧把这些语句括起来,以复合语句形式出现,否则,可能与程序要求不符,因为while语句的范围只到while后面的第一个分号处。例5-2中若把 whi

      6、le(c!=*) putchar(c); c=getchar(); 的花括弧去掉,写成: while(c!=*) putchar(c); c=getchar(); 则程序显然不能完成题目要求,并且会陷入死循环。,5.2.2 while语句的应用(续),(2)在循环体中一定要有使循环趋向结束的操作。比如:例5-1的i+和例5-3的n+语句,否则,循环将永不结束,形成死循环。 (3)如果循环表达式的值为“0”或者假,则循环体语句一次也不执行。 例如: while(0) sum*=i; i+; 由于表达式的值为0,循环体语句一次也不执行。,5.2.2 while语句的应用(续),(4)循环表达式的值为“1”或者“永真”的时候,可以通过if语句对循环进行控制。例5-1中的语句: While(i=n) sum*=i; i+; 两个循环体能完成相同的功能,其中的break语句用于跳出循环。break语句的用法参见本章第五节。 (5)while循环语句的循环体中又可以包含循环语句,称为循环语句的嵌套,又称为多重循环,While(8) sum*=i; if(i=n) i+; else break; ,

      7、可以写成:,5.3 do-while 循环结构,do-while语句也是循环结构结构程序中比较常用的语句,该语句类似于“直到型”循环结构,但它的循环继续条件与“直到型”相反。,5.3.1 do-while语句的基本形式,while语句的一般形式为: do 循环体语句; while (表达式); 其执行过程为:先执行一次循环体语句,然后计算表达式的值,如果表达式的值“真”(非0),则再次执行循环体,同时修改相应的变量后,再计算表达式,重复该过程,直到表达式的值为“假”(0)时退出循环。,5.3.2 while语句的应用,例5-4 编程实现:从键盘输入正整数n,计算s=1+2+3+n(用while语句实现)。 分析:从键盘输入正整数n,利用公式计算s=1+2+3+n,然后输出s。 程序代码如下:,5.3.2 while语句的应用(续),#include void main() int n; int i=0,s=0; printf(“Please input a positive integer: “); scanf(“%d“, ,5.3.2 while语句的应用(续),运行结果: Plea

      8、se input a positive integer:100 The result is 5050 Please input a positive integer:999 The result is :499500,5.3.2 while语句的应用(续),例5-5 编程实现:将从键盘输入的一串字符显示在屏幕上,遇到字符“*”时终止(用do-while语句实现). 分析:输入一个字符,判断该字符是否终止符号“*”,不是终止符号则继续输入,碰到回车符号开始接收输入,碰到*结束输入。 程序代码如下:,5.3.2 while语句的应用(续),#include void main() char c; printf(“Please input a string end with *:“); do putchar(c=getchar(); while(c!=*); ,5.3.2 while语句的应用(续),运行结果: Please input a string end with *: Guangxi Guangxi 233234746767hfas* 233234746767hfas*,5.3.2

      9、 while语句的应用(续),注意: (1)和while语句类似,do-while循环体内也一定要有改变循环条件的语句,使循环趋向于结束。 (2)为了避免编译系统把do-while语句的while当成while语句中的while语句的开始,do-while的循环体即使只有一个语句,也需要用花括号括起来。例5-5中的do-while循环体部分可以改写成: do putchar(c=getchar(); while(c!=*); 这样的循环体同时能完成和例5-5一样的功能,但是若把花括号去掉,写成: do putchar(c=getchar(); while(c!=*); 则编译系统可能把while(c!=*);部分当成一个while语句进行编译。,5.3.2 while语句的应用(续),3)do-whlie循环先执行循环体语句,后判断表达式,也就是说不管其表达式的值是否总为“假”(0),其循环体语句总能够被执行。 例如: while(0) do printf(“While!n”); printf(“Do-while!n”); while(0); 上例很容易看出while语句和do-while语句的不同之处,while语句执行的时候是没有输出的,但是do-while语句执行的时候就会输出:Do-while!。可以得到结论:在两者有相同循环体的情况下,当while后面的表达式的第一次为“真”时,两个循环体得到的结果相同,否则,二者结果不同。 (4)do-while循环语句的循环体中又可以包含循环语句以实现多重循环。,5.4 for 循环结构,在三类循环结构语句中,for语句使用最为灵活,不仅可以用于循环次数已

      《c语言程序设计教程(二)ppt》由会员tia****nde分享,可在线阅读,更多相关《c语言程序设计教程(二)ppt》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党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.