C语言程序设计_5.ppt_第1页
C语言程序设计_5.ppt_第2页
C语言程序设计_5.ppt_第3页
C语言程序设计_5.ppt_第4页
C语言程序设计_5.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章选择结构程序设计 关系运算符和关系表达式逻辑运算符和逻辑表达式if语句switch语句 关系运算符运算符名称规则对象类型结果类型优先级别大于 结果 1字符型 整型 高 大于 等于不满足 等于为假同级 不等于 结果 0 低 5 1关系运算符和关系表达式 优先级别关系 结果 1 0 2 1 3 1 4 1 5 0 关系表达式 值为逻辑值 真 或 假 关系运算符连接两个表达式 算术 关系 逻辑 赋值 例 a 3b 4c 21 a b2 a b b c 3 a b b b 5 注 1 关系表达式的值只有两个 真用 1 表示 假用 0 表示 2 字符数据的比较按ASCII码值进行 如 a 0的值为1 真 A 100的值为 假 逻辑运算符对象数运算符名称规则对象类型结果类型单目 非逻辑非双目 与逻辑与整型 实型整型 或逻辑或字符型 4 2逻辑运算符和逻辑表达式 逻辑值 非0为真 0为假 与 和 的运算 a a1 a a1 a 10 a 0a a 1a a 0 与自身及自身非的运算 a a aa a a a b a b a b a b a a 例5 3 2 8 4 0 5 3 2 8 3 1 2 0 1 0 5 3 2 8 4 1 逻辑表达式 值1 非0 为真 0为假 4 2逻辑运算符和逻辑表达式 1 a 3 b 4 c 5 1 a b c b c 2 a b c 1 b c 2 课堂练习 答案 1 0 2 1 用逻辑表达式表示复杂条件 条件1 条件2 year 4 0 year 100 0 year 400 0 满足闰年的条件 能被4整除 但不能被100整除 或者能被400整除 例 判别某一年year是闰年 if 表达式 语句例 if x y printf d x if 表达式 语句1else语句2例 if x y printf d x elseprintf d y if 表达式1 语句1elseif 表达式2 语句2elseif 表达式2 语句3 else语句n 5 3 1if 三种形式 例5 2输入三个数 按大小顺序输出 5 3if语句 交换算法 设 intA 12 B 24 中间变量intT T A A B B T 12 12 24 设计思想 1 输入数据2 比较大小3 输出 比较大小 两两比较 a ba b交换 a ca c交换 b cb c交换最终a中为最小值 c中为最大值 includemain floata b c t scanf f f f if a b t a a b b t if a c t a a c c a if b c t b b c c t 5 3if语句 if a 90 fen 5 elseif a 80 fen 4 elseif a 70 fen 3 elseif a 60 fen 2 elsefen 1 5 3if语句 形式if if 语句1else语句2elseif 语句3else语句4 if if 语句1 else语句2 2 用 来确定层次关系 内嵌if 5 3 2if语句的嵌套 注意 语句1 2 3 4可以是复合语句 每层的if与else的配对关系为 1 从最内层开始 else与最近的if配对 例5 3y 算法1 if x 0 y 1elseif x 0 y 0 elsey 1 算法2 if x 0 if x 0 y 1 elsey 0 elsey 1 printf x d y d n x y 1 x0 判断哪些算法正确 算法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 设计思想 输入年份 根据判断条件 若闰年leap 1 否则leap 0leap 1打印是闰年 年份 leap 0打印不是闰年 年份 1 能被4整除 同时不能被100整除2 能被4整除 能被400整除 year 4 0 year 100 0 year 4 0 year 100 0 year 400 0 year 4 0 year 400 0 例1 判断某一年是否为闰年 main intyear leap scanf d if year 4 0 ifleapprintf dis year elseprintf disnot year printf aleapyear n 5 4条件运算符 if a b printf d a elseprintf d b 形式 表达式1 表达式2 表达式3 语句功能 先求解表达式1 例 printf d a b a b 若值为非0 求解表达式2 表达式2的值为最终结果 若值为0 求解表达式3 表达式3的值为最终结果 运算级别 算术运算符关系运算符条件运算符赋值运算符高低 K x y 1 1 5最终K为实型 注意 优先级高于赋值运算符 低于关系运算符和算术运算符 结合方向为自右至左 只能取代简单的if语句 内嵌语句为赋值语句 且两个分支都给同一个变量赋值 表达式1 2 3的类型可以不同 条件表达式的最终类型为2和3中较高的类型 例5 4 如果是大写字母 转换为小写 否则不转换 main charch scanf c ch ch A ch Z ch 32 ch 形式 switch 表达式 case常量表达式1 语句1case常量表达式2 语句2 case常量表达式n 语句ndefault 语句n 1 功能 以case中的常量表达式值为入口标号 由此开始顺序执行 若每次执行时只执行一个分支 则 每个case分支最后应该加break语句 5 4switch语句 多分支选择结构 例 switch grade 表达式的值与某一个case常量表达式的值相等时 则执行其后的语句 每一个case常量表达式的值必须不同 多个case可以共用一组语句 遇到break终止 都不相同 default default printf error case A printf 85 100 n case B printf 70 84 n case C printf 60 69 n case D printf 60 n 注意 switch grade case A case B case C printf 60 n break grade的值为 A B 或 C 时 都执行的同一条语句 例2 卖软盘每片4元 按购买的数量给予优惠 根据不同的购买量 打印应付款 程序举例 优惠条件 满100片以上优惠5 满200片以上优惠6 满300片以上优惠8 满400片以上优惠10 设计思想 采用swicth语句实现优惠条件算法 n 100结果为个位数 为case的常量表达式的值 main intn floatp printf 购买盘片数 scanf d switch n 100 case1 p 0 05 break case2 p 0 06 break case3 p 0 08 break default p 0 1 例3 根据历法1 3 5 7 8 10 12月每月31天 4 6 9 11每月30天2月份闰年28天 平年29天 设计思想 采用switch语句实现多种选择分支 case中常量表达式的1 3 5 7 8 10 12共用一条语句days 31 case中常量表达式的值为4 6 9 11共用一条语句days 30 闰年采用前面讲授的算法 includemain intyear mon days printf 请输入年 月 scanf 4d 2d case4 case6 case9 case11 days 31 break case2 闰年算法 printf d年 d月 d n year mon days 课堂练习 1 为了避免嵌套的if else语句的二义性 C语句规定else总是与 组成配对关系 A 缩排位置相同的ifB 在其之前未配对的最近的ifC 在其之前未配对的ifD 同一行的if 2 选择出合法的if语句 intx a b c A if a b x B if ab x D if a b x 1 B2 B 3 如下程序运行结果是 intm 1 n 0 switch m case1 switch n case0 printf Itisadog n bre

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论