《C語言程式設計(第2版)》是由劉韶濤、潘秀霞、應暉編著,2020年1月清華大學出版社出版的高等學校計算機套用規劃教材。既可作為高等學校C語言程式設計課程的教材,也可作為C語言程式開發人員的參考書。
《C語言程式設計(第2版)》內容分為三個部分,分別是基礎篇(第1~9章)、進階篇(第10~13章)和提高套用篇(第14章),可以滿足不同學時、不同層次學生的要求。在提高套用篇中,將C語言套用到數據結構中幾種典型的複雜數據類型的表示和實現中,希望能為學習C語言程式設計的讀者進一步理解和掌握C程式設計的方法提供引導、思考和啟發。
基本介紹
- 書名:C語言程式設計(第2版)
- 作者:劉韶濤、潘秀霞、應暉
- 類別:高等學校計算機套用規劃教材
- 出版社:清華大學出版社
- 出版時間:2020年1月1日
- 頁數:349 頁
- 開本:16 開
- 裝幀:平裝
- ISBN:9787302544586
成書過程
內容簡介
教材目錄
第1章 程式設計基礎 1 1.1 計算機系統概述 1 1.1.1 硬體基礎知識 1 1.1.2 軟體基礎知識 4 1.2 程式與程式設計語言 5 1.2.1 程式的概念 6 1.2.2 程式設計語言概述 6 1.3 算法及其表示 8 1.3.1 算法 8 1.3.2 算法的特性 10 1.3.3 算法的表示 10 1.4 數據結構概述 14 1.4.1 與數據設民甩請結構相關的基危和籃煮本概念 14 1.4.2 數據結構的含義 14 1.4.3 常用的邏輯結構 15 1.4.4 常用的存儲結構 15 1.4.5 數據的運算集合 15 1.5 計算機中數據的表示 16 1.5.1 數制及其轉換 16 1.5.2 計算機中數據的表示 19 1.6 結構化程式設計概述 24 1.6.1 結構化程式設計思想 24 1.6.2 三種基本程式結構 25 1.6.3 結構化程式設計舉例 26 1.7 本章學習小結 28 1.8 習題 28 第2章 C語言與C程式概述 29 2.1 C語言概述 29 2.1.1 C語言的發展背景 29 2.1.2 C語言的特點 30 2.2 C程式概述 31 2.2.1 C程式結構 31 2.2.2 C程式基本辭彙符號 34 2.2.3 C程式的書寫風格 36 2.2.4 C程式的運行步驟和方法 39 2.3 本章學習小結 41 2.4 習題 41 第3章 數據類型、運算符和表達式 42 3.1 基本數據類型 42 3.1.1 void類型 44 3.1.2 字元類型 45 3.1.3 整數類型 45 3.1.4 實數類型 46 3.2 變數 46 3.2.1 變數聲明與定義 46 3.2.2 變數初始化 47 3.3 常量 48 3.3.1 常量的表示 48 3.3.2 代碼常量 52 3.4 運算符和表達式 53 3.4.1 賦值運算符和賦值表達式 54 3.4.2 算術運算符及表達式 56 3.4.3 逗號運算符及逗號表達式 58 3.4.4 關係運算符和邏輯運算符 58 3.4.5 條件運算符 60 3.4.6 常用標準函式的調用 61 3.4.7 位運算符 62 3.5 表達式求抹拳懂值 64 3.5.1 優先權 65 3.5.2 結合性 65 3.5.3 表達式求值中的類型轉換 65 3.6 本章學習催鴉碑小結 67 3.7 習題 67 第4章 順序結構程式設計 70 4.1 C語言的語句 71 4.1.1 空語句 71 4.1.2 表達式語句 71 4.1.3 複合語句 72 4.1.4 控制語句 73 4.2 輸入/輸出概述 73 4.2.1 流 73 4.2.2 標準輸入/輸出 74 4.3 字元輸入/輸出 74 4.3.1 字元輸出函式putchar() 74 4.3.2 字元輸入函式getchar() 75 4.4 格式化輸入/輸出 76 4.4.1 格式化輸出函式printf() 76 4.4.2 格式化輸入函式scanf() 84 4.5 順序結構程式設計的套用 89 4.6 本章學習小結 92 4.7 習題 92 第5章 選擇結構程式設計 95 5.1 if語句概述 95 5.2 if語句的使用 96 5.2.1 單分支if語句 96 5.2.2 雙分支if語句 97 5.2.3 多分支if語句 99 5.2.4 if的嵌套 100 5.3 條件運算符與條件表達式 103 5.4 switch語句 104 5.5 本章學習小結 106 5.6 習題 106 第6章 循環結構程式設計 108 6.1 while當型循環 108 6.2 do…while型循環 111 6.3 for循環 113 6.4 循環嵌套及其使用 115 6.5 break和continue語句 122 6.5.1 break語句 122 6.5.2 continue語句 124 6.6 goto語句 124 6.7 本章學習小結 125 6.8 習題 126 第7章 數組 127 7.1 數組的基本概念 127 7.2 一維數組的定義與使用 129 7.2.1 一維數組的定義 129 7.2.2 一維數組的初始化 132 7.2.3 一維數組的套用 134 7.3 二維數組的定義與使用 147 7.3.1 二維數組的定義 147 7.3.2 二維數組的初始化 148 7.3.3 二維數組的套用 150 7.4 字元數組與字元串 156 7.4.1 字元數組的定義 157 7.4.2 字元數組的初始化 160 7.4.3 字元數組與字元串 161 7.4.4 字元串處理函式 161 7.5 多維數組 164 7.6 本章學習小結 165 7.7 習題 166 第8章 函式基礎 168 8.1 函式的概念與定義 168 8.1.1 函式的概念和分類 168 8.1.2 函式的定義 172 8.2 函式的參數與函式的返回值 174 8.2.1 函式的參數 174 8.2.2 函式參數的求值順序 175 | 8.2.3 函式的返回值 176 8.3 函式的調用 177 8.3.1 函式調用的概念 177 8.3.2 函式調用的方式 178 8.3.3 函式的原型說明 178 8.3.4 函式的嵌套調用 179 8.4 本章學習小結 181 8.5 習題 181 第9章 指針基礎 182 9.1 指針的基本概念 182 9.1.1 指針變數的定義 184 9.1.2 與指針運算緊密相關的兩個運算符 184 9.1.3 指針變數的使用 185 9.1.4 const指針 187 9.2 指針與數組 188 9.2.1 指向一維數組元素的指針變數的定義 189 9.2.2 通過指針變數使用一維數組元素 190 9.2.3 指針與二維數組 191 9.2.4 指針與數組作為函式的參數 193 9.2.5 指針數組 196 9.3 指針與字元串 198 9.3.1 指針與字元、字元數組 199 9.3.2 使用指針存儲字元串 200 9.4 本章學習小結 201 9.5 習題 201 第10章 數組、函式和指針的高級套用 203 10.1 函式的遞歸調用 204 10.1.1 遞歸函式的定義 204 10.1.2 遞歸函式的套用舉例 204 10.2 函式使用const形參 209 10.3 函式與數組 210 10.3.1 數組元素作為函式的實參 210 10.3.2 數組作為函式的參數 211 10.4 變數的類型 215 10.4.1 局部變數和全局變數 215 10.4.2 變數存儲類型說明 218 10.5 全局函式和靜態函式 222 10.5.1 全局函式 222 10.5.2 靜態函式 224 10.6 參數類型與數量可變的函式 224 10.7 指針、數組與函式之間的關係 224 10.7.1 數值型指針與數組作為函式的參數 224 10.7.2 字元型指針與數組作為函式的參數 228 10.7.3 指針數組 229 10.7.4 返回指針類型的函式 232 10.7.5 指向函式的指針 234 10.7.6 命令行參數 237 10.8 多級間址 238 10.9 void型指針與動態記憶體分配 241 10.9.1 void型指針 241 10.9.2 動態存儲分配 243 10.10 本章學習小結 247 10.11 習題 248 第11章 結構體、共用體與枚舉類型 250 11.1 結構體 250 11.1.1 結構體類型定義 251 11.1.2 結構體變數的定義、初始化及引用 251 11.1.3 成員包含結構體類型的結構體 252 11.1.4 結構體變數的初始化 253 11.1.5 結構體變數的引用 255 11.2 結構體數組 259 11.2.1 結構體數組的定義 259 11.2.2 結構體變數數組的初始化 260 11.2.3 結構體數組的引用 261 11.3 指向結構體類型的指針 262 11.4 結構體指針的套用 267 11.4.1 包含指針成員的結構變數 268 11.4.2 單向鍊表的簡單操作 273 11.5 共用體 280 11.5.1 共用體類型定義 282 11.5.2 共用體變數的聲明 282 11.5.3 共用體變數的引用 283 11.6 枚舉類型 285 11.6.1 枚舉類型變數的聲明 285 11.6.2 枚舉變數的引用 285 11.7 typedef定義類型 287 11.8 本章學習小結 289 11.9 習題 289 第12章 檔案 290 12.1 流和檔案 290 12.1.1 流 290 12.1.2 檔案 291 12.1.3 檔案類型的指針 292 12.1.4 標準檔案 292 12.2 檔案的打開、關閉與讀/寫 292 12.2.1 fopen()函式 293 12.2.2 fclose()函式 294 12.2.3 fgetc()與fputc()函式 294 12.2.4 fread()與fwrite()函式 296 12.3 檔案I/O 297 12.3.1 fprintf()與fscanf()函式 297 12.3.2 fgets()與fputs()函式 299 12.3.3 檔案讀/寫指針移動函式fseek()與rewind() 300 12.3.4 ftell()和feof()函式 300 12.4 本章學習小結 302 12.5 習題 302 第13章 編譯預處理 303 13.1 C預處理程式 303 13.2 #define 304 13.3 #include 305 13.4 條件編譯指令 305 13.4.1 #if、#else、#elif和#endif 306 13.4.2 #ifdef和#ifndef 307 13.5 #undef 308 13.6 本章學習小結 309 13.7 習題 309 第14章 C語言的套用——典型數據結構及其實現 311 14.1 線性表 311 14.1.1 線性表的定義 312 14.1.2 線性表的順序表示和實現——順序表 312 14.1.3 線性表的鏈式表示和實現——鍊表 317 14.1.4 線性表的套用——約瑟夫環問題 324 14.2 棧 326 14.2.1 棧的定義 326 14.2.2 棧的順序存儲結構——順序棧 327 14.2.3 棧的鏈式存儲結構——鏈棧 329 14.2.4 棧的套用——數制轉換和迷宮問題 332 14.3 二叉樹 340 14.3.1 二叉樹的定義 340 14.3.2 二叉樹的二叉鏈式存儲結構和典型操作 340 14.4 C語言的擴展——C++簡介 346 14.5 本章學習小結 347 14.6 習題 347 參考文獻 348 附錄 349 附錄A ASCII表 349 附錄B 標準C函式館 349 附錄C 運算符的優先權與結合性 349 |
教學資源
- 配套教材
書名 | 書號 | 出版社 | 出版時間 | 作者 |
---|---|---|---|---|
《C語言程式設計習題指導與上機實踐(第2版)》 | 9787302543602 | 清華大學出版社 | 2020.01.01 | 劉韶濤、潘秀霞、應暉 |
- 課程資源