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

C语言程序设计教程 第2版 教学课件 ppt 作者 吉顺如 刘新铭 辜碧容 第4章 C程序的控制结构

68页
  • 卖家[上传人]:E****
  • 文档编号:89452866
  • 上传时间:2019-05-25
  • 文档格式:PPTX
  • 文档大小:372.58KB
  • / 68 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第4章 C程序的控制结构,学习目标,熟练掌握 if 语句,掌握 switch 语句,会利用这两种语句进行条件分支结构的程序设计。 熟练掌握 for 语句、while 语句和 dowhile 语句,会利用这三种语句进行循环结构的程序设计。 掌握 break 语句和 continue 语句与上述语句配合使用的方法。,主要内容,程序算法的概念 顺序结构 分支结构 循环结构,4.1 程序算法简介 计算机科学家沃思提出公式: 数据结构 + 算法 = 程序 数据结构对数据的描述。如前面所介绍的各 种数据类型就是最简单的数据结构。 算法对操作的描述,是为解决一个问题而采取 的方法和步骤。通常用流程图表示算法。 一.算法的概念,计算1+2+3+4+100可以二种不同的算法: 算法一:先作1+2,再加3,再加4,一直加到100,最后得到 结果:5050。 算法二:利用等差数列求和公式: n(n+1) 2,比较算法一和算法二: 算法二不具有普遍性,许多级数求和问题是不能简单地用公 式表示的,如: cos1+cos2+cos3+cosn 算法一所反复实施的是二个数的加法运算: 1、12、(1+2)+3、(1

      2、+2+3)+4、(1+2+3+99)+100 这种看似枯燥、单一,反复实施的运算利用C语言提供的选 择结构和循环结构却是很容易实现的,而且这一算法适用于 不同的级数求和问题。由于计算机具有极高的运算速度,这 样的程序结构恰好发挥了计算机的特长。 结论: 对计算机而言,算法一优于算法二。 选择一个好的算法是设计出高质量程序的前提。,【例4-1】为计算1+2+3+n设计一个算法,其中 n的值由键盘输入。 步骤1:从键盘输入n的值 步骤2:0 sum (使变量sum具有初值0) 步骤3:1 i(使变量i具有初值1) 步骤4:sum+i sum (用sum+i的值取代sum原 来的值) 步骤5:i+1 i (使变量i的值增1) 步骤6:若in, 再返回到步骤4,否则结束。 说明: 算法中,步骤4到步骤6组成一个循环,最后的计算 结果存放在变量sum中。 上述算法中的每一个步骤都可以用C语言来描述,并 最终成为一个完整的C程序。,二. 算法的表示 算法用流程图来表示。所谓流程图就是用一些 图框表示各种操作,形象直观,易于理解。 常用的流程图符号 :,开始、结束框,输入、输出框,处理框,判断框,流

      3、程线,按算法一计算123n 的流程图, 其中n的值由键盘输入。,开始,输入n,0 sum 1 i,sumi fac i+1 i,in ?,y,输出sum,n,结束,三. 算法的特性,有穷性:一个算法所包含的操作步骤必须是有限的。 2.确定性:指算法中的每一个步骤的含义必须是明确 的,不能有二义性。 3.由零个或多个输入:如果算法中的n是已知的数据, 而不是来自外部,可以没有输入。 4.有一个或多个输出:通过输出了解算法的结果。 5.有效性:算法中的每一个步骤都应当是可以被执行 的,并能得到确定的结果。,4.2 顺序结构,顺序结构: 顺序结构是最简单的程序结构,在执行时,按语句的先后次序依次执行,直至结束。,【例4-2】编写程序,要求从键盘输入圆的半径r, 计算圆的面积s和周长l。,#define PI 3.1415926 main() float s,l,r; printf(“Please Input r“); scanf(“%f“, ,将r2表示为r*r或 用函数表示为 pow(r,2),定义符号常量,【例4-3】从键盘上输入一个三位正整数,然后逆序 输出。,main() int a

      4、,b; scanf(“%d“, ,取出个位数,得到由百位数数字 和个位数数字组成 的二位数,4.3 关系运算符和关系运算表达式,一.关系运算符 关系运算符用于表达式之间的比较: 大于比较运算符: 小于比较运算符: = 小于等于比较运算符:、=、= 具有相同的运算优先级,= 和!=具 有相同的运算优先级。后一组的运算优先级又低于 前一组。 同优先级的关系运算符遵循左结合 自左至右的 结合方向。,二. 关系运算表达式 二个表达式通过关系运算符连接而成为关系运算表达式。 关系运算表达式的一般形式为: 例如: ca+b、a! =2、-5=b-c 都是合法的关系 运算表达式。 关系运算表达式的结果为逻辑值。,1(表示“真”) 当关系运算表达式 成立时(True)。 逻辑值 = 0(表示“假”) 当关系运算表达式 不成立时(False)。,关系运算符的优先级 高 算术运算符:+ - * / % 关系运算符: = = 关系运算符:= != 低 赋值运算符:= += -= *= /= %=,【例4-4】设:a=3, b=4, c=5,判断下列各关系运算表达式的结果。 x = b a 由于关系运算符优先

      5、于赋值运算符,所以 原式等价于 x = ( b a ),由题设可知 ba 成立,结果为1, 故最后执行赋值运算 x=1。 (2) a != b = c 由于关系运算符 != 的运算优先级低于关系运算符 =,所以原式等价于 a != ( b = c ),由题设可知 b=c 不成立,结果为0, 原式可化为 a!=0,由题设可知a!=0成立,结果为1。,(3) ( a b ) ( b b 不成立,结果为0, b 1, 其结果为0。 (4) f = a b c 由于同优先级的关系运算符遵循自左至右的结合方向, 故原式等价于: f = ( a b ) c ), 由题设可知,a b的结果为1,( a b ) c的结果为1, 最后执行赋值运算: f=1。,4.4 逻辑运算符和逻辑运算表达式,逻辑运算符包括 ! (逻辑非运算) & (逻辑与运算) | (逻辑或运算) 逻辑表达式 用逻辑运算符连接而成的表达式。逻辑 运算的结果为逻辑值,以1表示“真”(true), 以0表示“假”(false)。,高 逻辑运算符:! 算术运算符:+、 -、 * 、/ 、% 关系运算符: 、=、 = 关系运算符:= 、!=

      6、 逻辑运算符:& 、| 低 赋值运算符:=、 +=、 -=、 *=、 /=、n %=,运算符的优先级:,注意: C允许算术运算表达式参与逻辑运算,在参与逻辑运算时,一切非零值均作为逻辑值1,而将 零值作为逻辑值0。,逻辑运算法则: (设A,B是参与逻辑运算的二个量),逻辑“与”运算法则:( 运算符:& ) A & B 的结果为1, 当且仅当A, B的值均为 非0,否则,A & B 的结果为0。 例如: 1 & 0 的结果为0 -5 & 3.14 的结果为1 0 & 0的结果为0,逻辑“或”运算法则:( 运算符:| ) A | B 的结果为0, 当且仅当A、B的值均为0, 否则,A | B 的结果为1。 例如: 1 | 0 的结果为1 -5 | 3.14 的结果为1 0 | 0的结果为0 逻辑“非”运算法则:( 运算符: !) !A 的结果为0, 当且仅当A的值为非0, 否则,!A的结果为1。 例如: !0 的结果为1 !3.14 的结果为0,【例4-5】设 int a= 3, b = 4, c = 5;判断下列 表达式的值: 说明: 由于逻辑与、或运算的优先级低于关系运算符, 故将下列

      7、各式中的括号去除后对结果没有影响。 (1). (ab)|(ca) 由题设可知,原式等于 0 | 1, 结果为1。 (2). (!ca)|(b3)|(43)|(43) 也即是:1 & 1|0,按自左向右的结合方向, 最后结果为1。,【例4-6】设 int a= 3, b = 4, c = 5;判断表达式a= (b=!a) & (c=b)的值。 原表达式等价于a=(b=!a) & (c=b) 。 C语言规定: 在执行“&”运算时,如果“&”运算符左边表达式的值为0,则已经可以确定“&”运算的结果一定为0,故不再执行“&”运算符右边表达式规定的运算。类似地,在执行“|”运算时,如果“|”运算符左边表达式的值为1,则已经可以确定“|”运算的结果一定为1,故不再执行“|”运算符右边表达式规定的运算。 由题设可知,!a的值为0,故赋值运算表达式b=!a的值为0,按C语言规定,赋值运算表达式(c=b)将不被执行,c的值还是5,b的值为0,由于逻辑运算表达式(b=!a) & (c=b)的值为0,故a的值为0,整个赋值运算表达式为0。,逻辑表达式的应用举例,1.数学中的 1x5,并且 x3可用逻辑表达式

      8、表示为: x=1 & x5 & x!=3; 2.x是3的倍数或5的倍数,可用逻辑表达式表示为: x%3=0 | x%5=0;,4.5 选择结构,在许多场合,需要根据不同的情况执行不同的语句。称这种程序结构为选择结构。C语言提供的条件语句和开关语句可用于实现选择结构程序设计。,一. if语句和ifelse语句,if语句 if语句的格式: if(表达式) 语句,值为0,执行时,首先计算表达式的值,若其值不为0 (表示真),则执行语句部分,否则, 跳过语句 部分,执行其后面的语句,【例4-7】从键盘输入实数a,输出a的绝对值。 main() float a; printf(“Enter a floatn“); scanf(“%f“, ,若a0成立,执行a=-a 否则直接执行printf 语句,【例4-8】从键盘输入一个正整数n,如果n是一个三位数, 将其逆序输出,否则,直接结束。 main() int a,b; scanf(“%d“, , b=a%10; a/=10; printf(“%d“,b); b=a%10; printf(“%d“,b), a/=10; printf(“%dn“,a)

      9、; ,复合语句,取出个位数字,取出由百位数字 和十位数字构成 的二位数,ifelse语句 ifelse语句的格式: if(表达式) 语句1 else 语句2,执行时,首先计算表达式的值,若其值不为0,则执行语 句1, 否则,执行语句2。语句1和语句2必定有一个、而且 只能有一个被执行。之后,执行其后续语句。,【例4-9】从键盘上输入两个整数a和b,按先大后 小的顺序输出。 main() int a,b; printf(“Please enter two integersn“); scanf(“%d,%d“, ,ab成立,执行 这一语句,ab不成立,执 行这一语句,例4.10 输入a,b,c,利用求根公式求一元二次方程 ax2+bx+c=0 的根。 流程图 :,#include main() float a,b,c; float x1,x2,delta; printf(“ Please Input a,b,c : “); scanf(“ %f,%f,%f “, ,printf(“ x1=%f , “,(-b+ delta)/(2*a); printf(“ x2=%fn “,(-b- delta)/(2*a); else delta=sqrt(-delta); printf(“ x1=%f + %fin “,-b/(2*a),delta/(2*a); printf(“ x1=%f - %fin “, -b/(2*a),delta/(2*a); ,程序:,if与else配对, 用以找出a、b中 的大者,【例4-11】编程求整数a、b、c中的最大者,a、b、c由键盘 输入。 main() int a,b,c,max; print(“Please enter three integers:n“); scanf(“%d,%d,%d“, ,条件运算符

      《C语言程序设计教程 第2版 教学课件 ppt 作者 吉顺如 刘新铭 辜碧容 第4章 C程序的控制结构》由会员E****分享,可在线阅读,更多相关《C语言程序设计教程 第2版 教学课件 ppt 作者 吉顺如 刘新铭 辜碧容 第4章 C程序的控制结构》请在金锄头文库上搜索。

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