文档详情

《程序设计和C语言》PPT课件

san****019
实名认证
店铺
PPTX
468KB
约58页
文档ID:21713178
《程序设计和C语言》PPT课件_第1页
1/58

C程 序 设 计 ( 第 四 版 ) 李 云 辉lyhyaya 地 位 作 用C语 言 是 一 种 应 用 广 泛 的 高 级 编 程 语 言 , 是 现 代 程 序 设 计语 言 的 母 语 言 之 一 该 语 言 是 计 算 机 专 业 、 数 计 专 业 、 数学 专 业 、 信 管 专 业 的 专 业 基 础 课 之 一 , 也 是 这 些 专 业 相 关后 续 课 程 的 基 础 教 学 目 的 建 立 基 本 的 计 算 机 程 序 设 计 概 念 体 系 , 初 步 掌 握 面 向过 程 的 结 构 化 程 序 设 计 思 想 、 方 法 和 技 术 掌 握 C语 言 的 基 本 语 法 、 程 序 结 构 ; 具 有 程 序 设 计 、 编 写 与 调 试 的 基 本 技 能 , 能 应 用 该 语言 解 决 简 单 的 计 算 及 算 法 问 题 3 基 本 要 求 1) 纪 律 : 按 时 、 准 时 、 课 堂 纪 律 2) 作 业 : 按 时 足 量 3) 上 机 : 课 前 准 备 、 不 做 其 他 无 关 事 方 法 要 求 1) 课 前 准 备 、 课 后 复 习 2) 编 程 实 现 任 何 代 码 段 和 练 习 3) 看 懂 书 上 的 内 容 , 不 懂 ? 提 问 、 email、 网 上 查 找 4) 务 必 要 自 己 动 手 编 程 、 调 试 、 运 行 5) 从 模 仿 、 照 抄 开 始 , 多 练 习入 门 谭 浩 强 C程 序 设 计 The C language programming 深 入 windows程 序 设 计 第 五 版 n 考 核u 总 评 成 绩 =平 时 作 业 +上 机 实 验 +期 末 考 核u 平 时 作 业 占 :u 上 机 实 验 考 核 :u 期 末 考 核 占 : 4以 下 情 况 不 允 许 参 加 期 末 考 试 : 未 交 作 业 达 到 总 量 的 1/3者 ; 缺 课 超 过 1/3者 ; 实 验 成 绩 不 合 格 者 ; 学 习 推 荐 : 谭 浩 强 C程 序 设 计 入 门 The C language programming C语 言 解 析 教 程 良 好 的 编 写 风 格 C语 言 深 度 剖 析 windows程 序 设 计 第 五 版 深 入 5 1.1 什 么 是 计 算 机 程 序1.2 什 么 是 计 算 机 语 言1.3 C语 言 的 发 展 及 其 特 点 ( 自 学 )1.4 最 简 单 的 C语 言 程 序1.5 运 行 C程 序 的 步 骤 与 方 法1.6 程 序 设 计 的 任 务 1.1 什么是计算机程序程 序 : 一 组 计 算 机 能 识 别 和 执 行 的 指 令只 要 让 计 算 机 执 行 这 个 程 序 , 计 算 机 就会 自 动 地 、 有 条 不 紊 地 进 行 工 作计 算 机 的 一 切 操 作 都 是 由 程 序 控 制 的 ,离 开 程 序 , 计 算 机 将 一 事 无 成 1.2 什么是计算机语言计 算 机 语 言 : 人 和 计 算 机 交 流 信 息 的 、计 算 机 和 人 都 能 识 别 的 语 言 。

计算机语言程序 1.2 什么是计算机语言:u机 器 语 言 ( 由 0和 1组 成 的 指 令 )u符 号 语 言 ( 用 英 文 字 母 和 数 字 表 示 指 令 )u高 级 语 言 ( 接 近 于 人 的 自 然 语 言 和 数 学 语 言 )l面 向 过 程 的 语 言 ( 非 结 构 化 的 语 言 、 结 构 化 语 言 )l面 向 对 象 的 语 言 低 级 语 言 1.3 C语言的发展及其特点C语 言 是 国 际 上 广 泛 流 行 的 计 算 机 高 级语 言 C语 言 的 发 展 :BCPL语 言 B语 言 C语 言精 练 、 接 近 硬 件 , 但过 于 简 单 , 无 数 据 类 型 具 有 多 种 数 据 类 型 1.3 C语言的发展及其特点最 初 的 C语 言 只 是 为 描 述 和 实 现 UNIX操 作 系 统 提 供 一 种 工 作 语 言 而 设 计 的 1.3 C语言的发展及其特点1983年 , 美 国 国 家 标 准 协 会 (ANSI)成 立 了 一 个 委 员 会 , 根 据 C语 言 问 世 以来 各 种 版 本 对 C语 言 的 发 展 和 扩 充 , 制定 了 第 一 个 C语 言 标 准 草 案 (83 ANSI C)。

1.3 C语言的发展及其特点1989年 , ANSI公 布 了 一 个 完 整 的 C语 言 标 准 ANSI X3.159-1989(常称 ANSI C, 或 C89) 1.3 C语言的发展及其特点1990年 , 国 际 标 准 化 组 织ISO(International Standard Organization) 接 受 C89作 为 国 际 标准 ISO/IEC 9899:1990, 它 和ANSI的 C89基 本 上 是 相 同 的 1.3 C语言的发展及其特点1995年 , ISO对 C90作 了 一 些 修 订 ,1999年 , ISO又 对 C语 言 标 准 进 行 修订 , 在 基 本 保 留 原 来 的 C语 言 特 征 的 基础 上 , 针 对 应 用 的 需 要 , 增 加 了 一 些 功能 , 尤 其 是 C+中 的 一 些 功 能 , 命 名为 ISO/IEC 9899:1999 1.3 C语言的发展及其特点2001、 2004年 先 后 进 行 了 两 次 技 术 修正 ( TC1和 TC2) ISO/IEC 9899:1999(及 其 技 术 修 正 )被 称 为 C99。

C99是 C89(及 1995基 准 增 补 1)的 扩充 1.3 C语言的发展及其特点本 书 的 叙 述 以 C99标 准 为 依 据 ( 对 C99新 增 加 的 功 能 作 特 别 的 说 明 ) 目 前 不 同 软 件 公 司 提 供 的 各 C语 言 编 译系 统 多 数 并 未 完 全 实 现 C99建 议 的 功 能本 书 中 程 序 基 本 上 都 可 以 在 目 前 所 用 的编 译 系 统 (如 VC+ 6.0, Turbo C+ 3.0,GCC)上 编 译 和 运 行 1.3 C语言的发展及其特点C语 言 是 一 种 用 途 广 泛 、 功 能 强 大 、 使用 灵 活 的 过 程 性 (procedural)编 程 语言 , 既 可 用 于 编 写 应 用 软 件 , 又 能 用 于编 写 系 统 软 件 因 此 C语 言 问 世 以 后 得到 迅 速 推 广 1.3 C语言的发展及其特点C语 言 主 要 特 点 :u语 言 简 洁 、 紧 凑 , 使 用 方 便 、 灵 活 l只 有 37个 关 键 字 、 9种 控 制 语 句l程 序 书 写 形 式 自 由 , 源 程 序 短 1.3 C语言的发展及其特点C语 言 主 要 特 点 :u运 算 符 丰 富 。

l有 34种 运 算 符l把 括 号 、 赋 值 、 强 制 类 型 转 换 等 都 作 为运 算 符 处 理l表 达 式 类 型 多 样 化 1.3 C语言的发展及其特点C语 言 主 要 特 点 :u数 据 类 型 丰 富 l包 括 :整 型 、 浮 点 型 、 字 符 型 、 数 组 类 型 、指 针 类 型 、 结 构 体 类 型 、 共 用 体 类 型lC99又 扩 充 了 复 数 浮 点 类 型 、 超 长 整 型(long long)、 布 尔 类 型 (bool)l指 针 类 型 数 据 , 能 用 来 实 现 各 种 复 杂 的 数 据结 构 (如 链 表 、 树 、 栈 等 )的 运 算 1.3 C语言的发展及其特点C语 言 主 要 特 点 :u具 有 结 构 化 的 控 制 语 句l如 ifelse语 句 、 while语 句 、dowhile语 句 、 switch语 句 、 for语 句l用 函 数 作 为 程 序 的 模 块 单 位 , 便 于 实 现程 序 的 模 块 化lC语 言 是 完 全 模 块 化 和 结 构 化 的 语 言 1.3 C语言的发展及其特点C语 言 主 要 特 点 :u语 法 限 制 不 太 严 格 , 程 序 设 计 自 由 度 大 。

l对 数 组 下 标 越 界 不 做 检 查l对 变 量 的 类 型 使 用 比 较 灵 活 , 例 如 , 整型 量 与 字 符 型 数 据 可 以 通 用lC语 言 允 许 程 序 编 写 者 有 较 大 的 自 由 度 ,因 此 放 宽 了 语 法 检 查 1.3 C语言的发展及其特点C语 言 主 要 特 点 :u允 许 直 接 访 问 物 理 地 址 , 能 进 行 位 操 作 ,可 以 直 接 对 硬 件 进 行 操 作lC语 言 具 有 高 级 语 言 的 功 能 和 低 级 语 言的 许 多 功 能 , 可 用 来 编 写 系 统 软 件l这 种 双 重 性 , 使 它 既 是 成 功 的 系 统 描 述语 言 , 又 是 通 用 的 程 序 设 计 语 言 1.3 C语言的发展及其特点C语 言 主 要 特 点 :u用 C语 言 编 写 的 程 序 可 移 植 性 好 lC的 编 译 系 统 简 洁 , 很 容 易 移 植 到 新 系 统l在 新 系 统 上 运 行 时 , 可 直 接 编 译 “ 标 准 链 接库 ” 中 的 大 部 分 功 能 , 不 需 要 修 改 源 代 码l几 乎 所 有 计 算 机 系 统 都 可 以 使 用 C语 言 1.3 C语言的发展及其特点C语 言 主 要 特 点 :u生 成 目 标 代 码 质 量 高 , 程 序 执 行 效 率 高 。

1.4最简单的C语言程序1.4.1 最 简 单 的 C语 言 程 序 举 例1.4.2 C语 言 程 序 的 结 构 1.4.1 最简单的C语言程序举例例 1.1 要 求 在 屏 幕 上 输 出 以 下 一 行 信 息 This is a C program.解 题 思 路 : 在 主 函 数 中 用 printf函 数 原 样 输 出 以上 文 字 1.4.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 函 数 的 名 字 , 表 示 主 函 数C程 序 必 须 有 一 个 main 函 数 1.4.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 主 函 数 类 型 1.4.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 函 数 体 1.4.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 输 出 函 数 输 出 语 句 1.4.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 输 出 语 句 1.4.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 换 行 符 1.4.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 当 main函 数 执 行 结 束 前将 整 数 0作 为 函 数 值 1.4.1 最简单的C语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 表 示 语 句 结 束用 到 函 数 库 中 的 输 入 输 出 函 数 时 1.4.1 最简单的C语言程序举例C语 言 允 许 用 两 种 注 释 方 式 :/: 单 行 注 释u可 单 独 占 一 行u可 出 现 在 一 行 中 其 他 内 容 的 右 侧/*/: 块 式 注 释u可 包 含 多 行 例 1.2 求 两 个 整 数 之 和 。

解 题 思 路 :u设 置 3个 变 量 :l a和 b用 来 存 放 两 个 整 数l sum用 来 存 放 和 数u用 赋 值 运 算 符 “ =” 把 结 果 传 送 给 sum #include int main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf(”sum is %dn”,sum); return 0; /定 义 整 型 变 量 a,b,sum/对 变 量 a,b赋 值/将 a与 b的 和 赋 给 sum #include int main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf(”sum is %dn”,sum); return 0; 用 sum的 值 替 代希 望 输 出 的 字 符 例 1.3求 两 个 整 数 中 的 较 大 者 解 题 思 路 :u用 一 个 函 数 实 现 求 两 个 整 数 中 的 较 大 者u在 主 函 数 中 调 用 此 函 数 并 输 出 结 果 #include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”, c = max(a,b); printf(max=%dn,c); return 0; /求 整 数 x, y中 的 较 大 者int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);主 函 数 max函 数 #include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”, c = max(a,b); printf(max=%dn,c); return 0; int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);将 x和 y中 较 大 者值 返 回 给 主 函 数 #include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”, c = max(a,b); printf(max=%dn,c); return 0; int max(int x,int y) int z; if (x y) z = x; else z = y; return(z); #include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”, c = max(a,b); printf(max=%dn,c); return 0;/max函 数 定 义 int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);因 max函 数 的 定 义 在 main函 数 之 后 , 需 声 明 #include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”, c = max(a,b); printf(max=%dn,c); return 0; int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);输 入 函 数 #include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”, c = max(a,b); printf(max=%dn,c); return 0; int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);输 入 语 句 #include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”, c = max(a,b); printf(max=%dn,c); return 0; int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);输 入 的 数 据放 到 a,b中输 入 格 式 a的 地 址 #include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”, c = max(a,b); printf(max=%dn,c); return 0; int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);调 用 max函 数 #include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”, c = max(a,b); printf(max=%dn,c); return 0; int max(int x,int y) int z; if (x y) z = x; else z = y; return(z); 8 588 #include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”, c = max(a,b); printf(max=%dn,c); return 0; int max(int x,int y) int z; if (x y) z = x; else z = y; return(z); 8 588 #include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”, c = max(a,b); printf(max=%dn,c); return 0; int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);实 际 参 数 形 式 参 数 1.4.2 C语 言 程 序 的 结 构(1) C程 序 是 由 函 数 构 成 的 。

这 使 得 程 序 容 易 实 现模 块 化 (2) 一 个 函 数 由 两 部 分 组 成 : 函 数 的 首 部 : 例 1.3中 的 max函 数 首 部 int max(int x,int y ) 函 数 体 : 花 括 号 内 的 部 分 若 一 个 函 数 有 多 个 花括 号 ,则 最 外 层 的 一 对 花 括 号 为 函 数 体 的 范 围 函 数 体 包 括 两 部 分 :声 明 部 分 : int a,b,c; 可 缺 省执 行 部 分 : 由 若 干 个 语 句 组 成 可 缺 省 1.4.2 C语 言 程 序 的 结 构函 数 的 声 明 部 分 和 执 行 部 分 都 可 缺 省 , 例 如 :void dump ( ) 这 是 一 个 空 函 数 ,什 么 也 不 做 ,但 是 合 法 的 函 数 1.4.2 C语 言 程 序 的 结 构小 结 :(3) C程 序 总 是 从 main函 数 开 始 执 行 的 ,与 main函 数的 位 置 无 关 4) C程 序 书 写 格 式 自 由 ,一 行 内 可 以 写 几 个 语 句 , 一 个 语 句 可 以 分 写 在 多 行 上 , C程 序 没 有 行 号 。

5) 每 个 语 句 和 数 据 声 明 的 最 后 必 须 有 一 个 分 号 6) C语 言 本 身 没 有 输 入 输 出 语 句 输 入 和 输 出 的 操作 是 由 库 函 数 scanf和 printf等 函 数 来 完 成 的 C对输 入 输 出 实 行 “ 函 数 化 ” 1.5 运行C程序的步骤与方法1.上 机 输 入 和 编 辑 源 程 序 ( .c文 件 )2.对 源 程 序 进 行 编 译 ( .obj文 件 )3.进 行 连 接 处 理 ( .exe文 件 )4.运 行 可 执 行 程 序 , 得 到 运 行 结 果说 明 : 以 上 过 程 参 见 教 材 中 图 1.2 附 录 A中 有 Visual C+ 6.0中 编 辑 、 编 译 、 连 接 和 运 行 C程 序 的 方 法 1.6 程序设计的任务l 什 么 是 程 序 设 计 确 定 任 务 得 到 结 果 写 出 文 档l 程 序 设 计 的 过 程1.问 题 分析对 于 具 体 的任 务 要 进 行认 真 的 分 析研 究 所 给 定 的 条 件分 析 最 后 应达 到 的 目 标找 出 解 决 问题 的 规 律选 择 解 题 的方 法 2.设 计 算法设 计 出 解 题的 方 法 和 具体 步 骤 3.编 写 程序源 程 序 。

C语 言 源 程 序是 以 “ .c”为 后 缀 名 的程 序 4.编 辑 、编 译 和 连接 5.运 行 程序 、 分 析结 果结 果 错 了 ,程 序 肯 定 错结 果 对 了 ,程 序 未 必 对 测 试 6.编 写 程序 文 档 学 好 计 算 机 的 唯 一 途 径 是 你 的 编 程 能 力 与 你 在 计 算 机 上 投 入 的 时 间 成 58 。

下载提示
相关文档
正为您匹配相似的精品文档