谭浩强C程序设计(第三版)清华课件第5章-选择

上传人:san****019 文档编号:21434919 上传时间:2021-04-30 格式:PPT 页数:40 大小:520.50KB
收藏 版权申诉 举报 下载
谭浩强C程序设计(第三版)清华课件第5章-选择_第1页
第1页 / 共40页
谭浩强C程序设计(第三版)清华课件第5章-选择_第2页
第2页 / 共40页
谭浩强C程序设计(第三版)清华课件第5章-选择_第3页
第3页 / 共40页
资源描述:

《谭浩强C程序设计(第三版)清华课件第5章-选择》由会员分享,可在线阅读,更多相关《谭浩强C程序设计(第三版)清华课件第5章-选择(40页珍藏版)》请在装配图网上搜索。

1、 本 章 要 点n 关 系 表 达 式n 逻 辑 表 达 式n 选 择 结 构 程 序 设 计 5.1 关 系 运 算 符 和 关 系 表 达 式5.2 逻 辑 运 算 符 和 逻 辑 表 达 式5.3 if语 句5.4 switch语 句5.5 程 序 举 例 4C程 序 设 计 ( 第 三 版 ) http:/ 41.关 系 运 算 符 及 其 优 先 次 序1. (小 于 )2. (大 于 )4. = (大 于 或 等 于 )5. = (等 于 )6. != (不 等 于 ) 优 先 级 相 同 ( 高 )优 先 级 相 同 ( 低 )说 明 :关 系 运 算 符 的 优 先 级 低 于

2、 算 术 运 算 符关 系 运 算 符 的 优 先 级 高 于 赋 值 运 算 符 5C程 序 设 计 ( 第 三 版 ) http:/ 52.关 系 表 达 式 用 关 系 运 算 符 将 两 个 表 达 式 ( 可 以 是 算 术 表 达 式 或 关 系 表 达 式 , 逻 辑 表 达 式 , 赋 值 表 达 式 , 字 符 表 达 式 ) 接 起 来 的 式 子 , 称 关 系 表 达 式例 : ab,a+bb+c,(a=3)(b=5),ab)(bb”的 值 为 “ 真 ” , 表 达 式 的 值 为 1。C语 言 中 没 有 专 用的 逻 辑 值 , 1代 表真 , 0代 表 假 6C

3、程 序 设 计 ( 第 三 版 ) http:/ 61.逻 辑 运 算 符 及 其 优 先 次 序(1) 表 达 式语 句真 ( 非 0) 假( 0) 12C程 序 设 计 ( 第 三 版 ) http:/ 12(2)if(表 达 式 ) 语 句 1 else 语 句 2例 : if (xy) printf(“%d”,x); else printf(“%d”,y); 条 件 语 句 1 语 句 2Y N 13C程 序 设 计 ( 第 三 版 ) http:/ 13(3)if( 表 达 式 1) 语 句 1 else if(表 达 式 2)语 句 2 else if(表 达 式 3)语 句 3

4、else if(表 达 式 m)语 句 m else 语 句 n 14C程 序 设 计 ( 第 三 版 ) http:/ 14例 : if (number500)cost=0.15; else if(number300)cost=0.10; else if(number100)cost=0.075; else if(number50)cost=0.05; else cost=0; 15C程 序 设 计 ( 第 三 版 ) http:/ 15说 明 :(1)3种 形 式 的 if语 句 中 在 if后 面 都 有 表 达 式 , 一 般 为 逻 辑 表 达 式 或 关 系 表 达 式 。(2)第

5、 二 , 第 三 种 形 式 的 if语 句 中 , 在 每 个 else前 面 有 一 个 分 号 , 整 个 语 句 结 束 处 有 一 个 分 号 。(3)在 if和 else后 面 可 以 只 含 有 一 个 内 嵌 的 操 作 语 句 , 也 可 以 由 多 个 操 作 语 句 , 此 时 用 花 括 号 将 几 个 语 句 括 起 来 成 为 一 个 复 合 语 句 。 16C程 序 设 计 ( 第 三 版 ) http:/ 16例 5.1 输 入 两 个 实 数 , 按 代 数 值 由 小 到 大 的 顺 序 输 出 这 两个 数 。#includevoid main()floa

6、t a,b,t;scanf( %f,%f ,if(ab)t=a;a=b;b=t;printf( %5.2f,%5.2fn ,a,b); y nabT=aA=bB=t 17C程 序 设 计 ( 第 三 版 ) http:/ 17例 5.2 输 入 三 个 数 a,b,c,要 求 按 由 小 到 大 的 顺 序 输 出 。If ab 将 a和 b对 换If ac 将 a和 c对 换If bc 将 b和 c对 换 ab ac bca和 b交 换 a和 c交 换 c和 b交 换y yyn n 18C程 序 设 计 ( 第 三 版 ) http:/ 18#include void main ( ) fl

7、oat a,b,c,t; scanf( %f,%f,%f , if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t;if(bc) t=b;b=c;c=t; printf(%5.2f,%5.2f,%5.2fn,a,b,c); 19C程 序 设 计 ( 第 三 版 ) http:/ 192.If语 句 的 嵌 套在 if语 句 中 又 包 含 一 个 或 多 个 if语 句 称 为 if语 句 的 嵌 套 。形 式 :If() if() 语 句 1else 语 句 2Else if() 语 句 3else 语 句 4 内 嵌 if 20C程 序 设 计 ( 第 三 版 )

8、http:/ 20匹 配 规 则 :Else总 是 与 它 上 面 的 , 最 近 的 , 统 一 复 合 语 句 中 的 , 未 配对 的 if语 句 配 对 。例 :If() if() 语 句 1else if() 语 句 2else 语 句 3 例 :If() if() 语 句 1else if() 语 句 2else 语 句 3当 if和 else数 目 不 同 时 , 可 以 加 花 括 号 来 确 定 配 对 关 系 。 21C程 序 设 计 ( 第 三 版 ) http:/ 21 -1 (x0)算 法 1: 算 法 1:输 入 x 输 入 x若 x0,则 y=-1 若 x0,则

9、y=1 若 x=0,则 y=0输 出 y 若 x0,则 y=1 输 出 y 22C程 序 设 计 ( 第 三 版 ) http:/ 22 #includevoid main() int x,y; scanf(“%d”, 程 序 段 printf(“x=%d,y=%dn”,x,y); 23C程 序 设 计 ( 第 三 版 ) http:/ 23上 例 中 的 程 序 段 有 四 个 , 请 判 断 哪 个 是 正 确 的 ?程 序 1: 程 序 2: If(x=0) Y=-1; if(x0) y=1; Else else y=0; If(x=0) y=0; else y=-1; Else y=1

10、;程 序 3: 程 序 4: Y=-1; y=0; If(x!=0) if(x=0) If(x0) y=1; if(x0) y=1; Else y=0; Else y=-1;正确 正确 24C程 序 设 计 ( 第 三 版 ) http:/ 243.条 件 运 算 符格 式 : 表 达 式 ? 表 达 式 表 达 式 功 能 : 判 断 表 达 式 1的 值 , 如 果 成 立 就 执 行 表 达 式 2, 否 则 就 执 行 表 达 式 3使 用 场 合 : 若 在 语 句 中 , 当 被 判 别 的 表 达 式 的 值 为 “ 真 ” 或 “ 假 ” 时 , 都 执 行 一 个 赋 值 语

11、 句 且 向 同 一 个 变 量 赋 值 时 , 可 以 用 一 个 条 件 运 算 符 来 处 理 。 25C程 序 设 计 ( 第 三 版 ) http:/ 25例 : ( ) = ; ;当 ab时 将 a的 值 赋 给 max, 当 a b时 将 b的 值 赋 给 max,可 以 看 到 无 论 ab是 否 满 足 , 都 是 向 同 一 个 变 量 赋 值 。 可 以 用 下 面 的 条 件 运 算 符 来 处 理 : ( ) ? ; 26C程 序 设 计 ( 第 三 版 ) http:/ 26说 明 :(1)条 件 运 算 符 的 执 行 顺 序 : 先 求 解 表 达 式 , 若

12、为 非 ( 真 ) 则 求 解 表 达 式 , 此 时 表 达 式 的 值 就 作 为 整 个 条 件 表 达 式 的 值 。 若 表 达 式 的 值 为 ( 假 ) , 则 求 解 表 达 式 , 表 达 式 的 值 就 是 整 个 条 件 表 达 式 的 值 。 (2)条 件 运 算 符 优 先 级 高 于 赋 值 运 算 符 , 低 于 关 系 运 算 符 和 算 术 运 算 符 。 (3)条 件 运 算 符 的 结 合 方 向 为 “ 自 右 至 左 ” 。 (4)“表 达 式 2”和 “ 表 达 式 3”不 仅 可 以 是 数 值 表 达 式 , 还 可 以 是 赋 值 表 达 式

13、或 函 数 表 达 式 。(5)条 件 表 达 式 中 , 表 达 式 的 类 型 可 以 与 表 达 式 和 表 达 式 的 类 型 不 同 。 27C程 序 设 计 ( 第 三 版 ) http:/ 27例 5.4输 入 一 个 字 符 , 判 别 它 是 否 大 写 字 母 , 如 果 是 , 将它 转 换 成 小 写 字 母 ; 如 果 不 是 , 不 转 换 。 然 后 输 出 最 后得 到 的 字 符 。 #include void main ( ) char ch; scanf(%c, ch=(ch=A printf(%cn,ch); 如 果 字 符 变 量 ch的 值 为 大

14、写 字 母 ,则 条 件 表 达 式 的 值 为 ( ) , 即 相 应 的 小 写 字 母 。 如 果 ch的 值 不 是 大 写 字 母 , 则 条 件 表 达 式的 值 为 , 即 不 进 行 转 换 。 28C程 序 设 计 ( 第 三 版 ) http:/ 28 switch语 句switch语 句 的 格 式 :switch ( 表 达 式 ) case 常 量 表 达 式 : 语 句 case 常 量 表 达 式 : 语 句 case 常 量 表 达 式 : 语 句 default : 语 句 29C程 序 设 计 ( 第 三 版 ) http:/ 29 switch语 句 例

15、:要 求 按 照 考 试 成 绩 的 等 级 输 出 百 分 制 分 数 段 , 用switch语 句 实 现 : switch( grade) case printf( ) ; case printf ( ) ; case printf ( ) ; case printf ( ) ; default ( printf ) ; 30C程 序 设 计 ( 第 三 版 ) http:/ 30 switch语 句 说 明 : switch后 面 括 弧 内 的 “ 表 达 式 ” , 标 准 允 许 它 为 任 何 类 型 。(2) 当 表 达 式 的 值 与 某 一 个 case后 面 的 常 量

16、 表 达式 的 值 相 等 时 , 就 执 行 此 case后 面 的 语 句 , 若所 有 的 case中 的 常 量 表 达 式 的 值 都 没 有 与 表 达式 的 值 匹 配 的 , 就 执 行 default后 面 的 语 句 。(3) 每 一 个 case的 常 量 表 达 式 的 值 必 须 互 不 相 同 ,否 则 就 会 出 现 互 相 矛 盾 的 现 象 ( 对 表 达 式的 同 一 个 值 , 有 两 种 或 多 种 执 行 方 案 ) 。 31C程 序 设 计 ( 第 三 版 ) http:/ 31 switch语 句 (4) 各 个 case和 default的 出

17、现 次 序 不 影 响 执 行 结 果 。 例 如 , 可 以 先 出 现 “ default: ”, 再 出 现 “ case : ”, 然 后 是 “ case : ”。(5) 执 行 完 一 个 case后 面 的 语 句 后 , 流 程 控 制 转 移 到下 一 个 case继 续 执 行 。 “ case常 量 表 达 式 ” 只 是 起语 句 标 号 作 用 , 并 不 是 在 条 件 判 断 。 在 执 行 switch语 句 时 , 根 据 switch后 面 表 达 式 的 值 找 到 匹 配 的入 口 标 号 , 就 从 此 标 号 开 始 执 行 下 去 , 不 再 进

18、行 判断 。 应 该 在 执 行 一 个 case分 支 后 ,可 以 用 一 个 break语 句 来 终 止 switch语 句 的 执 行 。 (6) 多 个 可 以 共 用 一 组 执 行 语 句 。 32C程 序 设 计 ( 第 三 版 ) http:/ 32 程 序 举 例例 5 5 写 程 序 , 判 断 某 一 年 是 否 闰 年 。用 下 图 来 表 示 判 断 闰 年 的 算 法 。 33C程 序 设 计 ( 第 三 版 ) http:/ 33 程 序 举 例 #include void main()int year, leap; scanf(%d, if (year%4=

19、0)if (year%100=0) if (year%400=0) leap=1; else leap=0; else leap=1; else leap=0; if (leap) printf(%d is ,year); else printf(%d is not ,year); printf(a leap year.n); ( ! ) ; ( ! ) ; ( ! ) ; ; 运 行 情 况 : . . 34C程 序 设 计 ( 第 三 版 ) http:/ 34 程 序 举 例 例 5 6 求 方 程 的 解 。基 本 的 算 法 : , 不 是 二 次 方 程 。 , 有 两 个 相 等

20、 实 根 。 , 有 两 个 不 等 实 根 。 , 有 两 个 共 轭 复 根 。 35C程 序 设 计 ( 第 三 版 ) http:/ 35 36C程 序 设 计 ( 第 三 版 ) http:/ 36 程 序 举 例 37C程 序 设 计 ( 第 三 版 ) http:/ 37 程 序 举 例 38C程 序 设 计 ( 第 三 版 ) http:/ 38 程 序 举 例 例 5.7 运 输 公 司 对 用 户 计 算 运 费 。路 程 ( ) 越 远 , 每 公 里 运 费 越 低 。 标 准 如 下 : 没 有 折 扣 折 扣 折 扣 折 扣 折 扣 折 扣设 每 公 里 每 吨 货 物 的 基 本 运 费 为 , 货 物 重 为 ,距 离 为 , 折 扣 为 , 则 总 运 费 的 计 算 公 式 为 : * * *( ) 39C程 序 设 计 ( 第 三 版 ) http:/ 39 程 序 举 例 分 析 折 扣 变 化 的 规 律 性 :折 扣 的 “ 变 化 点 ” 都 是 的 倍 数 在 横 轴 上 加 一 种 坐 标 , c的 值 为 s/250。c代 表 250的 倍 数 。 , 无 折 扣 ; , 折 扣 ; , ; , ; , ; , 。 40C程 序 设 计 ( 第 三 版 ) http:/ 40 程 序 举 例 ( 续 )

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

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

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


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