已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 C程序设计第4章选择结构程序设计 主讲教师 鲁萍西安建筑科技大学理学院 2 第4章选择结构程序设计 为什么要用选择结构 实现选择结构的语句if else switch如何表示 判断条件 关系运算符及表达式逻辑运算符及表达式条件运算符及表达式选择结构综合举例 小结 习题 游戏 3 选择结构 如果b2 4ac 0方程有实根否则方程没有实根如果明天不下雨出去郊游如果考试不及格参加补考如果遇到红灯停车等待 公园门票 如果 年龄大于70岁0元年龄小于7岁10元年龄大于50岁小于70岁20元其他50元 ifelse 条件成立A事情 B事情 4 选择结构程序设计 includeintmain floata b c disc x1 x2 p q printf 输入abc scanf lf lf lf A0307例 求ax2 bx c 0方程的根 设b2 4ac 0a b c由键盘输入 5 4 1选择结构程序设计 intmain floata b c disc x1 x2 p q scanf lf lf lf A0401例 求ax2 bx c 0方程的根 a b c由键盘输入 输出 无实根 p b 2 0 a q sqrt disc 2 0 a x1 p q x2 p q printf f f x1 x2 6 A0402 例4 3 输入任意三个数a b c 按从小到大的顺序排序输出 分析 abc输入 523输出 235if a b a和b交换 交换后a min a b if a c a和c交换 交换后a min a b c if b c b和c交换 交换后b为次大值 c为最大值 选择结构程序设计 交换a和bt a a b b t 7 A0402 例4 3 输入任意三个数a b c 按从小到大的顺序排序输出 选择结构程序设计 交换a和bt a a b b t 思路 if a b a和b交换if a c a和c交换if b c b和c交换 intmain inta b c t scanf d d d 8 4 2if语句 一般格式 if 表达式 语句体 说明 1 执行过程 当表达式的值为真 非0 时 执行语句体2 表达式 常量 变量 函数调用 表达式3 表达式必须加 括起来4 语句体 一条或多条语句 多条语句用 括起来5 一个if语句总体上只算一条语句 9 if else 语句 if else的执行过程 if 表达式 语句体1else语句体2 说明 1 else必须与if配对使用 不能单独使用 2 if语句允许嵌套 但嵌套的层数不宜太多 例如 if a b max a elsemax b 10 程序1 if x 0 if x 0 y 1 elsey 0 elsey 1 if语句嵌套时 else子句与1 在它上面 2 距它最近 3 尚未匹配的if配对 例5 3 程序2 if x 0 y 1 elseif x 0 y 0 elsey 1 程序3 y 1 if x 0 if x 0 y 1 elsey 0 程序4 y 0 if x 0 if x 0 y 1 elsey 1 x 0时 x 5 if else 语句 11 选择结构程序设计 公园门票 如果 年龄大于70岁0元年龄小于7岁10元年龄大于50岁小于70岁20元其他50元 if age 70 ticket 0if age 7 ticket 10if 50 age 70 ticket 20elseticket 50 ticket 所有条件都不成立时的 其他 50 age 70不成立时的 其他 age 65age 80age 5 ticket 20ticket 50ticket 50 12 if elseif 语句 公园门票 如果 年龄大于70岁0元年龄小于7岁10元年龄大于50岁小于70岁20元其他50元 if age 70 ticket 0elseif age 7 ticket 10elseif 50 age 70 ticket 20elseticket 50 所有条件都不成立时的 其他 13 if elseif 语句 intmain intage ticket scanf d A0403公园门票 如果 年龄大于70岁0元年龄小于7岁10元年龄大于50岁小于70岁20元其他50元 14 if elseif 语句 1 格式if 表达式1 语句组1elseif 表达式2 语句组2elseif 表达式3 语句组3elseif 表达式4 语句组4 elseif 表达式n 语句组nelse语句组n 1 15 程序1 if x 0 if x 0 y 1 elsey 0 elsey 1 例5 3 程序2 if x 0 y 1 elseif x 0 y 0 elsey 1 if elseif 语句 小结 16 输入星期中的某一天 显示对应的英文 main inti printf Input1 7 scanf d main inti printf Input1 7 scanf d 17 4 7switch实现多分支结构 1 一般形式switch 条件表达式 case常量表达式1 语句组1 case常量表达式2 语句组2 case常量表达式 语句组n default 语句组n 1 2 执行过程 1 若条件表达式 常量表达式i则执行语句组i以及语句组i 1 语句组n 1 2 若条件表达式 任何常量表达式则执行default的语句组n 1 没有分号 没有分号 18 main inti printf Input1 7 scanf d A0405输入星期中的某一天 显示对应的英文 break break break break break break 运行结果Input1 7 4 TodayisThursday TodayisFriday TodayisSaturday TodayisSunday break 跳出switch结构 空格 19 switch语句 3 说明 1 条件表达式 常量表达式 int char 枚举型例 case3 4 正确 casex y 错误设intx 3 y 4 2 多个case子句 可共用同一语句 组 例如 case10 case9 printf grade A n break 3 default可以省略 4 每个case后面的语句有多条语句时可以不加 括起来 小结 20 A0406例 从键盘上输入一个百分制成绩score 输出其等级 score 90 等级为A 80 score 90 等级为B 70 score 80 等级为C 60 score 70 等级为D score 60 等级为E 分析 switch结构 如何分段 score 10 0 10 4 7switch实现多分支结构 21 4 7switch实现多分支结构 voidmain intscore printf Inputascore 0 100 scanf d 22 switch实现菜单结构 A0407 演示简单计算器程序 分析实现思路说明 由键盘输入2个数字 让用户选择加 减 乘 除四个功能 选择一个功能后显示计算结果 分析 1 键盘键入2个操作数 2 显示功能菜单 3 接收用户的选择 整数 4 在switch结构中选择分支执行计算 5 显示计算结果 23 A0407 简单计算器程序 voidmain inta b fun result printf Inputtwonumbersaandblike1 2 scanf d d printf 1a b n printf 2a b n printf 3a b n printf 4a b n 小结 24 4 3关系运算符及表达式 1 进行比较运算2 连接的运算对象 都是双目运算符号 可以连接整型 实型 字符型 枚举型数据 25 关系运算符 3 运算结果结果为数值型 用0表示假 1表示真 可参与其它运算 如算术运算等 例 printf result d 2 1 4 优先级别 算术运算 关系运算 赋值运算例 intx 2 y 3 z z 3 1 x 14 5 2 1 结果 z 1 结果 f 0 结果 z 2 result 1 26 关系运算符 用关系运算符将两个算术表达式或两个字符串表达式联起来的式子 其值为逻辑值 例1 关系运算符 includemain inta b a 10 5 6 b 10 5 6 printf d d n a b 输出结果 例2 混合运算 includemain inta b a 6 7 7 8 b 7 7 3 printf d d n a b 输出结果 0 1 1 1 27 4 4逻辑运算及表达式 结果为 真 表达式A和B的结果只要是非0数 都认为是 真 假 0 0 0 0 NULL 1 逻辑与 同时 逻辑或 或者 逻辑非 否定 2 运算规则A B A和B都 真 结果 真 否则 假 A B A和B都 假 结果 假 否则 真 A A为 真 结果 假 A为 假 结果 真 例 假定x 5 则 x5 的值为 假 6 3 28 逻辑运算符 3 运算结果为数值型 0表示假 1表示真 4 结合方向 从左到右 从右到左 例 f 3 4 结果为15 优先级别 高 低 29 优先级图示 30 逻辑表达式 用逻辑运算符连接关系表达式的式子称逻辑表达式 例 用逻辑表达式表达下述数学式 1 080 3 10 x 30 50 x 90 相应的逻辑表达 1 0180 3 x 10 x 50 x 90 用逻辑运算符连接关系表达式的式子称逻辑表达式 例 用逻辑表达式表达下述数学式 1 080 3 10 x 30 50 x 90 相应的逻辑表达 1 0180 3 x 10 x 50 x 90 用逻辑运算符连接关系表达式的式子称逻辑表达式 例 用逻辑表达式表达下述数学式 1 080 3 10 x 30 50 x 90 31 逻辑运算的特殊规则 当某个表达式可以决定整个表达式的结果时 其他的表达式则不需要计算1 a b c 依次计算各表达式 若某个表达式值为0 则停止计算 整个表达式为0 2 a b c 依次计算各表达式 若某个表达式值为1 则停止计算 整个表达式为1 32 1 设有x y z x y z 0 执行 x y以下表达式运算结果为1的是 A ab b cC a b b cD a b b c 关系 逻辑运算符练习 混合运算中 看优先级 33 课堂练习 if语句应用实例 A0404A0503 用三种if语句编写程序 键盘输入x 输出y 1 简单if语句 2 if else 语句 3 if elseif 语句分别实现 34 算法一 用if语句实现 main floatx y printf x scanf f 35 算法二 用if else 语句实现 main floatx y printf x scanf f 36 算法三 用if elseif 语句实现 main floatx y printf x scanf f 37 1 一般格式 表达式1 表达式2 表达式33个表达式的类型可以各不相同 2 运算规则表达式1非0 运算结果等于 表达式2 的值 为0 运算结果等于 表达式3 的值 例1 if a b m a elsem b 例2 x a b 含义 x值非0 取 a 否则取 b 4 5条件运算符 m a b a b 38 例 从键盘上输入一个字符 如果是大写字母 则转换成小写字母输出 否则 直接输出 main charch printf Inputacharacter scanf c 4 5条件运算符 39 4 8选择结构程序综合举例 A0408求一元二次方程ax2 bx c 0的解 a 0 分析 disc b2 4ac 0 x1 x2 b 2a disc b2 4ac 0 x1 b sqrt disc 2a x2 b sqrt disc 2a disc b2 4ac 0 x1 b 2a sqrt disc 2a ix2 b 2a sqrt disc 2a i 输出数值数值数值数值 数值i printf f fi p q includemain inta b c disc floatx1 x2 p q scanf d d d 40 disc b b 4 a c if disc 0 printf x1 x2 f n b 2 a else disc 0 if disc 0 disc 0 x1 b sqrt disc 2 a 两个不等实根 x2 b sqrt disc 2 a printf x1 f x2 f n x1 x2 else disc 0 p b 2 a 两个共轭复根 q sqrt fabs disc 2 a printf x1 f fi n p q printf x2 f fi n p q 4 8选择结构程序设计举例 41 4 8选择结构程序设计举例 A0408求一元二次方程ax2 bx c 0的解 a 0 分析 disc b2 4ac 0 x1 x2 b 2a disc b2 4ac 0 x1 b sqrt disc 2a x2 b sqrt disc 2a disc b2 4ac 0 x1 b 2a sqrt disc 2a ix2 b 2a sqrt disc 2a i 输出数值数值数值数值 数值i includemain inta b c disc floatx1 x2 p q scanf d d d float f f f 42 disc b b 4 a c float if disc 0 printf x1 x2 f n b 2 a else disc 0 if disc 0 disc 0 x1 b sqrt disc 2 a 两个不等实根 x2 b sqrt disc 2 a printf x1 f x2 f n x1 x2 else disc 0 p b 2 a 两个共轭复根 q sqrt fabs disc 2 a printf x1 f fi n p q printf x2 f fi n p q 选择结构程序设计举例 计算机存储实数时有微小误差 所以判断disc是否为0的方法是 disc 10 6 一个非常小的数 fabs disc 1e 6 disc 1e 6 43 小结 if语句 if 表达式 语句体1else语句体2 if 表达式1 语句组1elseif 表达式2 语句组2elseif 表达式3 语句组3 elseif 表达式n 语句组nelse语句组n 1 44 小结 关系 逻辑表达式 关系运算符 逻辑运算符 将判断条件转换为关系 逻辑表达式00 ch A ch a ch z 表达式为 真 表达式的结果只要是非0数表达式为 假 表达式的结果是0 0 0 0 NULL 45 分支结构习题 B0401 输入三角形的三边长 判断是否能够成三角形 如果不能给出提示信息 如果可以 求三角形面积 B0402 习题4 12 有4个圆塔 圆心分别为 2 2 2 2 2 2 2 2 圆半径为1 4个塔的高度为10m 塔外无建筑 高度为零 输入任一点的坐标 求该点的建筑高度 B0403 键盘输入一个字符 如果是英文字符 按顺序输出该字符前一个字符 该字符以及后一个字符 注意边界字符A和Z 如果不是英文字符 给出提示信息B0404 输入一个字符 如果是大写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化学第一节 燃烧与灭火第2课时教学设计
- 七年级历史下册 第三单元 明清时期:统一多民族国家的巩固与发展 第20课 清朝君主专制的强化教学设计 新人教版
- 第三课 小猫报站名-链表的应用 教学设计 -大连版(2015)初中信息技术七年级下册
- 初中化学人教版九年级下册课题 1 金属材料获奖教学设计
- Unit 8 Section B 1a-1d 教学设计 人教版八年级英语下册
- 大连理工大学出版社教学设计-2025-2026学年中职中职专业课财务会计类73 财经商贸大类
- 2026年吉林大学白求恩第一医院神经内科诊疗平台招聘考试备考试题及答案解析
- 2026年济宁梁山县事业单位公开招聘工作人员(教育类)(25人)笔试备考试题及答案解析
- 2026贵州省残疾人联合会直属事业单位第十四届贵州人才博览会引才14人工作笔试备考试题及答案解析
- 2026江铜国贸第二批次社会招聘补充笔试备考试题及答案解析
- 雨课堂学堂在线学堂云《水声通信原理( 西工)》单元测试考核答案
- 物业管理师实操题库及案例分析含答案
- 肝血管瘤的治疗及护理
- 2025年初中二年级物理期末评估试卷(含答案)
- 石方爆破安全措施方案
- KA-T 22.3-2024 矿山隐蔽致灾因素普查规范 第3部分:金属非金属矿山及尾矿库
- 2024~2025学年山东省聊城市临清市统编版一年级下册期中考试语文试卷
- IT运维技术支持岗位运维服务质量管理方案
- 医院获得性肺炎诊断与治疗
- 水库大坝混凝土施工方案
- 实施指南(2025)《HB 8457-2014(2017)民用飞机研制项目工作分解结构》解读
评论
0/150
提交评论