选择结构的程序设计.ppt

上传人:zhu****ei 文档编号:5409938 上传时间:2020-01-28 格式:PPT 页数:26 大小:786.50KB
返回 下载 相关 举报
选择结构的程序设计.ppt_第1页
第1页 / 共26页
选择结构的程序设计.ppt_第2页
第2页 / 共26页
选择结构的程序设计.ppt_第3页
第3页 / 共26页
点击查看更多>>
资源描述
C语言程序设计 1 第五章选择结构的程序设计 内容提要关系表达式与逻辑表达式选择结构控制语句 if语句 switch语句 2 第五章选择结构的程序设计 引例 输入一个数x 判断这个数是奇数还是偶数 分析 输入x判断x能不能被2整除如果x能被2整除 输出x是偶数否则 输出x是奇数 画出N S图 includevoidmian intx printf Enteranumber scanf d Enteranumber 22isoushu 3 5 1关系表达式 关系运算 是对两个量进行 比较运算 关系运算符 优先级别 注意 区分 和 关系表达式 用关系运算符将两个表达式 算术表达式 字符表达式 连接起来的有意义的式子 如 x 0 a A a a b b Y Y注意 数值量比较 数字的大小字符量比较 ASCII码大小 4 5 1关系表达式 关系运算关系运算符优先级别关系表达式的值 真 1 假 0 问 a 1 b 5 c a 时上述表达式的值 结合性 左结合 5 5 2逻辑表达式 逻辑运算符 与 或 非 优先级别 a b b ca b c 0 a a b5 3 2 83 2 8 3 2 8 3 2 8 3 2 8 4 2 a b b c a b c 0 a a b 6 5 2逻辑表达式 逻辑量当一个量 可以是基本类型的常量或变量 用作判断时 C编译系统认为 非0 真 0 假逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子单个逻辑量 关系表达式是逻辑表达式的特例逻辑表达式的值真 1 假 0 如 若a 4 则 aa 54 0 011 a b b ca b c 0 a a b5 3 2 83 2 8 3 2 8 3 2 8 3 2 8 4 2 a b b c a b c 0 a a b 7 5 2逻辑表达式 例5 1 判断某年year是否闰年 闰年 能被4整除 但不能被100整除 或能被400整除 year 4 0 year 100 0 year 400 0练习 写出C语言的表达式 Abs x 2或x 2 x 2 x 1 a y b x 1 x 2 0 x 0或 x 2 x 1 x 0 写出表达式的值 a 2 b 0 c 2 5 a b c b c0 a1 a c 1110 8 5 3if语句 5 3 1if语句的三种形式 条件执行if P A分支选择if p AelseB当P为真值 非0 时执行A 否则执行B或后续语句if a 0 printf Aiszhengshu n elseprintf aisnotzhengshu n A或B都可以是单一语句 也可以是复合语句else部分不能独立存在 即else前一定有一个 它必定是if语句的一部分 if a 0 printf aisazhengshu 例 if x y t x x y y t 条件逻辑表达式 语句 注意 在C语言中 表达式P的值为非0时 系统均按 真值 来处理 例如 if a printf OK x 5 if x printf OK y 0 if y 0 printf OK y 0 if y printf OK 9 5 3if语句 5 3 1if语句的三种形式 条件执行if P A分支选择if p AelseB 例5 2 读程序 includevoidmian floatx y printf Enterx scanf f 提问 若将y 1和if语句位置互换 得到结果是否相同 Enterx 2x 2 0y 5 5 y 1 if x 0 y x 5 1 x 10 5 3if语句 例5 3输入一个整数a 判断它是奇数还是偶数 偶数 a 2 0 includevoidmian inta printf tInputanumber scanf d Inputanumber 125125isajishu 11 5 3if语句 例5 4 任给a b c三个数 按照从大到小的顺序输出 分析 对于任意两个数a b 若a b 输出a b否则 输出b a对于三个数 有六种可能 a b ca c bb a cb c ac a bc b a使用判断 交换法 若a b 则交换a b若a c 则交换a c若b c 则交换b c 交换方法 设a 5 b 8a b b a结果a 8 b 8所以要引入中间变量 t a a b b t a b t 5 8 5 8 5 12 5 3if语句 例5 4 任给a b c三个数 按照从大到小的顺序输出 includevoidmian inta b c t printf Inputa b c scanf d d d Inputa b c 345045 0 3 13 5 3if语句 5 3 1if语句的三种形式 条件执行if P A分支选择if p AelseBelseif形式 阶梯式的if else语句 if P1 S1 elseif P2 S2 elseif Pn Sn elseSn 1 系统从上到下的逐个判断条件P 一旦发现某个条件Pi满足时 则执行与它有关的语句Si 并跳过其它剩余的阶梯 若所有条件均不满足 执行最后一个else语句或后续语句 注意 一般else与最近的if匹配 14 5 3if语句 例5 5 评价学生的成绩 score 90优秀score 80良好score 70中score 60及格score 60不及格 includevoidmian intscore printf Inputascore scanf d Inputascore 86良好 15 5 3if语句 例5 6 设平面上一点M 其坐标为 x y 若M落在圆心在坐标原点的单位圆上 则置key 1 落在圆外置key 2 落在圆内置key 0 分析 求M到原点的距离l 比较l和单位圆半径的大小 从而得到相应的key值 include includevoidmain floatx y l intkey printf Inputx y scanf f f Inputx y 1 50 3x 1 5 y 0 3key 2 16 5 3if语句 5 3 2if语句的嵌套 if P1 if P2 AelseBelseif P3 CelseD 例5 7 计算函数 include includevoidmain floatx y printf Inputx scanf f f Inputx y 1x 1 0 y 2 8 多路分支 17 if P1 if P2 Aelseif P3 CelseD 5 3if语句 5 3 2if语句的嵌套 if P1 if P2 AelseBelseif P3 CelseD if P1 Aelseif P2 CelseD ifif P3 AelseBelseC if P1 if P2 Aelsec if P1 if P2 A elseif P3 CelseD if P1 if P2 A elsec 思考 else与那个if配套 比较 if x if y printf 1 elseprintf 2 if x if y printf 1 elseprintf 2 由此可看出 通过加 可以改变else的层位 从而改变程序的执行流程 else与最近的if匹配 18 5 3if语句 例5 8 判断某年是否闰年 闰年 年份year能被4整除 但不能被100整除 或能被400整除 include includevoidmain intyear leap printf Inputyear scanf d Inputyear 20022002isnotrunnian 19 5 3if语句 5 3 3条件运算符与条件表达式 条件运算符 和 C语言中唯一的三目运算符 条件表达式 e1 e2 e3如 a b a b执行过程 计算e1e1值为非0 真 计算并返回e2的值 否则计算并返回e3的值运算顺序 高于赋值运算 低于算术 关系 逻辑运算如 y x 0 1 sin x x等价于 if x 0 y 1 elsey sin x x 条件运算符的结合方向是 右结合 如 a b a c d c d等价于 a b a c d c d 20 5 3if语句 例5 9 读程序 写出程序完成的功能 includevoidmain inta b imax printf Inputdatatoaandb scanf d d 找出a b两个数中的大数 printf Themaxis d imax a b a b printf Themaxis d a b a b 赋值表达式 条件表达式 Inputdatatoaandb 1234maxis34 21 5 3if语句 例5 10 任意输入一个字符 若是大写字母 将其转换成小写字母 判断一个字符ch是否是大写字母的方法 ch A ch 65 ch 90大写字母转换成小写字母的方法 ch 32ch a A includevoidmain charch ch getchar ch ch A Tt ch ch 65 由例9例10可以看出 出于二分支 并对同一变量赋值时 用条件表达式较方便 思考 小写字母转换为大写字母 22 5 4开关语句 开关语句亦称多分支选择语句 它比用嵌套的if语句实现多路分支问题 其程序结构清晰 易读 形式switch e casec1 语句1casec2 语句2 casecn 语句n default 语句n 1 其中 表达式e可以是整型 字符型 枚举型常量表达式ci必须与表达式e的类型一致 整型和字符型通用 执行过程计算表达式e的值若与常量表达式ci值一致 则从语句i开始执行 知道遇到break语句或switch语句的 若与任何表达式值均不一致 则执行default语句或后续语句 注意 常量表达式ci仅起语句标号作用 不做求值判断常量表达式的值必须唯一 没有先后次序多个case语句可共用一组执行语句 23 5 4开关语句 如 switch x case1 printf statment1 break case2 printf statment2 break default printf default 提问 若case1 2没有break 结果是什么 例5 11 用switch语句重做例5 5 评价成绩 includevoidmian intscore printf Inputascore scanf d includevoidmian intscore printf Inputascore scanf d 关键 如何表示表达式和常量常量的取值与表达式有关 24 5 4开关语句 例5 12 运输公司对用户计算运费 收费标准随距离s变化如下 s 250km不折扣250 s 500km2 500 s 1000km5 1000 s 2000km8 2000 s 3000km10 3000 s15 分析 计费是按照运输距离s和货物重量w进行的 设每公里每吨货物的基本运费是p 考虑折扣d 总运费的计算公式 f p w s 1 d int s 250 0 d 01 d 0 022 3 d 0 054 7 d 0 088 11 d 0 1其它 d 0 15 includevoidmian floats w p d f printf Inputp w s scanf f f f 25 5 4开关语句 例5 13 设计一个j简单的计算器 完成两个数的加减乘除 分析 输入两个数x y及运算符chswitch表达式 运算符常量 includevoidmain floatx y charch printf Enterx ch y scanf f c f Enterx ch y 4 64 00 6 00 10 00 26
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!