第4章 选择结构程序设计_第1页
第4章 选择结构程序设计_第2页
第4章 选择结构程序设计_第3页
第4章 选择结构程序设计_第4页
第4章 选择结构程序设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第4章选择结构程序设计 4 1关系运算符与关系表达式4 2逻辑运算符与逻辑表达式4 3if语句4 4switch语句4 5结构嵌套程序举例 其中4 1 4 2两节已在第二章中详细介绍 此处不再赘述 教学目的和基本要求 要求学生掌握选择结构程序设计 嵌套程序设计 学会运用if语句及switch语句 教学重点 if语句 嵌套程序 很多问题是顺序结构解决不了的看这样一个例子 计算分段函数 x在大于等于0和小于0两种不同的情况时 函数将用不同的表达式来求y的值 这时就需要在计算y的值之前 先对x的值进行判断 C语言中用选择语句来实现这一判断 算法N S图如右上图所示 C语言中的选择语句有两种 条件语句if 开关语句switch 4 3if语句 真 假 语句 表达式 1 if语句的最简单形式 说明 1 条件表达式的值为1或0 必须用 括住2 若有多条语句 复合语句 时 用 括住 3 条件表达式 后不要加 main floatx y scanf f 例 计算分段函数 main intx y scanf d d 例 输入两个数X Y 如果x大于y 则交换两数 2 if语句的双分支形式 if 表达式 语句1else语句2 首先先判断表达式的值 若为非0则执行语句1 若为0则执行语句2 语句2 执行过程 if语句的双分支形式 在语法上视为一条语句 main floatx y scanf f 例 计算分段函数 例 输入两个数 比较其大小 将较大的数输出 算法分析 1 输入两个数据a b 2 如果a b则输出a 否则 输出b includemain floata b scanf f f 练习 编程实现 从键盘输入一个字符 如果是字母 则输出对应的ASCII码 否则 输出 main chara scanf c if语句的语句1和语句2又称为if的执行语句 if的执行语句在语法上是一条语句 可以是任何类型的语句 简单语句 复合语句 空语句 流程控制语句都可以作为if的执行语句 下面我们通过一个例子分别介绍用不同的语句作为if的执行语句的情形 例 计算分段函数 方法一 用简单语句 includemain floatx y scanf f 方法二 用if语句做语句2 includemain floatx y scanf f 这种用if语句作为上一层if语句的语句2的结构 称为if语句的多分支选择结构 多分支选择语句一般形式 if 表达式 语句1elseif 表达式 语句2else 先判断表达式1的值 非0就执行下面的语句 为0就执行下一个判断 一直这样做下去 直到得出最后结果 流程图如左 方法三 语句1与语句2都为if语句 includemain floatx y scanf f 这种用if语句作为上一层if语句的语句1和语句2的结构 称为if语句的嵌套 if语句的二层嵌套结构如下 if 表达式1 if 表达式1 2 语句1 1else语句1 2elseif 表达式2 1 语句2 1else语句2 2 如 if a b if后面的表达式类型任意 语句可以是复合语句if x if x 0 if x if x 0 例考虑下面程序的输出结果 includemain intx y scanf d d CompileError 说明 缺省 时 else总是和它上面离它最近的未配对的if配对 if else配对原则 实现if else正确配对方法 例 if a b if b c printf a b c elseprintf a b 修改 if a b if b c printf a b c elseprintf a b 实现if else正确配对方法 加 if语句编程举例 例1 写一个程序完成下列功能 输入一个分数score当score 60输出E当60 score 70输出D当70 score 80输出C当80 score 90输出B当90 score输出A includemain floatscore scanf f 程序如下 例2 编程实现 根据两个数sex和tall分类 如果sex为 F 当tall大于等于150时 输出A 否则输出B 若sex不为 F 当tall大于等于170时 输出A 否则输出B 分析 根据sex分支在sex为 F 的分支中判断tall是否 150在sex不为 F 的分支中判断tall是否 170 includemain inttall charsex printf inputsexandtall scanf c d 程序如下 4 4Switch语句 if语句是根据表达式的值是否为0来判断执行哪一分支的 某些情况下 要根据表达式的不同值来判断执行哪一分支 如表达式的值为1 2 3时 分别执行不同的操作 虽然也可以用多条if语句来完成这一工作 但c语言中提供了一条switch语句 可以更方便的完成 一般形式 switch 表达式 caseE1 语句组1 break caseE2 语句组2 break caseEn 语句组n break default 语句组 break 执行过程 switch语句 开关分支语句 E1 E2 En是常量表达式 且值必须互不相同语句标号作用 必须用break跳出case后可包含多个可执行语句 且不必加 多个case可共用一组执行语句 如 case A case B case C printf score 60 n break 说明 例 看下面的程序在几种不同输入情况下的输出 includemain chari scanf c 1 输入 a 输出 b 2 输入 b 输出 c101 3 输入 c 输出 101 例 编程 根据输入的学生的成绩判断等级 当成绩score 90时为A等 成绩70 score 90为B等 成绩60 score 70为C等 成绩score 60为D等 score为整数 分析 设score为整型数 利用两个整数相除 结果自动取整的特性 score和score 10有如下对应关系 scorescore 1090以上10 970 897 860 69660以下5 4 3 2 1 0因此 可以用score 10的值来确定分支 includemain intscore scanf d 程序 4 5结构嵌套程序举例 例4 7求方程ax2 bx c 0的实数解 分析 根据3个系数的不同情况 方程的根有如下几种情况 1 a 0 不是二次方程 2 b2 4ac 0 有两个相等的实根 3 b2 4ac 0 有两个不等的实根 求x1和x2 4 b2 4ac 0 没有实数解 例4 8输入年号 判断它是否为闰年 分析 如果此年号能被400整除 则它是闰年 如果能被4整除 而不能被100整除 则也是闰年 否则不是闰年 程序流程如右图所示 4 5结构嵌套程序举例 例4 9输入一个由两个数据和一个算术运算符组成的表达式 根据运算符完成相应的运算 并将结果输出 分析 输入形如a b的表达式 a和b为整型数 如果运算符是 中的任意一个 则进行相应的运算 如果运算符为 或 则应先判断b是否为0 并做相应处理 如果运算符不合法 则报错 例运输公司对用户计算运费 路程 s 越远 每公里运费越低 标准如下 s 250KM没有折扣250 s 5002 折扣500 s 10005 折扣1000 s 20008 折扣2000 s 300010 折扣3000 s15 折扣设每公里每吨货物的基本运费为p 货物重量为w 距离为s 折扣为d 那么总运费f的计算公式为 F p w s

温馨提示

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

评论

0/150

提交评论