c語言程序設計教程

第二版

《 C語言程序設計教程(第二版)》是2009年8月1日清華大學出版社出版的圖書,作者是王敬華

內容簡介


C 語言是最為流行的通用程序設計語言之一,是許多計算機專業人員和計算機愛好者學習程序設計語言的首選。本書共12 章,內容包括C 語言程序設計預備知識,C 語言程序設計基礎,基本數據類型、運算符與表達式,基本輸入輸出和順序程序設計,選擇結構程序設計,循環結構程序設計,數組,函數,指針,預處理命令,複雜數據類型,文件等。本書注重教材的可讀性和實用性,每章開頭都給出了學習意義、學習目標及難點提示,對關鍵知識點進行了詳細的說明,並附有大量的圖表方便讀者正確、直觀地對問題進行理解,樣常式序由淺入深,強化了知識點、演演算法、編程方法與技巧,並給出了詳細的解釋。為了幫助初學者正確地掌握C 語言的語法特點,每章還列舉出了初學者在編程過程中常見的錯誤。另外,本書還配套提供題型豐富的《C 語言程序設計教程(第二版)習題解答與實驗指導》教材。

圖書目錄


第1章C語言程序設計預備知識 1
1.1計算機系統組成及工作原理簡介 1
1.2進位計數制及其轉換 4
1.2.1十進位數的表示 4
1.2.2二進位數、八進位數十六進位數的表示 4
1.2.3二進位數和十進位數的轉換 5
1.2.4二進位數、八進位數和十六進位數的轉換 7
1.3機器數的表示形式及其表示範圍 8
1.3.1真值與機器數 8
1.3.2數的原碼錶示 8
1.3.3數的反碼錶示 9
1.3.4數的補碼錶示 10
1.3.5補碼的加、減運算 11
1.3.6無符號整數 11
1.3.7字元表示法 11
1.4二進位數的位運算 12
1.5本章小結 13
習題1 14
第2章C語言程序設計基礎 16
2.1程序設計語言的發展及其特點 16
2.2C語言的發展及其特點和應用 18
2.3C語言與C++、Java和C#之間的關係 20
2.4C語言程序的基本結構 21
2.5編製C語言程序的基本步驟 26
2.6本章小結 28
習題2 29
第3章基本數據類型、運算符與表達式 31
3.1C語言的數據類型 32
3.2常量、變數和標識符 33
3.3簡單數據類型與表示範圍 35
3.3.1整型數據 36
3.3.2實型數據 42
3.3.3字元型數據和字元串常量 44
3.3.4簡單數據類型的表示範圍 47
3.3.5數據的簡單輸出 49
3.4C語言的運算符與表達式 51
3.4.1賦值運算符、賦值表達式 51
3.4.2強制類型轉換符 53
3.4.4自增自減運算符、負號運算符 56
3.4.5算術運算中數據類型轉換規則 58
3.4.6位運算符、位運算表達式 59
3.4.7逗號運算符、逗號表達式 60
3.4.8sizeof運算符、複合賦值運算符 61
3.5運算符的優先順序和結合性 62
3.6有符號數與無符號數之間運算問題 62
3.7本章小結及常見錯誤列舉 64
習題3 69
第4章基本輸入輸出和順序程序設計 73
4.1格式化輸出printf 73
4.1.1整數的輸出 76
4.1.2實數的輸出 80
4.1.3字元和字元串的輸出 81
4.1.4格式化輸出小結 82
4.2格式化輸入scanf 84
4.3字元數據的非格式化輸入輸出 90
4.4程序的控制結構 93
4.4.1演演算法的基本概念 93
4.4.2演演算法的描述方法 95
4.4.3演演算法的基本結構 97
4.5順序程序設計舉例 99
4.6本章小結及常見錯誤列舉 101
習題4 103
第5章選擇結構程序設計 107
5.1C語言程序中語句的分類 107
5.2關係運算符、邏輯運算符、條件運算符 109
5.2.1關係運算符和關係表達式 109
5.2.2邏輯運算符和邏輯表達式 110
5.2.3條件運算符和條件表達式 112
5.3選擇結構的程序設計 113
5.3.1if語句 114
5.3.2switch語句 118
5.4選擇結構程序設計舉例 122
5.5本章小結及常見錯誤列舉 128
習題5 131
第6章循環結構程序設計 138
6.1循環結構的程序設計 138
6.1.1while語句 139
6.1.2do-while語句 142
6.1.3for語句 143
6.1.4循環嵌套 146
6.1.5break與continue語句 147
6.1.6goto語句 149
6.1.7exit()函數 150
6.2循環結構類型的選擇及轉換 151
6.3循環結構程序設計舉例 153
6.4本章小結及常見錯誤列舉 159
習題6 162
第7章數組 169
7.1一維數組 170
7.1.1一維數組的定義和引用 170
7.1.2一維數組的賦值 172
7.1.3一維數組的應用舉例 175
7.2二維數組 181
7.2.1二維數組的定義和引用 182
7.2.2二維數組的賦值 183
7.2.3二維數組的應用舉例 185
7.3字元串與數組 187
7.3.1字元串的本質 187
7.3.2字元及字元串操作的常用函數 188
7.3.3字元串數組 194
7.4數組綜合應用舉例 197
7.5本章小結及常見錯誤列舉 200
習題7 204
第8章函數 210
8.1函數概述 210
8.2函數的定義與調用 212
8.2.1無參數無返回值的函數 212
8.2.2無參數有返回值的函數 214
8.2.3帶參數無返回值的函數 217
8.2.4帶參數有返回值的函數 219
8.3函數參數的傳遞方式 220
8.4變數的作用域和生存期 224
8.5變數的存儲類型 229
8.6函數的嵌套和遞歸調用 234
8.6.1函數的嵌套調用 234
8.6.2函數的遞歸調用 235
8.7函數的作用域 241
8.8函數封裝 242
8.9函數應用綜合舉例 242
8.10本章小結及常見錯誤列舉 246
習題8 250
第9章指針 255
9.1指針與指針變數的概念 255
9.2指針變數的定義和引用 257
9.3指針和地址運算 263
9.4指針與數組 263
9.4.1數組的指針和指向數組的指針變數 264
9.4.2指向多維數組的指針——數組指針 266
9.4.3元素為指針的數組——指針數組 271
9.5指針與字元串 274
9.6指針與動態內存分配 280
9.7多級指針 285
9.8指針作為函數參數 288
9.9指針作為函數的返回值——指針函數 294
9.10指向函數的指針——函數指針 295
9.11帶參數的main函數 298
9.12本章小結及常見錯誤列舉 301
習題9 306
第10章預處理命令 312
10.1預處理命令簡介 312
10.2宏定義 313
10.2.1不帶參數的宏定義 313
10.2.2帶參數的宏定義 316
10.3文件包含 317
10.4條件編譯 319
10.5本章小結及常見錯誤列舉 323
習題10 325
第11章複雜數據類型 328
11.1複雜數據類型概述 328
11.2結構體 329
11.2.1結構體類型的定義 329
11.2.2結構體變數的定義和引用 331
11.2.3結構體變數的賦值 334
11.2.4結構體變數內存分配問題透析 337
11.2.5簡化結構體類型名 340
11.2.6結構體數組 341
11.3線性鏈表 344
11.4聯合體 350
11.4.1聯合體類型的定義 351
11.4.2聯合體變數的定義和引用 352
11.4.3聯合體變數的賦值 352
11.5位域 356
11.6枚舉類型變數的定義和引用 358
11.7複雜數據類型應用綜合舉例 361
11.8本章小結及常見錯誤列舉 365
習題11 369
第12章文件 375
12.1文件的基本概念 375
12.2文件的類別 376
12.3文件操作概述 377
12.4文件指針 378
12.5文件的打開、讀寫和關閉 378
12.5.1文件的打開與關閉 379
12.5.2文件的讀寫 380
12.5.3文件讀寫函數選用原則 392
12.6文件的定位讀寫 393
12.7文件應用綜合舉例 396
12.8本章小結及常見錯誤列舉 398
習題12 399
附錄A常見問題解答 404
附錄B常用標準庫函數 407
附錄CC語言的關鍵字 414
附錄D運算符和結合性 415
附錄EASCII碼 416
參考文獻 418