收藏 分享(赏)

程序设计( C 语言) 教程.docx

上传人:oceanpvg 文档编号:2871080 上传时间:2018-09-29 格式:DOCX 页数:212 大小:966.79KB
下载 相关 举报
程序设计( C 语言) 教程.docx_第1页
第1页 / 共212页
程序设计( C 语言) 教程.docx_第2页
第2页 / 共212页
程序设计( C 语言) 教程.docx_第3页
第3页 / 共212页
程序设计( C 语言) 教程.docx_第4页
第4页 / 共212页
程序设计( C 语言) 教程.docx_第5页
第5页 / 共212页
点击查看更多>>
资源描述

1、中 华 人 民 共 和 国 教 育 部 考 试 中 心全 国 计 算 机 应 用 技 术 证 书 考 试 ( N IT )程 序 设 计 ( C 语 言 ) 教 程教 育 部 考 试 中 心 组 编张 基 温 编 著清 华 大 学 出 版 社( 京 ) 新 登 字 158 号内 容 简 介本 书 是 全 国 计 算 机 应 用 技 术 证 书 考 试 ( N IT ) 程 序 设 计 模 块 ( C 语 言 ) 的 指 定 教 材 。 作 者 从 具 体 问 题 出 发 , 重 点 阐 述 如 何 利 用 程 序 设 计 解 决 这 些 问 题 , 同 时 把 C 语 言 程 序 设 计 的

2、方 法 融 入 其 中 。 书 中 有 很 多 例 题 和 程 序 测 试 题 , 可 帮 助 读 者 尽 快 地 熟 悉 C 语 言 程 序 设 计 的 原 理 和 应 用 。除 作 为 N IT 指 定 教 材 外 , 本 书 还 非 常 适 合 大 专 院 校 师 生 和 广 大 计 算 机 程 序 设 计 的 初 学 者 使 用 。版 权 所 有 , 翻 印 必 究 。 本 书 封 面 贴 有 清 华 大 学 出 版 社 激 光 防 伪 标 签 , 无 标 签 者 不 得 销 售 。书 名 : 程 序 设 计 ( C 语 言 ) 教 程 作 者 : 张 基 温 编 著出 版 者 : 清

3、 华 大 学 出 版 社 ( 北 京 清 华 大 学 学 研 楼 , 邮 编 100084) ht tp: / / w ww. tup. tsinghua . edu . cn印 刷 者 : 北 京 市 丰 台 区 丰 华 印 刷 厂发 行 者 : 新 华 书 店 总 店 北 京 发 行 所开 本 : 787 1092 1/ 16 印 张 : 13.25 字 数 : 325 千 字版 次 : 2000 年 2 月 第 1 版 2000 年 2 月 第 1 次 印 刷书 号 : ISBN 7-302-02146-5/ T P2180印 数 : 0001 6000定 价 : 19. 00 元第 一

4、 届 全 国 计 算 机 应 用 技 术 证 书 考 试委 员 会 名 单( 以 姓 氏 笔 画 为 序 )主 任 委 员 : 杨 学 为 谭 浩 强副 主 任 委 员 : 王 建 军 刘 瑞 挺 吴 文 虎 潘 桂 明委 员 : 王 成 钧 刘 百 惠 王 耆 刘 长 占 王 景 新 任 威 烈 毛 汉 书 求 伯 君 边 奠 英吴 立 德吴 功 宜 苏 运 霖 陈 禹 杨 一 平 杨 明 福杨 炳 儒 林 毓 材 周 明 德 张 基 温 张 森孟 志 华 高 林 徐 士 良 徐 惠 民 赵 鸿 德侯 炳 辉 裴 纯 礼 潘 阳秘 书 长 : 潘 阳 全 国 计 算 机 应 用 技 术 证

5、书 考 试 教 材 编 审委 员 会 名 单( 以 姓 氏 笔 画 为 序 )主 任 委 员 : 杨 学 为 谭 浩 强副 主 任 委 员 : 王 建 军 刘 瑞 挺 吴 文 虎 潘 桂 明委 员 : 王 成 钧 王 耆 吴 功 宜 赵 鸿 德 侯 炳 辉姜 春 红 熊 燕 清 高 潘 林 阳徐 士 良 徐 海 涛 韩 庆 久 “全 国 计 算 机 应 用 技 术 证 书 考 试 ( NI T) ”系 列 教 材序人 类 社 会 已 经 进 入 了 信 息 时 代 。 计 算 机 的 应 用 日 益 成 为 人 类 生 活 、 工 作 、 学 习 所 必 备 的 一 种 基 本 能 力 , 愈

6、 来 愈 多 的 人 迫 切 希 望 掌 握 计 算 机 的 应 用 技 术 , 以 符 合 信 息 时 代 的 要求 。 毫 无 疑 问 , 中 国 需 要 一 批 人 掌 握 深 奥 的 信 息 技 术 理 论 与 复 杂 的 信 息 技 术 , 但 是 对 于 大 多 数 人 来 说 , 只 需 要 掌 握 实 用 技 术 就 足 够 了 。 在 几 年 前 我 们 就 注 意 到 这 种 趋 势 , 并 开 始 了 这 种 变 革 。 在 借 鉴 英 国 剑 桥 大 学 考 试 委 员 会 举 办 的 剑 桥 信 息 技 术 ( CIT ) 的 成 功 经 验 的 基 础 上 , 实

7、行 以 实 践 为 主 的 操 作 培 训 和 技 能 考 试 , 这 就 是 全 国 计 算 机 应 用 技 术 证 书 考 试 ( NI T ) 。 它 在 系 统 设 计 上 采 取 了 一 种 全 新 的 思 路 , 首 次 将 考 试 分 为 过 程 式 考 核 、 作 业 设 计及 上 机 考 试 三 个 阶 段 , 以 实 际 应 用 为 目 的 , 培 养 和 测 试 考 生 在 计 算 机 应 用 领 域 的 独 立 操 作 能 力 和 应 用 技 能 。 根 据 计 算 机 技 术 发 展 的 特 点 和 学 习 者 在 应 用 领 域 中 的 需 要 , 它 采 用 模

8、块 化 结 构 , 在 培 训 内 容 设 置 上 紧 跟 计 算 机 技 术 的 发 展 , 在 教 学 过 程 中 充 分 体 现 考 生 的 个 性 , 侧 重 于 考 生 应 用 技 能 的 培 养 ; 采 用 指 导 评 估 的 方 式 进 行 能 力 考 核 , 对 考 生 的 独 立 操 作 能 力 和 独 立 解 决 问 题 能 力 进 行 综 合 测 试 。为 了 规 范 培 训 和 考 试 , 我 们 决 定 选 择 最 新 和 最 流 行 的 计 算 机 应 用 软 件 , 编 写 系 列 丛书 , 作 为 全 国 计 算 机 应 用 技 术 证 书 考 试 的 指 定

9、教 材 。 为 了 体 现 NI T 侧 重 培 养 和 测 试 考 生 在 计 算 机 应 用 领 域 的 独 立 操 作 能 力 的 特 点 , 我 们 改 变 了 以 往 同 类 教 材 的 传 统 写 法 , 采 用 以 任 务 驱 动 的 方 式 , 引 导 读 者 在 完 成 每 个 任 务 的 过 程 中 学 会 相 应 的 操 作 , 并 希 望 通 过 培 训 来 帮 助 大 多 数 人 掌 握 计 算 机 的 应 用 技 能 。 这 套 丛 书 图 文 并 茂 、 循 序 渐 进 、 易 学 易 懂 , 有 的 还 配 有 多 媒 体 教 学 光 盘 , 以 帮 助 读 者

10、 的 学 习 。我 们 邀 请 国 内 一 些 著 名 的 专 家 编 写 这 套 丛 书 , 他 们 夜 以 继 日 地 紧 张 工 作 , 圆 满 完 成 了 任 务 , 在 此 谨 向 他 们 致 以 衷 心 感 谢 。由 于 我 们 缺 乏 经 验 , 书 中 不 足 之 处 在 所 难 免 , 敬 请 各 位 读 者 及 关 心 我 们 的 同 志 批 评指 正 。教 育 部 考 试 中 心 主 任 1999 年 3 月 前 言程 序 设 计 应 当 是 信 息 时 代 的 必 修 课 , 学 习 程 序 设 计 不 仅 能 培 养 使 用 计 算 机 进 行 应 用开 发 的 基

11、本 能 力 , 更 重 要 的 是 , 它 能 提 供 人 们 解 决 复 杂 问 题 的 思 维 训 练 。 然 而 , 如 何 提 高 程 序 设 计 课 程 的 效 率 , 越 来 越 被 人 们 关 注 。过 去 的 程 序 设 计 都 是 面 向 语 法 的 , 所 使 用 的 教 材 可 以 说 是 语 法 手 册 稍 加 改 造 而 成 的 , 程 序 设 计 语 言 无 非 是 提 供 了 一 个 环 境 。 然 而 , 程 序 设 计 并 非 仅 仅 需 要 环 境 , 在 程 序 设 计 语 言 百 花 齐 放 、 不 断 推 陈 出 新 的 今 天 , 程 序 设 计 语

12、 言 已 逾 数 千 种 , 每 种 语 言 又 有 不 同 的 版 本 , 把 学 习 者 的 精 力 过 分 地 集 中 到 语 法 的 学 习 上 , 企 图 在 学 习 者 的 头 脑 中 先 建 立 一 种 程 序 设计 语 言 的 完 整 语 法 体 系 , 是 不 现 实 的 , 也 是 不 必 要 的 。 对 初 学 者 来 说 , 首 要 的 是 进 行 思 维 方 式 的 训 练 。世 界 上 的 事 物 是 极 为 复 杂 的 , 解 不 同 的 问 题 需 要 不 同 的 思 路 。 然 而 , 问 题 又 是 可 以 被 分 类 的 , 每 一 类 问 题 都 有 其

13、 共 性 。 一 些 典 型 问 题 的 解 法 是 具 有 代 表 性 的 , 掌 握 这 些 解 法 对 进 一 步 提 高 程 序 设 计 的 能 力 具 有 基 础 性 和 启 发 性 。 实 践 证 明 , 只 要 掌 握 了 为 数 不 多 的 典 型 问 题 的 解 法 , 就 可 以 具 备 基 本 的 程 序 设 计 能 力 。 大 约 十 年 之 前 , 本 人 就 构 思 过 一 种 面 向 问 题 的 程 序 设 计 教 材 , 但 由 于 事 繁 力 薄 , 一 时 难 以 落 实 。 自 1997 年 起 , 随 着 NI T 的 实 施 进 入 实 质 性 阶 段

14、 , 教 育 部 考 试 中 心 教 育 测 量 学 术 交 流 中 心 组 织 编 写 配 套 教 材 , 才 被 迫 把 写 作 提 到 议 事 日 程 上 来 。一 种 新 的 体 系 的 教 材 的 出 世 又 谈 何 容 易 。 程 序 设 计 课 不 可 能 脱 离 开 一 种 语 言 环 境 , 但又 希 望 淡 化 语 言 语 法 , 因 此 在 结 构 的 设 计 、 素 材 的 组 织 、 内 容 的 取 舍 等 诸 方 面 , 常 常 左 右 为 难 , 直 到 出 版 也 难 以 尽 意 。 好 在 有 N IT 考 试 委 员 会 中 著 名 计 算 机 教 育 家

15、谭 浩 强 教 授 、 吴 文 虎 教 授 等 专 家 的 热 情 鼓 励 , 有 许 多 热 心 读 者 的 支 持 , 还 有 董 惠 丽 、 张 秋 菊 等 人 的 协 力 , 使 我 终 于 能 够 完 成 本 书 。 诚 望 广 大 专 家 赐 教 , 特 别 寄 望 于 使 用 本 书 的 同 行 和 读 者 们 来 自 实 践 中 的 宝 贵 意 见 , 以 便 逐 步 将 它 改 得 更 加 完 美 。张 基 温1999 年 8 月 目 录第 零 单 元 引 言 1引 言 一 程 序 与 程 序 设 计 1引 言 二 程 序 开 发 环 境 T ur bo C 8引 言 三 C

16、 语 言 入 门 11第 一 单 元 判 断 与 选 择 41任 务 一 多 重 选 择 41任 务 二 多 情 况 选 择 43语 法 小 结 ( 一 ) 分 支 结 构 47程 序 测 试 ( 一 ) 结 构 测 试 法 49程 序 测 试 ( 二 ) 等 价 分 类 法 52第 二 单 元 穷 举 55任 务 一 大 奖 赛 评 分 程 序 55任 务 二 求 素 数 57任 务 三 搬 砖 问 题 59程 序 测 试 ( 三 ) 边 值 分 析 法 62第 三 单 元 递 推 64任 务 一 欧 几 里 德 算 法 64任 务 二 猴 子 吃 桃 子 问 题 66语 法 小 结 ( 二

17、 ) 流 程 转 向 控 制 67第 四 单 元 模 拟 69任 务 一 时 间 步 长 法 69任 务 二 简 单 概 率 问 题 71任 务 三 事 件 步 长 法 76语 法 小 结 ( 三 ) 循 环 结 构 79第 五 单 元 递 归 80任 务 一 计 算 n ! 的 递 归 函 数 81任 务 二 二 分 查 询 83任 务 三 排 序 87语 法 小 结 ( 四 ) 变 量 的 作 用 域 和 生 存 期 93语 法 小 结 ( 五 ) 一 维 数 组 100 第 六 单 元 字 符 串 操 作 102任 务 一 基 于 一 维 数 组 的 字 符 串 操 作 102任 务 二

18、 基 于 指 针 的 字 符 串 操 作 107语 法 小 结 ( 六 ) 指 针 类 型 111第 七 单 元 二 维 数 组 118任 务 一 成 绩 处 理 118任 务 二 日 期 转 换 122任 务 三 迷 宫 问 题 124语 法 小 结 ( 七 ) 多 维 数 组 128第 八 单 元 结 构 体 131任 务 一 单 个 学 生 的 学 籍 管 理 131任 务 二 一 组 学 生 的 学 籍 管 理 134语 法 小 结 ( 八 ) 结 构 体 137第 九 单 元 文 件 141任 务 一 写 若 干 行 字 符 串 到 文 本 文 件 141任 务 二 文 件 复 制

19、146语 法 小 结 ( 九 ) 文 件 150第 十 单 元 程 序 文 档 155任 务 一 用 户 文 档 和 技 术 文 档 155任 务 二 程 序 文 档 示 例 156附 录 164附 录 一 A SCII 字 符 编 码 一 览 表 164附 录 二 C 语 言 关 键 字 及 其 用 途 166附 录 三 C 语 言 运 算 符 的 优 先 级 别 和 结 合 方 向 167附 录 四 C 语 言 库 函 数 168附 录 五 T ur bo C 编 译 错 误 信 息附 录 六 全 国 计 算 机 应 用 技 术 证 书 考 试 ( NI T ) 培 训 与 考 试 大 纲

20、 程 序 设 计 模 块 ( C 语 言 )183187附 件 一 全 国 计 算 机 应 用 技 术 证 书 考 试 ( NI T ) 学 员 评 估 记 录 表 程 序 设 计 模 块 ( C 语 言 ) 191附 件 二 全 国 计 算 机 应 用 技 术 证 书 考 试 ( NI T ) 作 业 设 计 考 核 表 程 序 设 计 模 块 ( C 语 言 ) 192附 件 三 全 国 计 算 机 应 用 技 术 证 书 考 试 ( NI T ) 作 业 设 计 参 考 示 例 程 序 设 计 模 块 ( C 语 言 ) 194附 件 四 全 国 计 算 机 应 用 技 术 证 书 考

21、试 ( NI T ) 上 机 考 试 题 型 举 例 程 序 设 计 模 块 ( C 语 言 ) 200 第 零 单 元 引 言引 言 一 程 序 与 程 序 设 计一 、 程 序 与 程 序 设 计 语 言1 . 程 序 的 一 般 概 念通 常 , 完 成 一 项 复 杂 的 任 务 , 需 要 进 行 一 系 列 的 具 体 工 作 。 这 些 按 一 定 的 顺 序 安 排 的 工 作 操 作 序 列 , 就 称 为 程 序 。 例 如 , 下 面 是 某 一 个 会 议 的 程 序 :宣 布 会 议 开 始 ; 奏 国 歌 ; 校 长 讲 话 ; 宣 布 获 奖 者 名 单 ; 颁

22、奖 ; 获 奖 代 表 讲 话 ; 宣 布 会 议 结 束 。再 如 , 下 面 是 做 某 一 个 菜 的 程 序 :洗 菜 ;备 菜 ;坐 锅 ;锅 热 后 加 油 ;油 热 至 八 成 , 放 入 葱 、 姜 、 蒜 和 调 料 略 煸 炒 后 , 加 入 菜 煸 炒 ;加 入 些 许 水 ;菜 八 成 熟 时 , 加 入 酱 油 、 味 精 ;出 锅 , 并 装 盘 。简 单 地 说 , 程 序 主 要 用 于 描 述 完 成 某 项 功 能 所 涉 及 的 对 象 和 动 作 规 则 。 如 上 述 的 国歌 、 首 长 、 名 单 、 代 表 、 话 、 奖 以 及 菜 、 锅 、

23、 油 、 水 、 酱 油 、 味 精 等 都 是 对 象 , 而 奏 、 作 、 颁 、 讲 、 宣 布 、 放 入 、 出 锅 等 都 是 动 作 , 这 些 动 作 的 先 后 顺 序 以 及 它 们 能 作 用 的 对 象 , 要 遵 守 一 定 的 规 则 。 如 “颁” 的 作 用 对 象 是 “奖” 而 不 是 “话” ; 不 能 先 颁 奖 , 后 宣 布 获 奖 名 单 。 再 如 , 做 菜 时 , 若 锅 热 后 , 先 放 水 、 再 放 菜 , 就 变 成 了 煮 菜 , 而 不 是 炒 菜 了 。 1 可 见 , 程 序 的 概 念 是 很 普 遍 的 。 但 是 ,

24、 计 算 机 出 现 后 “, 程 序” 几 乎 成 了 要 计 算 机 完 成一 项 任 务 的 代 名 词 , 主 要 用 于 描 述 计 算 机 完 成 某 项 功 能 所 涉 及 的 对 象 和 动 作 规 则 。2 . 计 算 机 程 序 设 计 语 言就 像 同 样 一 个 意 思 , 用 汉 语 、 英 语 和 日 语 描 述 出 来 的 形 式 各 不 相 同 一 样 , 要 计 算 机 实现 同 样 一 个 功 能 , 用 不 同 的 计 算 机 程 序 设 计 语 言 描 述 出 来 , 形 式 也 各 不 相 同 。计 算 机 程 序 设 计 语 言 ( 简 称 计 算

25、机 语 言 、 程 序 设 计 语 言 等 ) 是 在 计 算 机 技 术 发 展 和 应用 过 程 中 不 断 发 展 的 。 目 前 已 经 有 上 千 种 计 算 机 程 序 设 计 语 言 出 现 , 通 常 被 分 为 低 级 语言 和 高 级 语 言 两 大 类 。 低 级 语 言 是 与 机 器 的 结 构 有 关 的 编 程 语 言 , 所 以 也 称 为 面 向 机 器的 语 言 。 高 级 语 言 , 是 与 机 器 结 构 无 关 并 考 虑 了 人 的 描 述 和 思 维 习 惯 的 的 编 程 语 言 。 本书 介 绍 的 C 语 言 就 是 一 种 高 级 语 言

26、。 下 面 是 几 个 C 语 言 程 序 的 片 段 。例 0 .1# include stdio .hmain()printf( This is a C program . );说 明 :(1 ) C 语 言 程 序 的 基 本 形 式 为main()“ main( ) ”是 C 语 言 程 序 的 标 志 , 称 为 主 函 数 。 所 有 的 C 语 言 程 序 都 有 这 样 一 个 标 志 。(2 ) C 语 言 用 语 句 对 对 象 和 操 作 进 行 描 述 , 语 句 要 写 在 “ main ( )”后 面 的 一 对 花 括 弧中 。 语 句 用 分 号 结 尾 。(3

27、 ) 本 例 中 只 有 一 条 语 句 , 它 使 用 一 个 函 数 printf ( ) 将 双 引 号 中 的 一 串 字 符 原 样 输出 。 prin tf ( ) 的 具 体 操 作 是 预 先 定 义 好 的 。 这 样 的 预 先 定 义 的 函 数 还 有 许 多 , 如 被 系 统 分门 别 类 存 在 的 称 为 函 数 库 的 地 方 , 也 将 它 们 称 为 库 函 数 。 使 用 库 函 数 , 将 使 程 序 十 分 简洁 、 清 晰 。 stdio .h 称 为 printf ( ) 的 头 文 件 , 它 定 义 了 要 使 用 printf ( ) 等

28、输 入 输 出 函 数 所 要 使 用 的 必 要 信 息 , 程 序 中 要 使 用 函 数 printf ( ) 时 , 应 当 用 预 处 理 命 令 # include 将 其 包 含 到程 序 中 。例 0 .2# include main()int a, b, c;a = 5;b = 3;c = a * b; 2 printf( c = % d ,c);说 明 :(1 )“in t a, b , c; ”称 为 声 明 语 句 , 它 定 义 了 a, b , c 三 个 变 量 。 通 常 , 变 量 具 有 如 下 特点 :占 有 一 片 可 用 于 存 放 数 据 的 内 存

29、 空 间 , 空 间 的 大 小 决 定 于 它 要 存 放 什 么 样 的 数据 。 本 例 中 , 用 关 键 字 “ in t”定 义 了 a, b , c 是 可 存 放 整 型 数 ( integer ) 的 变 量 。 变 量 的 值 即 它 所 存 放 的 数 据 值 不 是 固 定 不 变 的 , 通 过 赋 值 操 作 ( 如 a = 5 ; b = 3 ; c= a * b ; ) 可 以 用 一 个 新 的 数 据 替 换 原 来 的 数 据 。每 个 变 量 都 要 有 一 个 名 字 ( 本 例 中 分 别 为 a, b , c) 。 给 变 量 命 名 要 按 一

30、定 的 规 则 进行 。 一 般 来 说 , 变 量 名 应 以 字 母 打 头 , 后 面 是 数 字 和 字 母 组 成 的 串 。( 2) 在 C 语 言 中 , 赋 值 操 作 用 符 号 “ = ”表 示 。 注 意 , 它 不 是 等 号 , 在 C 语 言 中 , 等 号 为 “ = = ”。 赋 值 号 表 示 一 种 操 作 , 把 其 后 面 的 数 据 送 到 其 前 面 的 变 量 中 ; 等 号 则 表 示 一 种关 系 其 前 后 两 个 数 据 相 等 。(3 ) 字 符 “ * ”在 C 语 言 中 表 示 乘 运 算 。 在 C 语 言 中 , 四 则 运 算

31、 的 运 算 符 分 别 为 + ,- , * ,/ 。(4 ) 库 函 数 pinrtf ( ) 称 为 格 式 化 输 出 函 数 , 圆 括 号 中 双 引 号 中 的 字 母 表 示 格 式 “: 表 示 输 出 的 数 据 是 一 个 整 型 数 , 其 前 的 “ c = ”将 以 原 样 输 出 。 本 例 的 输 出 结 果 为 :c = 15例 0 .3# include main()int a = 5, b = 3, c;c = a;a = b;b = c;printf( a = % d,b = % d ,a,b);说 明 :% d”(1 ) 在 声 明 语 句 “ in

32、t a = 5 , b = 3 , c ;”中“ , a = 5 , b = 3”称 为 对 变 量 a 和 b 的 初 始 化 , 即定 义 变 量 a 的 初 始 值 为 5 , 变 量 b 的 初 始 值 为 3 。(2 )“ c = a; a = b ; b = c;”三 个 语 句 的 操 作 结 果 是 交 换 了 变 量 a 和 b 的 值 , 变 量 c 称 为 中 间 变 量 。 具 体 操 作 为 : 先 将 变 量 a 的 值 赋 给 变 量 c ( 即 a, c 的 值 均 变 为 5) , 再 将 变 量 b 的 值 赋 给 变 量 a ( 即 b , a 的 值 均

33、 变 为 3 ) , 最 后 将 变 量 c 的 值 赋 给 变 量 b ( 即 b , c 的 值 均 变 为5) 。 这 一 交 换 过 程 相 当 于 有 a, b 两 盘 磁 带 , 各 录 有 不 同 的 内 容 , 要 交 换 a, b 两 盘 磁 带 的 内容 时 , 必 须 借 助 于 第 三 盘 磁 带 c。(3 ) 语 句 “ prin tf ( a = % d , b = % d , a, b) ;”的 输 出 结 果 为 : a = 3 , b = 5 3 格 式 参 数 中 的 两 个 “ % d”, 分 别 指 示 要 输 出 的 两 个 数 据 a 和 b 的 格

34、 式 , 其 余 字 符 将 依 原 样 输 出 。例 0 .4# include main()int a = 5, b = 3,max;if(a b)max = a;elsemax = b;printf( max = % d ,max);说明 : 这 个 程 序 完 成 下 面 的 功 能 : 取 a, b 之 中 的 较 大 者 , 赋 值 给 变 量 max , 最 后 输 出 m ax 的 值 。 具 体 的 操 作 为 : 如 果 a b, 则 将 a 的 值 赋 给 max , 否 则 将 b 的 值 赋 给 ma x ; 接 着 输 出 max 的 值 。例 0 .5# incl

35、ude main()int a, b,max;printf( Please input two integers: n );scanf( % d % d ,if(a b)max = a;elsemax = b;printf( max = % d ,max);说 明 :(1 ) 与 例 0 .4 相 比 , 本 例 的 不 同 在 于 a, b 两 个 变 量 的 值 不 是 预 先 在 编 程 序 时 给 定 的 ,而 是 在 程 序 运 行 过 程 中 由 键 盘 输 入 的 。(2 ) 语 句scanf ( % d % d , 的 功 能 是 由 键 盘 上 给 a , b 两 个 变 量

36、 输 入 值 。 注 意 , 这 时 变 量 名 前 一 定 要 写 上 符 号 “ 的 功 能 是 向 使 用 程 序 的 用 户 给 出 一 个 提 示 , 要 他 从 键 盘 上 输 入 两 个 数 。 否 则 , 系 统 遇 到scanf ( ) 函 数 , 便 显 示 一 个 空 白 的 屏 幕 。 该 语 句 中 的 “ n”, 是 产 生 一 个 换 行 。 4 3 . 数 据 结 构 与 算 法前 面 给 出 了 几 个 小 的 C 程 序 。 一 般 说 来 , 对 不 同 的 问 题 , 有 不 同 的 解 题 思 路 ; 对 同 一个 问 题 , 也 可 能 有 不 同

37、的 解 题 思 路 ; 对 同 一 个 问 题 的 同 一 个 解 题 思 路 , 可 能 有 不 同 的 程 序描 述 。程 序 设 计 是 一 项 艰 巨 的 脑 力 劳 动 。 为 了 使 得 问 题 更 容 易 求 解 , 在 程 序 设 计 的 初 期 要把 精 力 集 中 在 问 题 求 解 的 思 路 上 , 暂 不 考 虑 程 序 描 述 的 细 节 。 解 题 思 路 的 考 虑 分 为 两 个方面 : 如 何 组 织 求 解 对 象 和 制 定 求 解 过 程 的 操 作 步 骤 和 规 则 。 这 两 个 方 面 称 为 数 据 结 构和 算 法 。 数 据 结 构 描

38、述 了 问 题 涉 及 对 象 间 的 联 系 和 组 织 结 构 , 算 法 描 述 了 求 解 问 题 的 步骤 或 规 则 。 著 名 的 计 算 机 科 学 家 Niklaus Wir th 有 一 个 简 洁 的 描 述 :算 法 + 数 据 结 构 = 程 序也 就 是 说 , 程 序 设 计 的 关 键 是 构 造 程 序 的 数 据 结 构 并 描 述 问 题 所 需 要 的 、 施 加 在 这 些 数 据 结 构 上 的 算 法 。算 法 可 以 用 自 然 语 言 描 述 , 也 可 以 用 专 用 的 算 法 描 述 语 言 描 述 , 还 可 以 用 程 序 设 计 语

39、 言 描 述 , 用 程 序 设 计 语 言 描 述 的 算 法 就 是 程 序 。 常 用 的 算 法 专 用 描 述 语 言 是 流 程 图 。 图0 .1 中 的 ( a) , ( b) 分 图 , 分 别 为 例 0 .3 , 例 0 .5 的 流 程 图 。图 0 .1图 中 , 矩 形 框 表 示 操 作 , 菱 型 框 表 示 选 择 , 带 箭 头 的 线 表 示 流 程 。二 、 程 序 开 发 过 程程 序 开 发 的 一 般 过 程 为 : 1 . 分 析一 般 说 来 , 一 个 具 体 的 问 题 要 涉 及 许 许 多 多 的 方 面 , 这 是 问 题 的 复 杂

40、 性 所 在 。 为 了 便 于 求 解 , 往 往 要 忽 略 一 些 次 要 方 面 。 这 种 通 过 忽 略 次 要 方 面 , 而 找 出 解 题 规 律 , 就 称 为 建立 模 型 。 分 析 问 题 就 是 要 搞 清 对 问 题 相 关 领 域 的 了 解 和 所 具 备 的 知 识 。2 . 设 计设 计 分 为 两 步 : 总 体 设 计 和 详 细 设 计 。 5 (1 ) 总 体 设 计当 问 题 较 大 时 , 常 常 要 把 问 题 分 为 一 些 子 问 题 ; 当 子 问 题 还 大 时 , 还 应 进 一 步 分 割 。 这 样 , 一 个 较 大 的 问

41、题 就 被 分 成 一 些 容 易 求 解 的 子 问 题 , 每 一 个 子 问 题 将 作 为 程 序 的 一 个 模 块 。 这 是 总 体 设 计 的 一 个 任 务 。 但 是 , 仅 仅 分 解 还 是 不 够 的 , 在 总 体 设 计 时 , 还 要 考 虑如 何 组 织 程 序 模 块 。 图 0 .2 为 一 个 教 学 管 理 程 序 的 结 构 图 。图 0 .2(2 ) 详 细 设 计 详 细 设 计 就 是 设 计 每 个 模 块 的 数 据 结 构 和 算 法 。 3 . 程 序 编 码 以 及 编 辑 、 编 译 和 连 接程 序 编 码 就 是 用 具 体 的

42、 程 序 设 计 语 言 表 现 各 模 块 的 算 法 和 数 据 结 构 。 这 一 阶 段 的 关 键 是 运 用 某 一 种 具 体 的 计 算 机 语 言 , 来 描 述 前 面 设 计 的 数 据 结 构 及 其 算 法 。 为 此 就 要 掌握 一 种 计 算 机 程 序 设 计 语 言 。程 序 编 码 可 以 先 写 在 纸 上 , 也 可 以 直 接 在 计 算 机 上 书 写 , 形 成 一 个 程 序 文 件 。 在 一 定 的 环 境 下 进 行 程 序 的 书 写 以 及 修 改 的 过 程 称 为 程 序 的 编 辑 。写 出 一 个 高 级 语 言 程 序 后

43、, 并 不 是 就 可 以 立 即 拿 来 执 行 。 要 让 机 器 直 接 执 行 , 还 要 将 它 翻 译 成 由 机 器 可 以 直 接 辨 认 并 执 行 的 机 器 语 言 程 序 。 为 区 别 它 们 , 把 用 高 级 语 言 写 的程 序 ( 文 件 ) 称 为 源 程 序 ( 文 件 ) , 把 机 器 可 以 直 接 辨 认 并 执 行 的 程 序 ( 文 件 ) 称 为 可 执 行 程序 ( 文 件 ) 。 这 一 过 程 一 般 分 为 两 步 :第 1 步 , 在 程 序 编 辑 过 程 中 输 入 到 计 算 机 内 部 的 是 ASCI I 码 。 ASCI

44、I 码 是 计 算 机 不能 直 接 辨 认 的 , 为 此 , 首 先 要 将 源 程 序 文 件 翻 译 成 机 器 可 以 辨 认 的 程 序 文 件 目 标 程 序 文 件 。 这 一 过 程 称 为 编 译 。 在 编 译 过 程 中 , 还 要 对 源 程 序 中 的 语 法 和 逻 辑 结 构 进 行 检 查 。 编 译 任 务 是 由 称 做 编 译 器 ( compiler ) 的 软 件 完 成 的 。 目 标 程 序 文 件 还 不 能 被 执 行 , 它 们 只是 一 些 可 重 定 位 的 目 标 程 序 模 块 。第 2 步 , 将 目 标 程 序 文 件 中 可

45、重 定 位 的 目 标 程 序 模 块 以 及 程 序 所 需 的 系 统 中 固 有 的目 标 程 序 模 块 ( 如 执 行 输 入 输 出 操 作 的 模 块 ) 链 接 成 一 个 完 整 的 程 序 。 经 正 确 链 接 所 生 成 的 文 件 才 是 可 执 行 文 件 。 完 成 链 接 过 程 的 软 件 称 为 链 接 器 ( linker ) 。图 0 .3 为 C 语 言 程 序 的 编 辑 、 编 译 和 链 接 过 程 示 意 图 。 6 图 0 .3目 前 , 程 序 的 编 辑 、 编 译 、 连 接 以 及 运 行 , 都 可 以 在 一 些 集 成 环 境

46、下 进 行 。 后 面 介 绍 的T urbo C 就 是 一 种 集 成 环 境 。4 . 程 序 测 试每 一 个 人 编 写 出 一 个 程 序 后 , 在 正 式 交 付 使 用 前 , 总 要 试 通 一 下 。 “试 通” 就 是 试 运 行 程 序 , 也 就 是 对 程 序 进 行 测 试 。 今 天 , 尽 管 程 序 测 试 作 为 程 序 设 计 的 一 个 重 要 组 成 环 节 已 再 无 人 怀 疑 , 但 是 在 下 面 的 两 个 问 题 上 , 并 不 是 所 有 的 人 都 能 有 一 个 正 确 的 认 识 。(1 ) 程 序 测 试 的 目 的基 于 不

47、 同 的 立 场 , 存 在 着 两 种 截 然 相 反 的 观 点 : 一 种 人 认 为 , 测 试 的 目 的 是 为 了 证 明程 序 是 正 确 的 ; 另 一 种 认 为 , 测 试 的 目 的 是 为 了 发 现 程 序 中 的 错 误 。 实 际 上 前 一 种 观 点 将 指 导 一 种 自 欺 欺 人 的 行 为 , 它 对 于 提 高 程 序 的 质 量 毫 无 价 值 。 正 确 的 观 点 是 后 者 , Glen- ford J .M yers 把 它 归 结 为 如 下 三 句 话 :测 试 是 程 序 的 执 行 过 程 , 目 的 在 于 发 现 错 误 ;

48、一 个 好 的 测 试 实 例 在 于 能 发 现 至 今 未 发 现 的 错 误 ; 一 个 成 功 的 测 试 是 发 现 了 至 今 未 发 现 的 错 误 的 测 试 。(2 ) 测 试 方 法 和 技 术测 试 是 以 程 序 通 过 编 译 , 没 有 语 法 和 连 接 上 的 错 误 为 前 提 的 。 在 此 基 础 上 , 通 过 让 程 序 试 运 行 一 组 数 据 , 来 检 测 程 序 的 逻 辑 以 及 程 序 中 的 各 语 句 有 无 错 误 。 这 一 组 测 试 数 据应 是 以 “ 任 何 程 序 都 是 有 错 误 的” 为 前 提 精 心 设 计 出 来 的 , 而 不 是 随 心 所 欲 地 乱 凑 成 的 。 它 不 仅 应 含 有 被 测 程 序 的 输 入 数 据 , 而 且 还 应 包 括 程 序 执 行 它

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

当前位置:首页 > 高等教育 > 工学

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


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

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

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