c语言课件4-选择结构.ppt_第1页
c语言课件4-选择结构.ppt_第2页
c语言课件4-选择结构.ppt_第3页
c语言课件4-选择结构.ppt_第4页
c语言课件4-选择结构.ppt_第5页
免费预览已结束,剩余39页可下载查看

下载本文档

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

文档简介

共37页第1页 第五章 选择结构 C语言程序设计 共37页第2页 4 1C语句概述 共37页第3页 4 1C语句概述 一个c程序可以有若干个源程序文件组成一个源文件可以有若干个函数和预处理命令以及全局变量声明部分组成一个函数有函数首部和函数体组成函数体由数据声明和执行语句组成C语句分为 共37页第4页 4 1C语句概述 一 控制语句完成一定的控制功能1if else条件语句6break间断语句2for 循环语句7switch 开关语句3while 循环语句8goto转向语句4do while 循环语句9return返回语句5continue继续语句 共37页第5页 4 1C语句概述 共37页第6页 4 1C语句概述 共37页第7页 4 1C语句概述 共37页第8页 4 1C语句概述 共37页第9页 4 2赋值语句 赋值语句是由赋值表达式加上一个分号构成例 a 100赋值表达式a 100 赋值语句条件中不能含有赋值符号 但是赋值表达式可以包含于条件表达式中例 if a b t a 错误if a b 0 t a 正确 共37页第10页 本章要点 正确使用关系表达式和逻辑表达式掌握用if语句和switch语句实现选择结构掌握条件运算符的使用 共37页第11页 选择语句是控制程序执行选择结构的语句是程序实现逻辑判断的唯一形式 根据学生分数判断是否及格根据学生分数如何进行分级一元二次方程求解 自然语言 如果 那么 否则 C语言 分支语句 如何解决 为什么要用选择结构 问题 共37页第12页 5 关系运算符和关系表达式 5 1 1关系运算符1 关系运算符关系运算是进行比较大小的运算 并产生运算结果1 真 或0 假 语言中的关系运算符有 种 优先次序 前 种同级 高于后 种 后 种同级 关系运算符的结合性为从左到右 算术运算符 高 关系运算符赋值运算符 低 如 3 2a b 注意 共37页第13页 5 1 2关系表达式定义 用关系运算符将两个表达式连接起来的式子 形式 表达式1关系运算符表达式2如 a b by s f d关系表达式的值为逻辑值 真 或 假 注意 语言没有逻辑型数据 关系表达式的真 假是以数值 代表 真 以 代表 假 例 设a 3 b 2 c 1 求下列表达式的值 c b 值为0 假 a b 1 值为1 真 b c a 值为0 假 a 5 3 4 a的值为0 共37页第14页 练习 判断奇 偶数设有变量定义intz 分析z 2 0的值 如果z为偶数 则z 2 0的值为1 否则z为奇数 则z 2 0的值为0 因此 z 2 0是断言 z是偶数 的c语言判断式 2 判断x与y的某位数字是否相同x 10 y 10判断个位数上数字相同如 15 10 25 10为真 16 10 18 10为假 共37页第15页 5 2 1逻辑运算符C语言提供三种逻辑运算符 逻辑与 逻辑或 逻辑非 说明 1 和 是 双目 元 运算符 它要求有两个操作数 2 是 单目 元 运算符 只要求有一个运算量 3 优先级次序 5 2逻辑运算符和逻辑表达式 a ba b均为真 则a b为1 真 a ba b之一为真 则a b为1 真 a若a为真 则 a为假 共37页第16页 运算符的优先级 非 高 算术运算符关系运算符 和 赋值运算符 低 共37页第17页 5 2 2逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子 规定 判断一个逻辑量为 真 假 的方法 非 代表 真 代表 假 例 写出11 x 101 x 10 例 a b c c d 例 m a b n c d 例 a b c如果a为真 就不再判断b和c了 强调 在逻辑表达式的求解过程中 只要能确定表达式的值 就不继续向下求解其他的值了 a b c c d 共37页第18页 逻辑运算真值表 共37页第19页 练习 控制条件的正确表示方法判断变量ch是否为数字字符ch 0 ch a ch A ch a ch A ch Z 判断变量ch是否为空格 回车ch ch n 判断变量year是否为闰年 year能被4整除但不能被100整除 或year能被400整除 year 4 0 year 100 0 year 400 0 year 4 0 year 100 0 year 400 0 共37页第20页 根据给定表达式决定要执行的操作 执行过程 计算表达式的值 判断表达式值为真时执行语句组 否则跳过语句继续执行后续语句 单选择 语句格式 if 表达式 语句组 例 if a b x a 1 单选择if语句 表达式可以是关系式或逻辑式 5 3选择语句 5 3 1if语句 共37页第21页 2 双选择if语句 语句格式 if 表达式 语句组1 else 语句组2 双选择 功能 计算表达式的值 当表达式值为非零时执行语句组1 否则执行语句组2 共37页第22页 有关if语句的说明 表达式后面不加分号语句之后有分号else不是语句 不能单独使用当if后有多个执行语句时 必须用 将多个语句括起来 构成一个复合语句 之外不必有分号 共37页第23页 include stdio h main inta b s scanf d d 例1 运行时输入 34 输出 16 共37页第24页 指出下列程序的输出结果 include stdio h main inta scanf d 程序运行 输入58输出 585858输入30输出 例2 共37页第25页 include stdio h main inta b max printf Inputaandb scanf d d 求a和b两数中较大的一个 例3 共37页第26页 include stdio h main inta b c 25 a 10 c b a a printf a d b d a b if c printf c d c 运行结果 a 0 b 1 c 25 例4 共37页第27页 include stdio h main inta b t printf Inputaandb scanf d d 按由小到大的顺序输出两个数 例5 共37页第28页 5 3 2if语句的嵌套 格式 if 表达式 if 表达式1 语句11 else语句12 elseif 表达式2 语句21 else语句22 在if语句的 语句1 或 语句2 中又包含着if语句 判断表达式的值 若为非0 再判断表达式1的值 非0执行语句11 否则执行语句12若表达式的值为0 再判断表达式2的值 非0执行语句21 否则执行语句22 功能 共37页第29页 if语句的常用格式 if 表达式1 语句1elseif 表达式2 语句2elseif 表达式3 语句3 elseif 表达式m 语句melse语句n 仅执行表达式为真的elseif后的内嵌语句 若所有的表达式值都为0 则执行最后一个else后的内嵌语句 共37页第30页 下列程序段表示的数学式子 y 1 if x 0 if x 0 y 2 sin x elsey 0 程序段表示的数学式1 0 x0 讨论 给第二个if行加 后表示的数学式 程序段表示的数学式2 1 x0 数学式1程序可表示为 if x 0 y 0 elseif x 0 y 1 elsey 2 sin x 思考 强调 if和else可成对出现 也可不成对出现 每个else都与距其最近的if配对 共37页第31页 从键盘输入一个字符 当该字符是 或 时 显示其对应的英文单词 plus minus multiplication或division 若输入其他字符 则显示 Error includemain charc c getchar if c printf plus n elseif c printf minus n elseif c printf multiplication n elseif c printf division n elseprintf Error n 例6 共37页第32页 switch语句该语句为开关语句 适合解决多分支的情况 格式 switch 表达式 case常量表达式 语句序列 case常量表达式 语句序列 case常量表达式n 语句序列n default 语句序列n 1 说明 执行顺序如下 5 3 3switch语句问题 为什么引出switch语句 可以是一条语句 也可以是多条语句 多条语句不必用括号括起来 在执行完某个case后的语句序列后 将自动转移到下一个case继续执行 起语句标号的作用 不进行条件判断 同一个switch语句中的各个常量表达式的值必须互不相等 可以是整型 字符型 共37页第33页 a 计算表达式的值 b 找到与表达式的值相同的case常量表达式 执行该case后边的语句序列 之后依次往下执行语句块 表达式 语句序列1 语句序列2 语句序列n 语句序列n 1 共37页第34页 每个语句序列的最后一条语句后增加break语句 执行流程为 共37页第35页 根据考试成绩的等级打印出百分制分数段 采用多分支情况程序段 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 若grade A 时 输出结果为 当grade B 时 输出结果为 例7 共37页第36页 流程图为 共37页第37页 说明 case和default的次序可以交换 例 include stdio h main intc 3 switch c case1 c default c break case2 c printf c d n c case3 c 共37页第38页 多个case可以执行同一个语句序列 switch c getchar case y case Y printf Youareright n inta 10 switch a case10 case9 a case8 case7 a 2 break 共37页第39页 条件运算符 唯一的三目操作符 要求有三个操作对象 格式 表达式 表达式 表达式 功能 判断表达式 的值 该值为 非0 则取表达式2的值 为 0 时 取表达式3的值 如 max a b a b若a 3 b 2 则max 说明 1 条件运算符优于赋值运算符 2 条件运算符的结合方向为 自右向左 如 当a 1 b 2 c 3 d 4时 表达式a b a c d c d 值为 如 若x 1 y 0 a 3 b 3表达式 y x a b a b值为 4 0 5 4条件运算符 共37页第40页 3 条件表达式中的表达式 的类型可以与表达式 和表达式 的类型不同 条件表达式值的类型为二者中较高的类型 如 x y 1 2 6 当x y成立时条件表达式的值为1 2 否则为实型数据6 0 c x y 1 s 当x y成立时c 1 否则c s 共37页第41页 if y 0 x y elsex y y 0 x y x y 等价 等价 x y 0 y y 说明 ifelse可以完成与条件运算符 完全相同的任务 并且可以进行相应的

温馨提示

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

评论

0/150

提交评论