內容提要
全書以程式案例為導向,採用計算思維的方法設計程式,通過程式案例,拓寬學生的思維,引導學生自主思考,逐步掌握程式設計的一般規律和方法。從對基本概念的講解到編寫程式解決實際問題,本書注重解決問題的方法引導。全書理論聯繫實際,突出模組化程式設計方法。
全書內容可分為三部分,共11章。第一部分為第1章、第2章,是初學者的入門知識,簡單介紹C語言的基礎知識,主要內容有C語言程式的基本結構、數據類型和數據的存儲方式、基本的程式表達式。第二部分為第3章~第5章,是程式設計的基礎部分,主要介紹程式算法的方法、程式語句的基本控制結構。掌握了第一、第二部分的內容,讀者可以完成簡單的程式設計。第三部分為第6章~第11章,介紹模組化程式設計的概念和實現的方法,主要內容有函式、數組、指針、結構體、檔案、位運算等。通過對這三部分知識單元的學習,讀者可以逐步認識模組化程式設計的思想,掌握模組化程式設計的方法。
全書語言簡潔,通俗易懂,內容敘述由淺入深。本書適合作為大學本科和專科院校的教材,也可供一般工程技術人員參考。
目錄
第1章 引言 1
1.1 C語言的發展過程 1
1.2 C語言的特點 1
1.3 簡單的C語言程式 3
1.4 C語言程式的結構 5
1.5 C語言程式的執行 6
1.5.1 源程式翻譯 6
1.5.2 連結目標程式 7
1.5.3 集成開發工具 8
1.6 本章小結 8
習題 9
第2章 基本的程式語句 10
2.1 預備知識 10
2.1.1 定點數和浮點數的概念 10
2.1.2 整型數的二進制表示 11
2.1.3 浮點型數據的二進制表示 12
2.2 基本數據類型及取值範圍 14
2.3 標識符、變數和常量 17
2.3.1 標識符 17
2.3.2 變數和常量 18
2.4 基本運算符、表達式及運算的優先權 23
2.4.1 算術運算符及算術表達式 24
2.4.2 關係運算符及關係表達式 28
2.4.3 邏輯運算符及邏輯表達式 28
2.4.4 位運算符及表達式 30
2.4.5 條件運算符 30
2.4.6 逗號表達式 30
2.4.7 數據類型的轉換 32
2.4.8 複雜表達式的計算順序 32
2.4.9 C語言的基本語句結構 33
2.5 標準輸入/輸出函式簡介 34
2.5.1 格式化輸出函式printf() 35
2.5.2 格式化輸入函式scanf() 38
2.5.3 字元輸出函式 41
2.5.4 字元輸入函式 42
2.6 程式範例 44
2.7 本章小結 45
習題 46
第3章 程式的簡單算法設計 52
3.1 結構化程式的算法設計 52
3.2 結構化算法的性質及結構 53
3.2.1 結構化算法的性質 53
3.2.2 結構化算法的結構 53
3.3 結構化算法的描述方法 54
3.3.1 自然語言 54
3.3.2 流程圖 55
3.3.3 偽代碼 58
3.4 算法設計範例 61
3.5 本章小結 63
習題 63
第4章 分支結構 65
4.1 if結構 65
4.1.1 if語句 65
4.1.2 if_else語句 67
4.1.3 if語句的嵌套 69
4.2 switch結構 72
4.2.1 switch語句 72
4.2.2 break語句在switch語句中的作用 74
4.3 程式範例 76
4.4 本章小結 82
習題 82
第5章 循環結構 88
5.1 for語句 88
5.2 while語句 94
5.3 do_while語句 98
5.4 用於循環中的break語句和continue語句 99
5.5 循環結構的嵌套 103
5.6 goto語句 104
5.7 程式範例 105
5.8 本章小結 108
習題 109
第6章 函式與宏定義 115
6.1 函式的概念 115
6.1.1 函式的定義 115
6.1.2 函式的聲明和調用 116
6.1.3 函式的傳值方式 117
6.2 變數的作用域和存儲類型 119
6.3 內部函式與外部函式 122
6.4 遞歸函式的設計和調用 123
6.5 預處理 127
6.5.1 宏定義 127
6.5.2 檔案包含 129
6.5.3 條件編譯及其他 130
6.6 綜合範例 132
6.7 本章小結 139
習題 139
第7章 數組 143
7.1 一維數組的定義和初始化 143
7.1.1 一維數組的定義 143
7.1.2 一維數組的初始化 145
7.2 一維數組的使用 146
7.3 多維數組 149
7.3.1 二維數組的概念 149
7.3.2 二維數組的定義 150
7.3.3 多維數組的定義 150
7.3.4 二維數組及多維數組的初始化 152
7.4 字元數組 154
7.4.1 字元數組的初始化 155
7.4.2 字元串的輸入 156
7.4.3 字元串的輸出 157
7.4.4 二維字元數組 158
7.5 數組作為函式的參數 162
7.5.1 數組元素作為函式的參數 162
7.5.2 數組名作為函式的參數 163
7.6 程式範例 166
7.7 本章小結 171
習題 172
第8章 指針 177
8.1 指針的概念 177
8.1.1 指針變數的定義 177
8.1.2 指針變數的使用 178
8.1.3 指針變數與簡單變數的關係 179
8.2 指針的運算 180
8.2.1 指針的算術運算 180
8.2.2 指針的關係運算 181
8.3 指針與數組的關係 182
8.3.1 指向一維數組的指針 182
8.3.2 指向多維數組的指針 184
8.3.3 字元指針 189
8.3.4 指針數組 190
8.4 指針作為函式的參數 192
8.5 函式的返回值為指針 194
*8.6 指向函式的指針 195
*8.7 main函式的參數 197
*8.8 指向指針的指針 198
*8.9 圖形處理模式 199
8.10 程式範例 202
8.11 本章小結 210
習題 210
第9章 構造數據類型 215
9.1 結構體數據類型 215
9.1.1 結構體的定義 215
9.1.2 結構體變數的定義 216
9.1.3 結構體變數的初始化 217
9.1.4 結構體變數成員的引用 218
9.1.5 結構體變數成員的輸入/輸出 220
9.2 結構體數組 220
9.2.1 結構體數組的定義 220
9.2.2 結構體數組成員的初始化和引用 221
9.3 結構體變數與函式 221
9.3.1 函式的形參與實參為結構體 221
9.3.2 函式的返回值類型為結構體 222
9.4 聯合體數據類型 223
9.5 枚舉數據類型 226
9.6 鍊表的概念 227
9.6.1 動態分配記憶體 228
9.6.2 單鍊表的建立 229
9.6.3 從單鍊表中刪除結點 232
9.6.4 向鍊表中插入結點 234
9.7 程式範例 237
9.8 本章小結 243
習題 243
第10章 檔案操作 248
10.1 檔案的概念 248
10.2 檔案的操作 248
10.2.1 檔案的打開與關閉 248
10.2.2 檔案操作的錯誤檢測 251
10.2.3 檔案的順序讀寫 251
10.2.4 檔案的隨機讀寫 256
10.3 程式範例 259
10.4 本章小結 262
習題 262
第11章 位運算 266
11.1 按位取反運算 266
11.2 按位左移運算 267
11.3 按位右移運算 269
11.4 按位與運算 271
11.5 按位或運算 273
11.6 按位異或運算 274
11.7 複合位運算符 277
11.8 程式範例 277
11.9 本章小結 280
習題 280
附錄A C語言的關鍵字 283
附錄B ASCII字元表 284
附錄C 常用的C語言庫函式 287
附錄D 中英文關鍵字對照 293