《高级语言程序设计教学课件》第3章 选择结构.ppt_第1页
《高级语言程序设计教学课件》第3章 选择结构.ppt_第2页
《高级语言程序设计教学课件》第3章 选择结构.ppt_第3页
《高级语言程序设计教学课件》第3章 选择结构.ppt_第4页
《高级语言程序设计教学课件》第3章 选择结构.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

第三章选择结构 C语言程序设计 2 学习目标 if语句switch语句关系运算与逻辑运算 3 3 1选择结构概述 例3 1 输入x的值 求分段函数y f x 的值 函数表示如下 if x 0 y x x elsey 0 4 includevoidmain void intx y printf 请输入x的值 scanf d 请输入x的值 0y 0Pressanykeytocontinue 选择结构 5 3 2关系运算与逻辑运算 学习运算符应注意的问题功能运算量要求运算量个数 单目运算符 双目运算符 要求运算量类型 整型 实型 其它类型 优先级别 优先级高 优先级低 结合方向 从左向右 从右向左 结果的类型 6 3 2 1关系运算 种类 结合方向 自左向右优先级别关系表达式的值是逻辑值 真 或 假 用1和0表示 例c a ba b ca bc 例inta 3 b 2 c 1 d f a b a b cb cbf a b c 3 2 结果为1 1 1 结果为1 b c 3 a 3 结果为0 a b结果为1 d 1 f 0 c a b a b c a bc 7 注意 应避免对实数作相等或不等的判断注意区分 与 inta 0 b 1 if a b printf aequaltob elseprintf anotequaltob 1 0 3 0 3 0 1 0结果为将x a的判断修改为 x a 可改写为 fabs 1 0 3 0 3 0 1 0 1e 6 应该为a b 假 8 例3 3 x是float型变量 判断x是否等于1 3 include includevoidmain void floatx x 1 3 0 if x 1 3 0 printf x等于1 3 n elseprintf x不等于1 3 n x不等于1 3 x等于1 3 fabs x 1 3 0 1e 6 应避免对实数作相等或不等的判断 9 3 2 3逻辑运算 种类 逻辑运算真值表 C语言中 运算量 0表示 假 非0表示 真 运算结果 0表示 假 1表示 真 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 1 10 优先级 算术运算 关系运算 赋值运算结合性 例ab x ya b x y a a b ab x y a b x y a a b 例a 4 b 5 aa ba b a b4 0 25 3 2 8 4 0 c d 值为0 值为1 值为1 值为1 值为1 值为1 值为1 11 问题在C语言中 能正确地表示数学关系0 x 5的表达式是 A x 0 x 0ANDx 0 x 5 12 短路特性逻辑表达式求解时 并非所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 例a m a b n c d 结果m 0 n 1 13 例3 2 逻辑运算举例 includevoidmain void intc x 0 y 5 printf d d n x y x 5 02 1 11 0 0 如果表达式x 的逻辑值为1则不用再计算y 因此c 1x x 1 x 先执行x x 1 再将x的值作为表达式 x的值 x 先将x的值作为表达式x 的值 再执行x x 1 如果表达式x 的逻辑值为0则不用再计算y 因此c 0 x x 1 14 常用的条件判断表达式 1 intx 判断x是偶数 x 2 0 2 charc 判断c是否为数字 c 0 15 3 3两个分支的if语句 if else 语句的基本形式格式if 表达式 语句1else语句2执行过程 16 说明 if后面的表达式类型任意语句可以是任意类型的语句 最好使用复合语句 考虑下面程序的输出结果 includemain intx y scanf d d CompileError if a b errorC2181 illegalelsewithoutmatchingif 17 例3 4 随机输入两个数 输出其中的大数 includevoidmain void inta b printf inputtwonumbers scanf d d inputtwonumbers 033是最大数Pressanykeytocontinue 18 例3 5 输入三角形的三边的边长 输出三角形的面积 三角形面积公式 19 include includevoidmain void floata b c p s printf 请输入三角形的三边 n scanf f f f 三角形三边定理及推论 三角形任意两边之和大于第三边 任意两边之差小于第三边 顺序结构 20 例3 5 输入三角形的三边的边长 输出三角形的面积 include includevoidmain void floata b c p s printf 请输入三角形的三边 n scanf f f f 请输入三角形的三边 345area 6 000000Pressanykeytocontinue 请输入三角形的三边 123输入数据错误 Pressanykeytocontinue 21 3 4一个分支的语句 if语句格式if 表达式 语句执行过程 22 例3 6 从键盘上随机的输入三个数 输出最大数 10 62 313456722 23445676 323238 max a b c max max 23 例3 6 从键盘上随机的输入三个数 输出最大数 includevoidmain void inta b c max printf 输入三个数 scanf d d d 输入三个数 3588是最大数Pressanykeytocontinue 24 例3 7 从键盘上随机的输入三个数 从大到小输出三个数 a b c ifa ba bifa ca cifb cb ca bt a a b b t A B T 25 例3 7 从键盘上随机的输入三个数 从大到小输出三个数 includevoidmain void inta b c t printf 输入三个数 scanf d d d 输入三个数 3577 5 3Pressanykeytocontinue 26 3 5多个分支的if语句 if elseif语句的形式if 表达式1 语句1elseif 表达式2 语句2elseif 表达式3 语句3 else语句n执行过程 27 例3 8 从键盘上输入一个字符 判断该字符是数字 大写字母 小写字母或其它字符 ASCII码表 0 9 为数字 A Z 为大写字母 a z 为小写字母 0 c 9 48 c 57 A c Z 65 c 90 a c z 97 c 122 c 0 c A c a c z 28 例3 8 从键盘上输入一个字符 判断该字符是数字 大写字母 小写字母或其它字符 includevoidmain void charc printf 请输入一个字符 c getchar if c 0 请输入一个字符 bb是小写字母Pressanykeytocontinue scanf c 29 例3 9 从键盘上输入学生的成绩 输出学生成绩的等级 include stdio h voidmain void intscore printf 请输入学生的成绩 scanf d 请输入学生的成绩 88良好Pressanykeytocontinue elseif score 80 思考对于score 100和score 0的情况 可以认为是输入数据错误 那么程序将如何改写 30 3 6if语句的嵌套 在if语句中又包含一个或多个if语句 称为if语句嵌套一般形式 if 表达式1 if 表达式2 语句1else语句2elseif 表达式3 语句3else语句4 31 if else配对原则当缺省 时 else总是与前面最近的未配对的if配对 if exp1 if exp2 statement1elsestatement2 if exp1 if exp2 statement1elsestatement2 if exp1 if exp2 statement1 elsestatement2 32 y 0 if b 0 if a 0 y a b elseprintf 数据错误b 0 y 0 if b 0 if a 0 y a b elseprintf 数据错误b 0 y 0 if b 0 if a 0 y a b elseprintf 数据错误b 0 计算机理解为 改写为 例 计算y a b的值 33 书写程序的缩进规则 同一级别的语句要对齐else语句应与其配对的if语句垂直对齐 大括号放在单独的一行中 以表明其包含的语句是一个语句块 每行只放一条语句 34 总结 if语句的语法规则表达式必须用括号括起来通常是逻辑表达式或关系表达式 但也可以是其它任意表达式 非0即为真 0则为假else子句 必须与if配对使用语句可以为五种语句中的任何一种 if 表达式 语句1else语句2 35 If语句常见的编程错误 在不该出现分号的地方加了分号复合语句的花括号后不应再加分号 否则将会画蛇添足对于复合语句 忘记加花括号 if x y printf xislargerthany n if b a t a a b b t 推荐都使用复合语句 36 if 表达式 语句1else语句2 if 表达式 语句 if 表达式1 语句1elseif 表达式2 语句2elseif 表达式3 语句3 else语句n if语句格式小结 两个分支一个分支多分支 37 格式执行过程 switch 表达式 caseE1 语句组1 caseE2 语句组2 caseEn 语句组n default 语句组n 1 3 7switch语句 default子句可以省略不用 38 要每次只执行一个分支使用break语句 switch 表达式 caseE1 语句组1 break caseE2 语句组2 break caseEn 语句组n break default 语句组n 1 break 39 注意 switch语句的使用规则E1 E2 En是整型或字符型的常量表达式 且值必须互不相同case语句起到标号的作用 必须用break跳出case后可包含多个可执行语句 且不必加 switch可嵌套多个case可共用一组执行语句 case A case B case C printf score 60 n break 40 例3 10 输入数字 1 7 输出对应的英文单词Monday Sunday includevoidmain void inta printf inputintegernumber 1 7 scanf d 41 switch a case1 printf Monday n case2 printf Tuesday n case3 printf Wednesday n case4 printf Thursday n case5 printf Friday n case6 printf Saturday n case7 printf Sunday n default printf Error n inputintegernumber 5FridaySaturdaySundayError break break break break break break break break inputintegernumber 5Friday 42 例3 11 计算器程序 用户输入两个运算数和一个四则运算符 输出计算结果 include includevoidmain void floata b charc printf 输入表达式 运算数运算数 n scanf f c f 43 switch c case printf f n a b break case printf f n a b break case printf f n a b break case if fabs b 1e 6 printf 数据错误 除数不能为0 n elseprintf f n a b break default printf 运算符只能是 n 输入表达式 运算数运算数3 5 5 69 100000 输入表达式 运算数运算数10 3运算符只能是 输入表达式 运算数运算数2 5 0数据错误 除数不能为0 输入表达式 运算数运算数5 2 52 000000 44 例3 12 从键盘上输入百分制的学生成绩 输出学生成绩的等级 优秀 良好 中等 及格 不及格 includevoidmain void intscore printf 请输入学生的成绩 scanf d 利用switch语句判断并输出成绩的等级 45 if score 0 方案一 switch 表达式 caseE1 语句组1 caseE2 语句组2 caseEn 语句组n default 语句组n 1 46 switch score case100 case99 case98 case97 case96 case95 case94 case93 case92 case91 case90 printf 优秀 n break case89 方案二 47 最优方案 if score 0 case10 printf 优秀 n break case9 printf 优秀 n break 等价 请输入学生的成绩 96优秀Pressanykeytocontinue 48 3 8小结 1 关系运算符和关系表达式关系运算符 高于 和 和其他运算符比较

温馨提示

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

评论

0/150

提交评论