C語言程序設計基礎教程(第2版)
李少芳、張穎
商品描述
目錄大綱
目錄
第1章 C語言概述 1
1.1 C語言的發展歷史及特點 2
1.1.1 程序與軟件 2
1.1.2 C語言的發展歷史 3
1.1.3 C語言的特點 5
1.2 算法概述 6
1.2.1 算法的概念 7
1.2.2 算法的特性 7
1.2.3 算法的表示 7
1.3 C語言程序的基本結構 9
1.4 C語言程序的編譯與運行 16
1.5 C/C++開發環境 17
1.5.1 Visual C++開發環境 17
1.5.2 Dev C++開發環境 19
1.6 習題 21
1.6.1 選擇題 21
1.6.2 填空題 24
1.6.3 編程題 24
1.6.4 簡答題 25
第2章 基本數據類型與運算 26
2.1 數據類型 27
2.1.1 C語言數據類型 27
2.1.2 數據存儲形式 28
2.1.3 數據溢出的發生 29
2.2 常量 31
2.2.1 整型常量 31
2.2.2 實型常量 32
2.2.3 字符常量、轉義字符 33
2.2.4 符號常量 34
2.2.5 字符串常量 35
2.3 變量 35
2.3.1 C語言標識符 35
2.3.2 變量的定義 36
2.3.3 變量的賦值 37
2.4 運算符與表達式 38
2.4.1 算術運算符 38
2.4.2 自增和自減運算符 39
2.4.3 關系運算符 41
2.4.4 邏輯運算符 41
2.4.5 賦值運算符 42
2.4.6 條件運算符 43
2.4.7 逗號運算符 44
2.4.8 位運算符 44
2.4.9 求字節數運算符 46
2.4.10 各類型數值數據的混合運算 47
2.5 常用數學函數 50
2.6 格式化輸入/輸出函數 52
2.6.1 格式化輸出函數 53
2.6.2 格式化輸入函數 55
2.6.3 C程序常見的錯誤類型分析 57
2.6.4 提高C程序的可讀性 60
2.7 字符輸入/輸出函數 60
2.7.1 字符輸出函數 60
2.7.2 字符輸入函數 61
2.8 習題 61
2.8.1 選擇題 61
2.8.2 填空題 62
2.8.3 求表達式的值 63
2.8.4 編程題 64
第3章 結構化程序設計 65
3.1 順序結構 66
3.2 選擇結構 67
3.2.1 if語句 68
3.2.2 switch語句 72
3.3 循環結構 74
3.3.1 while語句循環結構 74
3.3.2 do…while語句循環結構 76
3.3.3 for語句循環結構 78
3.3.4 跳轉 79
3.4 常用算法 81
3.4.1 窮舉法 81
3.4.2 歸納法 84
3.5 習題 88
3.5.1 選擇題 88
3.5.2 程序運行題 89
3.5.3 編程題 90
第4章 數組 92
4.1 一維數組 93
4.1.1 一維數組的定義 93
4.1.2 一維數組的引用 94
4.1.3 一維數組的初始化 94
4.2 一維數組應用舉例 96
4.2.1 順序查找法 96
4.2.2 折半查找法 97
4.2.3 冒泡排序法 99
4.2.4 直接交換排序法 101
4.2.5 選擇排序法 102
4.2.6 插入排序法 104
4.3 二維數組 109
4.3.1 二維數組的定義 109
4.3.2 二維數組的引用 109
4.3.3 二維數組的初始化 110
4.4 二維數組應用舉例 111
4.5 字符數組和字符串 114
4.5.1 字符數組的定義 114
4.5.2 字符數組的初始化 115
4.5.3 字符數組的輸入 116
4.5.4 字符數組的輸出 117
4.6 字符串操作函數 119
4.7 習題 126
4.7.1 選擇題 126
4.7.2 編程題 127
第5章 函數 130
5.1 函數概述 131
5.2 函數的定義和調用 132
5.2.1 函數的定義 132
5.2.2 函數的調用 133
5.2.3 函數的聲明 133
5.2.4 函數的返回值 134
5.3 函數的參數傳遞 134
5.4 函數的遞歸調用 136
5.4.1 遞歸調用的概述 136
5.4.2 遞歸法 137
5.5 變量的存儲類型和作用域 142
5.5.1 變量的存儲類型 142
5.5.2 變量的作用域 143
5.6 外部函數 148
5.7 習題 148
5.7.1 選擇題 148
5.7.2 填空題 151
5.7.3 程序運行題 152
5.7.4 編程題 154
第6章 指針 156
6.1 地址和指針變量 157
6.1.1 地址 157
6.1.2 指針變量 159
6.1.3 指針變量的運算 160
6.1.4 指針變量作為函數參數 161
6.2 指針與數組 161
6.2.1 指針與一維數組 162
6.2.2 行指針與列指針的關系 162
6.2.3 遍歷二維數組 163
6.2.4 指向行數組的指針變量 164
6.3 指針與字符串 165
6.3.1 指向字符串的指針 165
6.3.2 字符數組和字符指針變量的區別 166
6.4 指針作為函數參數 167
6.4.1 值傳遞與地址傳遞 168
6.4.2 地址傳遞方式 168
6.5 指針與函數 169
6.5.1 指向函數的指針變量 169
6.5.2 返回指針值的函數 170
6.6 指針數組與多級指針 171
6.6.1 指針數組 171
6.6.2 多級指針 172
6.7 習題 173
6.7.1 選擇題 173
6.7.2 程序運行題 174
6.7.3 填空題 176
6.7.4 編程題 178
第7章 結構體和共用體 181
7.1 結構體 182
7.1.1 定義結構體類型 182
7.1.2 定義結構體變量 183
7.1.3 結構體變量的引用 185
7.1.4 結構體變量的初始化和賦值 186
7.1.5 結構體數組 188
7.1.6 指向結構體類型的指針 189
7.2 共用體 191
7.2.1 定義共用體類型 191
7.2.2 共用體變量的聲明 191
7.2.3 共用體變量的引用 192
7.3 枚舉類型 194
7.3.1 定義枚舉類型 194
7.3.2 枚舉型變量的聲明 195
7.3.3 枚舉型變量的引用 195
7.4 typedef 196
7.4.1 typedef的用法 196
7.4.2 typedef應用示例 197
7.5 習題 198
7.5.1 選擇題 198
7.5.2 填空題 201
7.5.3 編程題 204
第8章 文件 207
8.1 C文件概述 208
8.1.1 流式文件 208
8.1.2 文件類型FILE 209
8.1.3 文件類型指針 209
8.2 文件的打開與關閉 210
8.2.1 文件的打開 210
8.2.2 文件的關閉 211
8.3 文件的讀/寫 212
8.3.1 單字符讀/寫fputc和fgetc函數 212
8.3.2 字符串讀/寫fputs和fgets函數 213
8.3.3 格式化讀/寫fprintf和fscanf函數 214
8.3.4 數據塊讀/寫fwrite和fread函數 216
8.4 文件的定位 218
8.4.1 順序讀/寫與隨機讀/寫 219
8.4.2 rewind、ftell和fseek函數 219
8.5 文件的出錯檢測 220
8.5.1 ferror函數 220
8.5.2 feof函數 220
8.5.3 clearerr函數 221
8.6 習題 221
8.6.1 選擇題 221
8.6.2 填空題 224
第9章 面向對象基礎 227
9.1 C++編程基礎 228
9.1.1 C++編程概述 228
9.1.2 註釋方式 229
9.1.3 換行符endl 230
9.2 類和對象 230
9.2.1 類的定義 231
9.2.2 對象的定義 233
9.3 成員函數 234
9.4 構造函數和析構函數 235
9.4.1 構造函數的定義 235
9.4.2 類的默認構造函數 237
9.4.3 構造函數的重載 238
9.4.4 拷貝構造函數 238
9.4.5 析構函數 242
9.4.6 構造順序 242
9.5 類的設計案例分析 245
9.5.1 案例1:MyClass類的設計 246
9.5.2 案例2:BankAccount的設計 247
9.5.3 案例3:Person類的設計 249
9.6 習題 252
9.6.1 選擇題 252
9.6.2 程序運行題 255
9.6.3 填空題 256
9.6.4 編程題 259
參考文獻 260
附錄 261



