《《C程序設(shè)計(jì)》PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C程序設(shè)計(jì)》PPT課件(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 19:35:42教 材 、 參 考 書(shū) 與 課 時(shí) 安 排 教 材C高 級(jí) 實(shí) 用 程 序 設(shè) 計(jì) 王 士 元 清 華 大 學(xué) 出 版 社C程 序 設(shè) 計(jì) 譚 浩 強(qiáng) 編 著 清 華 大 學(xué) 出 版 社 參 考 書(shū)C語(yǔ) 言 程 序 設(shè) 計(jì) 教 程 譚 浩 強(qiáng) 高 等 教 育 出 版 社 課 時(shí) 安 排授 課 : 58學(xué) 時(shí)C綜 合 編 程 訓(xùn) 練 : 18學(xué) 時(shí) 19:35:42課程要求 課 前 請(qǐng) 做 好 預(yù) 習(xí)保 持 課 堂 安 靜 , 頭 腦 清 醒 , 思 維 活 躍認(rèn) 真 、 獨(dú) 立 、 按 時(shí) 完 成 并 提 交 作 業(yè)重 視 上 機(jī) 實(shí) 踐 , 有 效 利 用 寶 貴 的 上
2、機(jī) 時(shí) 間 19:35:42第一章 C 語(yǔ) 言概述 C語(yǔ) 言 出 現(xiàn) 的 歷 史 背 景 C語(yǔ) 言 的 特 點(diǎn) 簡(jiǎn) 單 的 C程 序 介 紹 C程 序 的 上 機(jī) 步 驟 習(xí) 題 19:35:42 以 前 的 操 作 系 統(tǒng) 等 系 統(tǒng) 軟 件 主 要 是 用 匯 編 語(yǔ) 言編 寫(xiě) 的 。 由 于 匯 編 語(yǔ) 言 依 賴(lài) 于 計(jì) 算 機(jī) 硬 件 , 程 序的 可 讀 性 和 可 移 植 性 都 比 較 差 。 為 了 提 高 可 讀 性和 可 移 植 性 , 最 好 改 用 高 級(jí) 語(yǔ) 言 , 但 是 一 般 高 級(jí)語(yǔ) 言 難 以 實(shí) 現(xiàn) 匯 編 語(yǔ) 言 的 某 些 功 能 。 人 們 設(shè) 想
3、 能否 找 到 一 種 既 具 有 一 般 高 級(jí) 語(yǔ) 言 特 性 , 又 具 有 低級(jí) 語(yǔ) 言 特 性 的 語(yǔ) 言 。 于 是 , 介 于 高 級(jí) 語(yǔ) 言 和 低 級(jí)語(yǔ) 言 之 間 的 c程 序 設(shè) 計(jì) 語(yǔ) 言 ( 簡(jiǎn) 稱(chēng) c語(yǔ) 言 ) 就 在 迅速 發(fā) 展 起 來(lái) 。 它 適 合 于 作 為 系 統(tǒng) 描 述 語(yǔ) 言 , 既 可 以 用 來(lái) 寫(xiě) 系 統(tǒng)軟 件 , 也 可 用 來(lái) 寫(xiě) 應(yīng) 用 軟 件 。 1.匯 編 語(yǔ) 言 的 可 讀 性 和 可 移 植 性 都 比 較 差 。2.高 級(jí) 語(yǔ) 言 無(wú) 法 對(duì) 硬 件 進(jìn) 行 直 接 操 作 。C 語(yǔ)言出現(xiàn)的歷史背景 19:35:42 C不 僅
4、僅 是 系 統(tǒng) 描 述 語(yǔ) 言 , 而 且 是 一 種 通 用 的 程序 設(shè) 計(jì) 語(yǔ) 言 , C出 現(xiàn) 于 1972年 至 1973年 間 , 是 BCPL語(yǔ) 言 和B語(yǔ) 言 的 后 繼 , 故 命 名 為 C。 ALGOL 60( 1960年 ) | CPL( 1963年 )( 劍 橋 和 倫 敦 大 學(xué) ) |BCPL( 1967年 )( Martine Richards, 劍 橋 ) | B語(yǔ) 言 ( 1970年 )( Ken Thompson,貝 爾 實(shí) 驗(yàn) 室 ) | C語(yǔ) 言( Dennis Ritchie,貝 爾 實(shí) 驗(yàn) 室 ) ( 與 UNIX在 發(fā) 展 過(guò) 程 中 相 輔 相
5、 成 )C 語(yǔ)言的發(fā)展歷程 19:35:42 程 序 設(shè) 計(jì) 語(yǔ) 言 有 許 多 種 類(lèi) , 每 一 種 類(lèi) 都有 其 特 殊 功 能 和 其 應(yīng) 用 范 圍 。 C語(yǔ) 言 之 所 以成 為 當(dāng) 今 世 界 上 最 流 行 的 幾 種 語(yǔ) 言 之 一 ,其特 點(diǎn) 如 下 :1、 語(yǔ) 言 簡(jiǎn) 潔 、 緊 湊 , 使 用 方 便 、 靈 活 , 32種 關(guān) 鍵字 ( 附 錄 II) , 9 種 控 制 語(yǔ) 句 。2、 運(yùn) 算 符 豐 富 , 有 34 種 運(yùn) 算 符 ( 附 錄 III) 。3、 數(shù) 據(jù) 類(lèi) 型 豐 富 , 具 有 現(xiàn) 代 化 語(yǔ) 言 的 各 種 數(shù) 據(jù) 類(lèi)型 。4、 具 有 結(jié)
6、構(gòu) 化 的 控 制 語(yǔ) 句 ( 見(jiàn) 目 錄 ) , 用 函 數(shù) 實(shí)現(xiàn) 程 序 的 模 塊 化 , 標(biāo) 準(zhǔn) 函 數(shù) ( 附 錄 V) 。 C 語(yǔ) 言 的 特 點(diǎn)( 一 ) 19:35:425、 語(yǔ) 法 限 制 不 太 嚴(yán) 格 。6、 允 許 直 接 訪 問(wèn) 物 理 地 址 , 能 進(jìn) 行 位 操 作 , 能 實(shí)現(xiàn) 匯 編 語(yǔ) 言 的 大 部 分 功 能 , 可 以 直 接 對(duì) 硬 件 進(jìn) 行操 作 。7、 生 成 目 標(biāo) 代 碼 的 質(zhì) 量 高 , 程 序 執(zhí) 行 效 率 高 。8、 與 匯 編 語(yǔ) 言 相 比 , 用 編 寫(xiě) 的 程 序 可 移 植 性 好 。C 語(yǔ) 言 的 特 點(diǎn)( 二 )
7、19:35:42C 程序 的上 機(jī)步 驟 1.分 析 問(wèn) 題2.解 題 步 驟3.選 擇 語(yǔ) 言 工 具 編碼4.目 測(cè) 正 確 性5.上 機(jī) 輸 入 與 編 輯6.編 譯7.調(diào) 試8.與 庫(kù) 函 數(shù) 等 連 接9.運(yùn) 行*本 課 程 以 Turbo C 為 語(yǔ) 言 環(huán) 境 源 程 序exp1.c目 標(biāo) 程 序exp1.obj庫(kù) 函 數(shù)和 其 他 目標(biāo) 程 序 開(kāi) 始編 輯編 譯連 接執(zhí) 行有 錯(cuò)結(jié) 果 正 確 結(jié) 束可 執(zhí) 行目 標(biāo) 程 序exp1.exeY Y NN 19:35:42/*sample 1_1*/main() /*輸 出 字 符 串 */printf(“H ello!n”);
8、 /*輸 出 字 符 串 */ 簡(jiǎn) 單的 C程 序介 紹(一 ) 其 中 :1. main()表 示 “ 主 函 數(shù) ” , 每 一 個(gè) c程 序 都 必 須 有main函 數(shù) 函 數(shù) 體 由 括 起 來(lái) 。2. printf是 c語(yǔ) 言 中 的 輸 出 函 數(shù) , 雙 引 號(hào) 中 的 字 符 串原 樣 輸 出 。3. “ n”是 換 行 符 。4. 每 個(gè) 語(yǔ) 句 最 后 要 有 一 個(gè) 分 號(hào) ; 。 19:35:42/* Sample 1_2 */main() /*求 和 程 序 1*/int a,b,sum; /*定 義 變 量 2*/a=123;b=456; /*給 a, b分 別
9、賦 值 3*/sum=a+b; /*求 出 a和 b的 和 , 把 和 放 在 變 sum中 4*/printf(“sum is %dn”,sum); /*輸 出 結(jié) 果 5*/ /*6*/簡(jiǎn) 單的 C程 序介 紹(二 )1. 本 程 序 的 作 用 是 求 兩 個(gè) 整 數(shù) a和 b之 和 sum。/*/表 示 注 釋 部 分 , 起 說(shuō) 明 的 作 用 , 不 影 響 編譯 和 運(yùn) 行 。 注 釋 可 以 加 在 程 序 的 任 何 位 置 。2. 第 2行 是 聲 明 部 分 , 定 義 變 量 a和 b;3. 第 3行 是 兩 個(gè) 賦 值 語(yǔ) 句 ;4. 第 4行 是 求 和 ,并 保
10、存 值5. 第 5行 中 %d是 輸 入 輸 出 的 “ 格 式 字 符 串 ” , 用 來(lái)指 定 輸 入 輸 出 時(shí) 的 數(shù) 據(jù) 類(lèi) 型 和 格 式 。 ( 見(jiàn) 第 4章 ) 19:35:43簡(jiǎn) 單的 C程 序介 紹(三 ) /* Sample 1_3*/int max(int x,int y) /*max子 函 數(shù) */int z; if (xy) z=x; else z=y; return(z); /*返 回 值 放 在 z中 */main()int a,b,c; scanf(%d,%d, /*分 別 輸 入 數(shù) 到 a和 b中 */ c=max(a,b); /*調(diào) 用 子 函 數(shù) 求
11、出 最 大 數(shù) */ printf(max=%d,c); 19:35:431. 本 程 序 包 括 兩 個(gè) 函 數(shù) : 主 函 數(shù) main和 被 調(diào) 用的 函 數(shù) max。2. max函 數(shù) 的 主 要 功 能 是 將 x和 y中 的 較 大 者 的值 賦 給 變 量 z。3. return語(yǔ) 句 將 z的 值 返 回 給 主 調(diào) 函 數(shù) main。 返回 值 是 通 過(guò) max帶 回 到 調(diào) 用 處 。4. scanf是 “ 輸 入 函 數(shù) ” 的 名 字 。 19:35:43小結(jié)- C程序的結(jié)構(gòu) C程 序 的 組 成 和 形 式 簡(jiǎn) 單 總 結(jié) 如 下 :1、 C程 序 由 函 數(shù) 構(gòu)
12、成 : 一 個(gè) 程 序 至 少 包 含 一 個(gè) 函數(shù) , 是 函 數(shù) 式 的 語(yǔ) 言 , 其 函 數(shù) 庫(kù) 非 常 豐 富 。 容 易實(shí) 現(xiàn) 程 序 的 模 塊 化 。2、 函 數(shù) 由 兩 部 分 組 成 : 函 數(shù) 的 說(shuō) 明 部 分 -包 括 函 數(shù) 名 、 類(lèi) 型 、 形參 名 、 形 參 類(lèi) 型 等 。 函 數(shù) 名 后 必 須 跟 一 對(duì) 圓 括 函數(shù) 參 數(shù) 可 以 沒(méi) 有 。 函 數(shù) 體 -即 最 外 層 大 括 號(hào) 括 起 的 部 分 。 19:35:43函 數(shù) 體 一 般 包 括 : 變 量 定 義 : 定 義 所 要 使 用 的 變 量 的 類(lèi) 型 等 。 執(zhí) 行 部 分 :
13、由 若 干 語(yǔ) 句 組 成 。 *允 許 沒(méi) 有 變 量 定 義 部 分 , 甚 至 允 許 沒(méi) 有 執(zhí) 行 部 分 , 即 一 個(gè) 空 函 數(shù) 。 如 : kong( ) 19:35:43小 結(jié)- C 程序 的結(jié) 構(gòu) 3、 在 一 個(gè) 函 數(shù) 中 可 以 調(diào) 用 其 他 的 函 數(shù) 。4、 總 是 從 main函 數(shù) 開(kāi) 始 執(zhí) 行 。5、 書(shū) 寫(xiě) 格 式 自 由 。6、 每 個(gè) 語(yǔ) 句 和 數(shù) 據(jù) 定 義 的 后 面 必 須 有 一 個(gè)分 號(hào) 。7、 對(duì) 輸 入 輸 出 實(shí) 行 函 數(shù) 化 。8、 可 以 用 /* */形 式 作 注 釋 。 19:35:43注 :1. main表 示 主
14、 函 數(shù)2. 每 個(gè) C程 序 都 必 須 有 main函 數(shù)3. 大 括 號(hào) 表 示 函 數(shù) 體 的 開(kāi) 始 和 結(jié) 束4. 分 號(hào) 表 示 語(yǔ) 句 的 結(jié) 束5. 一 行 可 以 寫(xiě) 一 個(gè) 語(yǔ) 句 或 幾 個(gè) 語(yǔ) 句6. C語(yǔ) 言 本 身 沒(méi) 有 輸 入 輸 出 語(yǔ) 句 , 而 是 調(diào) 用 庫(kù) 函數(shù) 來(lái) 實(shí) 現(xiàn) 數(shù) 據(jù) 的 輸 入 輸 出7. 可 以 用 /* */形 式 作 注 釋 。 19:35:43習(xí)題 (1) 一 、 選 擇 題 . 一 個(gè) c程 序 的 執(zhí) 行 是 從 ( )A. 本 程 序 的 main函 數(shù) 開(kāi) 始 到 main函 數(shù) 結(jié) 束B(niǎo). 本 程 序 的 第 一 個(gè)
15、 函 數(shù) 開(kāi) 始 到 本 程 序 的 最 后 一 個(gè) 函 數(shù)結(jié) 束C. 本 程 序 的 main函 數(shù) 開(kāi) 始 到 本 程 序 的 最 后 一 個(gè) 函 數(shù) 結(jié)束D. 本 程 序 的 第 一 個(gè) 函 數(shù) 開(kāi) 始 到 main函 數(shù) 結(jié) 束 .以 下 敘 述 正 確 的 是 ( )A. 在 c程 序 中 , main函 數(shù) 必 須 位 于 程 序 的 最 前 頭B. C程 序 的 每 行 中 只 能 寫(xiě) 一 條 語(yǔ) 句C. C語(yǔ) 言 本 身 沒(méi) 有 輸 入 輸 出 語(yǔ) 句D. 在 對(duì) 一 個(gè) c程 序 進(jìn) 行 編 譯 的 過(guò) 程 中 , 可 發(fā) 現(xiàn) 注 釋 中 的 拼 寫(xiě) 錯(cuò) 誤 AC 19:35
16、:433、 以 下 敘 述 不 正 確 的 是 ( )A、 一 個(gè) c源 程 序 可 由 一 個(gè) 或 者 多 個(gè) 函 數(shù) 組 成B、 一 個(gè) c源 程 序 必 須 包 含 一 個(gè) main函 數(shù)C、 C程 序 的 基 本 組 成 單 位 是 函 數(shù)D、 在 c程 序 中 , 注 釋 說(shuō) 明 只 能 位 于 一 條 語(yǔ) 句 的 后 面4、 c語(yǔ) 言 規(guī) 定 : 在 一 個(gè) 源 程 序 中 , main函 數(shù) 的 位 置 ( )A. 必 須 在 最 開(kāi) 始B. 必 須 在 系 統(tǒng) 調(diào) 用 的 庫(kù) 函 數(shù) 的 后 面C. 可 以 任 意D. 必 須 在 最 后 DC 19:35:43 返 回習(xí) 題
17、( 2) 5. 一 個(gè) c語(yǔ) 言 程 序 是 由 ( )A. 一 個(gè) 主 程 序 和 若 干 子 程 序 組 成B. 函 數(shù) 組 成C. 若 干 過(guò) 程 組 成D. 若 干 子 程 序 組 成二 、 填 空 題1. C源 程 序 的 基 本 單 位 是 ( )2. 一 個(gè) c程 序 中 至 少 包 含 一 個(gè) ( )3. 在 一 個(gè) c源 程 序 中 , 注 釋 部 分 兩 側(cè) 的 分 界 符 分 別為 ( ) 和 ( )4. 在 c語(yǔ) 言 中 , 輸 入 操 作 是 由 庫(kù) 函 數(shù) ( )完 成 的 , 輸 出 操 作 是 由 庫(kù) 函 數(shù) ( ) 完 成 的B函 數(shù) 主 函 數(shù) 或 main函 數(shù) /* */ printf scanf