《C語(yǔ)言程序設(shè)計(jì)第四版譚浩強(qiáng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言程序設(shè)計(jì)第四版譚浩強(qiáng)(50頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、上 周 實(shí) 驗(yàn) 題 講 解uP.6例 1.1uP15習(xí) 題 5u教 材 例 1.3 增 加 輸 入 提 示 , 便 于 用 戶 操 作 也 可 以 不 用 函 數(shù) 多 次 運(yùn) 行 , 測(cè) 試 各 種 順 序 的 組 合uP15習(xí) 題 6 三 個(gè) 數(shù) 比 較 : 用 max函 數(shù) 比 較 兩 次 第 3章 順 序 程 序 設(shè) 計(jì) 3.1 最 簡(jiǎn) 單 的 程 序 結(jié) 構(gòu) 順 序 結(jié) 構(gòu)數(shù) 據(jù) 輸 入 運(yùn) 算 處 理 結(jié) 果 輸 出 順 序 結(jié) 構(gòu) 流 程 步 驟 1步 驟 2步 驟 3 閱 讀 順 序 結(jié) 構(gòu) 實(shí) 例P.37-38例 3.1u為 什 么 要 寫 5.0/9 而 不 是 5/9?u
2、f 的 值 可 否 由 用 戶 輸 入 ?本 章 要 點(diǎn) : 數(shù) 據(jù) 的 類 型 及 運(yùn) 算 輸 入 與 輸 出 3.2 C語(yǔ) 言 的 數(shù) 據(jù) 及 運(yùn) 算 數(shù) 據(jù) 有 類 型 (type), 有 具 體 的 值 (value)。 不 同 類 型 的 數(shù) 據(jù) 存 儲(chǔ) 格 式 不 同 , 能 夠 進(jìn) 行的 運(yùn) 算 也 不 同 。 數(shù) 據(jù) 的 形 式 有 常 量 , 變 量 , 表 達(dá) 式 。 常 量 (Constant)運(yùn) 行 過(guò) 程 中 值 不 改 變 的 量 ( 類 型 也 不 變 )直 接 常 量u整 型 常 量 : 1246u實(shí) 型 常 量 : 45.96 -2.78e8u字 符 常 量
3、: A n( 轉(zhuǎn) 義 字 符 )u字 符 串 常 量 Hello World 常 量 (Constant)符 號(hào) 常 量#define PI 3.14159l不 占 內(nèi) 存 單 元l不 可 賦 值l不 指 定 類 型l名 稱 通 常 大 寫 l使 用 符 號(hào) 常 量 的 好 處 P.41運(yùn) 行 過(guò) 程 中 值 不 改 變 的 量 ( 類 型 也 不 變 ) 變 量 (Variable)用 于 存 放 數(shù) 據(jù) 的 一 個(gè) 存 儲(chǔ) 單 元存 放 的 數(shù) 據(jù) 即 變 量 值變 量 名 是 存 儲(chǔ) 單 元 地 址 的 一 個(gè) 名 稱先 定 義 , 后 使 用 int a,b;定 義 時(shí) 指 定 變 量
4、 類 型 編 譯 時(shí) 分配 存 儲(chǔ) 空 間命 名 規(guī) 則 標(biāo) 識(shí) 符 的 命 名 規(guī) 則 標(biāo) 識(shí) 符 (identifier) 標(biāo) 識(shí) 一 個(gè) 對(duì) 象 ( 變 量 、 符 號(hào) 常 量 、函 數(shù) 、 數(shù) 組 、 類 型 等 ) 的 名 稱關(guān) 鍵 字 不 可 作 為 標(biāo) 識(shí) 符 (附 錄 C)系 統(tǒng) 預(yù) 定 義 的 標(biāo) 識(shí) 符 如 庫(kù) 函 數(shù) 名( 附 錄 F) 建 議 不 要 再 定 義 , 以 免 混淆 標(biāo) 識(shí) 符 命 名 規(guī) 則u只 包 括 字 母 、 數(shù) 字 、 下 劃 線 , 以 字母 或 下 劃 線 開 頭u區(qū) 分 大 小 寫 習(xí) 慣 上 變 量 名 小 寫 ,常 量 名 大 寫u長(zhǎng)
5、度 規(guī) 定 各 編 譯 系 統(tǒng) 不 同u命 名 的 良 好 習(xí) 慣 “見 名 知 義 ” 常 變 量C99新 增存 儲(chǔ) 方 式 和 用 法 都 是 變 量 , 但 只 能 在定 義 時(shí) 賦 值 一 次 C語(yǔ) 言 的 數(shù) 據(jù) 類 型1.基 本 類 型 整 型 、 浮 點(diǎn) 型 、 字 符 型2.派 生 類 型 數(shù) 組 , 結(jié) 構(gòu) 體 , 共 用 體3.指 針 類 型4.空 類 型5.枚 舉 型 整 型 數(shù) 據(jù) (Integer) 整 型 常 量三 種 數(shù) 制 的 表 示 形 式u十 進(jìn) 制 (Decimal): 例 如 61u八 進(jìn) 制 (Octal): 例 如 075u十 六 進(jìn) 制 (Hexa
6、decimal): 例 如 0 x3D 整 型 數(shù) 據(jù) (Integer) 整 型 常 量 的 類 型 確 定根 據(jù) 其 值 的 范 圍 自 動(dòng) 確 定 類 型 ( P51)可 賦 值 給 能 夠 容 納 其 值 的 各 種 整 型 變 量整 常 量 后 加 l或 L視 為 long int VC+中 int就 是 long int整 常 量 后 加 u或 U視 為 unsigned int 整 型 數(shù) 據(jù) (Integer) 整 型 變 量根 據(jù) 占 用 內(nèi) 存 字 節(jié) 數(shù) 分 類 (P.45表 3.2)u基 本 整 型 int( 長(zhǎng) 整 型 或 短 整 型 )u短 整 型 short in
7、tu長(zhǎng) 整 型 long intu無(wú) 符 號(hào) 整 型 unsigned int在 不 同 編 譯 系 統(tǒng) 中 分 配 存 儲(chǔ) 字 節(jié) 數(shù) 各 不相 同 , 可 用 sizeof函 數(shù) 測(cè) 試?yán)?: printf(%d,sizeof(int); signed 浮 點(diǎn) 型 數(shù) 據(jù) (Floating point, 即 實(shí) 型 )浮 點(diǎn) 型 常 量?jī)?種 表 示 形 式u十 進(jìn) 制 小 數(shù) : 例 如 3.14159u指 數(shù) 形 式 : 例 如 1.72e3main( ) float x; x=23456.789; printf(x=%e,x); 2.345679e+004對(duì) 照 一 下 %f的 格
8、 式 浮 點(diǎn) 型 數(shù) 據(jù)浮 點(diǎn) 型 變 量u單 精 度 floatu雙 精 度 doubleu長(zhǎng) 雙 精 度 long double同 一 類 型 在 不 同 的 編 譯 系 統(tǒng) 中 分 配 存儲(chǔ) 字 節(jié) 數(shù) 各 不 相 同 , 可 用 sizeof函 數(shù)測(cè) 試 浮 點(diǎn) 型 常 量 的 類 型 確 定浮 點(diǎn) 型 常 量 默 認(rèn) 為 double類 型浮 點(diǎn) 型 常 量 后 加 f或 F視 為 float浮 點(diǎn) 型 數(shù) 據(jù) 的 有 效 范 圍 ( P.50-51) 練 習(xí) : 判 斷 下 面 程 序 的 運(yùn) 行 結(jié) 果int main() float a; a=12; printf(%d,a);
9、 格 式 符 與 數(shù) 據(jù)類 型 不 相 符 字 符 型 數(shù) 據(jù) (character)字 符 常 量u一 對(duì) 單 引 號(hào) (即 撇 號(hào) )括 起 的 一 個(gè) 字 符u用 八 進(jìn) 制 或 十 六 進(jìn) 制 數(shù) (ASCII碼 )表 示的 字 符 , 如 101和 x41 (P.40)u以 開 頭 的 控 制 字 符 (P.40表 3.1) 字 符 型 數(shù) 據(jù) (character)字 符 變 量u使 用 char定 義u保 存 一 個(gè) 字 符u占 用 1個(gè) 字 節(jié) 的 內(nèi) 存 空 間 字 符 數(shù) 據(jù) 的 存 儲(chǔ) 與 使 用u在 存 儲(chǔ) 單 元 中 保 存 字 符 的 ASCII碼u因 此 字 符
10、數(shù) 據(jù) 可 以 參 加 算 術(shù) 運(yùn) 算例 如 字 符 數(shù) 據(jù) 的 存 儲(chǔ) 與 使 用int main( ) char x, z; int y; x=65; printf(x=%cn,x+32); y=D; printf(y=%cn,y); printf(y=%dn,y); z=a-32; printf(z=%cn,z); 字 符 串 (string)概 念一 對(duì) 雙 引 號(hào) ()括 起 的 字 符 序 列字 符 串 長(zhǎng) 度 : 字 符 串 中 字 符 的 個(gè) 數(shù)空 串 : 長(zhǎng) 度 為 0的 字 符 串 ( 即 一 個(gè)字 符 都 沒(méi) 有 的 字 符 串 ) 表 示 為 字 符 串 (string
11、)存 儲(chǔ) 方 式C H I N A 0l由 5個(gè) 字 符 組 成 的 字 符 串 在 內(nèi) 存 中 占 用6個(gè) 字 節(jié) 存 儲(chǔ) 空 間字 符 串 結(jié) 束 符 , 占 一 個(gè) 字 節(jié) ,由 系 統(tǒng) 自 動(dòng) 加 上 , 源 代 碼 中不 寫CHINA 字 符 常 量 與 字 符 串 常 量 的 區(qū) 別字 符 常 量 字 符 串 常 量定 界 符 長(zhǎng) 度 1 非 負(fù) 整 數(shù)存 儲(chǔ) 要 求 單 個(gè) 字 符 的ASCII碼 有 效 字 符 和 結(jié) 束 標(biāo)志 0的 ASCII碼 注 意 :C語(yǔ) 言 只 有 字 符 變 量 , 沒(méi) 有 字 符串 變 量使 用 字 符 數(shù) 組 保 存 字 符 串 數(shù) 值 型 數(shù)
12、 據(jù) 的 混 合 運(yùn) 算u整 型 (int, short, long)、 浮 點(diǎn) 型 (float, double, long double)、 字 符 型 (char)數(shù) 據(jù) 可 混 合 運(yùn) 算u運(yùn) 算 前 先 自 動(dòng) 轉(zhuǎn) 換 成 同 一 類 型必 定 轉(zhuǎn) 換 floatdouble, charint運(yùn) 算 對(duì) 象 類 型 不 同 時(shí) 由 較 低 精 度 向 較 高精 度 轉(zhuǎn) 換 成 相 同 類 型 精 度 : int unsighed long double 數(shù) 值 型 數(shù) 據(jù) 的 混 合 運(yùn) 算練 習(xí) : 判 斷 下 面 表 達(dá) 式 的 值 10 + a 10.1 * b 運(yùn) 算 符 和
13、 表 達(dá) 式C語(yǔ) 言 的 運(yùn) 算 符 (P.56, Operator)算 術(shù) 運(yùn) 算 符 P.52關(guān) 系 運(yùn) 算 符 P.91邏 輯 運(yùn) 算 符 P.93位 運(yùn) 算 符 待 補(bǔ) 充賦 值 運(yùn) 算 符 P.60條 件 運(yùn) 算 符 P.97逗 號(hào) 運(yùn) 算 符 P.123 指 針 運(yùn) 算 符 Ch8.指 針求 字 節(jié) 數(shù) 運(yùn) 算 符強(qiáng) 制 類 型 轉(zhuǎn) 換 運(yùn) 算 符 P.56成 員 運(yùn) 算 符 Ch9.結(jié) 構(gòu) 體下 標(biāo) 運(yùn) 算 符 Ch6.數(shù) 組其 他詳 見 附 錄 D 算 術(shù) 運(yùn) 算 符 和 算 術(shù) 表 達(dá) 式基 本 算 術(shù) 運(yùn) 算 符+ -* / % (求 余 )練 習(xí) , 判 斷 算 術(shù) 表
14、達(dá) 式 的 值 5 / 3 5%3 5.1 / 3 5.1 % 3 算 術(shù) 運(yùn) 算 符 和 算 術(shù) 表 達(dá) 式自 增 、 自 減 運(yùn) 算 符使 變 量 值 加 1或 減 1 i+, i- 先 使 用 i值 再 使 i值 加 1(或 減 1) +i, -i 先 使 i值 加 1(或 減 1)再 使 用 i值 可 組 成 復(fù) 雜 的 形 式 , 但 建 議 不 要 濫 用 算 術(shù) 運(yùn) 算 符 和 算 術(shù) 表 達(dá) 式自 增 、 自 減 運(yùn) 算 符例 1main() int i, j; i=3; j=i+; printf(i=%d,j=%dn,i,j); i=4,j=3 算 術(shù) 運(yùn) 算 符 和 算 術(shù)
15、 表 達(dá) 式自 增 、 自 減 運(yùn) 算 符例 2main() int i,j; i=3; j=+i; printf(i=%d,j=%dn,i,j); i=4,j=4 算 術(shù) 運(yùn) 算 符 和 算 術(shù) 表 達(dá) 式運(yùn) 算 符 的 優(yōu) 先 級(jí) 和 結(jié) 合 性附 錄 D由 優(yōu) 先 級(jí) 別 決 定 運(yùn) 算 順 序不 同 的 運(yùn) 算 符 有 不 同 的 結(jié) 合 性 , 多為 從 左 向 右 ( 左 結(jié) 合 性 ) , 少 數(shù) 為從 右 向 左 ( 右 結(jié) 合 性 ) 算 術(shù) 運(yùn) 算 符 和 算 術(shù) 表 達(dá) 式強(qiáng) 制 類 型 轉(zhuǎn) 換 運(yùn) 算 符系 統(tǒng) 不 能 進(jìn) 行 自 動(dòng) 類 型 轉(zhuǎn) 換 時(shí) 可 使用 強(qiáng)
16、制 轉(zhuǎn) 換 (類 型 符 )變 量 (類 型 符 )(表 達(dá) 式 )例 (int)(12.1/2.5) (int)12.1/2.5 3.3 C語(yǔ) 句C程 序 的 構(gòu) 成 C程 序源 程 序 文 件 1 源 程 序 文 件 2 源 程 序 文 件 n預(yù) 處 理 命 令 全 局 變 量 聲 明 函 數(shù) 1 函 數(shù) n局 部 變 量 聲 明 執(zhí) 行 語(yǔ) 句 3.3 C語(yǔ) 句 (statement)C語(yǔ) 句 的 分 類 P.57-59控 制 語(yǔ) 句函 數(shù) 調(diào) 用 語(yǔ) 句表 達(dá) 式 語(yǔ) 句空 語(yǔ) 句復(fù) 合 語(yǔ) 句 賦 值 (Assignment)語(yǔ) 句賦 值 運(yùn) 算 符 a=3+2復(fù) 合 賦 值 運(yùn) 算
17、 符 a+=3 a=a+3自 右 向 左 結(jié) 合P.61 實(shí) 例 盡 量 讀 懂 , 但 建 議 不 要 采用 太 復(fù) 雜 的 寫 法賦 值 運(yùn) 算 符 和 賦 值 表 達(dá) 式 賦 值 語(yǔ) 句賦 值 中 的 類 型 轉(zhuǎn) 換賦 值 表 達(dá) 式 , 賦 值 語(yǔ) 句定 義 變 量 時(shí) 賦 初 值 初 始 化 (initialize) 數(shù) 據(jù) 輸 入 輸 出 的 概 念輸 入 (input): 輸 入 設(shè) 備 主 機(jī)輸 出 (output): 主 機(jī) 輸 出 設(shè) 備C語(yǔ) 言 的 輸 入 輸 出 由 函 數(shù) (function)實(shí) 現(xiàn)stdio.h 頭 文 件 包 含 標(biāo) 準(zhǔn) 輸 入 輸 出 庫(kù)函 數(shù)
18、printf(格 式 控 制 , 輸 出 表 列 )例 : printf(a=%d, b=%f n , a , b/2)普 通 字 符(原 樣 輸 出 ) 格 式 說(shuō) 明 輸 出 列 表常 量 、 變 量 、 表 達(dá)式格 式 輸 出 函 數(shù) printf printf 函 數(shù) 的 基 本 格 式 符 %d 或 %i 十 進(jìn) 制 整 數(shù) %c 字 符 ( 一 個(gè) 字 符 ) %s 字 符 串 %f 實(shí) 數(shù) ( 小 數(shù) 形 式 ) %e 實(shí) 數(shù) ( 指 數(shù) 形 式 )更 多 的 格 式 符 見 P.74 輸 入 函 數(shù) scanf scanf(格 式 控 制 , 地 址 表 列 )例 1: scanf(%d%f, 例 3. char x; x=x61; putchar(x);例 2. char x; x=a; putchar(x);注 : 也 可 以 是 整 型 變 量 字 符 數(shù) 據(jù) 的 輸 入 輸 出getchar() 輸 入 一 個(gè) 字 符例 : char x; int y; x=getchar(); y=getchar(); putchar(x); putchar(y);注 意 : 空 格 、 回 車 等 都 是 字 符