新概念c语言案例教程__何勤.pdf
《新概念c语言案例教程__何勤.pdf》由会员分享,可在线阅读,更多相关《新概念c语言案例教程__何勤.pdf(200页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、新 概 念 C程 序 设 计 教 程 上 册 何 勤 著 版 权 所 有第 一 章 C语 言 的 基 本 概 念 1.1 c 语 言 程 序 的 构 成 成 分:例 题 1.11)ftinclude/*编 译 预 处 理 命 令,将 标 准 输 入 输 出 函 数 2)作 为 头 文 件 包 扩 到 用 户 源 程 序 文 件 中*/3)8include/*编 译 预 处 理 命 令,将 系 统 提 供 的 数 学 函 数 4)作 为 头 文 件 包 扩 到 用 户 源 文 件 中*/5)int main()/函 数 名 为 main的 主 函 数 的 函 数 首 部 6)函 数 体 开 始
2、7)float x,y;定 义 部 分.定 义 变 量 及 其 类 型 8)x=45.2;语 句 部 分.赋 值 语 句 9)y=sqrt(3*x+5.6);语 句 部 分.赋 值 语 句 10)p rin tf(“斌 n”,y);语 句 部 分.输 出 语 句 11)return 0;/语 句 部 分.返 回 语 句 12)函 数 体 结 束 注 意:最 左 边 的 行 号 是 为 了 说 明 方 便 而 加 上 的,实 际 C语 言 程 序 中 是 不 能 有 的。1.C 语 言 的 源 程 序 的 主 要 构 成 成 分 是 函 数 定 义(从 第 5 到 第 12行)。一 个 C 语
3、言 源 程 序 文 件 一 般 由 多 个 函 数 定 义 顺 序 组 成(直 到 第 5 章 才 讨 论 由 两 个 以 上 函 数 构 成 的 C 语 言 源 程 序),但 是 其 中 必 须 有 一 个 main函 数。程 序 的 运 行 都 是 从 系 统 调 用 main函 数 开 始 的。2.函 数 定 义 由 函 数 首 部(第 5 行)和 函 数 体(第 6 到 第 12行)组 成。函 数 体 必 须 用 大 括 号“”和“”括 住。3.C 语 言 源 程 序 的 次 要 构 成 成 分 是:编 译 预 处 理 命 令(第 1、3 两 行 的 左 边 部 分)、注 释(每 一
4、行 右 半 部 以/开 始 的 内 容,或 以/*开 始,以*/结 束 的 内 容)和 声 明(见 第 5 章)。编 译 预 处 理 命 令 和 注 释 是 不 以 分 号 结 束 的。4.C语 言 程 序 中,(任 何 函 数 的)函 数 体 的 主 要 构 成 成 分 是:定 义 序 列(第 7 行 的 左 半 部)和 语 句 序 列(第 8行 到 第 11行 的 左 半 部)。这 两 种 成 分 都 要 以 分 号 结 束(复 合 语 句 除 外)。C 语 言 函 数 体 中,所 有 定 义 必 须 位 于 语 句 序 列 之 前(*注)。*注:这 是 C89标 准,其 它 高 级 编
5、程 语 言 不 一 定 有 此 先 后 顺 序 要 求。C99标 准 放 宽 了 要 求,可 以 在 复 合 语 句 的 前 半 部 定 义 仅 在 复 合 语 句 中 有 效 的 局 部 变 量,但 目 前 不 少 编 译 器 并 不 支 持 C99标 准。所 以,为 了 获 得 较 好 的 程 序 可 移 植 性,本 书 的 论 述 以 较 老 的 C89标 准 为 主。深 入 一 步:定 义 序 列 被 编 译 程 序 翻 译 成 了 内 存 中 的 数 据 序 列(包 括 对 存 放 数 据 的 内 存 空 间 的 事 先 安 排),而 语 句 序 列 则 被 翻 译 成 了 指 示
6、如 何 加 工 这 些 数 据 序 列 的 机 器 语 言 的 指 令 序 列。将 要 运 行 的 程 序 的 指 令 序 列 也 是 位 于 内 存 中 的。所 以 在 运 行 某 个 程 序 前,程 序 用 户 必 须 借 助 于 操 作 系 统 将 位 于 外 存 文 件 中 的 这 两 部 分 内 容 加 载 到 内 存 中。*5.在 正 式 进 行 编 译 之 前,编 译 预 处 理 程 序 将 根 据 源 程 序 中 的 编 译 预 处 理 命 令 对 源 程 序 文 件进 行 一 些 辅 助 性 的 文 本 插 入(include命 令)、替 换(#define命 令)和 编 辑
7、 工 作。编 译 预 处 理 命 令 都 是 以“#”开 始,不 以 分 号 结 束。每 条 编 译 预 处 理 命 令 必 须 书 写 在 同 一 行 上。6.注 释 以“/*”开 始,以“*/”结 束。注 释 会 被 编 译 程 序 首 先 删 除 掉。但 良 好 的 注 释 使 程 序 更 易 被 人 们 读 懂。不 要 忘 记 书 写 注 释 的 结 束 符 号“*/”o 注 释 有 两 种 常 用 方 式:一 种 是 注 释 内 容 独 自 占 据 多 行,对 注 释 以 下 的 一 段 程 序 或 整 个 源 程 序 文 件 进 行 说 明;另 一 种 是 出 现 在 一 行 的
8、右 边,对 该 行 左 边 的 内 容 进 行 说 明。(注 释 部 分 在 VC+6.0中 是 以 绿 色 字 体 显 示 出 来 的。)单 行 注 释 以“”开 始,它 用 起 来 比 较 方 便,但 它 不 是 C 语 言 标 准 规 定 的。1.2 C语 言 程 序 的 语 法 要 素 1.1 X 即 争 除 了 格 式 控 制 串(见 1.4节 printfO和 scanf()函 数)和 注 释 部 分 以 外 的 C 语 言 源 程 序 的 其 它 部 分,称 为 C 语 言 的 源 程 序 的 正 文 部 分。(正 文 部 分 在 VC6.0中 是 以 黑 色 字 体 显 示 出
9、 来 的。)2.C 语 言 的 字 符 集,26个 大 小 写 英 文 字 母:A-Z,a-z;阿 拉 伯 数 字 字 符:0 9;特 殊 字 符:!#%,&*+=()?:空 格 字 符(对 应 键 盘 上 的 最 长 键 Space)换 行 符(对 应 Enter键)制 表 符(对 应 Tab键)以 上 所 有 这 些 字 符 构 成 了 C 语 言 的 字 符 集。书 写 C 语 言 的 源 程 序 的 正 文 部 分,只 能 使 用 C 语 言 字 符 集 中 的 字 符,其 它 任 何 字 符 不 得 使 用。字 符 集 中 的 任 何 字 符,只 能 用 英 文 半 角 方 式 来
10、进 行 输 入。3.标 识 符 是 以 26个 大 小 写 英 文 字 母、阿 拉 伯 数 字 0 到 9 和 下 划 线 构 成 的 字 符 序 列;其 中 从 左 边 开 始 的 第 一 个 字 符 不 能 是 数 字。在 C 语 言 中,只 能 使 用 符 合 标 识 符 规 定 的 名 字,来 对 变 量、符 号 常 量、函 数、语 句 标 号 命 名。C 语 言 对 标 识 符 的 大 小 写 敏 感,也 就 是 说 main与 Main,printf与 Printf都 是 不 同 的 标 识 符(main和 printf都 是 C 语 言 中 的 已 经 规 定 的 函 数 名,所
11、 以,我 们 不 能 用 来 作 为 自 定 义 的 标 识 符)。4.关 键 字 是 被 编 译 程 序 保 留 下 来 的 特 殊 标 识 符;主 要 分 为 两 大 类:用 于 定 义(或 声 明)的 关 键 字 和 用 于 构 成 语 句 的 关 键 字。(C89标 准 中 的)关 键 字 都 是 由 小 写 英 文 字 母 组 成 的。关 键 字(还 包 括 预 处 理 明 令)在 VC+6.0中 是 以 蓝 色 字 体 显 示 出 来 的。所 有 关 键 字 列 表 如 下:在 ANSI C89标 准 中 共 有 32个 关 键 字 auto break case char con
12、st continue default do double else enumextxrn float for goto if int long register return short signedsizeof static struct switch typedef union unsigned void volatile while在 ANSI C99标 准 中 增 加 了 5 个 关 键 字 Bool Complex Imaginary inline restrict5.C 语 言 源 程 序 中 可 使 用 的 分 隔 符 有 三 个:空 格、回 车/换 行、逗 号。同 类 项 之
13、 间 要 用 逗 号 分 隔,关 键 字 和 标 识 符 之 间 要 用 空 格 或 回 车/换 行 来 分 隔,不 能 用 逗 号(比 如 int在 C 语 言 中,合 理 地 使 用 多 余 的 空 格 和 空 行,可 以 使 得 程 序 更 清 晰、易 懂、优 美。6.C 语 言 中 常 量 分 为 数 值 常 量(又 称 为 字 面 常 量)和 符 号 常 量 两 种。应 当 多 使 用 符 号 常 量,尽 量 少 用 数 值 常 量。最 常 用 的 数 值 常 量 有 以 下 儿 种:1).整 型 常 量 567,-425,0 等,是 没 有 小 数 分 量 的 数 值。2).实 型
14、(浮 点 型)常 量:由 正 负 号、数 字、小 数 点 构 成。0.543、5 4 3.、543.0、0.0都 是 十 进 制 的 小 数 形 式。在 数 的 左 边 还 可 以 加 上 正 负 号。比 如-5 4 3.0。3).字 符 型 常 量 K,*,8,,W 等,是 用 单 引 号 括 起 来 的 ASCH码 表 中 的 字 符,包 括 键 盘 上 的 可 显 示(或 可 打 印)的 字 符 和 不 可 显 示 的 一 些 控 制 字 符(字 符 n 就 是 表 示 一 个 控 制 字 符 Enter键,详 见 附 录 ASCH码 表)。深 入 一 步:字 符 型 量 的 本 质 字
15、 符 常 量 在 编 写 程 序 时,要 用 两 个 单 引 号 括 住 它。它 属 于 一 种 从 表 面 上 看 来 是 非 数 值 型 的 量。但 其 实 在 计 算 机 的 内 存 中,它 就 是 以 ASCII码 的 形 式 存 储 的,占 用 一 个 字 节 内 存 空 间 的 一 个 二 进 制 正 整 数(取 值 在 0127之 间)。字 符 型 量 是 用 计 算 机 进 行 文 字 处 理 的 基 础。符 号 常 量 一 般 由 大 写 英 文 字 母 组 成 的 标 识 符 构 成,用#define来 进 行 定 义,比 如:#definc PI 3.1416。源 程 序
16、 中 所 有 出 现 的 记 号 P I都 会 被 编 译 预 处 理 程 序 用 3.1416替 代。修 改 常 量 的 值 变 得 非 常 方 便,程 序 的 可 读 性 也 更 好。7.变 量 定 义 变 量 的 作 用:要 求 系 统 为 存 放(其 数 值 可 以 变 化 的)数 据 事 先 分 配 内 存 单 元,变 量 名 作 为 内 存 单 元 的 行 号 地 址。定 义 变 量 的 形 式 是:类 型 名 变 量 列 表:定 义 变 量 只 能 使 用 标 识 符。多 个 变 量 之 间 用 逗 号 隔 开,构 成 变 量 列 表。C 语 言 中 各 种 常 用 的 变 量
17、类 型 是 int(整 型)、float(单 精 度 浮 点 型)、char(字 符 型)、double(双 精 度 浮 点 型)、long(长 整 型)。通 过 变 量 名 score,可 以 找 到(即 映 射 为)相 应 的 内 存 单 元 地 址。假 设 地 址 为 2000,语 句:score=38.0;的 含 义 和 作 用 是:将 数 值 38.0存 放 在 地 址 为 2000的 内 存 单 元 中。变 量 的 值 是 可 以 变 化 的。而 变 量 名 所 对 应 的 内 存 地 址 是 不 变 的。8.变 量 一 定 要 先 进 行 定 义,定 义 后 一 定 要 进 行
18、初 始 化(即 存 入 一 个 初 始 值 在 变 量 对 应 的 内 存 单 元 中,参 见 P 页),然 后 才 能 在 表 达 式 中 使 用 或 进 行 输 出。否 则,变 量 所 对 应 的 内 存 单 元 中 的 垃 圾 掣 般 就 会 在 程 序 中(的 表 达 式 或 输 出 语 句)被 误 用。9.运 算 符 是 用 来 告 诉 编 译 程 序 对 运 算 量 要 做 何 种 运 算 的 抽 象 形 式。由 编 译 程 序 转 化 成 具 体 的 运 算 类 指 令。最 常 用 的 运 算 符 分 为 三 大 类:算 术 运 算 符、关 系 运 算 符(见 下 一 章)、逻
19、辑 运 算 符(见 下 一 章)。各 种 算 术 运 算 符 见 下 表 表 2.x 各 种 算 术 运 算 符 运 算 符 运 算 举 例 结 果+正 号+8 8-负 号-a(a 的 值 为 3)-3+加 11+5 16-减 11-5 6*乘 法 11*5 55/除 法 11/5 2(这 是 整 数 除 法)/除 法 11.0/5 2.2(这 是 实 数 除 法)乘 法 运 算 符 最 容 易 漏 写(比 如:将 2*x*y,误 写 为 2xy),不 要 把 实 数 除 法 运 算 符 误 用 为 整 数 除 法(比 如:错 把 1.0/3写 成 1/3 o 1/3的 值 是 0)。%取 模
20、(取 整 除 的 余 数)11%5 1(1 1除 以 5 的 余 数)10.所 谓 表 达 式,是 用 运 算 符 将 运 算 量(常 量、变 量、函 数 调 用)连 接 起 来 的 有 意 义 的 式 子。其 中 还 可 使 用 圆 括 号 来 改 变 运 算 符 固 有 的 先 后 运 算 顺 序 圆 括 号 内 的 部 分 优 先 进 行 运 算。单 个 常 量、变 量 和 函 数 调 用 是 最 简 单 的 表 达 式。在 初 学 编 程 时,表 达 式 极 易 出 现 多 种 书 写 错 误。在 命 令 型 高 级 语 言 中,实 际 上 只 能 用 表 达 式 和 语 句 这 种
21、抽 象 的、形 式 化 的 方 式,来 命 令 计 算 机 为 你 进 行 数 据 处 理 工 作(由 编 译 程 序 转 化 为 一 系 列 的 取 数 指 令 和 运 算 指 令)。单 个 常 量、单 个 变 量 和 单 个 函 数 调 用 是 最 简 单 的 表 达 式(比 如 x,可 以 看 成 是 表 达 式 x+0)深 入 一 步:普 通 的(指 没 有 副 作 用 的,见 本 章 提 高 部 分)表 达 式 中 出 现 变 量 的 含 义 表 达 式 x+y中,出 现 变 量 的 含 义 是:根 据 变 量 名(这 对 应 着 一 个 内 存 单 元 的 地 址)到 内 存 中
22、去 取 该 变 量 的 值(取 到 CPU的 某 个 寄 存 器 中 去),然 后(在 运 算 器 中)进 行 指 定 的 运 算。该 变 量 的 值 依 然 不 变。11.赋 值 语 句 的 形 式 是:变 量=&达 式;。赋 值 语 句 先 计 算 出 赋 值 号“=”右 边 表 达 式 的 值,然 后 将 此 值 存 放 在 赋 值 号 左 边 的 变 量(所 对 应 的 内 存 单 元)之 中。注 意:赋 值 号 的 左 边 不 能 是 表 达 式,只 能 是 单 个 变 量。赋 值 语 句 中 变 量 值 的 变 与 不 变:“左 边 改 变,右 边 不 变”赋 值 号 右 边 表
23、达 式 中 的 变 量(如 果 有 的 话)仅 仅 是 取 出 它 的 值 来 参 与 表 达 式 规 定 的 运 算,变 量 的 值 仍 然 未 变。而 赋 值 号 左 边 变 量(所 对 应 的 内 存 单 元 中)的 原 来 值,将 被 表 达 式 算 出 的 新 值 存 入 而“覆 盖”掉。12.形 式 如 x=包 含 方 堡/x 的 乂 滋 X、;(x 可 以 是 任 何 简 单 类 型 的 变 量)的 赋 值 语 句,大 量 的 出 现 在 程 序 中。它 表 示 的 是 一 种 琴 代 天 春 即 指 明 了 如 何 由 变 量 x 的 一 个 老 值(取 出 来 参 与 表 达
24、 式 所 规 定 的 运 算),最 终 得 到 了 变 量 x 的 一 个 新 值(最 终 存 入 到 赋 值 号 右 边 的 变 量 X中)。专 题 讨 论:库 函 数 和 库 函 数 调 用 库 函 数:编 译 程 序(又 称 为 编 译 器)附 带 的,一 批 可 以 被 任 何 别 的 C语 言 程 序“调 用”的,通 用 的、命 名 了 的 子 程 序。所 有 这 些 库 函 数 组 成 了 一 个 标 准 函 数 库,与 编 译 程 序 一 道 打 包 发 行。安 装 了 C编 译 程 序 后,我 们 就 能 在 编 写 程 序 时,咽 为 这 些 库 函 数。函 数 调 用(fu
25、nction cal 1):在 我 们 编 写 的 C语 言 源 程 序 中,可 以 调 用 库 函 数 为 我 们 的 程 序 做 一 些 复 杂 的(通 常 是 辅 助 性 的)运 算 和 处 理 工 作,函 数 的 调 用 方 式 为:库 函 数 名(参 数 列 表)其 中 参 数 列 表 中 的 参 数 如 果 多 于 一 个,参 数 之 间 就 要 用 逗 号 隔 开.比 如 要 求 出 5.6 的 4次 方 是 多 少,就 要 调 用 库 函 数 pow(5.6,4);将 2 开 平 方,就 要 调 用 库 函 数:s q r t(2X调 用 库 函 数 时 千 万 不 要 忘 记
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新概念 语言 案例 教程 _
限制150内