




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上讲内容回顾 一 输入输出的复杂格式 4 2 2 二 字符的输入和输出 4 2 1 三 算法 2 2 第五讲选择结构程序设计 1 C语言程序设计ProgramminginC 本讲主要内容 一 条件的表示二 if语句1 单分支if语句 Theifstatement 2 双分支if else语句 Theif elsestatement 3 多分支if else语句4 选择结构的嵌套 Nest 项目分析 安全设置 进入系统需要密码算法分析 如果密码正确 显示 欢迎使用 系统 否则 显示 密码错误请重新输入 选择结构 要设计选择结构程序 要考虑以下问题 条件 密码正确1 在C语言中如何来表示条件 一般用关系表达式或逻辑表达式mima 123如果 否则 2 在C语言中实现选择结构用什么语句 用if语句或switch语句 一 条件的表示 一 关系运算符与关系表达式 二 逻辑运算符和逻辑表达式 三 条件运算符与表达式 一 关系运算符与关系表达式 TheOperatorandExpressionsofRelations 程序中经常需要比较两个量的大小关系 以决定程序下一步的工作 比较两个量的运算符称为关系运算符 由关系运算符将操作数连起来的表达式称为关系表达式 C语言提供了6个关系运算符 关系运算符 Therelationaloperatorsare 优先级 precedence 关系运算符 赋值 逗号运算符 关系表达式及值逻辑值也称布尔值 逻辑值只有两个 指定关系式成立时 逻辑结果为真 以1表示 指定关系不成立时 逻辑结果为假 以0表示 例 运算符优先级c a b c a b a b c a b c a bc a b c 例inta 3 b 2 c 1 d f a b a b cb cbf a b c 表达式值1 表达式值1 表达式值0 表达式值1 f 0 一 关系运算符与关系表达式 TheOperatorandExpressionsofRelations 关系运算注意 例 3 2 1在C中是允许的 值为0 例 includevoidmain floatd 123 45 if 123 45 d printf 1 n elseprintf 0 n 1 字符变量以对应的ASCII码参与运算 2 对于含多个关系运算符的表达式 根据运算符的左结合性计算 3 注意 和 的区别 4 应避免对实数作相等或不等的判断 include includevoidmain floatd 123 45 if fabs 123 45 d 1e 5 printf 1 n elseprintf 0 n 二 逻辑运算符与逻辑表达式 TheOperatorandExpressionsofLogic C语言中有3个逻辑运算符 逻辑与 并且 逻辑或 或者 逻辑非 取反 运算对象 非0 真 或0 假 逻辑运算结果 真 假 二 逻辑运算符与逻辑表达式 TheOperatorandExpressionsofLogic 例a 4 b 0 aa ba b 非0值 真 0值 假 整型实型字符型 00 0 0 二 逻辑运算符与逻辑表达式 TheOperatorandExpressionsofLogic 逻辑运算符的优先级和结合性 从右向左关系运算符 从左向右 从左向右 高 低 二 逻辑运算符与逻辑表达式 TheOperatorandExpressionsofLogic 二 逻辑运算符与逻辑表达式 TheOperatorandExpressionsofLogic 练习 4 0 2 c d 5 3 2 83 2 8 4 0 短路特性 逻辑表达式求解时 并非所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 二 逻辑运算符与逻辑表达式 TheOperatorandExpressionsofLogic 例a 1 b 2 c 3 d 4 m 1 n 1 m a b n c d 结果m 0 n 1 例a b c 只在a为真时 才判别b的值 只在a b都为真时 才判别c的值 例a b c 只在a为假时 才判别b的值 只在a b都为假时 才判别c的值 例 判断变量a的值是否在12到30之间 数学表达式 12 a 30 12 a a 30 如果变量a的值大于12并且小于30 注意区分C语言的关系表达式与数学上的比较运算表达式 并将数学上的比较运算转化为合法的C关系表达式 二 逻辑运算符与逻辑表达式 TheOperatorandExpressionsofLogic 例如 x 1 x 1 x 100 判断x值是否小于1或大于等于100 位于数轴的两端 x 0 y 0 判断x和y值是否都大于等于0 或位于第一象限含数轴 x y z x z y y z x 可用于判断三个数是否满足构成三角形的条件 ch A ch Z 用于判断变量ch是否为大写字母 二 逻辑运算符与逻辑表达式 TheOperatorandExpressionsofLogic 分析 闰年年份满足的条件为 如果年份能被4整除但不能被100整除 是闰年 年份能被400整除 也是闰年 例 设整型变量year表示年份 构造一个条件表达式 当year值为闰年时该条件表达式为 真 否则为 假 所以 判断闰年的条件表达式为下列二者之一 year 4 0 year 100 0 year 400 0表达式 的或运算完整地表示判断闰年的条件 year 4 0 year 100 0 year 400 0等价表示 year 4 0 year 100 0 year 400 0 二 逻辑运算符与逻辑表达式 TheOperatorandExpressionsofLogic 条件运算符是C语言中唯一的三目运算符 一般形式为 表达式1 表达式2 表达式3条件运算符的优先级低于逻辑运算符 高于赋值操作符 自右向左结合 功能 求解表达式1 真 非0 假 0 求解表达式3 表达式的值 例 求两数中的较大数 max x y x y 三 条件运算符与条件表达式 求解表达式2 例 从键盘输入一个数 判断其是奇数还是偶数 includevoidmain void intx printf x scanf d 三 条件运算符与条件表达式 二 if语句 1 单分支if语句 Theifstatement 2 双分支if else语句 Theif elsestatement 3 多分支if else语句4 选择结构的嵌套 Nest if语句的三种形式 if score 60 print Pass n if score 60 printf Pass n elseprintf Fail n 1 单分支if语句 2 双分支if语句 二 if语句 if score 60 printf 不及格 elseif score 70 printf 差 elseif score 80 printf 中 elseif score 90 printf 良 elseprintf 优 3 多分支if语句 二 if语句 语句形式 if 表达式 语句 表达式 常用关系表达式和逻辑表达式语句 单个语句或复合语句语句执行流程 1 单分支if语句 if score 60 print Pass n 2 双分支if语句 语句形式 if 表达式 语句1 else语句2 语句执行流程 if score 60 printf Pass n elseprintf Fail n 3 多分支if else if语句 语句形式 if 表达式1 语句1 elseif 表达式2 语句2 elseif 表达式n 语句n else语句n 1 if score 60 printf 不及格 elseif score 70 printf 差 elseif score 80 printf 中 elseif score 90 printf 良 elseprintf 优 语句执行流程 3 多分支if else if语句 二 if语句 注意 if是关键字只能小写 if语句中表达式形式很灵活 可以是常量 变量 任何类型表达式等 只要表达式的值为非零值 条件就为真 反之条件为假 inta 1 if a if 3 if a 0 if a 0 if a 2 2 当if语句中出现多个 if 与 else 的时候 要特别注意它们之间的匹配关系 否则就可能导致程序逻辑错误 else 与 if 的匹配原则是 就近一致原则 即 else 总是与它前面最近的 if 相匹配 if score 60 printf 不及格 elseif score 70 printf 差 elseif score 80 printf 中 elseif score 90 printf 良 elseprintf 优 二 if语句 includevoidmain charch printf 请输入一个字符 n ch getchar printf 输入的原始字符为 c n ch if ch A 1 单分支if语句 例 将大写字母转换为对应小写字母 注意 if语句自动结合一个语句 当满足条件需要执行多个语句时 应用一对大括号 将需要执行的多个语句括起 形成一个复合语句 比较 if a b c a a b b c if a b c a a b b c if a b c a a b b c 二 if语句 例 从键盘输入一个数 判断其是奇数还是偶数 includevoidmain void intx printf x scanf d 2 双分支if语句 项目分析 安全设置 进入系统需要密码算法分析 如果密码正确 显示 欢迎使用 系统 否则 显示 密码错误请重新输入 2 双分支if语句 2 双分支if语句 程序实现 includevoidmain inta b 333 printf 请输入密码 scanf d includevoidmain inta b 333 printf 请输入密码 scanf d 2 双分支if语句 例如 有分段函数如下 分段函数图形表示 以点1为分界点 分支嵌套程序段如下 if x10 y 3 x 10 x 10 elseprintf x无定义 n x 10无定义 3 多分支if else if语句 例 从键盘任意输入一个百分制考试成绩 判断该成绩的等级 分析 对于考试成绩等级的划分 可在数轴上分段划分如下 为保证程序的健壮性 应进行数据的有效性检查 编写程序代码如下 includevoidmain void floatscore printf 请输入成绩 scanf f 项目分析 选择某功能项 进入子系统模块 1 数据录入2 工资计算3 查询统计4 职工基本资料查询5 查看所有记录6 修改数据 需要权限密码 7 退出系统 3 多分支if else if语句 1 输入选择功能项序号 2 根据输入 执行相应的分支语句 includemain intnum printf t t t t请输入选择1 7 scanf d 3 多分支if else if语句 includemain intnum scanf d 3 多分支if else if语句 如果输入错误 不是1 7 提醒输入有误 includemain intnum scanf d 3 多分支if else if语句 例 判断某数是否能被k整除 include stdio h voidmain inta k scanf d d 算法分析 1 定义并输入数据a k 2 判断a k的结果 例 判断某数是否能被k整除 include stdio h voidmain inta k scanf d d 注意 任何数除以零的值是无穷大 计算机无法存储 就会产生一个数据溢出错误并终止程序的执行 为了防止程序被终止 必须在执行除法时要保证除数不为零 例 数学中有许多有趣的数 如水仙花数 完数等 水仙花数是一个三位数 其各位数字的立方和恰等于这个数 例如153 13 53 33 153 编写程序 从键盘上输入一个三位的整数 判断其是否为水仙花数 分析 1 问题描述 判断一个三位整数num是否为水仙花数 2 数学建模和流程 分解num的每一位数字 ge num 10 个位 bai num 100 百位 shi num 10 10 十位 若num bai bai bai shi shi shi ge ge ge 则num为水仙花数 否则不是 includevoidmain void intnum bai shi ge printf 请输入一个三位的整数 scanf d 语句形式 if 表达式1 if 表达式2 语句1 if 表达式1 if 表达式2 语句1 else语句2 else语句3 if 表达式1 if 表达式2 语句1 else语句2 else语句3 if 表达式1 if 表达式2 语句1 4 选择结构的嵌套 Nest 语句形式 elseif 表达式2 语句1 else语句2 if 表达式1 if 表达式2 语句1 else语句2 4 选择结构的嵌套 Nest if a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 5 In the classroom说课稿-2023-2024学年小学英语1A香港牛津(New Magic)版
- Unit 7 International charities教学设计-2025-2026学年初中英语牛津译林版2012八年级下册-译林版2012
- Unit 4 Review教学设计-2025-2026学年初中英语教科版五四学制八年级下册-教科版五四学制2012
- 工业视觉系统运维员理论知识考核试卷及答案
- 部编版上海市宝山区2025-2026学年七年级下学期期末考试语文试卷
- 2025年颚式破碎机行业研究报告及未来行业发展趋势预测
- 卡纸纸雕:尼尔斯骑鹅旅行记-乌鸦山乌鸦(教案)-二年级劳动上册
- 矿产资源项目建议书编制与资源开发委托合同范本
- 饲料公司职业健康安全告知与员工防护用品供应合同
- 驾校与政府合作开展交通安全知识竞赛活动合同
- 高三一轮复习课件
- 驾驶员安全教育培训考试试卷含答案
- 2025广东河源市暨南大学附属第五医院急需紧缺人员招聘117人(第二批)笔试参考题库附答案解析
- 2025江苏航空产业集团有限责任公司人才招聘备考试题及答案解析
- 污水处理站运行记录台账范本
- 2025年消毒供应室业务学习考试试题(附答案)
- 无人机地下结构探测技术-洞察及研究
- 化工设备开车相关课件
- 校园基孔肯雅热防控措施课件
- 图像特征提取讲解
- 多彩贵州地方课程课件
评论
0/150
提交评论