內容簡介
本書介紹C語言的基礎知識,以Visual C ++ 6.0為編程環境,通過分析問題、設計算法、編寫和調試程式這些步驟,力求讓讀者掌握分析問題的方法,培養設計算法的能力。
全書共17章。第1章~第3章介紹程式設計與C語言的基礎知識;第4章~第7章介紹4種基本的算法與程式設計;第8章~第11章介紹函式、編譯預處理、指針、結構體和鍊表等;第12、第13章介紹位運算與檔案;第14章~第16章介紹面向對象程式設計的類與對象、繼承與派生、多態性與虛函式;第17章介紹幾個綜合實例。
圖書目錄
第1章 程式設計基礎 1
1.1 程式設計語言 1
1.1.1 什麼是程式 1
1.1.2 語言的分類 1
1.1.3 C語言簡介 2
1.1.4 C語言組成 3
1.2 計算機的組成與程式設計的本質 3
1.2.1 計算機系統結構 4
1.2.2 程式設計的本質 4
1.2.3 程式設計的過程 4
1.3 算法的概念和特性 5
1.3.1 什麼是算法 5
1.3.2 算法舉例 6
1.3.3 算法的特性 7
1.4 算法的表示方法 7
1.4.1 自然語言 7
1.4.2 偽代碼 7
1.4.3 傳統流程圖 7
1.4.4 N-S流程圖 8
1.5 結構化的程式設計方法 8
1.5.1 結構化程式設計 9
1.5.2 結構化程式設計方法 10
習題 10
第2章 Visual C++ 6.0簡介 12
2.1 Visual C++ 6.0簡介 12
2.2 Visual C++ 6.0的安裝與啟動 12
2.2.1 安裝過程 12
2.2.2 Visual C++ 6.0的啟動 14
2.3 Visual C++ 6.0的集成開發環境 15
2.4 Visual C++ 6.0的幫助 18
2.5 Visual C++ 6.0中的C語言程式設計 19
習題 23
第3章 數據類型、運算符與表達式 25
3.1 C語言的數據類型 25
3.2 常量與變數 25
3.2.1 變數 25
3.2.2 常量 28
3.3 整型數據 29
3.3.1 整型常量與變數 29
3.3.2 整型數據的輸入和輸出 30
3.3.3 整型數據在記憶體中的存儲方式 36
3.4 實型數據 37
3.4.1 實型常量與變數 37
3.4.2 實型數據的輸入和輸出 38
3.4.3 實型數據在記憶體中的存儲方式 39
3.5 字元型數據 41
3.5.1 字元型常量、轉義字元與變數 41
3.5.2 字元型數據的輸入和輸出 43
3.6 字元串 45
3.7 算術運算符和算術表達式 45
3.7.1 C語言運算符簡介 45
3.7.2 算術運算符和表達式 46
3.7.3 自增自減運算符 47
3.7.4 賦值運算符和賦值表達式 49
3.7.5 逗號運算符和表達式 51
3.8 數據類型的轉換 52
3.8.1 隱式類型轉換 52
3.8.2 強制類型轉換運算符 52
習題 53
第4章 順序結構程式設計 57
4.1 C語句概述 57
4.2 C程式的注釋 58
4.3 順序結構程式設計 58
4.4 常見的編程錯誤及其調試 63
4.4.1 語法錯誤 63
4.4.2 運行時錯誤 65
4.4.3 未檢測到的錯誤 65
4.4.4 邏輯錯誤 66
4.4.5 程式調試方法 67
習題 68
第5章 選擇結構程式設計 69
5.1 選擇結構算法設計 69
5.2 關係運算與邏輯運算 72
5.2.1 關係運算符和關係表達式 72
5.2.2 邏輯運算符和邏輯表達式 74
5.3 if語句 76
5.4 switch語句 80
5.5 選擇結構的嵌套 84
5.6 條件運算符 88
習題 89
第6章 循環結構程式設計 94
6.1 循環結構概述 94
6.2 循環結構算法設計 95
6.2.1 當型循環和直到型循環 95
6.2.2 循環算法的設計 97
6.3 循環結構編程 99
6.3.1 while語句(當型循環) 99
6.3.2 do while語句(直到型循環) 101
6.3.3 for循環語句 103
6.3.4 break語句和continue語句 105
6.3.5 循環的嵌套 107
6.4 循環結構程式舉例 109
6.5 goto語句★ 120
習題 121
第7章 數組 128
7.1 數組 128
7.1.1 數組的引出 128
7.1.2 多維數組 128
7.2 一維數組算法設計 129
7.3 一維數組程式設計 131
7.3.1 一維數組的定義 131
7.3.2 數組元素引用 131
7.3.3 一維數組初始化 132
7.3.4 一維數組程式設計 132
7.4 二維數組算法設計 137
7.5 二維數組程式設計 139
7.5.1 二維數組的定義 139
7.5.2 數組元素引用 140
7.5.3 二維數組初始化 140
7.5.4 二維數組程式設計 140
7.6 字元數組 145
7.6.1 字元數組的定義和使用 145
7.6.2 字元串數組 147
7.6.3 字元串處理函式 149
7.6.4 字元串處理算法和程式設計 152
習題 155
第8章 函式 162
8.1 函式的定義和調用 162
8.1.1 函式定義 162
8.1.2 函式調用 163
8.1.3 參數的傳遞 166
8.1.4 函式返回值 168
8.2 數組作為參數 169
8.3 函式的嵌套調用 174
8.4 函式的遞歸調用 176
8.5 局部變數和全局變數 178
8.6 變數的存儲類別和生存期 181
8.7 程式的模組化設計 183
習題 185
第9章 編譯和編譯預處理 192
9.1 宏定義 192
9.1.1 不帶參數的宏定義 192
9.1.2 帶參數的宏定義 195
9.2 檔案包含 198
9.3 條件編譯 200
習題 203
第10章 指針 207
10.1 地址和指針 207
10.2 變數的指針和指向變數的指針變數 207
10.2.1 定義指針變數 208
10.2.2 指針變數的引用 208
10.2.3 指針變數作為函式參數 210
10.3 數組的指針和指向數組的指針變數 212
10.3.1 指向數組元素的指針 212
10.3.2 通過指針引用數組元素 213
10.3.3 數組和指向數組的指針變數作函式參數 215
10.3.4 指向多維數組的指針和指針變數 218
10.4 字元串的指針和指向字元串的指針變數 220
10.4.1 字元串的表示形式 220
10.4.2 字元串指針作函式參數 222
10.4.3 字元指針變數和字元數組的討論 223
10.5 函式的指針和指向函式的指針變數★ 224
10.5.1用函式指針變數調用函式 224
10.5.2 用指向函式的指針作函式參數 225
10.6 返回指針值的函式 226
10.7 指針數組和指向指針的指針 227
10.7.1 指針數組 227
10.7.2 指向指針的指針 230
10.7.3 指針數組作main函式的形參 232
習題 234
第11章 其他數據類型 239
11.1 結構體 239
11.1.1 結構體類型的聲明 239
11.1.2 定義結構體類型變數 240
11.1.3 結構體變數的引用 242
11.1.4 結構體變數的初始化 243
11.2 結構體數組 245
11.2.1 定義結構體數組 245
11.2.2 結構體數組的初始化 245
11.2.3 結構體數組套用舉例 247
11.3 指向結構體類型數據的指針 248
11.3.1 指向結構體變數的指針 248
11.3.2 指向結構體數組的指針 249
11.3.3 用結構體變數和指向結構體的指針作函式參數 250
11.4 鍊表 251
11.4.1 鍊表概述 251
11.4.2 處理動態鍊表所需的函式 253
11.4.3 建立動態鍊表 255
11.4.4 輸出鍊表 257
11.4.5 刪除鍊表的結點 258
11.4.6 插入鍊表結點 261
11.4.7 鍊表的綜合操作 265
11.5 共用體 266
11.5.1 共用體的概念 266
11.5.2 共用體變數的引用 267
11.6 枚舉類型 270
11.7 用typedef定義類型 272
習題 274
第12章 位運算 281
12.1 位運算符和位運算 281
12.2 按位取反(~)運算符 281
12.3 按位與(&)運算符 282
12.4 按位或(|)運算符 283
12.5 按位異或(^)運算符 284
12.6 左移(<<)運算符 285
12.7 右移(>>)運算符 286
12.8 位運算賦值運算符 287
12.9 不同長度的運算數之間的運算規則 287
12.10 位運算程式實例 287
習題 289
第13章 檔案 291
13.1 檔案概述 291
13.2 檔案指針 292
13.3 檔案的打開與關閉 293
13.3.1 fopen函式 293
13.3.2 fclose函式 294
13.4 檔案的讀寫 295
13.4.1 fputc函式 295
13.4.2 fgetc函式 297
13.4.3 fputs函式 298
13.4.4 fgets函式 299
13.4.5 fprintf函式 299
13.4.6 fscanf函式 301
13.4.7 fwrite函式 301
13.4.8 fread函式 303
13.4.9 rewind函式 304
13.4.10 fseek函式 304
13.4.11 ftell函式 305
13.4.12 feof函式 306
13.4.13 ferror函式 306
習題 307
第14章 C++及面向對象程式設計基礎 309
14.1 類與對象的定義 309
14.1.1 類的定義 309
14.1.2 對象的定義與使用 310
14.2 對象的初始化、構造函式和析構函式 311
14.2.1 構造函式 312
14.2.2 析構函式 313
14.3 對象的使用 314
14.3.1 類的包含和子對象的初始化 314
14.3.2 對象指針 314
14.3.3 對象數組 315
14.4 對象在函式間的傳遞 316
14.4.1 對象作為函式的返回值 316
14.4.2 對象作為函式參數 316
14.5 對象的作用域與生命周期 317
14.6 靜態數據成員和靜態成員函式 317
14.7 友元 319
14.7.1 友元函式 319
14.7.2 友元成員 320
14.7.3 友元類 321
14.8 常對象 322
習題 323
第15章 繼承性與派生類 326
15.1 基類與派生類 326
15.2 單一繼承 326
15.2.1 單一繼承派生類的定義 326
15.2.2 公有繼承、私有繼承和保護繼承 328
15.2.3 單一繼承派生類的構造函式和析構函式 332
15.3 多重繼承 333
15.3.1 多重繼承派生類的定義 333
15.3.2 多重繼承派生類的構造函式和析構函式 335
15.3.3 多重繼承中的歧義 336
15.4 虛基類 338
15.4.1 虛基類的概念 338
15.4.2 虛基類及其派生類的構造函式和析構函式 339
習題 341
第16章 多態性與虛函式 345
16.1 多態性與虛函式 345
16.2 運算符重載 345
16.2.1 運算符重載為成員函式 346
16.2.2 運算符重載為友元函式 347
16.3 靜態聯編和動態聯編 349
16.3.1 靜態聯編 350
16.3.2 動態聯編 351
16.4 虛函式 351
16.5 純虛函式和抽象類 356
16.5.1 純虛函式 356
16.5.2 抽象類 358
習題 358
第17章 綜合程式設計 364
17.1 排序算法比較 364
17.2 個人通訊錄 369
17.3 萬年曆 375
習題 379
附錄Ⅰ Visual C++ 6.0常見錯誤提示 380
附錄Ⅱ ANSI C常用庫函式 382
參考文獻 388