![]() ![]() |
C語言程序設計(第四版) ![]()
C語言是程序員的入門語言,也是許多大學為學生安排的第一門程序設計課程。本書充分考慮到這一點,在內(nèi)容的編排上盡量符合初學者的要求,在實例的選擇上從易到難,循序漸進,并且能夠解決一些實際問題。本書主要內(nèi)容包括:C語言概述、C語言的基本知識、順序和選擇結(jié)構(gòu)程序設計、循環(huán)結(jié)構(gòu)程序設計、函數(shù)、數(shù)組、指針、結(jié)構(gòu)體等構(gòu)造數(shù)據(jù)類型、文件和綜合案例。
該書定位準確,選材恰當,概念清晣,深入淺出,例題豐富,容易學習,在第三版的基礎上,根據(jù)教學實踐又作了調(diào)整修改,使之更切合教學的需要。是一本適合于高校計算機基礎教育的比較好的C教材。
本書延續(xù)了前三版的特點,并在此基礎上對所講解的內(nèi)容做了適當修訂,以適合第一次學習 程序設計者的需求。 主要的修訂內(nèi)容包括: (1)選用了一些新的案例。這些案例不但更適合初學者,也更有實際意義。例如,有關人的 姓名在計算機內(nèi)的存儲。 (2)教學內(nèi)容的先后做了部分調(diào)整。尤其是第 2 章,因為該章的內(nèi)容比較煩瑣,學生也覺得 枯燥,重新調(diào)整后更利于教學,教師在使用時也可以根據(jù)情況增刪該部分內(nèi)容。第 6 章將二維數(shù) 組放到了最后,將字符數(shù)組和字符串的內(nèi)容提前了。 (3)增加了第 10 章綜合案例。盡管前 9 章的一些案例隨著教學進程不斷豐富,已經(jīng)比較復 雜,但是筆者還是認為不夠,為了讓學生學到更多的程序設計案例,增加了第 10 章,希望對大 家有更大的幫助。 (4)將大部分程序的架構(gòu)改為 int main() { … return 0; } 習題中加*號的表示老師可以留作業(yè),習題解答中未給出答案。 本書能夠多次再版,要感謝所有使用本書作為教材和學習參考書的教師和讀者,同時再次殷 切希望讀者對本書的內(nèi)容和編寫方法提出寶貴的意見和建議。 由于編者水平有限,疏漏與不妥之處在所難免,敬請廣大讀者批評指正。 編 者
林小茶 北京信息科技大學 信息管理學院 副教授 多年來一直從事程設計類課程的教學工作,有豐富的教學經(jīng)驗;出版了多本有關程序設計的教材,并有多本教材入選國家十一五規(guī)劃教材、北京市精品教材以及*精品教材。
第1章C語言概述.............................. 1 1.1 程序與程序設計語言 .................... 1 1.1.1 程序 .................................... 1 1.1.2 程序設計語言..................... 2 1.2 C 語言發(fā)展歷史和主要特點.......... 3 1.2.1 C 語言的發(fā)展歷史.............. 3 1.2.2 C 語言的主要特點.............. 4 1.3 C 語言的基本結(jié)構(gòu)......................... 4 1.3.1 第一個程序......................... 5 1.3.2 第二個程序......................... 5 1.3.3 printf()使用初步.................. 6 1.3.4 第三個程序......................... 7 1.4 程序的調(diào)試.................................... 7 1.4.1 調(diào)試步驟 ............................ 7 1.4.2 在 Visual Studio 2010 調(diào)試 環(huán)境下調(diào)試第一個程序...... 8 小結(jié).......................................................12 習題.......................................................12 第2章C語言的基本知識.................. 13 2.1 變量 ..............................................13 2.2 常量 ..............................................15 2.3 C 語言的數(shù)據(jù)類型........................16 2.3.1 為什么要討論數(shù)據(jù)類型.....16 2.3.2 C 語言有哪些數(shù)據(jù)類型 .....17 2.3.3 基本數(shù)據(jù)類型....................17 2.4 不同數(shù)據(jù)類型的變量說明............18 2.4.1 整型變量 ...........................18 2.4.2 浮點變量 ...........................19 2.4.3 字符變量 ...........................20 2.5 不同數(shù)據(jù)類型的常量寫法............20 2.5.1 整型常量 ...........................20 2.5.2 浮點常量 ...........................21 2.5.3 字符常量 ...........................21 2.6 不同數(shù)據(jù)類型的輸入/輸出...........23 2.6.1 整型數(shù)據(jù)的輸入/輸出 .......23 2.6.2 浮點數(shù)據(jù)的輸入/輸出 .......24 2.6.3 字符數(shù)據(jù)的輸入/輸出 .......25 2.6.4 用 getchar()輸入字符和用 putchar()輸出字符..............26 2.7 不同數(shù)據(jù)類型數(shù)據(jù)間的混合運算 27 2.7.1 自動轉(zhuǎn)換............................28 2.7.2 強制轉(zhuǎn)換............................28 2.7.3 安全類型轉(zhuǎn)換與非安全類型 轉(zhuǎn)換 ...................................29 2.8 字符集和標識符 ...........................30 2.8.1 字符集 ...............................31 2.8.2 標識符 ...............................31 2.9 典型錯誤及典型例題 ...................32 小結(jié).......................................................35 習題.......................................................36 第3章 順序和選擇結(jié)構(gòu)程序設計........37 3.1 結(jié)構(gòu)化程序設計 ...........................37 3.1.1 結(jié)構(gòu)化程序設計的 3 種 基本結(jié)構(gòu) ...........................37 3.1.2 結(jié)構(gòu)化程序設計思想的 產(chǎn)生 ...................................42 3.2 語句與分程序...............................44 3.3 順序結(jié)構(gòu)程序設計 .......................45 3.4 算術運算符與賦值運算符............46 3.4.1 算術運算符的種類及運算.46 3.4.2 算術表達式及算術運算符 的優(yōu)先級 ...........................47 3.4.3 算術運算符的結(jié)合性.........48 3.4.4 普通賦值運算符 ................48 3.4.5 復合賦值運算符 ................49 3.5 選擇結(jié)構(gòu)程序設計 .......................49 CONTENTS 目錄 2 C語言程序設計(第四版) 3.5.1 問題提出與程序示例 ........49 3.5.2 if 形式................................51 3.5.3 if…else 形式 ......................53 3.5.4 else if 形式.........................55 3.5.5 嵌套的 if 語句....................58 3.6 關系運算符與邏輯運算符............60 3.6.1 關系運算符........................60 3.6.2 邏輯運算符........................61 3.7 增 1/減 1 運算符...........................62 3.8 求字節(jié)數(shù)運算符...........................63 3.9 switch 語句....................................65 3.10 條件運算符.................................68 3.11 程序舉例.....................................70 3.12 典型錯誤及典型例題 .................73 小結(jié).......................................................78 習題.......................................................79 第4章 循環(huán)結(jié)構(gòu)程序設計.................. 81 4.1 問題提出與程序示例 ...................81 4.2 while 語句 .....................................83 4.2.1 while 語句的語法和流程圖83 4.2.2 使用 while 語句需要注意 的問題 ...............................84 4.3 do…while 語句..............................86 4.3.1 do…while 語句的語法和 流程圖 ...............................86 4.3.2 使用 do…while 語句 解決問題 ...........................86 4.3.3 使用 do…while 語句需要 注意的問題........................88 4.4 for 語句.........................................89 4.4.1 for 語句的語法和流程圖 ...89 4.4.2 使用 for 語句解決問題 ......90 4.4.3 使用 for 語句需要注意的 問題...................................91 4.5 多重循環(huán) ......................................92 4.6 break 語句在循環(huán)語句中的用法 ..94 4.7 continue 語句 ................................96 4.7.1 continue 的用法 .................96 4.7.2 break 與 continue 的區(qū)別 ...96 4.8 程序舉例 ......................................97 4.9 典型錯誤及典型例題 .................104 小結(jié).....................................................108 習題.....................................................108 第5章 函數(shù)..................................... 111 5.1 問題提出與程序示例 .................111 5.2 函數(shù)基礎 ....................................112 5.3 函數(shù)的定義.................................113 5.3.1 函數(shù)的定義形式 ..............113 5.3.2 函數(shù)的返回值..................114 5.4 函數(shù)調(diào)用 ....................................115 5.4.1 函數(shù)的調(diào)用方式 ..............115 5.4.2 嵌套調(diào)用..........................116 5.5 函數(shù)聲明 ....................................118 5.6 參數(shù)傳遞 ....................................119 5.6.1 形參和實參......................119 5.6.2 形參的數(shù)據(jù)類型是基本 數(shù)據(jù)類型 .........................120 5.7 遞歸調(diào)用 ....................................121 5.8 變量的存儲類別 .........................126 5.8.1 自動變量與外部變量.......126 5.8.2 靜態(tài)變量..........................130 5.8.3 寄存器變量......................132 5.9 典型錯誤及典型例題 .................133 小結(jié).....................................................136 習題.....................................................137 第6章 數(shù)組..................................... 138 6.1 問題提出與程序示例 .................138 6.2 一維數(shù)組 ....................................140 6.2.1 一維數(shù)組的定義 ..............140 6.2.2 一維數(shù)組的引用 ..............141 6.2.3 一維數(shù)組的初始化 ..........141 6.2.4 程序舉例..........................142 6.3 數(shù)組作為函數(shù)的參數(shù) .................146 6.4 字符串與字符串函數(shù) .................149 3 目 錄 6.4.1 字符數(shù)組 .........................149 6.4.2 使用字符串常量初始化 字符數(shù)組 .........................150 6.4.3 對字符數(shù)組進行輸入/ 輸出操作 .........................150 6.4.4 字符串函數(shù)......................153 6.4.5 程序舉例 .........................157 6.5 二維數(shù)組 ....................................160 6.5.1 二維數(shù)組 OP 的定義........160 6.5.2 二維數(shù)組的引用 ..............161 6.5.3 二維數(shù)組的初始化 ..........162 6.5.4 程序舉例 .........................162 6.6 典型錯誤及典型例題 .................168 小結(jié).....................................................174 習題.....................................................174 第7章 指針..................................... 178 7.1 指針類型與指針運算符..............178 7.1.1 指針數(shù)據(jù)類型..................179 7.1.2 指針運算符&和*的使用..180 7.2 空間的動態(tài)分配與指針運算......181 7.2.1 程序示例 .........................181 7.2.2 空指針 .............................182 7.2.3 存儲器申請......................182 7.2.4 存儲器釋放......................184 7.2.5 指針值的算術運算 ..........184 7.3 指針與函數(shù).................................187 7.3.1 形參的數(shù)據(jù)類型是 指針類型 .........................187 7.3.2 返回指針值的函數(shù) ..........190 7.3.3 指向函數(shù)的指針 ..............191 7.4 指針與一維數(shù)組.........................195 7.4.1 問題提出與程序示例 ......195 7.4.2 數(shù)組名及指針作為 函數(shù)參數(shù) .........................197 7.4.3 指針與字符串..................199 7.5 二級指針 ....................................201 7.6 指針數(shù)組 ....................................203 7.6.1 問題提出與程序示例.......203 7.6.2 指針數(shù)組的定義和使用...204 7.7 指針與二維數(shù)組 .........................207 7.7.1 用指針方法操作二維數(shù)組 .........................................207 7.7.2 動態(tài)的二維數(shù)組 ..............209 7.7.3 用指向數(shù)組的指針操作 二維數(shù)組 .........................211 7.8 命令行參數(shù).................................213 7.9 典型錯誤及典型例題 .................217 小結(jié).....................................................223 習題.....................................................224 第8章 結(jié)構(gòu)體等構(gòu)造數(shù)據(jù)類型......... 226 8.1 結(jié)構(gòu)體 ........................................226 8.1.1 問題提出與程序示例.......226 8.1.2 結(jié)構(gòu)體的聲明和結(jié)構(gòu)體 變量的定義......................227 8.1.3 結(jié)構(gòu)體成員的引用 ..........228 8.1.4 結(jié)構(gòu)體的初始化 ..............229 8.2 結(jié)構(gòu)體數(shù)組.................................230 8.3 結(jié)構(gòu)體與指針.............................231 8.3.1 指向結(jié)構(gòu)體的指針 ..........231 8.3.2 結(jié)構(gòu)體中的成員包含 指針 .................................234 8.3.3 用結(jié)構(gòu)體類型指針 建立鏈表 .........................235 8.4 結(jié)構(gòu)體與函數(shù).............................240 8.4.1 結(jié)構(gòu)體數(shù)據(jù)作為函數(shù) 的參數(shù) .............................240 8.4.2 返回指向結(jié)構(gòu)體的指針 的函數(shù) .............................241 8.5 聯(lián)合體 ........................................243 8.5.1 問題提出與程序示例.......243 8.5.2 聯(lián)合體的聲明和聯(lián)合體 變量的定義......................244 8.5.3 聯(lián)合體變量成員的引用...245 8.5.4 指向聯(lián)合體變量的指針...246 4 C語言程序設計(第四版) 8.5.5 聯(lián)合體變量與函數(shù) ..........247 8.6 枚舉 ............................................249 8.6.1 枚舉的聲明和枚舉變量 的定義 .............................249 8.6.2 枚舉變量的使用 ..............249 8.7 類型定義 ....................................250 8.8 程序舉例 ....................................251 8.9 典型錯誤及典型例題 .................254 小結(jié).....................................................259 習題.....................................................260 第9章 文件..................................... 263 9.1 問題提出與程序示例 .................263 9.2 文件操作的基本方法和 相關概念.....................................264 9.2.1 數(shù)據(jù)文件 .........................264 9.2.2 文件類型指針..................264 9.2.3 文件的打開......................265 9.2.4 文件的關閉......................267 9.2.5 文件操作順序..................268 9.2.6 C 語言的設備文件...........269 9.3 文件的讀/寫操作........................269 9.3.1 fputc()函數(shù)與 fgetc()函數(shù)..269 9.3.2 fprintf()函數(shù)與 fscanf()函數(shù) .........................................273 9.3.3 fread()函數(shù)與 fwrite()函數(shù) 275 9.3.4 fgets()和 fputs() .................279 9.4 文件的定位.................................280 9.4.1 文件的順序存取和 隨機存取 .........................280 9.4.2 rewind()函數(shù).....................280 9.4.3 fseek()函數(shù) .......................281 9.5 程序舉例 ....................................282 小結(jié).....................................................287 習題.....................................................287 第10章 綜合案例............................ 290 附錄A
你還可能感興趣
我要評論
|