《C語言程序設計》
第 1 章 起步 001
本章內容 002
1.1什麼是C 語言 003
1.2C 語言的基礎知識 003
1.2.1字母、數字和特殊符號 004
1.2.2常量、變量和關鍵字 004
1.2.3C 語言的常量類型 004
1.2.4整型常量的創建規則 005
1.2.5浮點型常量的創建規則 005
1.2.6字符型常量的創建規則 005
1.2.7C 語言的變量類型 006
1.2.8變量名的創建規則 006
1.2.9C 語言的關鍵字 006
1.3第 1 個C 語言程序 007
1.3.1C 語言程序的格式 007
1.3.2C 語言程序中的注釋 007
1.3.3什麼是main() 008
1.3.4變量及其用法 009
1.3.5printf() 及其用法 009
1.3.6編譯和運行 010
1.4接收輸入 010
1.5程序 011
習題 012
課後筆記 014
第2 章 C 語言的指令 017
本章內容 018
2.1指令的類型 019
2.2類型聲明指令 019
2.3算術指令 019
2.4整型和浮點型的轉換 021
2.5賦值時的類型轉換 021
2.6操作符的優先層次 022
2.7操作符的結合性 024
2.8控制指令 024
2.9程序 024
習題 026
課後筆記 028
第3章 決策控制指令 031
本章內容 032
3.1if-else 語句 033
3.2if-else 中的多條語句 034
3.3嵌套的if-else 語句 035
3.4一點告誡 036
3.5程序 037
習題 038
課後筆記 041
第4章 更復雜決策的創建 043
本章內容 044
4.1使用邏輯操作符:檢測範圍 045
4.2使用邏輯操作符:是 否問題 046
4.3! 操作符 048
4.4再論操作符的優先層次 049
4.5條件操作符 049
4.6程序 050
習題 052
課後筆記 056
第5章 循環控制指令 059
本章內容 060
5.1循環 061
5.2while 循環 061
5.2.1提示和陷阱 062
5.2.2其他操作符 063
5.3程序 065
習題 066
課後筆記 068
第6章 更復雜的循環控制
指令 069
本章內容 070
6.1for 循環 071
6.1.1循環的嵌套 073
6.1.2for 循環的多重初始化 074
6.2break 語句 074
6.3continue 語句 075
6.4do-while 循環 076
6.5非常規循環 077
6.6程序 078
習題 079
課後筆記 081
第7章 case 控制指令 083
本章內容 084
7.1使用switch 的決策 085
7.2switch 與if-else 梯狀結構的對比 088
7.3goto 關鍵字 088
7.4程序 090
習題 092
課後筆記 095
第8章 函數 097
本章內容 098
8.1什麼是函數 099
8.2在函數之間傳遞值 101
8.3參數的傳遞順序 104
8.4使用庫函數 104
8.5一個不確定的問題 105
8.6函數的返回類型 105
8.7程序 106
習題 108
課後筆記 109
第9章 指針 111
本章內容 112
9.1傳值調用和傳引用調用 113
9.2指針概述 113
9.3再論函數調用 116
9.4結論 118
9.5程序 118
習題 120
課後筆記 122
第10 章 遞歸 125
本章內容 126
10.1遞歸的概念 127
10.2程序 128
習題 130
課後筆記 131
第11 章 再論數據類型 133
本章內容 134
11.1整型:long、short、signed、unsigned 135
11.2字符型:signed、unsigned 136
11.3浮點型:float、double、long double 136
11.4一些其他問題 137
11.5C 語言的存儲類型 138
11.5.1自動存儲類型 138
11.5.2寄存器存儲類型 139
11.5.3靜態存儲類型 140
11.5.4外部存儲類型 140
11.5.5一些微妙的問題 142
11.5.6何時何地使用存儲類型 143
習題 143
課後筆記 145
第12 章 C 預處理器 149
本章內容 150
12.1C 預處理器的特性 151
12.2宏展開指令 151
12.2.1帶參數的宏 152
12.2.2宏與函數的比較 153
12.3文件包含指令 153
12.4條件編譯指令 154
12.5#if 和#elif 指令 155
12.6其他指令 156
12.6.1#undef 指令 156
12.6.2#pragma 指令 156
12.7構建過程 158
12.8程序 159
習題 161
課後筆記 162
第13 章 數組 165
本章內容 166
13.1什麼是數組 167
13.2關於數組的其他信息 168
13.2.1數組的初始化 168
13.2.2內存中素 168
13.2.3邊界檢查 169
13.2.4向函數傳素 169
13.3指針和數組 170
13.3.1使用指針訪素 171
13.3.2把數組傳遞給函數 172
13.4可變長數組 174
13.5程序 175
習題 176
課後筆記 179
第14 章 多維數組 181
本章內容 182
14.1二維數組 183
14.1.1二維數組的初始化 183
14.1.2二維數組的內存映射 184
14.1.3指針和二維數組 184
14.1.4指向數組的指針 186
14.1.5把二維數組傳遞給函數 186
14.2指針數組 187
14.3三維數組 188
14.4程序 189
習題 191
課後筆記 193
第15 章 字符串 195
本章內容 196
15.1什麼是字符串 197
15.2關於字符串的其他說明 197
15.3指針和字符串 199
15.4字符串處理函數 200
15.4.1strlen() 201
15.4.2strcpy() 202
15.4.3strcat() 203
15.4.4strcmp() 203
15.5程序 204
習題 206
課後筆記 208
第16 章 處理多個字符串 211
本章內容 212
16.1二維字符數組 213
16.2字符串指針數組 214
16.3字符串指針數組的限制 216
16.4程序 216
習題 218
課後筆記 219
第17 章 結構體 221
本章內容 222
17.1為什麼要使用結構體 223
17.2結構體數組 224
17.3結構體的細節 225
17.3.1結構體的聲明 225
17.3.2素的存儲 226
17.3.3復制素 227
17.3.4嵌套的結構體 227
17.3.5傳遞素 結構體變量 228
17.3.6素的對齊 229
17.4結構體的應用 230
17.5程序 230
習題 233
課後筆記 234
第18 章 控制臺輸入輸出 237
本章內容 238
18.1I O 的類型 239
18.2控制臺I O 函數 239
18.2.1格式化的控制臺I O 函數 240
18.2.2sprintf() 和sscanf() 函數 244
18.2.3未格式化的控制臺I O 函數 245
習題 246
課後筆記 249
第19 章 文件輸入輸出 251
本章內容 252
19.1文件操作 253
19.1.1打開文件 253
19.1.2讀取文件 254
19.1.3關閉文件 255
19.2對字符、制表符、空格等進行計數 255
19.3一個文件復制程序 256
19.4文件打開模式 257
19.5文件中的字符串(行)I O 257
19.6文本文件和二進制文件 259
19.7文件中的記錄I O 259
19.8低層文件I O 262
19.9程序 264
習題 266
課後筆記 267
第20 章 關於輸入輸出的更多知識 271
本章內容 272
20.1使用argc 和argv 273
20.2在讀取 寫入時檢測錯誤 275
20.3標準文件指針 276
20.4I O 重定向 276
20.4.1輸出重定向 276
20.4.2輸入重定向 277
20.4.3同時重定向 278
習題 278
課後筆記 279
第21 章 對位進行操作 281
本章內容 282
21.1位的編號和轉換 283
21.2位操作 284
21.3反碼操作符 284
21.4右移位和左移位操作符 285
21.4.1警告 286
21.4.2<< 操作符的用途 287
21.5AND、OR 和XOR 位操作符 287
21.5.1& 操作符的用途 288
21.5.2| 操作符的用途 289
21.5.3^ 操作符的用途 289
21.6showbits() 函數 290
21.7位復合賦值操作符 290
21.8程序 291
習題 292
課後筆記 294
第22 章 C 語言的其他特性 295
本章內容 296
22.1枚舉數據類型 297
22.1.1枚舉數據類型的用途 297
22.1.2枚舉真有必要嗎 298
22.2使用typedef 對數據類型進行重命名 299
22.3強制類型轉換 300
22.4位段 300
22.5函數指針 301
22.6返回指針的函數 302
22.7接收可變數量參數的函數 302
22.8聯合體 303
22.9volatile 限定符 306
22.10程序 306
習題 307
課後筆記 309
第23 章 常見的C 語言面試問題 311
附錄A編譯和運行 325
附錄B優先級表格 331
附錄C追蹤缺陷 333
附錄DASCII 表 339
附錄E階段測驗 343
《C語言程序設計 習題解答》
預備知識 001
第1 章 起步007
第2 章 C 語言的指令013
第3章 決策控制指令023
第4章 更復雜決策的創建033
第5章 循環控制指令043
第6章 更復雜的循環控制指令049
第7章 case 控制指令057
第8章 函數063
第9章 指針067
第10 章 遞歸075
第11 章 再論數據類型079
第12 章 C 預處理器083
第13 章 數組089
第14 章 多維數組101
第15 章 字符串111
第16 章 處理多個字符串117
第17 章 結構體123
第18 章 控制臺輸入輸出139
第19 章 文件輸入輸出145
第20 章 關於輸入輸出的更多知識161
第21 章 對位進行操作167
第22 章 C 語言的其他特性177
第23 章 階段測驗181
階段測驗I(第1 ~ 7 章)182
階段測驗II(第8~ 12 章)186
階段測驗III(第13 ~ 17 章)189
階段測驗IV(第18 ~ 22 章)192