1、计 算 机 等 级 考 试 丛 书 ( 98 大 纲 )谭 浩 强 主 编FORTR A N 程 序 设 计 ( 二 级 ) 教 程谭 浩 强 崔 武 子 田 淑 清 编 著清 华 大 学 出 版 社( 京 ) 新 登 字 158 号内 容 简 介本书 是 根 据 教 育 部 考 试 中 心 1998 年 公 布 的 全 国 计 算 机 等 级 考 试 考 试 大 纲 中 关 于 FORT RAN 语 言 程序 设 计 的 考 试 要 求 而 编 写 的。 内 容 包 括 : FOR T RA N 语 言 的 基 本 概 念 、 F OR T RAN 语 言 的 语 法 规 则 以 及 利 用
2、 F OR T RAN 语 言 进 行 程 序 设 计 的 有 关 知 识 。本 书 覆 盖 了 考 试 大 纲 所 要 求 的 范 围 , 系 统 而 简 明 地 介 绍 了 考 生 应 该 掌 握 的 内 容 。 每 章 之 后 均 附 有精 选 的 练 习 题 , 以 帮 助 读 者 学 习 和 掌 握 。 最 后 还 附 有 考 试 大 纲 和 一 套 笔 试 试 题 。本 书 可 以 作 为 参 加 计 算 机 等 级 考 试 人 员 的 自 学 或 培 训 教 材 , 也 可 以 作 为 大 专 院 校 FOR TRAN 语 言 程 序 设 计 课 程 的 教 学 用 书 。版 权
3、 所 有 , 翻 印 必 究 。 本 书 封 面 贴 有 清 华 大 学 出 版 社 激 光 防 伪 标 签 , 无 标 签 者 不 得 销 售 。书 名 : FO RTR AN 程 序 设 计 ( 二 级 ) 教 程 作 者 : 谭 浩 强 崔 武 子 田 淑 清 编 著出 版 者 : 清 华 大 学 出 版 社 ( 北 京 清 华 大 学 学 研 楼 , 邮 编 100084) h ttp :/ / www .t up .tsinghua .edu .cn印 刷 者 : 北 京 密 云 胶 印 厂发 行 者 : 新 华 书 店 总 店 北 京 发 行 所开 本 : 787 1092 1/
4、16 印 张 : 17.25 字 数 : 398 千 字版 次 : 2000 年 5 月 第 1 版 2000 年 5 月 第 1 次 印 刷 书 号 : ISB N 7-302-01141-9/ T P349印 数 : 0001 5000定 价 : 22.00 元计 算 机 等 级 考 试 丛 书 ( 98 大 纲 )序进 入 20 世 纪 90 年 代 以 来 , 我 国 掀 起 了 第 二 次 计 算 机 普 及 高 潮 。 人 们 已 经 认 识 到 , 要 建 设 一 个 现 代 国 家 , 离 开 计 算 机 将 寸 步 难 行 ; 无 论 从 事 什 么 工 作 , 都 必 须
5、学 习 计 算 机 知 识 , 掌 握 计 算 机 应 用 。 不 少 单 位 已 经 把 通 过 计 算 机 考 试 作 为 任 职 条 件 。为 了 适 应 社 会 的 需 要 , 原 国 家 教 委 考 试 中 心 于 1994 年 推 出 了 “ 全 国 计 算 机 等 级 考 试” , 受 到 社 会 各 界 的 热 烈 欢 迎 。 至 1998 年 底 , 已 有 160 多 万 人 报 名 考 试 , 其 中 70 多 万 人 获 得 了 等 级 证 书 。 全 国 许 多 地 区 和 部 门 也 组 织 了 本 地 区 或 本 系 统 的 计 算 机 统 一 测 试 。 许多
6、同 志 认 为“ , 学 历” 是 从 整 体 上 反 映 了 一 个 人 的 知 识 水 平 , 而 “证 书” 则 反 映 了 一 个 人 在 某一 方 面 的 能 力 。 证 书 制 度 是 学 历 制 度 的 必 要 补 充 , 是 人 才 市 场 的 需 要 , 因 而 受 到 各 方 面 的 欢 迎 。当然 , 计 算 机 统 一 考 试 无 论 从 内 容 上 还 是 形 式 上 都 有 一 些 问 题 需 要 进 一 步 探 索 , 例 如 , 如 何 更 好 地 反 映 计 算 机 新 技 术 的 发 展 , 怎 样 才 能 测 试 出 应 试 者 的 实 际 应 用 能 力
7、 等 。 相 信 随 着 时 间 的 推 移 和 经 验 的 累 积 , 这 项 制 度 会 日 趋 完 善 。全 国 和 地 区 性 的 计 算 机 等 级 考 试 在 内 容 上 、 分 级 上 、 考 试 形 式 上 大 体 相 似 。 全 国 计 算 机 等 级 考 试 目 前 分 为 四 个 等 级 。 一 级 : 具 有 计 算 机 的 初 步 知 识 和 使 用 微 机 系 统 的 初 步 能力 。 一 级 (B) : 面 向 公 务 员 和 在 职 干 部 , 要 求 大 致 与 一 级 相 当 , 侧 重 应 用 能 力 。 二 级 : 具 有 计算 机 软 件 、 硬 件
8、的 基 础 知 识 和 使 用 一 种 高 级 语 言 编 制 程 序 、 上 机 调 试 的 能 力 , 可 以 从 QBASIC, FO RTRAN , PASCAL , C , FoxBASE 五 种 语 言 中 任 选 一 种 应 试 。 三 级 分 为 两 类 : 三 级 ( A ) : 具 有 计 算 机 应 用 基 础 知 识 和 计 算 机 硬 件 系 统 开 发 的 初 步 能 力 ; 三 级 ( B) : 具 有 计算 机 应 用 基 础 知 识 和 软 件 系 统 开 发 的 初 步 能 力 。 四 级 : 具 备 深 入 而 系 统 的 计 算 机 知 识 和较 高 的
9、 计 算 机 应 用 能 力 。为了 帮 助 广 大 读 者 准 备 参 加 等 级 考 试 , 1995 年 我 们 组 织 编 写 了 “ 计 算 机 等 级 考 试 辅 导” 丛 书 , 由 清 华 大 学 出 版 社 出 版 。 该 丛 书 包 括 一 级 、 一 级 B、 二 级 ( 五 种 ) 的 考 试 辅 导 共 8 本 书 , 在 出 版 后 三 年 多 时 间 内 已 发 行 120 多 万 册 。根 据 计 算 机 应 用 的 发 展 , 1998 年 教 育 部 考 试 中 心 修 改 了 全 国 计 算 机 等 级 考 试 大 纲 。 和原 大 纲 相 比 , 新 大
10、 纲 有 以 下 改 动 : 一 级 除 了 可 以 选 择 DOS 环 境 应 试 外 , 还 可 以 选 择 Windows 环 境 应 试 ; 二 级 的 BASIC 语 言 改 为 QBASIC 语 言 ; 在 二 级 的 计 算 机 基 础 知 识 部分 中 增 加 了 对 网 络 和 多 媒 体 的 要 求 。根 据 广 大 读 者 的 要 求 , 我 们 在 原 来 的 “ 计 算 机 等 级 考 试 辅 导” 丛 书 的 基 础 上 , 组 织 出 版 这 套 “计 算 机 等 级 考 试 丛 书 ( 98 大 纲 ) ”。 该 丛 书 由 以 下 三 个 系 列 构 成 :
11、( 1 ) 计 算 机 等 级 考试 教 程 : 全 面 而 系 统 地 介 绍 考 试 大 纲 所 规 定 的 内 容 , 是 便 于 自 学 的 教 材 。 ( 2) 计 算 机 等 级考 试 辅 导 : 用 来 帮 助 已 学 过 该 课 程 的 读 者 复 习 和 准 备 考 试 , 每 本 书 的 内 容 均 包 括 各 章 要 点 、 各 章 难 点 、 例 题 分 析 、 思 考 题 , 并 附 有 模 拟 试 题 。 (3 ) 计 算 机 等 级 考 试 样 题 汇 编 : 按 照 计 算 机 等 级 考 试 的 内 容 和 试 题 形 式 , 提 供 了 500 600 道
12、样 题 , 供 应 试 者 准 备 考 试 参 考 。本 丛 书 中 各 书 的 作 者 都 是 高 等 学 校 或 计 算 机 应 用 部 分 中 具 有 丰 富 教 学 经 验 并 对 计 算 机 等 级 考 试 有 较 深 入 研 究 的 教 授 、 专 家 。 相 信 该 丛 书 的 出 版 一 定 会 受 到 广 大 准 备 参 加 计算 机 等 级 考 试 的 读 者 的 欢 迎 。欢 迎 读 者 对 本 丛 书 提 出 宝 贵 意 见 。“计 算 机 等 级 考 试 丛 书 ( 98 大 纲 )”主 编 全 国 计 算 机 等 级 考 试 委 员 会 副 主 任谭 浩 强1999
13、 年 3 月 前 言FOR TRAN 77 是 国 内 外 广 泛 使 用 的 计 算 机 高 级 语 言 , 它 主 要 适 用 于 数 值 计 算 领 域 。 FOR TRAN 语 言 是 世 界 上 最 早 出 现 的 高 级 语 言 , 多 年 来 形 成 了 一 个 功 能 丰 富 的 子 程 序 库 , 将 常 用 的 数 值 计 算 的 算 法 编 写 成 子 程 序 , 提 供 用 户 使 用 。 因 此 , FO RTR AN 语 言 是 从事 数 值 计 算 的 人 员 首 选 的 计 算 机 语 言 。 它 拥 有 众 多 的 使 用 者 , 直 到 今 天 仍 然 有
14、强 大 的 生命 力 。由 教 育 部 考 试 中 心 主 办 的 全 国 计 算 机 等 级 考 试 将 FO RTR AN 77 语 言 列 为 二 级 考 试五 种 语 言 之 一 。 每 年 都 有 许 多 人 报 考 FORT RAN 语 言 。 各 地 区 举 办 的 大 学 生 计 算 机 统一 考 试 , 也 多 将 FO RTRAN 语 言 列 为 考 试 内 容 。为 了 帮 助 报 考 全 国 计 算 机 等 级 考 试 和 其 它 统 一 考 试 的 同 志 准 备 考 试 , 我 们 特 编 写 了这 本 教 材 。 本 书 是 根 据 教 育 部 考 试 中 心 1
15、998 年 公 布 的 全 国 计 算 机 等 级 考 试 二 级 FO R-T RAN 考 试 大 纲 编 写 的 , 内 容 覆 盖 大 纲 的 全 部 内 容 。本 书 是 在 谭 浩 强 、 田 淑 清 编 著 的 FOR TRAN 语 言 FORT RAN 77 结 构 化 程 序 设 计 ( 清 华 大 学 出 版 社 出 版 ) 一 书 的 基 础 上 根 据 等 级 考 试 的 要 求 和 特 点 加 以 改 编 、 整 理 而 成 的 。 上 述 该 书 被 认 为 是 众 多 的 FOR TRAN 77 语 言 教 材 中 的 优 秀 读 物 , 发 行 量 已 超 过 7
16、2 万 册 , 居 全 国 同 类 书 之 首 , 被 国 家 教 育 部 评 为 全 国 优 秀 教 材 , 大 多 数 高 校 均 选 它 为 正 式 教 材 。 本 书 保 留 了 该 书 通 俗 易 学 的 特 点 , 同 时 对 内 容 做 了 必 要 的 增 删 , 使 之 符 合 等 级 考 试 的 需 要 。 在 本 书 的 各 章 后 面 都 附 有 符 合 等 级 考 试 要 求 和 形 式 的 习 题 , 最 后 还 附 有 一 套 模 拟 试 题 , 供 练 习 用 。本 书 由 谭 浩 强 、 田 淑 清 、 崔 武 子 合 作 完 成 , 改 写 的 工 作 主 要
17、 由 崔 武 子 老 师 负 责 。 本 书 如 有 不 足 之 处 , 敬 请 批 评 指 正 。作 者1999 年 9 月 1 日 目 录第 1 章 FORTRAN 程 序 的 结 构 和 书 写 规 则 11 .1 计 算 机 语 言 和 程 序 设 计 11 .1 .1 基 本 概 念 11 .1 .2 算 法 11 .1 .3 结 构 化 程 序 设 计 和 模 块 化 结 构 21 .2 FO RTR AN 77 源 程 序 的 结 构 21 .3 FO RTR AN 77 源 程 序 的 书 写 格 式 41 .4 FO RTR AN 77 程 序 的 上 机 步 骤 5习 题
18、6第 2 章 数 据 类 型 及 其 运 算 82 .1 常 量 和 变 量 的 类 型 82 .1 .1 常 量 82 .1 .2 变 量 112 .2 定 义 变 量 类 型 的 方 法 122 .3 符 号 常 量 及 其 定 义 方 法 132 .4 运 算 符 及 其 运 算 优 先 级 142 .4 .1 运 算 符 142 .4 .2 运 算 优 先 级 162 .5 表 达 式 及 其 求 值 规 则 172 .5 .1 算 术 表 达 式 172 .5 .2 关 系 表 达 式 192 .5 .3 逻 辑 表 达 式 202 .5 .4 字 符 表 达 式 21习 题 21第
19、 3 章 顺 序 结 构 263 .1 赋 值 语 句 263 .1 .1 算 术 赋 值 语 句 263 .1 .2 逻 辑 赋 值 语 句 263 .1 .3 字 符 型 赋 值 语 句 273 .2 表 控 输 入 、 输 出 语 句 273 .2 .1 表 控 输 出 283 .2 .2 表 控 输 入 283 .3 格 式 输 入 、 输 出 语 句 30 3 .3 .1 格 式 编 辑 符 313 .3 .2 格 式 语 句 与 输 入 、 输 出 语 句 的 相 互 作 用 453 .3 .3 在 输 入 、 输 出 语 句 中 包 含 格 式 说 明 的 方 法 543 .4
20、ST OP 语 句 和 E ND 语 句 553 .5 DA TA 语 句 553 .6 GOT O 语 句 56习 题 56第 4 章 选 择 结 构 634 .1 逻 辑 IF 语 句 634 .2 块 IF 结 构 644 .3 块 IF 结 构 的 嵌 套 664 .4 程 序 举 例 68习 题 70第 5 章 循 环 结 构 775 .1 DO 循 环 结 构 775 .1 .1 DO 循 环 的 一 般 形 式 775 .1 .2 DO 循 环 的 执 行 过 程 795 .1 .3 用 CON T I NU E 语 句 作 终 端 语 句 805 .2 用 块 IF 和 GO
21、TO 语 句 构 成 的 第 一 种 循 环 825 .2 .1 用 块 IF 和 GO TO 语 句 构 成 第 一 种 循 环 的 形 式 825 .2 .2 循 环 的 执 行 过 程 825 .3 用 逻 辑 IF 语 句 构 成 的 第 二 种 循 环 855 .3 .1 用 逻 辑 IF 语 句 构 成 第 二 种 循 环 的 形 式 855 .3 .2 循 环 的 执 行 过 程 855 .4 循 环 结 构 的 嵌 套 865 .5 程 序 举 例 87习 题 92第 6 章 数 组 1026 .1 数 组 的 定 义 和 数 组 元 素 的 引 用 1026 .1 .1 数
22、组 的 定 义 1026 .1 .2 数 组 元 素 的 引 用 1046 .2 数 组 的 逻 辑 结 构 和 存 储 结 构 1046 .3 对 数 组 赋 初 值 的 方 法 1056 .4 数 组 的 输 入 和 输 出 1066 .4 .1 利 用 DO 循 环 进 行 输 入 和 输 出 数 组 元 素 1066 .4 .2 用 数 组 名 输 入 或 输 出 整 个 数 组 1076 .4 .3 在 输 入 、 输 出 语 句 中 运 用 隐 含 DO 循 环 1096 .5 程 序 举 例 110 习 题 120第 7 章 字 符 处 理 1367 .1 字 符 串 、 字 符
23、 型 变 量 和 字 符 型 数 组 1367 .2 字 符 型 数 据 的 赋 值 和 运 算 1367 .2 .1 字 符 型 数 据 的 赋 值 1367 .2 .2 字 符 型 数 据 的 运 算 1377 .3 字 符 型 数 据 的 输 入 和 输 出 139习 题 143第 8 章 函 数 和 子 程 序 1508 .1 内 部 函 数 的 调 用 1508 .2 语 句 函 数 的 定 义 及 调 用 1518 .2 .1 语 句 函 数 的 定 义 1518 .2 .2 语 句 函 数 的 引 用 1528 .3 函 数 子 程 序 的 结 构 及 调 用 1538 .3 .
24、1 函 数 子 程 序 的 结 构 1538 .3 .2 函 数 子 程 序 的 调 用 1558 .4 子 例 行 程 序 的 结 构 及 调 用 方 法 1568 .4 .1 子 例 行 程 序 的 结 构 1568 .4 .2 子 例 行 程 序 的 调 用 1578 .5 虚 参 和 实 参 之 间 的 数 据 传 递 1598 .5 .1 变 量 作 为 虚 参 1598 .5 .2 数 组 作 为 虚 参 1608 .5 .3 子 程 序 名 作 为 虚 参 1648 .5 .4 星 号 “ * ”作 为 虚 参 1658 .6 程 序 举 例 165习 题 172第 9 章 数
25、据 联 系 1899 .1 公 用 语 句 和 公 用 区 1899 .1 .1 无 名 公 用 区 1899 .1 .2 有 名 公 用 区 1929 .2 数 据 块 子 程 序 192习 题 193第 10 章 文 件 19910 .1 文 件 与 记 录 的 概 念 19910 .2 文 件 的 操 作 语 句 20010 .2 .1 文 件 的 打 开 与 关 闭 语 句 20010 .2 .2 返 绕 与 回 退 语 句 20210 .2 .3 输 入 与 输 出 语 句 202 10 .3 有 格 式 顺 序 文 件 的 操 作 20310 .4 有 格 式 直 接 文 件 的
26、操 作 20610 .5 无 格 式 顺 序 文 件 和 直 接 文 件 的 操 作 208习 题 210附 录 218附 录 1 常 用 字 符 与 ASCI I 代 码 对 照 表 218附 录 2 可 执 行 语 句 和 非 执 行 语 句 表 219附 录 3 程 序 单 位 中 语 句 和 注 释 行 的 顺 序 220附 录 4 FO RTRAN 77 语 句 索 引 220附 录 5 FO RTRAN 77 内 部 函 数 222附 录 6 全 国 计 算 机 等 级 考 试 二 级( 基 础 知 识 和 FO RTR AN 语 言 程 序 设 计 ) 考 试 大 纲 224附
27、录 7 1999 年 4 月 全 国 计 算 机 等 级 考 试 二 级( 基 础 知 识 和 FO RTR AN 语 言 程 序 设 计 ) 笔 试 试 题 及 答 案 227附 录 8 各 章 习 题 参 考 答 案 240参 考 文 献 266 1 第 1 章 FORTRAN 程 序 的 结 构 和 书 写 规 则1 .1 计 算 机 语 言 和 程 序 设 计1 .1 .1 基 本 概 念人 们 使 用 计 算 机 , 使 计 算 机 按 人 们 的 意 志 进 行 工 作 , 就 需 要 与 计 算 机 交 流 信 息 。 计 算 机 语 言 是 人 与 计 算 机 之 间 通 信
28、的 语 言 。 计 算 机 语 言 有 机 器 语 言 、 汇 编 语 言 和 高 级 语 言 。 机 器 语 言 和 汇 编 语 言 是 依 赖 于 具 体 机 器 的 , 可 移 植 性 差 , 而 且 难 学 , 不 易 推 广 。 而 高 级 语言 接 近 于 自 然 语 言 和 数 学 语 言 , 易 懂 易 学 , 而 且 在 各 种 计 算 机 上 都 能 通 用 。 高 级 语 言 又 分 为 过 程 化 语 言 和 非 过 程 化 语 言 , 它 们 的 区 别 在 于 前 者 既 要 解 决 “做 什 么 ”, 又 要 解 决 “怎 样 做” 的 问 题 , 而 后 者 只
29、 指 出 “ 做 什 么 ”即 可 。 FORT RAN 语 言 是 过 程 化 的 高 级 语 言 。 学 习 用 过 程 化 的 语 言 编 写 程 序 , 是 目 前 学 习 计 算 机 科 学 技 术 的 一 项 基 本 训 练 , 有 了 这 个 基 础 , 掌 握 非 过 程 化 语 言 是 轻 而 易 举 的 。程 序 是 为 了 解 决 某 一 个 特 定 问 题 而 用 某 一 种 语 言 编 写 的 指 令 序 列 。 程 序 设 计 一 般 包 括 确 定 数 据 结 构 、 确 定 算 法 、 编 码 、 调 试 程 序 、 整 理 并 写 出 文 档 资 料 等 内
30、容 。1 .1 .2 算 法计 算 机 语 言 只 是 一 种 工 具 , 学 习 计 算 机 语 言 的 目 的 是 要 用 语 言 作 为 工 具 , 设 计 出 所 需 要 的 程 序 。 要 编 写 较 好 的 程 序 , 除 了 选 定 合 理 的 数 据 结 构 外 , 一 般 来 说 , 十 分 关 键 的 一 步是 设 计 正 确 而 有 效 的 算 法 。 算 法 是 指 为 解 决 某 个 特 定 问 题 而 采 取 的 确 定 且 有 限 的 步 骤 。 算 法 是 程 序 设 计 的 核 心 , 算 法 的 好 坏 直 接 影 响 程 序 的 运 行 效 率 。 一 个
31、 算 法 应 当 具 有 以 下五 个 特 性 : 有 穷 性 。 一 个 算 法 应 包 含 有 限 个 操 作 步 骤 。 确 定 性 。 算 法 中 的 每 一 个 步 骤 必 须 都 有 确 切 的 含 义 。 有 效 性 。 算 法 中 的 每 一 个 步 骤 都 应 当 能 有 效 地 执 行 , 并 得 到 确 定 的 结 果 。 有 零 个 或 多 个 输 入 。 在 大 多 数 情 况 下 要 处 理 的 数 据 对 象 需要 通 过 输 入 来 完 成 。 有 一 个 或 多 个 输 出 。 算 法 的 目 的 是 为 了 求 “ 解” , 而 通 过 输 出 才 能 得
32、到 这 些 “解” 。流 程 图 是 描 述 算 法 的 很 好 的 工 具 , 常 用 的 流 程 图 有 传 统 流 程 图和 N-S 流 程 图 。 前 者 由 图 1.1 中 所 示 的 几 种 基 本 框 组 成 , 它 的优 点 是 形 象 直 观 , 简 单 方 便 。 而 N-S 流 程 图 完 全 去 掉 了 流 程 线 , 算 法 的 每图 1 .1 2 一 步 都 用 一 个 矩 形 框 来 描 述 , 并 把 一 个 个 矩 形 框 按 执 行 的 次 序 连 接 起 来 , 它 的 优 点 是 描 述 算 法 时 所 占 篇 幅 较 少 , 省 时 省 力 且 易 阅
33、 读 。1 .1 .3 结 构 化 程 序 设 计 和 模 块 化 结 构1. 结 构 化 程 序 设 计结 构 化 程 序 设 计 由 三 种 基 本 结 构 即 顺 序 结 构 、 选 择 结 构 和 循 环 结 构 组 成 。 由 三 种 基 本 结 构 构 成 的 程 序 称 为 结 构 化 程 序 。 用 结 构 化 程 序 实 现 的 算 法 可 以 解 决 任 何 复 杂 的 问 题 。 FORT RAN 77 是 接 近 于 结 构 化 语 言 的 高 级 语 言 , 它 提 供 了 三 种 构 成 基 本 结 构 的 语句 , 可 以 用 来 进 行 结 构 化 程 序 设
34、计 。2. 模 块 化 结 构因 为 解 决 复 杂 问 题 时 所 编 写 的 程 序 由 成 千 上 万 条 语 句 组 成 , 因 此 经 常 需 要 由 许 多 人来 共 同 完 成 , 这 时 常 常 把 任 务 分 解 为 若 干 个 子 任 务 , 每 个 子 任 务 由 若 干 模 块 构 成 , 一 个 模块 往 往 用 来 完 成 一 项 简 单 的 功 能 , 模 块 化 结 构 是 由 一 个 个 功 能 模 块 构 成 的 程 序 结 构 。 程序 员 在 进 行 程 序 设 计 的 时 候 , 应 当 先 考 虑 主 程 序 中 的 算 法 , 再 依 次 完 成
35、各 个 子 任 务 , 这 就 是 自 顶 向 下 、 逐 步 细 化 、 模 块 化 的 程 序 设 计 。FOR TRAN 程 序 可 以 由 主 程 序 块 、 函 数 子 程 序 块 或 子 例 行 程 序 块 组 成 。 主 程 序 是FOR TRAN 程 序 中 唯 一 必 不 可 少 的 程 序 块 , 程 序 的 执 行 总 是 从 主 程 序 的 第 一 条 可 执 行 语句 开 始 。 函 数 子 程 序 块 和 子 例 行 程 序 块 是 被 主 程 序 或 其 它 子 程 序 调 用 的 程 序 块 , 函 数 子程 序 必 须 由 FU NCT ION 开 头 , 而
36、 子 例 行 程 序 必 须 由 SU BROU T I NE 开 头 。 子 程 序 和 函数 不 能 单 独 执 行 。1 .2 FORTRAN 77 源 程 序 的 结 构下 面 通 过 一 个 简 单 的 例 子 , 介 绍 FO RTRAN 程 序 的 一 些 基 本 结 构 。 例 1-1 从 键 盘 输 入 两 个 数 , 求 它 们 的 平 均 值 。 程 序 如 下 :WRI TE ( * , * ) En ter A and B : R EAD ( * , * ) A , BAVE = ( A + B)/ 2 .0WRI TE ( * , * ) AVE = , AVE E
37、ND以 上 程 序 的 运 行 结 果 如 下 :Enter A and B : 2 , 4 回 车 (在 本 书 中 用 户 从 键 盘 输入 的 数 据 都 加 下 划 线 来 表 示 )AVE = 3.000000以 上 程 序 只 有 主 程 序 , 共 包 括 五 条 语 句 , 第 一 条 和 第 四 条 语 句 是 输 出 语 句 , 在 终 端 上输 出 指 定 的 数 据 ; 第 二 条 语 句 是 输 入 语 句 , 从 键 盘 输 入 的 数 2 和 4 分 别 赋 给 变 量 A 和 B; 3 第 三 条 语 句 是 赋 值 语 句 , 它 将 2 与 4 的 平 均
38、值 赋 给 变 量 AVE ; 第 五 条 语 句 是 结 束 语 句 , 它 的 作 用 是 使 程 序 停 止 运 行 。 例 1-2 计 算 底 面 半 径 和 高 分 别 为 2 、 5 和 3 、 4 的 圆 柱 体 体 积 。 程 序 如 下 :V1 = VOLUME (2 .0 , 5 .0) WRI TE ( * , * ) V1 = , V1 V2 = VOLUME (3 .0 , 4 .0) WRI TE ( * , * ) V2 = , V2ENDC a function subprogramF U NC TIO N VOLUME ( R , H )VOLUME = 3
39、.14159 * R * * 2 * H END以 上 程 序 的 运 行 结 果 如 下 :V1 = 62.83180V2 = 113.0972程 序 由 一 个 主 程 序 和 一 个 函 数 子 程 序 块 构 成 。 主 程 序 通 过 对 函 数 子 程 序 的 两 次 调 用 得 到 两 个 圆 柱 体 的 体 积 。 函 数 子 程 序 块 的 功 能 是 根 据 传 送 来 的 半 径 R 和 高 H 的 值 计 算体 积 , 并 将 计 算 结 果 存 放 在 函 数 子 程 序 名 VOL U ME 中 。 函 数 子 程 序 的 第 一 行 第 一 列 字符 为 C ,
40、表 示 该 行 是 注 释 行 , 说 明 子 程 序 的 性 质 ; 第 二 行 是 函 数 子 程 序 的 首 行 , 其 中 的 VOL UM E 是 函 数 名 , 函 数 名 后 的 一 对 括 号 内 有 两 个 名 为 R 和 H 的 参 数 , 它 们 的 值 在 此 子 程 序 被 调 用 时 得 到 。 当 执 行 函 数 子 程 序 的 最 后 一 行 E ND 语 句 后 , 执 行 的 流 程 返 回 主 程 序 , 并 通 过 函 数 名 VOL U ME 带 回 所 求 得 的 圆 柱 体 体 积 的 值 。以 上 举 例 只 是 对 主 程 序 和 子 程 序
41、的 概 念 作 简 单 介 绍 。 关 于 子 程 序 , 后 面 章 节 还 有 详细 的 讲 解 。从 以 上 例 子 可 以 看 到 :(1 ) 一 个 程 序 由 一 个 或 若 干 个 程 序 块 组 成 。 主 程 序 和 每 一 个 子 程 序 分 别 是 一 个 独 立的 程 序 块 。 在 解 决 一 个 比 较 复 杂 的 问 题 时 , 可 以 分 别 将 每 一 个 功 能 编 为 一 个 子 程 序 , 然 后 按 搭 积 木 一 样 将 各 有 关 程 序 块 组 成 一 个 程 序 。 一 个 程 序 块 就 是 一 个 模 块 , 结 构 化 程 序 设计 需
42、要 采 用 模 块 化 方 法 , 在 FO RTRAN 中 , 子 程 序 是 实 现 模 块 化 的 有 效 方 法 。(2 ) 每 一 个 程 序 块 都 是 以 “ E ND”结 束 的 。 在 FO RTR AN 77 中 , E ND 既 是 一 个 程 序 单 位 的 结 束 标 志 , 又 是 一 个 独 立 的 语 句 ( 结 束 语 句 ) 。 主 程 序 中 的 END 语 句 的 作 用 是 使程序 运 行 “停 止” 。 子 程 序 中 的 E ND 语 句 是 “使 流 程 返 回 调 用 程 序” 。 应 注 意 , 在 一 个 程 序 单 位 中 只 能 有 一
43、 个 E ND 语 句 , 如 果 需 要 , 可 以 使 用 多 个 S TOP 语 句 或 RE T U R N 语 句组 成 各 个 程 序 单 位 。(3 ) 一 个 程 序 块 包 括 若 干 行 。 FO RTR AN 行 分 为 两 类 : 语 句 行 。 由 一 个 FOR TRAN 语 句 组 成 , 它 对 程 序 运 行 情 况 是 有 影 响 的 。 FO R- 4 T RAN 语 句 分 为 : 执 行 语 句 和 非 执 行 语 句 。 执 行 语 句 使 计 算 机 在 运 行 时 产 生 某 些 操 作 , 如 赋 值 语 句 、 打 印 语 句 等 。 非 执
44、 行 语 句 ( 包 括 说 明 语 句 、 数 据 语 句 等 ) 将 有 关 信 息 通 知 编 译 系 统 , 以 便 在 编 译 时 做 出 相 应 的 处 理 , 例 如 , 类 型 说 明 语 句 、 函 数 子 程 序 语 句 等 。 非 语 句 行 , 即 注 释 行 。 它 不 是 FORT RAN 语 句 , 它 不 被 翻 译 成 机 器 目 标 指 令 , 不 产 生 任 何 机 器 操 作 。 它 仅 仅 是 为 了 人 们 阅 读 程 序 的 方 便 而 加 到 程 序 中 的 。 一 个 程 序 中 注 释 行 的 数 目 不 受 限 制 , 根 据 需 要 而
45、定 。 但 一 个 程 序 单 位 不 能 只 由 注 释 行 组 成 。 注 释 行 是程 序 的 一 部 分 , 在 打 印 程 序 清 单 时 , 注 释 行 也 原 样 打 印 。 注 释 行 的 内 容 完 全 是 根 据 程 序 设 计 人 员 需 要 而 写 的 , 一 般 是 为 程 序 ( 或 程 序 中 某 一 部 分 ) 的 作 用 作 注 释 。 注 释 可 以 用 英 语或 汉 语 拼 音 文 字 , 如 果 所 用 的 操 作 系 统 是 中 文 操 作 系 统 ( 如 CCDOS ) , 还 可 以 用 汉 字 作 注释 。FOR TRAN 程 序 的 基 本 成
46、 分 是 语 句 。 FOR TRAN 规 定 , 一 行 只 能 写 一 个 语 句 。 如 果一 个 语 句 太 长 , 一 行 内 写 不 下 , 可 以 分 行 继 续 写 ( 要 使 用 “ 继 续 标 志” ) 。(4 ) FO RTR AN 程 序 中 的 语 句 可 以 没 有 标 号 , 也 可 以 有 标 号 , 根 据 需 要 而 定 。 标 号 的作 用 是 标 志 一 个 语 句 , 以 便 被 其 它 语 句 引 用 。 在 同 一 个 程 序 单 位 中 不 能 有 两 个 相 同 标 号的 语 句 。 标 号 不 影 响 语 句 的 执 行 顺 序 。 程 序
47、中 语 句 执 行 的 顺 序 一 般 按 照 它 们 在 程 序 中 的 位 置 而 定 , 即 写 在 前 面 的 语 句 先 执 行 , 写 在 后 面 的 语 句 后 执 行 。(5 ) 一 个 程 序 块 中 各 类 语 句 的 位 置 是 有 规 定 的 , 例 如 , PR OG RAM 语 句 应 是 主 程 序 的 第 一 个 语 句 , F UN CT ION 语 句 是 函 数 子 程 序 的 第 一 个 语 句 , E ND 语 句 只 能 是 程 序 单 位 中最 后 一 行 。(6 ) FOR TRAN 源 程 序 必 须 按 一 定 的 格 式 书 写 。 哪 些
48、 内 容 应 写 在 一 行 中 的 哪 一 列( 或 哪 几 列 上 ) 都 有 严 格 的 规 定 。1 .3 FORTRAN 77 源 程 序 的 书 写 格 式用 FO RTR AN 语 句 编 写 的 程 序 称 为 FOR TRAN 源 程 序 。 FO RTR AN 源 程 序 必 须 按规 定 的 格 式 书 写 。 上 机 运 行 时 , 也 要 按 格 式 输 入 源 程 序 。FOR TRAN 源 程 序 由 程 序 块 组 成 , 每 个 程 序 块 由 若 干 行 组 成 , 每 一 行 有 80 列 , 每 一 列 只 能 写 1 个 字 符 。 每 个 程 序 块
49、 共 分 四 个 区 , 即 标 号 区 、 续 行 标 志 区 、 语 句 区 和 注 释 区 。(1 ) 标 号 区 ( 第 1 5 列 ) 。 可 以 写 1 5 位 整 数 , 也 可 以 无 标 号 。 标 号 区 内 的 空 格 不起 作 用 , 标 号 的 大 小 不 影 响 程 序 的 执 行 顺 序 。 第 一 列 上 只 能 出 现 数 字 、 空 格 “ C”或 “ * ”, 否 则 编 译 时 按 出 错 处 理 。 第 一 列 为 “ C”或 “ * ”的 , 该 行 按 注 释 行 处 理 。(2 ) 续 行 标 志 区 ( 第 6 列 ) 。 如 果 在 一 行 的 第 6 列 写 上 一 个 非 零 非 空 格 的 字 符 , 则 表示 该 行 是 上 一 行 的 续 行 。 在 编 译 时 把 两