选择结构程序设计-西安交大.ppt

上传人:zhu****ei 文档编号:5409867 上传时间:2020-01-28 格式:PPT 页数:32 大小:480KB
返回 下载 相关 举报
选择结构程序设计-西安交大.ppt_第1页
第1页 / 共32页
选择结构程序设计-西安交大.ppt_第2页
第2页 / 共32页
选择结构程序设计-西安交大.ppt_第3页
第3页 / 共32页
点击查看更多>>
资源描述
4 1关系运算符和关系表达式4 2逻辑运算符和逻辑表达式4 3if语句4 4条件运算符和条件表达式4 5switch语句和goto语句4 6程序举例 第4章选择结构程序设计 逻辑与 0 0 00 1 01 0 01 1 1 二进制的逻辑运算 逻辑或 0 0 00 1 11 0 11 1 1 逻辑非 0 11 0 逻辑运算是指对某一给定条件 判断其是否成立的一种运算 运算结果不表示数值的大小 而是表示条件成立与否 引例 求下列函数的值 1 x0 程序执行时 每输入一个x值 输出对应的y值 在程序中经常需要计算机进行逻辑判断 然后根据逻辑判断的不同结果进行相应的处理 这种根据某种条件的成立与否而采用不同的程序段进行处理的程序结构称为选择结构 有单分支 双分支 多分支选择结构 4 1关系运算符和关系表达式 1 关系运算符及其优先次序 语言中的关系运算符有 种 等于 不等于 关系运算符都是双目运算符 其结合性均为左结合 运算优先次序 1 6种关系运算符中 前 种 后2种同级 高于后 种例如 x y s db cbd a b c等价于 b d c 2 关系运算符的优先级低于算术运算符 高于赋值运算符 算术运算符 高 关系运算符赋值运算符 低 2 关系表达式用关系运算符将两个表达式连接起来的式子 如 a b by s f d关系表达式的值是一个逻辑值 真或假 但 语言没有逻辑型数据 关系表达式的真 假是以数值1和0表示 代表 真 以 代表 假 例 a 3 b 2 c 1则c b 0 a b 1 1b cb c 自左至右 f 0 逻辑运算符及其优先次序C语言提供三种逻辑运算符 逻辑与 逻辑或 逻辑非 注 和 是 双目 元 运算符 要求有两个运算量操作数 而 是 单目 元 运算符 只要求有一个运算量 运算规则 a ba b同时为真 a b为真 a ba b之一为真 a b为真 aa为真 a为假 a为假 a为真运算优先顺序 1 2 和 低于关系运算符 高于算术运算符 4 逻辑运算符和逻辑表达式 非 高 算术运算符关系运算符 和 赋值运算符 低 例 2 4 0值为 1 b 0值为 0 5 3 8 4 0值为 0 2 逻辑表达式用逻辑运算符将关系表达式或逻辑值连接起来的式子就是逻辑表达式 逻辑表达式的值为真或假 我们用 非0 代表 真 用 0 代表 假 注 有些逻辑运算符可能不被执行 对于a b c 只有当a 0 才继续进行右面的运算 对于a b c 只有当a 0 才继续进行右面的运算 例 判断某年是否闰年 条件为下面之一 1 能被4整除 但不能被100整除 2 能被4整除 又能被400整除 year 4 0 year 100 0 year 400 0 1 if语句的三种形式 1 if 表达式 语句 单分支 如 if g 80 printf d g 4 3if语句 3 if 表达式 语句1 多分支 elseif 表达式2 语句2elseif 表达式3 语句3 elseif 表达式m 语句melse语句n 2 if 表达式 语句 else语句2 双分支 如 if x y printf d x elseprintf d y 如 If x 90 y 1 elseif x 80 y 2 Elseif x 60 y 3 Elsey 0 说明 1 条件表达式必须用圆括号括起来 2 条件表达式可以逻辑表达式或关系表达式 也可以是其它表达式 如赋值表达式等 甚至也可以是一个变量 如 if b printf d n x 3 else子句不能单独使用 必须配合if语句使用 4 if和else后均可放置复合语句 例 由小到大输出两个数 includevoidmain floata b t scanf f f a b if a b t a a b b t printf 5 2f 5 2f n a b 复合语句 2 if语句的嵌套if if 语句else语句elseif 语句else语句注意 else总是与最近的未配对的if配对 把内嵌的语句写在 中不容易出错 例1 编写程序完成 输入两个整数 输出其中的大数 程序 includevoidmain inta b max printf ninputtwonumbers scanf d d 程序运行结果 显示 inputtwonumbers 输入 613 输出 a 6 b 13 max 13 思考 1 从两个数中找出最小数如何编写程序 2 若从三个或更多的数中找出最大数应如何编程 例2 输入两个整数a和b 按由大到小的顺序输出这两个数 程序 includevoidmain inta b printf inputtwonumbers scanf d d 程序运行结果 显示 inputtwonumbers 输入 1020 输出 20 10 例3 求四个整数中 偶数的和与奇数的个数 程序 include stdio h voidmain inta b c d intsum 0 num 0 scanf d d d d 程序运行结果 输入 12 3 27 8 输出 a 12 b 3 c 27 d 8sum 20 num 2 思考 如果求若干个数的乘积又应如何处理 例4 编程完成判别键盘输入字符的类别 程序 include stdio h voidmain charc printf inputacharacter c getchar if c 0 程序运行结果 显示 inputacharacter 输入 a 输出 Thisisasmallletter 例5 输入某学生的成绩 输出对应的成绩和等级 等级 90 100分A级 80 89分B级 60 79分C级 0 59分为D级 include stdio h voidmain intscore printf Pleaseinputscore n scanf d 程序运行结果 显示 Pleaseinputscore 输入 120 输出 scoreerror 程序 includemain intnumb1 sign printf Pleaseinputannumber n scanf d 例6 求函数值 N 见书71页其它几种写法 条件运算符为 和 是一个三目运算符 有三个参与运算的量 由条件运算符组成条件表达式的一般形式 表达式1 表达式2 表达式3求值规则为 如果表达式1的值为真 则以表达式2的值作为条件表达式的值 否则以表达式2的值作为整个条件表达式的值 条件表达式通常用于赋值语句之中 表达式的值真 假时都执行赋值语句 且均赋给同一变量 例如 有条件语句 if a b max a elsemax b 执行该语句的语义是 如a b为真 则把a赋予max 否则把b赋予max max a b a b 写成 4 4条件运算符和条件表达式 使用条件表达式时 注意 1 条件运算符的运算优先级低于关系运算符和算术运算符 但高于赋值符 因此max a b a b可以去掉括号而写为max a b a b2 条件运算符 和 是一对运算符 不能分开单独使用 3 条件运算符的结合方向是自右至左 a b a c d c d应理解为a b a c d c d 4 条件表达式中的三个表达式的数据类型可以不同 如x a b 表达式的类型取表达式2和表达式3中类型较高者 int和float 取float 例 输入一个字符 判别它是否大写字母 是 将它转成小写字母 不是 不转换 最后输出结果 include stdio h voidmain charch scanf c 语言还提供了另一种用于多分支选择的switch语句一般形式为 switch 表达式 case常量表达式1 语句1 case常量表达式2 语句2 case常量表达式n 语句n default 语句n 1 语义是 计算表达式的值 并逐个与其后的常量表达式值相比较 当表达式的值与某个常量表达式的值相等时 即执行其后的语句 然后不再进行判断 继续执行后面所有case后的语句 如表达式的值与所有case后的常量表达式均不相同时 则执行default后的语句 4 5switch语句和goto语句 includevoidmain inta printf inputintegernumber scanf d includevoidmain inta printf inputintegernumber scanf d Break语句 专用于跳出switch语句 只有关键字break 无参数 例 比较下面两段程序 使用switch语句时还应注意 1 在case后的各常量表达式的值不能相同 否则会出现错误 2 在case后 允许有多个语句 可以不用 括起来 3 各case和default子句的先后顺序可以变动 而不会影响程序执行结果 4 default子句可以省略不用 5 多个case可以共用一组执行语句 case A case B case C printf 60 n break 例 编写计算器程序 由用户输入运算数和四则运算符 最后输出计算结果 include stdio h voidmain floata b s charc printf inputexpression a b n scanf f c f 程序运行结果 显示 inputexpression a b输入 6 7 输出 13 000000 程序 goto语句是无条件转向语句 格式 goto语句标号 功能 将程序的执行转向语句标号所在的位置 说明 语句标号的命名规则与变量名相同 标号以冒号结尾 语句标号应与goto语句出现在同一函数中 goto语句可以方便快速地转到指定的任意位置继续执行 这种任意性破坏了程序的顺序流程 会使程序的可读性 可维护性变差 因而结构化程序设计中不提倡使用goto语句 例 输入5个数 统计负数的个数并输出 include stdio h voidmain floatdata intcount 0 num 1 n1 printf inputdata d n num scanf f 程序 程序运行结果 4 6选择结构程序设计举例 include stdio h voidmain intyear leap scanf d 例1 写出判断某年是否闰年的程序 条件为下面之一 1 能被4整除 但不能被100整除 2 能被4整除 又能被400整除 include stdio h voidmain inta b c t printf Pleaseinputa b c n scanf d d d 程序运行结果 输入 16 80 7 输出 80 16 7 例2 输入3个数 按从大到小的顺序输出 include stdio h voidmain inta b c d printf Pleaseinputa b n scanf d d 程序运行结果 输入 15 53 输出 3034 30输入 3 9 输出 a b 12 例3 输入两个整数 若它们的平方和大于100 则输出该平方和的百位数以上 包括百位数字 的各位数字 否则输出两个整数的和 include stdio h include math h voidmain floata b c pb temp x1 x2 printf Inputa b c n scanf f f f 例4 求一元二次方程ax2 bx c 0 a 0 的根 include stdio h voidmain intc s floatp w d f scanf f f d 例4 运输公司计算用户运费 其中 S路程 p基本运费 w货重 d折扣 S 250km无折扣250 s 5002 折扣500 s 10005 折扣1000 s 20008 折扣2000 s 300010 折扣3000 s15折扣F p w s 1 d 本章主要内容 关系运算符与关系表达式逻辑运算符与逻辑表达式条件运算符If语句格式及使用Switch语句格式及使用Break语句Goto语句
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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