已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章选择结构程序设计 北京科技大学计算机系 C语言程序设计 2020 2 2 2 本章主要内容 4 1if语句4 1 1if语句的一般形式4 1 2if语句的嵌套4 2switch语句4 2 1switch语句的一般形式4 2 2break语句4 3选择结构程序设计举例 2020 2 2 3 简单分支语句 语句一般格式if 表达式 语句 功能 计算表达式的值 如果是一个非0值 即逻辑真 就执行内嵌语句 否则 即逻辑假 跳过内嵌语句 顺序执行后续语句 2020 2 2 4 简单分支语句的算法 例如 if x 0 m if a b c a a b b c 2020 2 2 5 双重分支语句 语句一般格式if 表达式 语句1else语句2功能 计算表达式的值 如果它的值是一个非0值 逻辑真 就执行内嵌语句1 之后跳过内嵌语句2 执行后续语句 否则跳过内嵌语句1 执行内嵌语句2 之后执行后续语句 2020 2 2 6 双重分支语句的算法 例如 if x 0 m elsem if ch a 2020 2 2 7 多重分支语句 语句一般格式if 表达式1 语句1elseif 表达式2 语句2 elseif 表达式m 语句melse语句n功能 依次计算并判断表达式i 为非0时执行后面的语句 都为0时 执行语句n无论执行完那个语句分支 都转到后续语句 2020 2 2 8 多重分支语句的算法 流程图 表达式m 2020 2 2 9 多重分支语句的算法 N S结构图 例如 if a 0 x 1 elseif a 0 x 0 elsex 1 2020 2 2 10 if语句的简单应用 例4 1 输入一个字符 如果是大写字母 则将其转换为小写字母输出 否则直接输出 输入 用getchar或scnaf函数ch是否为大写字母 ch A ch 65 ch 90 大写字母转换为小写字母 ch ch 32输出 用putchar或printf函数 思路 2020 2 2 11 程序 include stdio h main charch ch getchar if ch A 程序运行情况如下 G g 运行jc4 1 可使用条件表达式代替 putchar ch A putchar n 2020 2 2 12 4 1 2if语句的嵌套 如果if的内嵌语句中又使用了一个if语句 则构成if语句的嵌套 例4 a 比较两个整数的关系 includemain intx y printf EnterintegerXandY scanf d d 应该正确判断 if的内嵌语句if和else的配对 运行jc4 a 提倡缩格书写有利于阅读程序 2020 2 2 13 if语句嵌套的形式 简单if语句的嵌套形式if 表达式 if语句双重 或多重 分支if语句的嵌套形式if 表达式 if语句elseif语句 可以是各种形式的if语句 可以是各种形式的if语句 如果是简单if语句 必须用 括起 2020 2 2 14 例如 if c 50 printf 50 50 printf 50150 n if c 50 printf 50 c 100 n elseprintf c 50 n 与哪个if配对 2020 2 2 15 再例如 if a b if a c if a d m 1 elsem 2 elsem 3 问题 哪一个else和哪一个if相匹配 规则 在嵌套的if else语句中 else总是与上面的离它最近的尚未配对的if配对 2020 2 2 16 举例 例4 4 输入一个数 判断它是奇数还是偶数 如果是奇数则进一步判断它是否为5的倍数 2020 2 2 17 程序 main intx scanf d 运行jc4 4 2020 2 2 18 学习if语句的难点 if else语句的配对正确用表达式描述条件例如 当x大于5小于10时令x自增if 5 x 10 x 正确判断内嵌语句例如 if x y x x 3 y y 2 elsex x 3 y y 2 if x 5 2020 2 2 19 熟悉常用的if表达式形式 例如有定义 inta b 0 a等于什么值时 执行b 2 语句 if a 0 b 2 if a 1 b 2 if a 0 b 2 if a 1 b 2 if a 0 b 2 if a b 2 if a b 2 等价于 等价于 2020 2 2 20 4 2switch语句 switch语句的一般形式switch 表达式 case常量表达式1 语句序列1case常量表达式2 语句序列2 case常量表达式n 语句序列ndefault 语句序列n 1 功能 计算表达式的值 与常量表达式的值比较 等于第i个值时 顺序执行语句序列i i 1 n 1若与所有常量表达式值都不相等 执行语句序列n 1 2020 2 2 21 switch语句的算法描述 N S结构图 例如 switch a case5 printf 当a等于5 输出 当a等于2 输出 当a是其他值 输出 2020 2 2 22 说明 case常量表达式i 等价于语句标号 计算出的表达式值等于哪个语句标号 就从哪个位置开始顺序向下执行语句序列 语句位置影响运行结果 例如 switch a case2 printf default printf case5 printf switch与break语句结合才能实现程序的分支 break break break 2020 2 2 23 switch语句的简单应用 例4 3 已知x 100 y 15 要求输入一个算术运算符 或 并对x和y进行指定的算术运算 思路 设x和y为float型变量并赋初值 输入的运算符op为char型变量 根据op的值 为 进行x和y的相加 相减 相乘 相除运算 选择分支 还要考虑到输入字符不是 或 时的情况 2020 2 2 24 程序 include stdio h main floatx 100 y 15 z charop op getchar switch op case z x y break case z x y break case z x y break case z x y break default z 0 if int z 0 printf f c f f n x op y z elseprintf cisnotanoperator n op 运行jc4 3 实型数通常不使用z 0或z 0的比较可用if int z 代替 2020 2 2 25 注意 switch语句的书写格式 语句体本身必须用花括号括起 case和default后面如果有多条语句 则可以不必使用花括号 case和常量表达式之间必须有空格 default可以写在语句体的任何位置 也可以省略不写break语句可以改变case的语句标号作用 终止后续case语句序列的执行 switch语句和break语句结合 可以实现程序的选择控制 break语句还可以在循环语句中使用 允许switch嵌套使用 但同一个switch语句中 任意两个case的常量表达式值不能相同 2020 2 2 26 4 3选择结构程序设计举例 例4 6 求一元二次方程ax2 bx c 0的根 思路 一元二次方程的根取决于系数a b c求根公式 判别式d b2 4ac当d 0时 方程有两个相等的实根 x1 x2 b 2 a 当d 0时 方程有两个不相等的实根 x1 b sqrt d 2 a x2 b sqrt d 2 a 当d 0时 方程有两个虚根 x1 jp ipix2 jp ipi 实部jp b 2 a 虚部ip sqrt d 2 a 2020 2 2 27 算法 2020 2 2 28 程序 include math h main floata b c d x1 x2 lp ip scanf f f f 2020 2 2 29 程序 续 elseif d 1e 6 不相等的实根 x1 b sqrt d 2 a x2 b sqrt d 2 a printf hastworealroots n printf x1 8 4f x2 8 4f n x1 x2 else 虚根 lp b 2 a ip sqrt d 2 a printf hastwocomplexroots n printf x1 8 4f 8 4fi n lp ip printf x2 8 4f 8 4fi n lp ip 运行jc4 6 2020 2 2 30 举例 续 例4 b 输入年份 判别该年是否为闰年 思路 年份year为闰年的条件为 能够被4整除 但不能被100整除的年份 能够
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年内务经理招聘面试参考题库及答案
- 2025年家庭服务专员招聘面试题库及参考答案
- 2025年笔译专员招聘面试题库及参考答案
- 2025年法律助理人员招聘面试参考题库及答案
- 2025年移动设备管理专家招聘面试题库及参考答案
- 2025年手工艺品设计师招聘面试题库及参考答案
- 2025年生物技术专员招聘面试题库及参考答案
- 2025年流媒体技术支持招聘面试参考题库及答案
- 2025年测试分析师招聘面试题库及参考答案
- 2025年法律事务助理招聘面试题库及参考答案
- 年度资金预算表参考模板
- 审计模拟实训教程第4版马春静课后部分参考答案
- 中国建筑史-绘图题
- GB/T 9442-2010铸造用硅砂
- 溶胶-凝胶法:高均一性、高比表面积催化剂制备
- FZ/T 73009-2021山羊绒针织品
- 纤维化学与物理-第三章蛋白质纤维-蚕丝课件
- 医务处的管理职责课件
- 中医妇科学课件-妊娠病胎漏胎动不安
- 甾体及其苷类-2011课件
- 大健康数据课件
评论
0/150
提交评论