C语言选择程序设计.ppt_第1页
C语言选择程序设计.ppt_第2页
C语言选择程序设计.ppt_第3页
C语言选择程序设计.ppt_第4页
C语言选择程序设计.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

第五章选择结构程序设计 关系运算逻辑运算switch语句if语句 5 1关系运算 关系运算 比较运算 用 关系表达式 进行运算 例 a 3是一个关系表达式 它取两个值 真 和 假 关系运算符及其优先次序C语言有六种关系运算符 大于 大于或等于 连续两个 优先级相同 低 不等于 关系运算符 算术运算符 赋值运算符的优先级关系 算术运算符高关系运算符赋值运算符低 优先级关系 关系表达式 所谓关系表达式是指 用关系运算符将两个表达式连接起来 进行关系运算的式子 例如 a b a b c d a 3 b a b b c 关系表达式的值 真 1 任意非0值也作为真 假 0 由于C语言没有逻辑型数据 所以用整数 1 表示 逻辑真 用整数 0 表示 逻辑假 例 a 3 b 2 c 1 1 c a b2 a b c3 a bc例 a 3 b 2 c 1 1 d a b2 f a b c 等效于c a b 表达式的值为0等效于 a b c表达式的值为1等效于a bc 表达式的值为1d的值为1 表达式的值也为1 f的值为0 表达式的值也为0 5 2逻辑运算逻辑运算符 逻辑 与 双目运算符 逻辑 或 双目运算符 逻辑 非 单目运算符 非 高算术运算符关系运算符 赋值运算符低 逻辑运算符与其它运算符的优先级 关系运算 逻辑运算 设a 3 b 4 x 0 y 0 求值 1 b x a2 ay a 33 a b x y4 b a bb b x y 非 高算术运算符关系运算符 赋值运算符低 值为1值为0值为0值为0值为0 例 判别某一年year是闰年 闰年的条件符合下面二者之一 1 能被4整除 但不能被100整除 2 能被4整除 又能被400整除 可以用一个逻辑表达式表示 year 4 0 year 100 0 year 4 0 year 400 0 上述表达式为真 则year是闰年 否则为非闰年 5 3if语句if语句的三种形式 1 if 表达式 语句例如 if x y printf d x 2 if 表达式 语句1else语句2例如 if x y printf d x elseprintf d y 3 if 表达式1 语句1elseif 表达式2 语句2elseif 表达式3 语句3elseif 表达式m 语句melse语句n 例如 if a 500 b 4 elseif a 300 b 3 elseif a 100 b 2 elseif a 50 b 1 elseb 0 例5 1 输入两个实数 按代数值由小到大输出这两个数 main floata b t scanf f f 输入 3 6 3 2 输出 3 2 3 6 例5 2 输入三个数 按由小到大输出 main floata b c t scanf f f f 输入 3 7 1 输出 1 00 3 00 7 00 371 371 173 137 if语句的嵌套一般形式 if if 语句1else语句2elseif 语句3else语句4使用嵌套if语句时 必须特别注意if与else配对 配对原则 从最内层开始 else总是与它上面最接近的 未曾配对的 if配对 避免if与else配对错位的最佳办法是加大括号 同时 为了便于阅读 使用适当的缩进 只有大括号能保证if和else不错位配对 缩进仅便于阅读 例5 3 有一函数如下 编一程序 输入一个x值 输出y值 main intx y scanf d 程序2 if x 0 if x 0 y 1 elsey 0 elsey 1 程序3 y 1 if x 0 if x 0 y 1 elsey 0 条件运算符一般形式 表达式1 表达式2 表达式3例 if a b max a elsemax b 可以用如下条件运算符来处理 max a b a b条件运算符 称为 三目运算符 C语言中唯一的一个三目运算符 例5 4 输入一个字符 判别它是否大写字母 如果是 将其转换为小写 否则不转换 然后输出最后得到的字符 main charch scanf c printf c ch 5 4switch语句switch语句直接处理多个分支 当然包括两个分支 其一般形式 switch 表达式 case常量表达式1 语句1 break case常量表达式2 语句2 break case常量表达式n 语句n break default 语句n 1 例 编程序 输入月份数 输出是那个季节 春 夏 秋 冬 main intmonth printf pleaseinputmonth scanf d 例 输入一个百分制成绩 要求输出成绩等级 A B C D E 判别学生成绩的等级 60分 E级 60 69分 D级 70 79分 C级 80 89分 B级 90 100分 A级 main intscore s chargrade printf 请输入学生的成绩 scanf d n case5 case4 case3 case2 case1 case0 grade E break printf 成绩是 d 相应的等级是 c n score grade 例 求方程的解 1 算法 有以下几种可能性 a 0 不是二次方程 b2 4ac 0 有两个相等实根 b2 4ac 0 有两个不等实根 b2 4ac 0 有两个共轭复根 2 N S流程图 设disc b2 4ac 程序如下 disc b2 4ac include math h main floata b c disc x1 x2 realpart imagpart scanf f f f if fabs disc 1E 6 disc 0 x1 b sqrt disc 2 a x2 b sqrt disc 2 a printf hasdistinctrealroots 8 4fand 8 4f n x1 x2 else disc 0 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 练习题 写出下面程序在以下情况的输出结果 a 10 b 5 a 5 b 10 a 0 b 3 a 6 b 7 main inta b scanf d d 课堂练习 1 语句 printf d a 2 b 2 的输出结果是 A 无输出B 结果不确定C 0D 1E 1 2 表达式 10 9的值是 A true B 任何一个非零值 C 0 D 13 为表示关系x y z 应使用C语言表达式 A x y y z B x y AND y z C x y z D x y y z 3 两次运行下面的程序 如果从键盘上分别输入6和4 则输出结果是 main intx scanf d A 7和5B 6和3C 7和4D 6和4 4 设intx 1 y 1 表达式 x y 的值是 A 0B 1C 2D 1 5 与y x 0 1 x 0 if x 0 y 1 elsey 1 B if x if x 0 y 1 elseif x 0 y 1 elsey 0 C

温馨提示

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

评论

0/150

提交评论