C程序设计第5章选择结构.ppt

上传人:max****ui 文档编号:6328735 上传时间:2020-02-22 格式:PPT 页数:40 大小:539.31KB
返回 下载 相关 举报
C程序设计第5章选择结构.ppt_第1页
第1页 / 共40页
C程序设计第5章选择结构.ppt_第2页
第2页 / 共40页
C程序设计第5章选择结构.ppt_第3页
第3页 / 共40页
点击查看更多>>
资源描述
第五章 选择结构程序设计 本章要点 关系表达式逻辑表达式选择结构程序设计 主要内容 5 1关系运算符和关系表达式5 2逻辑运算符和逻辑表达式5 3if语句5 4switch语句5 5程序举例 5 1关系运算符和关系表达式 1 关系运算符及其优先次序 大于 大于或等于 等于 不等于 说明 关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符 5 1关系运算符和关系表达式 2 关系表达式用关系运算符将两个表达式 可以是算术表达式或关系表达式 逻辑表达式 赋值表达式 字符表达式 接起来的式子 称关系表达式例 a b a b b c a 3 b 5 a b bb 的值为 真 表达式的值为1 C语言中没有专用的逻辑值 1代表真 0代表假 5 2逻辑运算符和逻辑表达式 1 逻辑运算符及其优先次序 1 逻辑与 相当于其他语言中的AND 2 逻辑或 相当于其他语言中的OR 3 逻辑非 相当于其他语言中的NOT例 a b若a b为真 则a b为真 a b若a b之一为真 则a b为真 a若a为真 则 a为假 优先次序 非 逻辑运算符中的 和 低于关系运算符 高于算术运算符 5 2逻辑运算符和逻辑表达式 2 逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式 逻辑表达式的值应该是一个逻辑量 真 或 假 例 设a 4 b 5 a的值为0a b的值为1a b的值为1 a b的值为14 0 2的值为1 任何非零的数值被认作 真 5 2逻辑运算符和逻辑表达式 例 5 3 8 4 0自左向右运算 1 0逻辑值为0 8 3逻辑值为0 4 1值为3 0逻辑值为1 5 3逻辑值为1 表达式值为0 5 2逻辑运算符和逻辑表达式 在逻辑表达式的求解中 并不是所有的逻辑运算符都要被执行 1 a b c只有a为真时 才需要判断b的值 只有a和b都为真时 才需要判断c的值 2 a b c只要a为真 就不必判断b和c的值 只有a为假 才判断b a和b都为假才判断c 例 m a b n c d 当a 1 b 2 c 3 d 4 m和n的原值为1时 由于 a b 的值为0 因此m 0 而 n c d 不被执行 因此n的值不是0而仍保持原值1 5 2逻辑运算符和逻辑表达式 答 year 4 0 year 100 0 year 400 0案值为真 1 是闰年 否则为非闰年 5 3if语句 1 if语句的三种基本形式 1 if 表达式 语句例 if x y printf d x 5 3if语句 2 if 表达式 语句1else语句2例 if x y printf d x elseprintf d y 5 3if语句 3 if 表达式1 语句1elseif 表达式2 语句2elseif 表达式3 语句3 elseif 表达式m 语句melse语句n 5 3if语句 例 if number 500 cost 0 15 elseif number 300 cost 0 10 elseif number 100 cost 0 075 elseif number 50 cost 0 05 elsecost 0 5 3if语句 说明 1 3种形式的if语句中在if后面都有表达式 一般为逻辑表达式或关系表达式 2 第二 第三种形式的if语句中 在每个else前面有一个分号 整个语句结束处有一个分号 3 在if和else后面可以只含有一个内嵌的操作语句 也可以由多个操作语句 此时用花括号将几个语句括起来成为一个复合语句 5 3if语句 例5 1输入两个实数 按代数值由小到大的顺序输出这两个数 includevoidmain floata b t scanf f f 5 3if语句 例5 2输入三个数a b c 要求按由小到大的顺序输出 Ifa b将a和b对换Ifa c将a和c对换Ifb c将b和c对换 5 3if语句 includevoidmain floata b c t scanf f f f 5 3if语句 2 if语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套 形式 if if 语句1else语句2elseif 语句3else语句4 内嵌if 5 3if语句 匹配规则 else总是与它上面的 最近的 统一复合语句中的 未配对的if语句配对 例 if if 语句1elseif 语句2else语句3 例 if if 语句1 elseif 语句2else语句3 当if和else数目不同时 可以加花括号来确定配对关系 5 3if语句 1 x0 算法1 算法1 输入x输入x若x0 则y 1若x 0 则y 0输出y若x 0 则y 1输出y 5 3if语句 includevoidmain intx y scanf d 5 3if语句 上例中的程序段有四个 请判断哪个是正确的 程序1 程序2 if x 0 Y 1 if x 0 y 1 elseelsey 0 if x 0 y 0 elsey 1 elsey 1 程序3 程序4 Y 1 y 0 if x 0 if x 0 if x 0 y 1 if x 0 y 1 elsey 0 Elsey 1 正确 正确 5 3if语句 3 条件运算符格式 表达式 表达式 表达式 功能 判断表达式1的值 如果成立就执行表达式2 否则就执行表达式3使用场合 若在 语句中 当被判别的表达式的值为 真 或 假 时 都执行一个赋值语句且向同一个变量赋值时 可以用一个条件运算符来处理 5 3if语句 例 当a b时将a的值赋给max 当a b时将b的值赋给max 可以看到无论a b是否满足 都是向同一个变量赋值 可以用下面的条件运算符来处理 5 3if语句 说明 1 条件运算符的执行顺序 先求解表达式 若为非 真 则求解表达式 此时表达式 的值就作为整个条件表达式的值 若表达式 的值为 假 则求解表达式 表达式 的值就是整个条件表达式的值 2 条件运算符优先级高于赋值运算符 低于关系运算符和算术运算符 3 条件运算符的结合方向为 自右至左 4 表达式2 和 表达式3 不仅可以是数值表达式 还可以是赋值表达式或函数表达式 5 条件表达式中 表达式 的类型可以与表达式 和表达式 的类型不同 5 3if语句 例5 4输入一个字符 判别它是否大写字母 如果是 将它转换成小写字母 如果不是 不转换 然后输出最后得到的字符 includevoidmain charch scanf c 如果字符变量ch的值为大写字母 则条件表达式的值为 即相应的小写字母 如果ch的值不是大写字母 则条件表达式的值为 即不进行转换 5 4switch语句 switch语句的格式 switch 表达式 case常量表达式 语句 case常量表达式 语句 case常量表达式 语句 default 语句 5 4switch语句 例 要求按照考试成绩的等级输出百分制分数段 用switch语句实现 switch grade case printf case printf case printf case printf default printf 5 4switch语句 说明 switch后面括弧内的 表达式 标准允许它为任何类型 2 当表达式的值与某一个case后面的常量表达式的值相等时 就执行此case后面的语句 若所有的case中的常量表达式的值都没有与表达式的值匹配的 就执行default后面的语句 3 每一个case的常量表达式的值必须互不相同 否则就会出现互相矛盾的现象 对表达式的同一个值 有两种或多种执行方案 5 4switch语句 4 各个case和default的出现次序不影响执行结果 例如 可以先出现 default 再出现 case 然后是 case 5 执行完一个case后面的语句后 流程控制转移到下一个case继续执行 case常量表达式 只是起语句标号作用 并不是在条件判断 在执行switch语句时 根据switch后面表达式的值找到匹配的入口标号 就从此标号开始执行下去 不再进行判断 应该在执行一个case分支后 可以用一个break语句来终止switch语句的执行 6 多个可以共用一组执行语句 5 5程序举例 例5 5写程序 判断某一年是否闰年 用下图来表示判断闰年的算法 5 5程序举例 includevoidmain intyear leap scanf d 运行情况 5 5程序举例 例5 6求 方程的解 基本的算法 不是二次方程 有两个相等实根 有两个不等实根 有两个共轭复根 5 5程序举例 include includevoidmain floata b c disc x1 x2 realpart imagpart scanf f f f 5 5程序举例 elseif disc 1e 6 x1 b sqrt disc 2 a x2 b sqrt disc 2 a printf hasdistinctrealroots 8 4fand 8 4f n x1 x2 else realpart b 2 a imagpart sqrt disc 2 a printf hascomplexroots n printf 8 4f 8 4fi n realpart imagpart printf 8 4f 8 4fi n realpart imagpart 5 5程序举例 例5 7运输公司对用户计算运费 路程 越远 每公里运费越低 标准如下 没有折扣 折扣 折扣 折扣 折扣 折扣设每公里每吨货物的基本运费为 货物重为 距离为 折扣为 则总运费 的计算公式为 5 5程序举例 分析折扣变化的规律性 折扣的 变化点 都是 的倍数在横轴上加一种坐标 c的值为s 250 c代表250的倍数 无折扣 折扣 5 5程序举例 续 includevoidmain intc s floatp w d f scanf f f d
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!