第1章 預備知識 1
1.1 程序設計與算法概述 1
1.1.1 計算機語言與程序設計 1
1.1.2 算法 4
1.1.3 結構化程序設計 6
1.2 C語言概述 8
1.2.1 C語言的發(fā)展 8
1.2.2 C語言的特點 8
1.2.3 C程序的基本結構 10
1.2.4 C程序的執(zhí)行過程 13
1.3 C程序的符號系統(tǒng) 13
1.3.1 基本字符 14
1.3.2 標識符 14
1.4 小結 15
習題 16
第2章 C語言基礎 18
2.1 基本數據類型 18
2.1.1 整型數據 19
2.1.2 實型數據 21
2.1.3 字符型數據 22
2.1.4 空類型 23
2.2 常量. 變量與標準庫函數 23
2.2.1 常量 23
2.2.2 變量 27
2.2.3 標準庫函數 29
2.3 運算符和表達式 31
2.3.1 算術運算符和算術表達式 31
2.3.2 賦值運算符和賦值表達式 35
2.3.3 關系運算符和關系表達式 36
2.3.4 邏輯運算符和邏輯表達式 37
2.3.5 位運算符和位運算表達式 39
2.3.6 條件運算符和條件表達式 42
2.3.7 逗號運算符和逗號表達式 43
2.3.8 其他運算符及其運算 44
2.4 各種運算中數據類型的轉換 44
2.4.1 數據類型的自動轉換 44
2.4.2 數據類型的強制轉換 46
2.5 小結 47
習題 48
第3章 順序結構程序設計 51
3.1 C語言的語句類型 51
3.1.1 說明性語句 51
3.1.2 表達式語句 51
3.1.3 控制語句 52
3.1.4 復合語句 53
3.2 數據輸出 53
3.2.1 字符輸出函數 53
3.2.2 格式輸出函數 54
3.3 數據輸入 60
3.3.1 字符輸入函數 60
3.3.2 格式輸入函數 61
3.4 順序結構程序設計 66
3.4.1 順序結構程序的一般算法描述 66
3.4.2 順序結構程序設計舉例 66
3.5 小結 68
習題 69
第4章 選擇結構程序設計 73
4.1 if語句 73
4.1.1 if語句的一般形式 73
4.1.2 if語句的嵌套 77
4.2 switch語句 80
4.2.1 switch語句的一般形式 80
4.2.2 break語句 81
4.3 選擇結構程序設計舉例 82
4.4 小結 87
習題 88
第5章 循環(huán)結構程序設計 93
5.1 while循環(huán)控制 93
5.1.1 while語句 93
5.1.2 while語句的簡單應用 95
5.2 do-while循環(huán)控制 97
5.2.1 do-while語句 97
5.2.2 do-while語句的簡單應用 98
5.3 for循環(huán)控制 99
5.3.1 for語句 99
5.3.2 for語句的簡單應用 101
5.4 用goto語句實現循環(huán)控制 102
5.4.1 goto語句 102
5.4.2 goto語句的簡單應用 103
5.5 循環(huán)結構中的跳轉語句 104
5.5.1 continue語句及應用 104
5.5.2 循環(huán)結構中break語句的應用 106
5.6 循環(huán)的嵌套 106
5.6.1 循環(huán)嵌套的基本形式 106
5.6.2 多重循環(huán)程序舉例 107
5.7 循環(huán)結構程序設計舉例 109
5.8 小結 113
習題 114
第6章 數組 121
6.1 一維數組 121
6.1.1 一維數組的定義 121
6.1.2 一維數組元素的引用 122
6.1.3 一維數組的初始化 123
6.1.4 一維數組應用舉例 123
6.2 二維數組 129
6.2.1 二維數組的定義 129
6.2.2 二維數組元素的引用 129
6.2.3 二維數組的初始化 130
6.2.4 二維數組應用舉例 131
6.3 字符數組與字符串 132
6.3.1 基本概念 132
6.3.2 字符數組的定義 133
6.3.3 字符數組的初始化 133
6.3.4 字符數組的引用 134
6.3.5 字符串處理函數 135
6.3.6 字符數組應用舉例 139
6.4 小結 141
習題 142
第7章 函數與預處理命令 147
7.1 概述 147
7.2 函數的定義與調用 149
7.2.1 函數的定義 149
7.2.2 函數的調用 151
7.2.3 函數參數與函數的返回值 152
7.2.4 對被調函數的聲明和函數原型 155
7.3 數組作函數參數 157
7.3.1 一維數組元素作函數參數 157
7.3.2 一維數組名作函數參數 158
7.3.3 多維數組作函數參數 160
7.4 函數的嵌套調用和遞歸調用 162
7.4.1 函數的嵌套調用 162
7.4.2 函數的遞歸調用 162
7.5 局部變量和全局變量及其作用域 167
7.5.1 變量的作用域 167
7.5.2 局部變量及其作用域 167
7.5.3 全局變量及其作用域 168
7.6 變量的存儲類別及變量的生存期 169
7.6.1 變量的生存期與變量的存儲分類 169
7.6.2 變量的存儲類別 169
7.6.3 歸納變量的分類 175
7.7 函數的存儲分類 176
7.7.1 外部函數 176
7.7.2 靜態(tài)函數 176
7.8 編譯預處理 177
7.8.1 不帶參數的宏定義 178
7.8.2 帶參數的宏定義 179
7.8.3 文件包含 180
7.9 多文件程序的調試方法 181
7.10 小結 183
習題 184
第8章 指針 190
8.1 指針和指針變量 190
8.1.1 指針和指針變量的概念 190
8.1.2 指針變量的定義 191
8.1.3 指針的基本運算 192
8.2 指針與數組 196
8.2.1 指向數組的指針變量 196
8.2.2 指向字符串的指針變量 202
8.2.3 指針數組 205
8.2.4 多級指針 208
8.3 指針與函數 210
8.3.1 指針變量作函數參數 210
8.3.2 帶參數的主函數 217
8.3.3 指針型函數 219
8.3.4 指向函數的指針變量 220
8.4 小結 225
習題 226
第9章 結構體與共用體 231
9.1 結構體 231
9.1.1 結構體與結構體類型的定義 231
9.1.2 結構體變量的定義與初始化 233
9.1.3 結構體的指針 237
9.1.4 函數間結構體數據的傳遞 239
9.1.5 結構體的應用-鏈表 241
9.2 共用體 252
9.2.1 共用體與共用體類型定義 252
9.2.2 共用體變量的定義與初始化 253
9.3 枚舉類型與類型命名 257
9.3.1 枚舉類型 257
9.3.2 類型的重新命名 260
9.4 小結 262
習題 263
第10章 文件 271
10.1 文件的概念 271
10.1.1 文件和文件指針 271
10.1.2 文件的打開與關閉 273
10.2 文本文件的讀寫 274
10.2.1 文件的字符輸入輸出函數 275
10.2.2 文件結束測試函數feof
276
10.2.3 文件的字符串輸入輸出函數 277
10.2.4 文件的格式輸入輸出函數 279
10.3 二進制文件的讀寫 280
10.3.1 文件的字輸入輸出函數 280
10.3.2 文件的數據塊輸入輸出函數 282
10.3.3 文件讀寫指針定位函數 284
10.4 小結 286
習題 287
附錄A C語言常用庫函數 293
附錄B C語言中運算符的優(yōu)先級和結合性 297
附錄C 基本ASCII表 298
參考文獻 299