前言
教學建議
第1章 緒論 1
1.1 程序設計語言的分類 1
1.1.1 低級語言 1
1.1.2 高級語言 1
1.2 C語言的發展簡史與特點 2
1.2.1 C語言發展簡史 2
1.2.2 C語言的特點 3
1.3 算法基礎 3
1.3.1 算法概述 3
1.3.2 算法的結構化描述 4
1.4 結構化程序設計 5
1.4.1 程序設計 5
1.4.2 結構化程序設計概述 5
1.5 程序設計風格 6
習題 7
第2章 C語言程序的開發過程 8
2.1 概述 8
2.2 C語言程序的集成開發環境 9
2.3 C語言程序的結構和語法規則 13
習題 15
第3章 基本數據類型 16
3.1 標識符 16
3.1.1 標識符的命名規則 16
3.1.2 標識符的分類 16
3.1.3 使用標識符的注意事項 17
3.2 C語言的數據類型 17
3.3 常量 17
3.3.1 整型常量 18
3.3.2 實型常量 18
3.3.3 字符常量 19
3.3.4 字符串常量 20
3.3.5 符號常量 20
3.4 變量 20
3.4.1 整型變量與賦值 21
3.4.2 實型變量 22
3.4.3 字符變量 23
習題 24
第4章 算術運算符與算術表達式 26
4.1 算術運算符及優先級 26
4.1.1 算術運算符 26
4.1.2 算術運算符的優先級 27
4.2 算術表達式 27
4.2.1 表達式 27
4.2.2 數學問題的表達式描述 28
4.2.3 標準數學函數的使用 29
4.3 類型轉換 29
4.3.1 自動轉換 29
4.3.2 強制類型轉換 31
習題 32
第5章 C語言程序的輸出與輸入 34
5.1 C語言語句 34
5.1.1 控制語句 34
5.1.2 函數調用語句 34
5.1.3 表達式語句 35
5.1.4 空語句 35
5.1.5 復合語句 35
5.2 格式化輸出 36
5.3 格式化輸入 39
5.4 單個字符的輸出和輸入 42
5.5 順序結構程序設計舉例 44
習題 45
第6章 選擇結構程序設計 49
6.1 關系運算符與關系表達式 49
6.2 邏輯運算符與邏輯表達式 50
6.3 選擇控制語句 52
6.3.1 if語句 52
6.3.2 switch語句與break語句 54
6.3.3 選擇結構的嵌套 56
6.4 選擇結構程序設計舉例 59
習題 61
第7章 循環結構程序設計 65
7.1 循環控制語句 65
7.1.1 while語句 65
7.1.2 do…while語句 66
7.1.3 for語句 67
7.1.4 循環的嵌套 69
7.2 輔助控制語句 70
7.2.1 continue語句 70
7.2.2 break語句 71
7.2.3 goto語句 72
7.3 循環結構程序設計舉例 73
習題 77
第8章 函數 82
8.1 函數的定義 82
8.2 函數的值 83
8.3 函數的調用 85
8.3.1 有參函數的調用 85
8.3.2 無參函數的調用 86
8.3.3 函數調用的方式 87
8.3.4 函數的聲明與函數的原型 88
習題 89
第9章 數組 93
9.1 一維數組 93
9.1.1 一維數組的定義 93
9.1.2 一維數組元素的引用 95
9.1.3 一維數組在內存中的存儲 97
9.1.4 一維字符數組的說明 97
9.2 二維數組 99
9.2.1 二維數組的定義 99
9.2.2 二維數組元素的引用 100
9.2.3 二維數組在內存中的存儲 101
9.3 數組作為函數參數 101
9.4 數組應用舉例 105
習題 110
第10章 結構體與共用體 114
10.1 結構體類型的定義 114
10.2 結構體變量的定義與引用 116
10.2.1 結構體變量的定義 116
10.2.2 結構體變量的引用 118
10.3 結構體數組 120
10.4 共用體 123
習題 125
第11章 指針 129
11.1 指針與指針變量 129
11.2 指針變量的定義與引用 130
11.2.1 指針變量的定義 130
11.2.2 指針變量的引用 131
11.3 指針變量應用舉例 135
習題 137
第12章 文件 140
12.1 文件概述 140
12.2 文件的打開與關閉 141
12.3 文件的讀/寫操作 144
習題 153
第13章 其他運算符與表達式 154
13.1 運算符與表達式概述 154
13.2 賦值運算符與賦值表達式 156
13.3 逗號運算符與逗號表達式 158
13.4 條件運算符與條件表達式 160
13.5 自增自減運算符 162
13.6 位運算 165
13.7 表達式應用舉例 168
習題 170
第14章 變量的存儲 174
14.1 變量的內存單元 174
14.1.1 整型變量在內存中的存儲 174
14.1.2 字符型變量在內存中的存儲 176
14.1.3 實型變量在內存中的存儲 176
14.2 變量的作用域 177
14.2.1 內部變量 177
14.2.2 外部變量 179
14.3 變量的生存期 181
習題 185
第15章 再論指針 189
15.1 指針與數組 189
15.1.1 一維數組與一維數組指針 189
15.1.2 二維數組指針及數組元素的
訪問 192
15.1.3 字符指針 195
15.2 指針數組 197
15.3 函數指針 201
15.4 結構體指針 203
15.4.1 指向結構體的指針 203
15.4.2 指向結構體數組的指針 205
15.5 存儲管理函數 206
15.6 鏈表 208
15.6.1 鏈表的概念 208
15.6.2 單鏈表的基本操作 210
習題 214
第16章 再論函數 218
16.1 函數的活動與存儲空間的布局 218
16.2 參數的傳遞機制 222
16.2.1 C語言參數傳遞 222
16.2.2 指針參數 222
16.2.3 數組參數 225
16.3 遞歸函數的應用 228
16.3.1 遞歸函數 228
16.3.2 直接遞歸與間接遞歸 231
16.3.3 遞歸函數的調用過程 232
16.3.4 遞歸和效率 234
習題 235
第17章 預處理命令 240
17.1 宏定義 240
17.1.1 無參宏定義 240
17.1.2 帶參宏定義 242
17.1.3 宏的作用域 243
17.1.4 帶參宏與函數的區別 243
17.2 文件包含 244
17.3 條件編譯 245
習題 247
附錄A 控制及圖形字符與ASCII代碼對照表 252
附錄B 常用庫函數 253
參考文獻 257