收藏 分享(赏)

计算机程序设计 - C语言精要-唐龙.docx

上传人:oceanpvg 文档编号:3144855 上传时间:2018-10-04 格式:DOCX 页数:171 大小:566.55KB
下载 相关 举报
计算机程序设计 - C语言精要-唐龙.docx_第1页
第1页 / 共171页
计算机程序设计 - C语言精要-唐龙.docx_第2页
第2页 / 共171页
计算机程序设计 - C语言精要-唐龙.docx_第3页
第3页 / 共171页
计算机程序设计 - C语言精要-唐龙.docx_第4页
第4页 / 共171页
计算机程序设计 - C语言精要-唐龙.docx_第5页
第5页 / 共171页
点击查看更多>>
资源描述

1、C 语 言 精 要唐 龙 徐 玉 华 编 著清 华 大 学 出 版 社编 者 的 话C 语 言 的 学 习 、 应 用 , 从 来 都 是 计 算 机 教 学 与 实 践 的 关 键 和 难 点 。 特 别 在 计 算 机 高 速 发 展 和 普 及 的 今 天 , 越 来 越 多 各 行 各 业 的 人 们 正 自 觉 不 自 觉 地 带 着 各 自 不 同 的 专 业 背 景 、 面 向 着 不 同 的 专 业 方 向 , 一 步 步 逼 近 到 计 算 机 的 内 核 , 对 机 器 、 对 自 己 都 提 出 了 越 来 越 高 的 要 求 。 此 时 , 彻 底 、 迅 速 地 掌

2、握 一 门 计 算 机 语 言 , 已 成 为 当 务 之 急 。 而 对 无 论 置 身 于 哪 一 专 业 领 域 的 计 算 机 爱 好 者 来 说 , 无 论 您 将 面 向 文 字 的 高 级 处 理 还 是 数 据 管 理 , 无 论 您 将 主 攻 自 动 控 制 还 是 CAD 的 高 级 应 用 , C 语 言 都 当 成 为 您 首 选 的 计 算 机 语 言 。 甚 至 可 以 这 样 说 , 如 果 您 永 远 不 懂 C 语 言 的 话 , 那 您 将 永 远 被 拒 绝 在 计 算 机 专 业 技 术 的 门 外 。本 书 正 是 为 各 行 各 业 , 当 然 也

3、 包 括 计 算 机 本 专 业 的 读 者 编 写 的 一 本 简 明 C 语 言 读本 。 书 中 以 通 俗 易 懂 , 清 晰 精 炼 的 叙 述 , 完 整 地 讲 解 了 C 语 言 的 语 法 、 程 序 结 构 、 使 用 方 法 及 一 些 关 键 的 应 用 技 巧 。本 书 作 者 多 年 从 事 C 语 言 的 培 训 、 教 学 工 作 , 为 学 校 及 社 会 上 各 种 专 业 背 景 的 学 生 以 本 书 的 原 始 讲 义 为 教 材 讲 授 了 多 遍 C 语 言 , 深 谙 学 员 心 理 及 接 受 能 力 。 本 书 适 于 作 为高 校 非 计

4、算 机 专 业 的 C 语 言 教 材 , 对 各 类 计 算 机 培 训 班 来 说 , 本 书 更 是 一 本 详 略 得 当 、 恰 到 好 处 的 教 材 。 ( 京 ) 新 登 字 158 号内 容 简 介C 语 言 是 十 分 重 要 的 计 算 机 程 序 设 计 语 言 。 为 使 各 种 专 业 各 种 层 次 的 读 者 能 尽 快 掌 握 C 语 言 , 本 书 简 明 扼 要 地 按 一 般 教 材 的 编 写 方 式 讲 解 了 C 语 言 , 内 容 全 面 , 实 例 丰 富 , 详 略 得 当 。本 书 适 于 高 校 非 计 算 机 专 业 学 生 学 习 C

5、 语 言 使 用 , 亦 可 用 作 各 类 计 算 机 培训 班 教 材 。版 权 所 有 , 翻 印 必 究 。 本 书 封 面 贴 有 清 华 大 学 出 版 社 激 光 防 伪 标 签 , 无 标 签 者不 得 销 售 。图 书 在 版 编 目 ( CI P) 数 据C 语 言 精 要 / 唐 龙 等 编 著 . 北 京 : 清 华 大 学 出 版 社 , 1995.2I SBN 7-302-01680-1 .C . 唐 . C 语 言 . T P 312C中 国 版 本 图 书 馆 CIP 数 据 核 字 ( 94) 第 13729 号出 版 者 : 清 华 大 学 出 版 社 (

6、北 京 清 华 大 学 校 内 , 邮 编 100084)印 刷 者 : 北 京 市 海 淀 区 清 华 园 印 刷 厂 发 行 者 : 新 华 书 店 总 店 科 技 发 行 所开 本 : 787 1092 1/ 16 印 张 : 10.75 字 数 : 251 千 字版 次 : 1995 年 2 月 第 1 版 1995 年 2 月 第 1 次 印 刷书 号 : ISBN 7-302-01680-1/ T P726印 数 : 00018000定 价 : 8.50 元目 录第 1 章 概 述 1 1.1 C 语 言 的 由 来 和 特 点 1 1.2 C 语 言 程 序 的 基 本 形式 、

7、 标 识 符和 保 留 字 3 1.3 基 本 数 据 类 型 4 1.4 算 术 表 达 式 7 1.5 C 语 言 的 基 本 语 句 8第 2 章 流 程 控 制 11 2.1 逻 辑 表 达 式 11 2.2 for 循 环 语 句 12 2.3 w hile 语 句 14 2.4 do 语 句 15 2.5 if 语 句 16 2.6 条 件 表 达 式 运 算 符 19 2.7 break 语 句 20 2.8 continue 语 句 21 2.9 s witch 语 句 21第 3 章 函 数 与 变 量 24 3.1 C 语 言 程 序 的 一 般 形 式 24 3.2 函数

8、 26 3.3 局 部 变 量 与 静 态 变 量 27 3.4 全 程 变 量 30 3.5 函 数 返 回 值 30 3.6 函 数 的 调 用 32 3.7 递 归 函 数 与 递 归 调 用 33第 4 章 数 组 与 字 符 串 35 4.1 一 维 数 组 35 4.2 多 维 数 组 36 4.3 数 组 元 素 初 始 化 37 4.4 数 组 与 函 数 39 4.5 字 符 串 40 4.6 字 符 串 函 数 44 4.7 字 符 函 数 和 字 符 转 换 及 运 算 45 第 5 章 结 构 与 联 合 47 5.1 结 构 的 定 义 47 5.2 结 构 数 组

9、49 5.3 结 构 与 函 数 50 5.4 结 构 的 初 始 化 55 5.5 结 构 的 嵌 套 57 5.6 联合 58第 6 章 指 针 与 链 表 61 6.1 指 针 和 地 址 61 6.2 指 针 变 量 和 指 针 运 算 符 62 6.3 指 针 与 函 数 参 数 68 6.4 指针 、 数 组 和 字符 串 指 针 71 6.5 动 态 存 储 分 配 76 6.6 指 针 与 结 构 79 6.7 链表 82 6.8 二 叉 树 84 6.9 指 针 数 组 86 6.10 多 级 指 针 88 6.11 函 数 指 针 90第 7 章 枚 举 、 位 操 作 及

10、 其 它 93 7.1 枚举 93 7.2 位 操 作 运 算 符 94 7.3 位域 96 7.4 寄 存 器 变 量 97 7.5 类 型 定 义 98 7.6 数 据 类 型 转 换 100第 8 章 预 处 理 程 序 101 8.1 什 么 是 预 处 理 程 序 101 8.2 宏 定 义 和 宏 替 换 101 8.3 文 件 包 含 105 8.4 条 件 编 译 106 8.5 行 号 控 制 108第 9 章 输 入 和 输 出 109 9.1 控 制 台 I/ O 109 9.2 格 式 化 的 控 制 台 I/ O 110 9.3 文 件 的 重 定 向 111 9.4

11、 exit ( ) 函 数 112 10.1 较 大 程 序 的 处 理 122 10.2 sys tem 调 用 125 10.3 ar 和 ranlib 建 库 命 令 126 10.4 C 语 言 软 件 开 发 和 make 文 件 126 10.5 程 序 的 效 率 、 调 试 及 维 护 130 10.6 用 int 86( ) 和 bdos ( ) 来 访 问 系 统 功 能 134 9.5 A SCII 文 件 存 取 113 9.6 二 进 制 文 件 存 取 115 9.7 s tdin, s tdout h 和 st derr 119 9.8 命 令 行 参 数 119

12、第 10 章 C 语 言 程 序 的 开 发 与 调 试 122C 语 言 程 序 设 计 上 机 练 习 题 C 语 言 学 习 参 考 书 目 附 录 C 语 言 备 查 手 册 140143144 1第 1 章 概 述 1. 1 C 语 言 的 由 来 和 特 点1. C 语 言 是 一 种 极 有 生 命 力 的 计 算 机 程 序 设 计 语 言C 语 言 是 一 种 有 强 大 生 命 力 的 计 算 机 程 序 设 计 语 言 。 它 比 BA SIC, AL GOL , FOR - T R AN , PA SCA L , PL / 1, COBOL 等 语 言 出 现 得 都

13、要 晚 。 1972 年 C 语 言 才 正 式 问 世 。 此 后 , 1978, 1983 和 1987 年 几 次 修 订 过 标 准 化 版 本 。 如 今 , 它 已 成 为 一 种 较 成 熟 的 编 程 语 言 , 也 是 现 代 计 算 机 科 学 中 最 广 泛 使 用 的 、 必 不 可 少 的 一 种 语 言 。当 然 , C 语 言 的 产 生 也 不 是 偶 然 的 , 就 其 本 身 的 孕 育 发 展 而 言 , 也 有 一 个 过 程 。1967 年 , 首 先 由 M ar tin Richar ds 开 发 出 BCPL 语 言 。 作 为 软 件 人 员

14、用 于 开 发 系 统 软 件 的 描 述 语 言 , BCPL 语 言 的 突 出 特 点 是 :( 1) 结 构 化 的 程 序 设 计 ;( 2) 直 接 处 理 与 机 器 本 身 数 据 类 型 相 近 的 数 据 ;( 3) 具 有 与 内 存 地 址 对 应 的 指 针 处 理 方 式 。1970 年 , Ken T h ompson 继 承 并 发 展 了 BCP L 语 言 的 上 述 特 点 , 设 计 实 现 了 B 语 言 。 当 时 , 美 国 DEC 公 司 的 PDP-7 小 型 机 U NIX 操 作 系 统 , 就 是 使 用 B 语 言 开 发 的 。197

15、2 年 , 美 国 Bell L ab. 在 PDP-11 小 型 机 的 U N IX 操 作 系 统 开 发 中 , Dennis M . R it chie 和 Br ian W. Ker nighan 对 B 语 言 做 了 进 一 步 的 充 实 和 完 善 , 正 式 推 出 了 C 语 言 。2. C 语 言 的 特 点如 果 将 C 与 FOR T RA N 、 PASCAL 等 作 比 较 , 不 难 发 现 它 吸 收 了 其 他 计 算 机 语 言 的 某 些 优 点 , 抛 弃 了 某 些 缺 点 。 当 然 , 每 一 种 编 程 语 言 都 有 其 特 点 , 其

16、中 某 些 优 缺 点 只 能 是 同 时 并 存 , 或 者 说 只 是 立 足 于 不 同 观 点 的 观 察 而 言 。C 语 言 有 如 下 特 点 :( 1) C 语 言 是 介 于 汇 编 语 言 与 高 级 语 言 之 间 的 一 种 描 述 程 序 语 言 , 也 有 人 称 之 为 中 级 语 言 。 这 是 很 自 然 的 , 因 为 它 正 是 由 写 操 作 系 统 ( U NI X) 的 需 要 而 发 展 起 来 的 , 所 以 , 它 比 较 接 近 于 汇 编 语 言 , 有 着 面 向 硬 件 系 统 、 便 于 直 接 访 问 硬 件 的 功 能 ; 同 时

17、 , 为 便 于 加 快 开 发 速 度 , 提 高 工 作 效 率 , 它 又 具 有 类 似 于 高 级 语 言 面 向 用 户 , 容 易 记 忆 、 便 于 书 写 和 阅 读 的 优 点 。( 2) C 语 言 是 一 种 灵 巧 的 、 结 构 化 的 、 模 块 化 的 强 有 力 的 软 件 设 计 语 言 。 它 只 有 很 少 的 核 心 , 只 使 用 很 少 的 关 键 字 。 通 过 明 确 的 控 制 结 构 , 丰 富 的 数 据 类 型 和 运 算 操 作 、 函 数 库 以 及 模 块 化 的 编 程 手 段 , 使 C 语 言 成 为 一 种 强 有 力 的

18、 编 程 语 言 。2( 3) C 语 言 是 一 种 可 移 植 性 很 强 的 语 言 。 这 体 现 在 两 方 面 : 其 一 , I/ O 功 能 通 过 调 用 I / O 函 数 库 来 实 现 , 而 这 些 函 数 是 系 统 提 供 的 独 立 于 C 语 言 的 程 序 模 块 库 , 这 样 C 语 言 本 身 可 不 依 附 于 机 器 硬 件 系 统 。 其 二 , 一 种 机 型 的 C 语 言 核 心 编 译 器 可 以 很 小 , 系 统 的 实 用 性 部 分 和 预 处 理 部 分 均 与 机 器 无 关 , 使 它 从 一 个 系 统 到 另 一 系 统

19、 的 移 植 改 写 很 容 易 实 现 。( 4) C 语 言 在 编 程 上 提 供 了 较 大 的 自 由 度 , 与 之 相 伴 的 是 非 约 束 性 , 这 也 造 成 了 某 些 困 扰 。 C 语 言 的 格 式 比 F ORT R AN 要 自 由 得 多 。 C 语 言 的 预 处 理 语 句 , 例 如 , # define,# include, # if 和 # else 等 所 提 供 的 宏 定 义 , 对 外 部 文 件 的 使 用 以 及 条 件 编 译 等 措 施 均有 利 于 提 高 开 发 效 率 , 但 也 给 不 熟 练 的 开 发 者 增 加 了 出

20、 错 的 可 能 性 。3. C 语 言 程 序 的 生 成 和 使 用 过 程在 U N IX 操 作 系 统 支 持 下 C 语 言 程 序 的 生 成 和 使 用 主 要 过 程 , 如 图 1.1 所 示 。图 1.13 1. 2 C 语 言 程 序 的 基 本 形 式 、 标 识 符 和 保 留 字1. C 语 言 程 序 的 基 本 形 式C 语 言 程 序 都 由 一 个 或 多 个 函 数 ( Funct ion ) 构 成 。 一 个 C 程 序 至 少 必 须 存 在 一 个 函 数 “main( ) ”。 它 是 程 序 运 行 开 始 时 调 用 的 一 个 函 数 。

21、 它 表 明 该 程 序 完 成 动 作 的 轮 廓 。 C 语言 程 序 的 基 本 形 式 如 下 :main ( )变 量 说 明 语 句 ;执 行 语 句 ;main( ) 为 主 函 数 。 执 行 语 句 中 , 可 有 其 他 函 数 , 但 不 能 用 main 为 函 数 名 。 许 多 常 用 的 函 数 做 成 标 准 函 数 与 C 编 译 器 一 起 提 供 给 用 户 , 这 就 是 标 准 库 函 数 。例 1.1:/ * T his pr ogr am is sum of tw o int eger and dis plays th e r esults * /

22、main ( )in t a, b , sum ;a = 123;b = 456;s um= a+ b;pr int f( T he sum of % d and % d is % d n , a, b, sum) ;此 实 例 中 , 只 有 一 个 函 数 , 即 主 函 数 main ( ) 。 a, b 和 sum 都 是 变 量 。 第 一 个 语 句 就 是 说 明 这 些 变 量 的 语 句 , 说 明 它 们 都 是 整 数 ( 即 int ) 型 的 变 量 。 后 四 个 语 句 就 是 执 行 语句 。 所 有 这 些 语 句 都 放 在 左 右 大 括 号 之 内 ,

23、各 语 句 之 间 以 分 号 “; ”断 开 。2. 标 识 符C 语 言 中 所 使 用 的 每 个 函 数 和 变 量 都 应 有 唯 一 的 名 称 , 这 样 才 能 被 识 别 和 使 用 。 通 常 , 这 种 函 数 和 变 量 名 称 用 一 串 字 符 表 达 , 称 为 标 识 符 。 在 C 语 言 中 , 使 用 的 标 识 符 有 严 格 限 制 , 即 :( 1) 必 须 以 字 母 或 下 划 线 开 头 ;( 2) 必 须 由 字 母 , 数 字 或 下 划 线 组 成 ;( 3) 大 小 写 字 母 是 有 区 别 的 ;( 4) 不 允 许 用 一 些 保

24、 留 字 ( 或 叫 关 键 字 ) 。4b reak do for r egist er s tr uct volat icase double float r et ur n s wit ch whilechar enum got o sizeof t ypedefcont inue els e if signed un ioncons t ent ry int shor t un signed例 1.2: 正 确 的 函 数 或 变 量 名 称 的 实 例 :- abcT s x7L ev- 5例 1.3: 错 误 的 函 数 或 变 量 名 称 的 实 例 :3Hs U M 3. 保

25、留 字 ( 即 关 键 字 )在 C 语 言 中 保 留 字 或 关 键 字 并 不 太 多 , 原 先 规 定 有 28 个 , 新 标 准 规 定 改 为 32 个 ,如 下 所 示 。aut o default ex ter n long s tat ic voidle 注 表 示 旧 标 准 所 用 的 , 新 标 准 中 已 不 用 了 。 表 示 新 标 准 所 增 加 的 。此 外 , 在 某 些 版 本 中 , 还 可 能 包 含 其 他 几 个 保 留 字 或 关 键 字 , 例 如 : ada, asm , for - t r an 和 pascal 等 。另 有 若 干

26、非 关 键 字 , 也 不 可 随 意 使 用 , 例 如 : define, undef, include, ifdef, ifndef , en dif和 line 等 均 为 预 处 理 器 使 用 的 一 些 字 。 1. 3 基 本 数 据 类 型1. C 语 言 可 以 使 用 多 种 数 据 类 型( 1) 基 本 类 型 整 数 类 型 实 数 类 型 ( 浮 点 类 型 ) :单 精 度 浮 点 型双 精 度 浮 点 型 字 符 类 型 枚 举 类 型( 2) 构 造 类 型 数 组 类 型 结 构 类 型51531 联 合 类 型( 3) 指 针 类 型( 4) 空 类 型

27、本 章 先 介 绍 三 种 基 本 类 型 , 其 他 在 后 面 章 节 中 陆 续 介 绍 。数 据 有 常 量 和 变 量 之 分 。 常 量 是 指 在 运 算 过 程 中 , 其 值 不 变 的 量 , 可 以 是 一 个 具 体 的 值 , 也 可 以 定 义 一 个 标 识 符 来 代 表 , 即 符 号 常 量 。 变 量 的 值 在 运 算 过 程 可 以 改 变 。 如 前 节 所 述 , 每 个 变 量 都 应 有 一 个 唯 一 的 名 称 , 并 根 据 其 类 型 在 存 储 器 中 占 一 定 的 存 储 单 元 , 以 便 存 放 其 值 。2. 整 数 型 (

28、 即 integer int 型 )整 数 型 常 量 不 仅 可 用 十 进 制 表 示 , 也 允 许 用 八 进 制 或 十 六 进 制 表 示 , 例 如 :32 十 进 制 数 032 即 26 八 进 制 数 以 0 为 先 导 , 以 0 7 构 成 。0747 即 ( 7 8+ 4 8+ 7= 4870x32 即 50 十 六 进 制 数 以 0x 为 先 导 , 以 0 9 和 A F 构 成 。0x2C5 即 ( 16+ 12) 16+ 5= 709整 数 类 型 又 可 细 分 成 不 同 长 短 的 类 型 , 应 加 上 类 型 修 饰 符 来 构 成 , 即 :s

29、hor t int 可 简 化 为 s hortlong int 可 简 化 为 longu nsigned int 可 简 化 为 un signed( 1) 短 整 数 shor t, 其 长 度 通 常 是 2 byte ( 即 16bit ) , 取 值 范 围 为 :- 2 21 5 - 1 即 : - 32768 + 32767通 常 , int 就 是 s hor t, 存 放 在 一 个 字 中 , 即 占 2 byte。( 2) 长 整 数 long, 其 长 度 通 常 是 4 byte ( 即 32bit ) , 取 值 范 围 为 :- 2 23 1 - 1 即 : -

30、 2147483648 + 2147483647( 3) 无 符 号 整 数 unsigned, 其 长 度 通 常 是 2 byt e ( 即 16bit) , 取 值 范 围 为 : 0 216 - 1 即 : 0 + 65535通 常 , unsigned shor t 也 就 是 unsigned int。( 4) 无 符 号 长 整 数 unsigned lon g, 其 长 度 通 常 是 4 byte ( 即 32bit ) , 取 值 范 围 : 0 232 - 1 即 : 0 4294967295 ( 4 billion)请 注 意 : 不 同 机 器 上 数 据 类 型 长

31、 短 可 能 不 一 样 , 例 如 , 在 IBM PC 机 或 PDP-11 机 上 , u nsigned int 等 同 于 unsigned s hor t, 然 而 , 在 IBM 370 机 或 VA X-11 机 上 , unsigned in t 则 等 同 于 unsigned long。3. 浮 点 类 型 ( 即 f loat 型 )实 数 类 型 也 叫 浮 点 类 型 。 通 常 , 它 可 包 含 有 整 数 部 分 和 小 数 部 分 , 例 如 :P I 等 同 于 3. 141592653660. 012 等 同 于 . 0125. 0 等 同 于 5.和

32、日 常 习 惯 一 样 , 小 数 点 ( . ) 的 左 边 为 整 数 部 分 , 右 边 为 小 数 部 分 。科 学 计 数 法 中 , 则 用 “尾 数 + e+ 指 数 ”来 表 示 浮 点 数 值 , e 即 exponent ( 指 数 ) 例 如 :3. 4e5= 340000. 0其 中 , 3. 4 就 是 尾 数 , 含 有 整 数 部 分 ( integer par t ) 为 3 和 小 数 部 分 ( f r actional par t ) 为 4,而 5 就 是 指 数 部 分 ( exponent ical par t ) 。 尾 数 和 指 数 也 都 有

33、 可 能 为 负 值 , 例 如 :- 1. 23e412. 34567e- 8- 89e- 12一 般 计 算 机 中 , 标 准 的 方 法 是 用 1 byte 的 指 数 加 3 byte 的 尾 数 来 表 示 浮 点 数 , 而 且 , 尾 数 经 过 规 格 化 , 使 之 小 于 1 并 大 于 或 等 于 0. 5( 等 于 0 除 外 ) , 也 就 是 使 尾 数 部 分 的 二 进 制 最 高 位 总 是 1。1 byte 的 指 数 , 除 符 号 位 外 , 有 效 值 是 7 bit , 27 - 1= 127, 即 为 指 数 的 最 大 值 。 在 机 器 中

34、 , 总 是 二 进 制 表 示 , 212 7 1. 1038 。 所 以 , 浮 点 类 型 的 取 值 范 围 是 :10- 3 8 103 8有 效 数 位 数 取 决 于 3byte 的 尾 数 , 即 除 符 号 位 外 , 有 23 bit, 22 3 8. 4 106 , 即 相 当 于 7 位 十 进 制 的 有 效 数 表 示 尾 数 。双 精 度 double 用 8 byte 表 示 一 个 浮 点 数 , 指 数 仍 是 1 b yt e, 尾 数 7 byte, 因 此 , dou- ble 的 取 值 范 围 也 是 :10- 3 8 103 8而 尾 数 则 有

35、 7 8- 1= 55bit, 25 5 = 3. 6 1016 , 即 相 当 于 16 位 十 进 制 有 效 数 表 示 尾 数 。4. 字 符 类 型 ( 即 char acter char 型 )字 符 类 型 的 数 据 代 表 一 个 字 符 , 由 一 对 单 引 号 将 字 符 括 起 来 , 表 示 的 是 该 字 符 在A SCII 码 表 中 的 代 码 值 , 例 如 : a 即 97 A 即 65它 们 占 1 byt e。A SCII 码 表 中 的 某 些 控 制 字 符 不 可 显 示 , 则 通 过 加 反 斜 线 “ ”的 转 义 字 符 表 示 , 例

36、如 : 0 表 示 null( 空 ) 即 0 t 表 示 tab ( 制 表 ) 即 9 n 表 示 n ew line( 新 行 或 换 行 ) 即 10 r 表 示 r etu rn ( 回 车 ) 即 13 表 示 ( 反 斜 线 ) 即 927注 意 : 单 引 号 括 起 来 的 字 符 是 指 一 个 ch ar 类 型 的 数 值 , 而 不 是 字 符 串 , 后 面 我 们 会 讲 到 双 引 号 括 起 来 的 字 符 序 列 , 才 是 字 符 串 。 1. 4 算 术 表 达 式1. C 语 言 中 算 术 运 算 符算 术 表 达 式 由 变 量 、 常 量 及 算

37、 术 运 算 符 构 成 。 在 C 语 言 中 算 术 运 算 符 有 :+ - * / % - - + + , - , * 和 / 为 四 则 运 算 符 , 它 们 和 日 常 概 念 没 什 么 区 别 , 其 中 * 和 / 优 先 于 + 和- 。% 为 取 模 ( M odulus ) 运 算 符 , 是 针 对 整 数 运 算 , 即 取 整 数 除 法 之 后 , 所 得 到 的 余 数 , 例 如 :10% 3= 1 即 10 对 3 取 模 , 结 果 为 1。13% 8= 5 即 13 对 8 取 模 , 结 果 为 5。- - 为 自 减 1, + + 为 自 增 1

38、。特 别 注 意 , n+ + 或 + + n 都 是 变 量 n 自 增 1, 最 终 结 果 均 与 n= n+ 1 一 样 。 但 处 理 过 程 却 有 所 区 别 。 + + n , 表 示 n 先 自 增 1, 然 后 进 到 具 体 的 式 子 中 运 算 ; n + + , 则 n 本 身 先 进 入 式 中 运 算 , 最 后 n 再 增 1。例 如 : 已 知 n= 2, 则m = + + n ; 结 果 为 : m = 3, n = 3 m = n + + ; 结 果 为 : m = 2, n = 3 n - - 与 - - n 与 此 类 似 。2. 数 据 类 型 与

39、 运 算 结 果 的 关 系 。( 1) 同 类 型 数 据 运 算 结 果 仍 保 持 原 数 据 类 型整 型 数 的 除 法 得 到 的 结 果 仍 是 整 型 数 , 小 数 部 分 将 被 去 掉 , 例 如 :5/ 2= 2而 不 是 2. 5。 浮 点 数 的 除 法 得 到 的 仍 是 浮 点 数 , 例 如 :5. 0/ 2. 0= 2. 5( 2) 不 同 数 据 类 型 混 合 运 算 , 精 度 低 的 类 型 往 精 度 高 的 类 型 转 换 后 , 再 做 运 算 。 这 样 , 可 保 证 运 算 结 果 不 损 失 精 度 。 例 如 :5. 0/ 2= 2.

40、 58 1. 5 C 语 言 的 基 本 语 句1. C 语 句 的 特 点( 1) 所 有 C 语 句 都 以 “; ”分 号 结 尾 。 一 条 语 句 可 以 不 止 一 行 , 不 必 加 续 行 符 , 只 根 据 “; ”来 确 定 语 句 结 束 。 两 条 或 多 条 语 句 也 可 写 在 同 一 行 , 只 要 有 “; ”分 开 就 可 以 。( 2) 语 句 可 从 任 一 列 位 置 开 始 , 每 行 开 头 , 有 多 少 空 格 都 可 以 , 但 为 了 可 读 性 好 , 通 常 习 惯 还 是 按 一 定 规 律 缩 进 。2. 变 量 说 明 语 句变

41、量 说 明 语 句 的 主 要 作 用 就 是 定 义 变 量 类 型 , 其 格 式 是 :类 型 说 明 符 变 量 1 , 变 量 2, . . . ;例 如 :in t number ;char a, b , c;f loat t ; f loat t ;3. 赋 值 语 句赋 值 语 句 是 将 常 量 或 算 术 表 达 式 的 运 算 结 果 赋 给 变 量 , 其 格 式 是 :变 量 名 = 常 量 或 算 术 表 达 式 ;例 如 :in t number ;n umber = 10;例 1.4:main ( )in t n1, n2, n3;in t total;n 1=

42、 1;n 2= 2;n 3= 3;t ot al= n 1+ n2+ n 3;94. 基 本 输 入 输 出 语 句pr intf ( ) 和 scanf( ) 是 C 语 言 的 基 本 输 入 输 出 函 数 , 都 放 在 标 准 函 数 库 中 , 为 了 使用 它 们 , 应 在 程 序 开 头 加 上 :# in clude 基 本 输 入 输 出 语 句 就 是 直 接 调 用 这 两 个 基 本 输 入 输 出 函 数 。( 1) 输 出 语 句一 般 格 式 是 :pr int f( 控 制 串 , 表 达 式 1, . . . , 表 达 式 n ) ;控 制 串 ( 或

43、叫 格 式 串 ) 是 用 双 引 号 括 起 来 的 输 出 格 式 控 制 说 明 。 控 制 串 中 每 一 个 变 量 都 应 当 与 后 面 相 应 的 某 个 表 达 式 对 应 。例 1.5:pr int f( W elcome! ) ;结 果 屏 幕 上 显 示 :W elcome!例 1.6:pr int f( W elcome n ) ;与 前 例 不 同 是 后 面 加 了 一 个 换 行 符 。例 1.7:in t number = 10;pr int f( T he number is % d n , number ) ;应 显 示 :T he number is 1

44、0例 1.8:f loat value1, value2, value3;value1= 2. 3;value2= 4. 5;value3= 6. 7;pr int f( T he aver age of % f and % f and % f is % f n , valu e1, value2, value3, ( value1+ value2+ value3) / 3. 0) ;应 显 示 :T he aver age of 2. 3 and 4. 5 and 6. 7 is 4. 5% d 和 % f 表 示 后 面 要 显 示 的 数 据 类 型 , 且 一 一 对 应 。 % d

45、表 示 要 显 示 整 型 数 , % f 表10示 要 显 示 浮 点 型 数 。( 2) 输 入 语 句一 般 格 式 是 :s canf ( 控 制 串 , 地 址 表 达 式 1 , 地 址 表 达 式 2, . . . , 地 址 表 达 式 n ) ;控 制 串 ( 或 叫 格 式 串 ) 是 用 双 引 号 括 起 来 的 输 入 格 式 控 制 说 明 。 后 面 的 每 个 地 址 表 达 式 的 值 , 应 当 对 应 于 前 面 控 制 串 中 某 一 个 格 式 变 量 的 地 址 。例 1.9:in t number ;s canf ( % d , 其 中 , % d

46、 表 示 应 以 整 型 格 式 输 入 , s canf ( % f , 其 中 , % f 表 示 应 以 浮 点 型 格 式 输 入 , in t b= 2;pr int f( a / b* b= % d n , a/ b* b) ;pr int f( - a = % d n , - a) ;pr int f( a + b + + = % d n , a+ b+ + ) ;注 释 语 句 中 不 能 再 加 注 释 语 句 。11第 2 章 流 程 控 制 2. 1 逻 辑 表 达 式逻 辑 表 达 式 由 变 量 、 常 量 和 逻 辑 关 系 运 算 符 构 成 , 用 以 表 示

47、变 量 间 的 逻 辑 关 系 。1. 关 系 运 算 符变 量 与 变 量 或 常 量 之 间 比 较 数 值 上 大 小 的 关 系 用 关 系 运 算 符 来 表 示 。 关 系 运 算 符 共 有 六 种 , 即 := = 等 于! = 不 等 于大 于 = 大 于 等 于2. 逻 辑 表 达 式 取 值逻 辑 表 达 式 只 有 两 种 可 能 的 取 值 , 真 假 对 立 , 必 取 其 一 。 假 者 取 值 为 0; 真 者 取 值 为1。 例 如 , a = = b 为 假 ( f alse) , 此 式 应 取 值 0。 又 如 , 已 知 变 量 x= c , 则 有 表 达 式 x b 为 真 ( tr ue) , 应 取 值 1。3. 逻 辑 运 算 符 和 复 合 逻 辑 关 系 表 达 式变 量 之 间 逻 辑 上 的 关 系 用 逻 辑 运 算 符 来 表 示 。 逻 辑 运 算 符 共 有 三 种 , 即 :若 ( c = a f or ( n= 1; nmain ( )in t n, res ult ;r esu

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报