




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章选择结构程序设计 C语言程序设计第五章选择结构程序设计 关系运算符和关系表达式 逻辑运算符和逻辑表达式 if语句 switch语句 程序举例 C语言程序设计第五章选择结构程序设计 include includevoidmain floatx y printf Enterx scanf f Enterx 2 x 2 00y 0 4546 5 1关系运算符和关系表达式 关系运算 即 比较运算 是对两个值进行 比较运算 比较的结果是得到真假两种值 A 3 关系表达式 关系运算符 选择结构是三种基本结构之一 其作用是 根据指定的条件所满足的情况转而执行相应的操作 C语言用关系表达式和逻辑表达式通过if语句实现双分支选择 用switch语句实现多分支选择 C语言程序设计第五章选择结构程序设计 关系运算符及其优先次序C语言提供6种关系运算符种类 结合方向 自左向右优先级别 大于 大于等于 等于 不等于 优先级6 高 优先级7 低 c a b c a b a b c a b ca bc a b c 关系表达式用关系运算符将两个表达式连接起来的式子 C语言程序设计第五章选择结构程序设计 关系表达式的值 是逻辑值 真 或 假 用1和0表示 a b a b b c 5 3 inta 3 b 2 c 1 d f a b a b cb cbf a b c 表达式值1 表达式值1 表达式值0 d 1 f 0 关系运算几点注意 C语言程序设计第五章选择结构程序设计 例5 2 7 8在C中是允许的 值为 0 例inti 1 j 7 a a i j 4 0 则a 2 例 a 0结果为 A 100结果为 1 0 结合方向自左至右 用ASCII值比较 关系运算中应该注意 C语言程序设计第五章选择结构程序设计 注意区分 与 inta 0 b 1 if a b printf aequaltob elseprintf anotequaltob 应避免对实数作相等或不等于0的判断如1 0 3 0 3 0 1 0可改写为 fabs 1 0 3 0 3 0 1 0 1e 6 5 2逻辑运算符和逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式 逻辑运算符 C语言提供3种逻辑运算符 C语言程序设计第五章选择结构程序设计 和 是双目运算符 是单目运算符 逻辑运算真值表 93页 C语言程序设计第五章选择结构程序设计 例 优先次序 a b x y a b x y a a b 写成a b x y 写成a b x y 写成 a a b 逻辑运算符的优先次序 非 与 或 优先次序 高 2 11 12 低结合方向 从右向左从左向右从左向右 逻辑表达式 C语言程序设计第五章选择结构程序设计 C语言中 运算量 0表示 假 运算结果 0表示 假 非0表示 真 1表示 真 例a 4 b 5 aa ba b a b4 0 25 3 2 8 4 0 c d 值为1 值为0 值为1 值为1 值为1 值为1 5 3 2 8 4 0 值为1 逻辑运算中的注意点 短路特性 逻辑表达式求解时 并非所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 C语言程序设计第五章选择结构程序设计 若a 1 b 2 c 3 d 4 m 1 n 1 则 m a b n c d a b c 只在a为真时 才判别b的值 只在a b都为真时 才判别c的值a b c 只在a为假时 才判别b的值 只在a b都为假时 才判别c的值 结果m 0 n 1 复杂逻辑条件的表述判断某一年year是否为闰年 C语言程序设计第五章选择结构程序设计 判别闰年的条件 intyear 必要条件 能被4整除 year 4 0情况1 能被4整除但不能被100整除 year 4 0 year 100 0 情况2 能被400整除 year 400 0综合起来 year 4 0 year 100 0 year 400 0 此表达式为真时是闰年 优化语句 year 4 0 year 100 0 year 400 0 5 3if语句 条件选择语句 If语句的三种形式形式一 格式 if 表达式 语句执行过程 C语言程序设计第五章选择结构程序设计 main intx y x 20 y 10 if x y printf d x 没有 C语言程序设计第五章选择结构程序设计 形式二 格式 if 表达式 语句1else语句2执行过程 main intx y x 20 y 10 if x y printf d x elseprintf d y C语言程序设计第五章选择结构程序设计 形式三 格式 if 表达式1 语句1elseif 表达式2 语句2elseif 表达式3 语句3 elseif 表达式m 语句melse语句n执行过程 例 if number 500 cost 0 15 elseif number 300 cost 0 1 elseif number 100 cost 0 075 elseif number 50 cost 0 05 elsecost 0 必须有 C语言程序设计第五章选择结构程序设计 几点说明 if后面的表达式类型任意 if后面的语句可以是复合语句 必须要加 if a b 考虑下面程序的输出结果 main intx y temp scanf d d CompileError 后没有 C语言程序设计第五章选择结构程序设计 includevoidmain inta b printf Enterintegera scanf d 例 输入两个数并判断两数是否相等 运行 Enterintegera 12 Enterintegerb 12 a b 运行 Enterintegera 12 Enterintegerb 9 a b C语言程序设计第五章选择结构程序设计 includevoidmain charc printf Enteracharacter c getchar if c 0 例 判断输入字符种类 运行 Enteracharacter Thecharacterisacontrolcharacter 运行 Enteracharacter 8 Thecharacterisadigit 运行 Enteracharacter D Thecharacterisacapitalletter 运行 Enteracharacter h Thecharacterisalowerletter 运行 Enteracharacter F1 Thecharacterisothercharacter C语言程序设计第五章选择结构程序设计 includevoidmain floata b t scanf f f 例5 1 输入两个实数 按由小到大的次序输出两数 输入 3 6 3 2 输出 3 20 3 60 C语言程序设计第五章选择结构程序设计 includevoidmain floata b c t scanf f f f 例5 2 输入三个数 按由小到大的次序输出 输入 3 7 1 输出 1 00 3 00 7 00 If语句的嵌套If语句中又包含一个或多个if语句称为if语句的嵌套 实际上只要将前述if语句的形式1和2中的内嵌语句用一个if语句代替 即成为if语句的嵌套 嵌套的if语句还可以嵌套另一个if语句 形成多重嵌套 一般形式 C语言程序设计第五章选择结构程序设计 if嵌套的几种变形 C语言程序设计第五章选择结构程序设计 注意 else总是与前面最近的if配对 必要时用 限定内嵌if范围 例 输入两个数并判断其大小关系 C语言程序设计第五章选择结构程序设计 includevoidmain intx y printf Enterintegerx y scanf d d Enterintegerx y 12 23 XYEnterintegerx y 12 12 X Y if else配对原则 缺省 时 else总是和它上面离它最近的未配对的if配对 C语言程序设计第五章选择结构程序设计 例考虑下面程序的输出结果 main intx 100 a 10 b 20 intv1 5 v2 0 if a b if b 15 if v1 x 1 elseif v2 x 10 x 1 printf d x 结果 1 C语言程序设计第五章选择结构程序设计 程序1 main intx y scanf d 程序2 main intx y scanf d 程序3 main intx y scanf d 输入 2得到 x 2 y 0 程序3改 main intx y scanf d 请考虑 y 1或y 0时 if语句应该如何写 什么情况下可以不要 条件运算符if语句中 当表达式为 真 和 假 时 都只执行一个赋值语句给同一个变量赋值时 可以用条件运算符处理 C语言程序设计第五章选择结构程序设计 表达式1 表达式2 表达式3 条件运算符是C语言中唯一的三目运算符 a b a b 条件运算符练习 C语言程序设计第五章选择结构程序设计 例求a b printf a b d n b 0 a b a b 例 a b Y N x 2 1 1 0 x 0 x x c a c z c a A c 条件运算符几点说明 条件运算符可嵌套优先级 13结合方向 自右向左表达式1 表达式2 表达式3类型可以不同 表达式值取表达式2和表达式3中较高的类型 x a b x 0 表达式值为 b x 0 表达式值为 a x y 1 1 5 x y 值为1 0 x y 值为1 5 max a b a b max a b a b 嵌套 x 0 1 x 0 1 0 a b a c d c d a b a c d c d C语言程序设计第五章选择结构程序设计 例5 4输入一个字母 大写转小写 然后输出字母 includevoidmain charch scanf c 输入 A输出 a 5 4switch语句 多分支选择语句 一般形式 C语言程序设计第五章选择结构程序设计 switch 表达式e caseC1 语句1 break caseC2 语句2 break caseCn 语句n break default 语句n 1 break 执行过程 需要跳出switch语句时使用 1 计算表达式e的值2 若与常量表达式Ci值一致 则从语句i 开始执行 直到遇到break语句或switch语句的 3 若e与常量表达式Ci的值都不匹配的话 则执行default语句或后续语句 其中 表达式e可以使整型 字符型 枚举型常量表达式ci必须与表达式e类型一致 整型与字符型通用 switch几点说明C1 C2 Cn是常量表达式 且值必须互不相同常量表达式起语句标号作用 必须用break跳出case后可包含多个可执行语句 且不必加 switch可嵌套多个case可共用一组执行语句 C语言程序设计第五章选择结构程序设计 includemain chargrade grade getchar switch grade case A printf 85 100 n case B printf 70 84 n case C printf 60 69 n case D printf 60 n default printf Error n A 85 10070 8460 69 60Error 缺少break includemain chargrade grade getchar switch grade case A printf 85 100 n break case B printf 70 84 n break case C printf 60 69 n break case D printf 60 n break default printf Error n A 85 100 如 case A case B case C printf score 60 n break C语言程序设计第五章选择结构程序设计 includevoidmain intx 1 y 0 a 0 b 0 switch x case1 switch y case0 a break case1 b break case2 a b break case3 a b printf na d b d a b a 2 b 1 例switch嵌套 5 5程序举例 C语言程序设计第五章选择结构程序设计 例5 5判断某一年是否闰年 include voidmain intyear leap scanf Enteryear d 能省略吗 include voidmain intyear leap scanf Enteryear d 使用逻辑表达式 includevoidmain intyear leap scanf Enteryear d C语言程序设计第五章选择结构程序设计 例根据输入的字母输出相应的字符串 includevoidmain intc printf Entermornorhorother c getchar switch c case m printf Goodmorning n break case n printf Goodnight n break case h printf Hello n break default printf n m Goodmorning C语言程序设计第五章选择结构程序设计 例5 6求ax2 bx c 0方程的解 inc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土地联合经营合同6篇
- 宅基地住宅房屋建设合同详细范文7篇
- 2025年造价工程师案例分析模拟试卷:建筑工程施工合同纠纷案例分析试题
- 个人珠宝贷款珠宝保险抵押担保合同
- 信用卡透支合同公证与还款计划管理协议
- 房地产开发贷款合同让与担保物业使用权转让协议
- 高端精装公寓租赁服务合同范本
- 积极参与行业展会提升市场影响力
- 小区设施设备定期巡检维护
- 2025汽车无偿短期借用合同样本版B版
- GB/T 20716.2-2025道路车辆牵引车和挂车之间的电连接器(7芯)第2部分:12 V标称电压车辆的制动系统和行走系的连接
- (新教材)2025年秋期人教版一年级上册数学全册核心素养教案(教学反思无内容+二次备课版)
- 2025广西公需科目真题续集(附答案)
- DL∕T 5776-2018 水平定向钻敷设电力管线技术规定
- 质量风险和机会识别、评价及控制措施表
- 幼儿园大班科学教案《神奇的小麦》【幼儿教案】
- 2022年医疗卫生系统事业编制(护理学专业)考试题库及答案
- FZ/T 62033-2016超细纤维毛巾
- 设计思维教案
- 储罐施工方案(电动葫芦)
- 《概率论与数理统计》-教学教案
评论
0/150
提交评论