C++程式設計教程詳解——過程化編程

C++程式設計教程詳解——過程化編程

《C++程式設計教程詳解——過程化編程》是2014年5月清華大學出版社出版的圖書,作者是錢能。

內容簡介,圖書目錄,

內容簡介

本書的前身先是《C++程式設計教程》,曾獲教育部全國高校優秀教材獎,後是《C++程式教程教程(第二版)》,獲教育部普通高等教育“十一五”規劃教材及普通高等教育精品教材。將第二版分為過程化編程與對象化編程兩部分作進一步細述。過程化編程部分即為本書,對象化編程部分(即《C++程式設計教程詳解——對象化編程》)有待完企旬酷成。
本書共分9章三個部分,以C++問題分析求解展開,闡述程式設計的初級方法。
書中經常比照C語言,對促膠備微C++飲水思源,介紹C++的改進緣由和特徵,以使讀者不致因C++的優越感而迷失。書中始終圍繞定歸洪內部特性與抽象編程兩條主線,以使讀者學到更深刻的問題求解技巧和程式組織要訣。內部特性在於體現C++的編程技巧性特徵,抽象編程在於充分發揮C++靈活的編程方法和技術。
本書內容涉及初、高級編程諸問題,主要針對初學編程的學生和自學者,適宜作為初夜贈淋疊學編程的教材。該書對於執著徹求C++編程奧秘的讀者將會受益尤甚,對教師和程式設計師也不乏參考作用。

圖書目錄

第一部分 初 涉 編 程
第1章 編程認識 3
1.1 程式語言 3
1.1.1 語言與編程 3
1.1.2 程式翻譯 5
1.1.3 語言影響編程 7
1.2 操作與環境 9
1.2.1 檔案種類 9
1.2.2 操作流程 10
1.2.3 控制台編程 11
1.2.4 C++環境 12
1.3 從最小程式切入 13
1.3.1 帶輸出的最小程籃棗察序 13
1.3.2 程式解釋 13
1.3.3 比照C程式 15
1.3.4 實現與實踐 16
1.4 語句編體譽驗排 16
1.4.1 程式構成要素 16
1.4.2 變數與處理 20
1.4.3 空格與注釋 23
1.4.4 編排技巧 24
1.4.5 正埋全確性問題 29
1.5 重複執行問題 31
1.5.1 重複與循環 31
1.5.2 簡單循環控制 32
1.5.3 重複執行語句集合 36
1.6 規範問題描述 37
1.6.1 問題求解中的循環控制 37
1.6.2 問題求解模式 38
1.6.3 循環輸出字元矩形 39
1.6.4 循環輸出 41
1.7 目的歸納 41
1.7.1 程式語言 41
1.7.2 操作與環境 42
1.7.3 從最小程式切入 42
1.7.4 語句編排 42
1.7.5 重複輸出問題 42
1.7.6 規範問題描述 43
1.8 練習 43
A.一個@字元矩形(1163) 43
B.一個#字元正方形(1164) 44
C.一個字元三角形(1165) 44
D.正方形面積(1167) 45
E.A–B(1166) 45
第2章 過程控制 46
2.1 簡單for循環 46
2.1.1 for循環結構 46
2.1.2 次數控制方式 49
2.1.3 輸入控制方式 51
2.2 分支語句 53
2.2.1 if語句 53
2.2.2 switch語句 57
2.2.3 if與switch 61
2.3 循環語句 67
2.3.1 for循環嵌套 67
2.3.2 while循環 71
2.3.3 for與while 77
2.3.4 do-while循環 82
2.4 轉移語句 90
2.4.1 break語句 90
2.4.2 continue語句 94
2.4.3 goto語句 97
2.5 初涉函式 100
2.5.1 函式使用三部曲 100
2.5.2 分類與表達 104
2.6 輸入/輸出初步 106
2.6.1 標準輸入/輸出 106
2.6.2 輸入流 108
2.6.3 輸出流控制 108
2.6.4 printf格式控制 113
2.6.5 scanf格式控制 119
2.7 目的歸納 122
2.7.1 簡單for循環 122
2.7.2 分支語句 122
2.7.3 循環語句 122
2.7.4 轉移語句 123
2.7.5 初涉函式 123
2.7.6 輸入/輸出 123
2.7.7 歸納 123
2.8 練習 124
A.字母三角形 (1138) 124
B. 字元菱形(1169) 125
C. 背靠背字元三角形(1170) 125
D. 交替字元倒三角形(1171) 126
E. 格式陣列一(1172) 127
F.格式陣列二(1173) 127
第3章 數據類型 129
3.1 整型 129
3.1.1 內部表示原理 130
3.1.2 整型長度與範圍 133
3.1.3 整型數 136
3.1.4 整型操作 138
3.1.5 整數問題 140
3.2 整型子類 145
3.2.1 字元型 145
3.2.2 枚舉型 150
3.2.3 布爾型 152
3.3 浮點型 153
3.3.1 浮點型數 153
3.3.2 十進制小數 158
3.3.3 32位浮點數 160
3.3.4 三種浮點型 167
3.3.5 浮點數問題 170
3.4 C字串 174
3.4.1 C串表示 174
3.4.2 C串操作 178
3.5 string字串 186
3.5.1 string串 186
3.5.2 string流 194
3.6 輸入方式 199
3.6.1 基本輸入 199
3.6.2 檔案輸入 200
3.6.3 控制台輸入 203
3.6.4 標準鍵盤輸入 204
3.6.5 讀入行 205
3.6.6 讀入字元 207
3.7 目的歸納 208
3.7.1 整型數 209
3.7.2 浮點型 209
3.7.3 C串 209
3.7.4 string 210
3.7.5 輸入方式 210
3.8 練習 210
A.1!到n!的和(1174) 210
B.等比數列(1175) 211
C.平均數(1179) 211
D.級數求和(1180) 211
E.整數內碼(1183) 212
F.算菜價(1700) 212
G.去掉雙斜槓注釋(1216) 213
第二部分 拓 展 技 巧
第4章 數組與結構 217
4.1 一維數組 217
4.1.1 定義與初始化 217
4.1.2 空間與元素 221
4.1.3 數組意義 223
4.2 一維數組套用 225
4.2.1 可用數組解決 225
4.2.2 用數組更高效 232
4.2.3 通常用數組解決 237
4.3 多維數組 243
4.3.1 定義與初始化 243
4.3.2 多維數組套用 246
4.4 結構 252
4.4.1 結構概念 252
4.4.2 結構定義 253
4.4.3 結構操作 254
4.5 結構數組 258
4.5.1 定義與使用 258
4.5.2 結構數組套用 262
4.6 目的歸納 273
4.6.1 一維數組 273
4.6.2 一維數組套用 273
4.6.3 多維數組 273
4.6.4 結構 274
4.6.5 結構數組 274
4.7 練習 274
A.“順”序列(1198) 274
B.數星星(1008) 275
C.組合數(1086) 275
D.摺紙遊戲(1087) 276
E.倒楊輝三角形(1197) 277
F.檔案名稱排序(1383) 277
G.最少攔截系統(1099) 278
第5章 文法及表達 279
5.1 文法淺釋 279
5.1.1 文法概述 279
5.1.2 文法描述 283
5.1.3 文法約束 288
5.2 詞法理解 289
5.2.1 詞法 289
5.2.2 標識符 289
5.2.3 關鍵字 291
5.2.4 字面值 292
5.2.5 操作符 295
5.3 實體與類型 297
5.3.1 實體屬性 297
5.3.2 實體類型 298
5.3.3 常量 301
5.3.4 左值和右值 303
5.4 數值類型轉換 304
5.4.1 隱式轉換 304
5.4.2 顯式轉換 306
5.5 表達式 308
5.5.1 概念 308
5.5.2 賦值表達式 309
5.5.3 關係表達式 311
5.5.4 邏輯表達式 314
5.5.5 選擇表達式 316
5.5.6 逗號表達式 317
5.6 位邏輯 319
5.6.1 位操作 319
5.6.2 整除判斷問題 321
5.6.3 人員選派問題 324
5.7 表達式的副作用 329
5.7.1 運算元求值順序 329
5.7.2 編譯器相關 331
5.7.3 副作用現象 331
5.7.4 消除副作用 332
5.7.5 追根溯源 333
5.8 目的歸納 334
5.8.1 文法淺釋 334
5.8.2 詞法理解 334
5.8.3 實體與類型 334
5.8.4 類型轉換 335
5.8.5 表達式 335
5.8.6 位邏輯 335
5.8.7 表達式副作用 335
5.9 練習 336
A.三位對稱素數(1181) 336
B.十-二進制轉換(1185) 336
C.斐波那契數的餘數(1090) 337
D.五位以內對稱素數(1187) 337
E.統計天數(1188) 338
F.整除3、5、7(1184) 338
第6章 數據指針 340
6.1 指針本質 340
6.1.1 原始概念 340
6.1.2 記憶體地址 341
6.1.3 定義與性質 342
6.1.4 間接訪問 346
6.1.5 類型轉換 350
6.2 指針限定 353
6.2.1 實體與名字對應 353
6.2.2 限定指針 354
6.3 數組的指針性 359
6.3.1 數組實體 359
6.3.2 訪問元素 365
6.3.3 指針與數組的差別 369
6.4 數組類型蛻變 372
6.4.1 數組傳遞 372
6.4.2 數組傳遞實例 376
6.5 動態記憶體 379
6.5.1 概念 379
6.5.2 申請與釋放 381
6.5.3 堆空間管理 388
6.5.4 記憶體泄漏與溢出 390
6.6 指針與結構 394
6.6.1 結構指針 394
6.6.2 鏈結構 398
6.6.3 鍊表操作 403
6.7 目的歸納 413
6.7.1 指針本質 413
6.7.2 指針限定 413
6.7.3 數組的指針性 414
6.7.4 數組類型蛻變 414
6.7.5 動態記憶體 414
6.7.6 指針與結構 415
6.8 練習 415
A.浮點數位碼(1193) 415
B.半數跳海(1080) 416
C.歌詞字數排序 417
D.仿記憶體管理 418
E.機器人排序 419
第三部分 組 織 程 序
第7章 函式初步 423
7.1 函式參數 423
7.1.1 參數概念 423
7.1.2 參數傳遞 425
7.1.3 類型匹配 428
7.1.4 參數默認 429
7.2 指針參數 433
7.2.1 指針參數的作用 433
7.2.2 傳遞安全性 436
7.2.3 指針參數的作用 437
7.3 引用參數 438
7.3.1 引用 438
7.3.2 引用匹配 441
7.3.3 引用本質 443
7.4 函式返回 447
7.4.1 函式的返回 447
7.4.2 返回指針 449
7.4.3 返回引用 452
7.5 函式重載 455
7.5.1 重載概述 455
7.5.2 重載識別 458
7.5.3 重載技術 461
7.5.4 重載抑或參數默認 462
7.6 函式指針 465
7.6.1 函式類型 465
7.6.2 指向函式的指針 467
7.6.3 作為參數 470
7.6.4 類型名 474
7.6.5 函式指針數組 477
7.6.6 函式類型蛻化 478
7.6.7 函式指針意義 480
7.7 目的歸納 481
7.7.1 函式參數 481
7.7.2 指針參數 481
7.7.3 引用參數 481
7.7.4 函式返回 481
7.7.5 函式重載 482
7.7.6 函式指針 482
7.8 練習 482
A.對稱素數(1194) 482
B.n!的位數(1215) 483
C.12!配對(1191) 483
D.大數和(1222) 483
E.大數乘(1225) 484
F.排列對稱串(1218) 484
第8章 函式進階 486
8.1 函式棧 486
8.1.1 運行記憶體布局 486
8.1.2 棧機制 490
8.1.3 棧區演繹 494
8.2 函式驅動問題 498
8.2.1 函式驅動說明 498
8.2.2 驅動的制約因素 499
8.2.3 棧中騰挪問題 499
8.3 main函式 501
8.3.1 命令驅動 501
8.3.2 main參數 503
8.3.3 main返回 508
8.4 遞歸原理 510
8.4.1 遞歸概念 510
8.4.2 遞歸函式設計要領 512
8.4.3 消去遞歸 515
8.5 函式設計 518
8.5.1 一般設計原則 518
8.5.2 函式模組理論 526
8.6 語言設計 530
8.6.1 函式黑盒性 530
8.6.2 折中設計 533
8.6.3 函式副作用 535
8.7 目的歸納 538
8.7.1 函式棧 538
8.7.2 函式驅動 538
8.7.3 main函式 539
8.7.4 遞歸函式 539
8.7.5 函式設計 539
8.7.6 語言設計 540
8.8 練習 540
A. 最大公約數(1177) 540
B. 密鑰加密(1195) 540
C. 斐波那契數(1219) 541
D. 整數模(1227) 542
E. 最近的兩點(1223) 542
F. 整數的因子數(1192) 543
第9章 程式構造 545
9.1 程式概述 545
9.1.1 靜態描述 545
9.1.2 動態描述 551
9.2 程式組織 554
9.2.1 邏輯設計 554
9.2.2 代碼組織 556
9.2.3 數據布局 563
9.3 設計實例 567
9.3.1 Josephus問題 567
9.3.2 再析Josephus問題 576
9.4 名字時效 584
9.4.1 作用域 584
9.4.2 生命期 595
9.4.3 名空間 597
9.5 編譯實現 605
9.5.1 編譯指令 605
9.5.2 編譯連結 613
9.5.3 編譯錯誤 617
9.6 目的歸納 629
9.6.1 程式概述 629
9.6.2 程式組織 629
9.6.3 設計實例 630
9.6.4 名字時效 630
9.6.5 編譯實現 630
9.7 練習 630
A.大數四則運算 630
B.小計算器 631
參考文獻 636
2.2 分支語句 53
2.2.1 if語句 53
2.2.2 switch語句 57
2.2.3 if與switch 61
2.3 循環語句 67
2.3.1 for循環嵌套 67
2.3.2 while循環 71
2.3.3 for與while 77
2.3.4 do-while循環 82
2.4 轉移語句 90
2.4.1 break語句 90
2.4.2 continue語句 94
2.4.3 goto語句 97
2.5 初涉函式 100
2.5.1 函式使用三部曲 100
2.5.2 分類與表達 104
2.6 輸入/輸出初步 106
2.6.1 標準輸入/輸出 106
2.6.2 輸入流 108
2.6.3 輸出流控制 108
2.6.4 printf格式控制 113
2.6.5 scanf格式控制 119
2.7 目的歸納 122
2.7.1 簡單for循環 122
2.7.2 分支語句 122
2.7.3 循環語句 122
2.7.4 轉移語句 123
2.7.5 初涉函式 123
2.7.6 輸入/輸出 123
2.7.7 歸納 123
2.8 練習 124
A.字母三角形 (1138) 124
B. 字元菱形(1169) 125
C. 背靠背字元三角形(1170) 125
D. 交替字元倒三角形(1171) 126
E. 格式陣列一(1172) 127
F.格式陣列二(1173) 127
第3章 數據類型 129
3.1 整型 129
3.1.1 內部表示原理 130
3.1.2 整型長度與範圍 133
3.1.3 整型數 136
3.1.4 整型操作 138
3.1.5 整數問題 140
3.2 整型子類 145
3.2.1 字元型 145
3.2.2 枚舉型 150
3.2.3 布爾型 152
3.3 浮點型 153
3.3.1 浮點型數 153
3.3.2 十進制小數 158
3.3.3 32位浮點數 160
3.3.4 三種浮點型 167
3.3.5 浮點數問題 170
3.4 C字串 174
3.4.1 C串表示 174
3.4.2 C串操作 178
3.5 string字串 186
3.5.1 string串 186
3.5.2 string流 194
3.6 輸入方式 199
3.6.1 基本輸入 199
3.6.2 檔案輸入 200
3.6.3 控制台輸入 203
3.6.4 標準鍵盤輸入 204
3.6.5 讀入行 205
3.6.6 讀入字元 207
3.7 目的歸納 208
3.7.1 整型數 209
3.7.2 浮點型 209
3.7.3 C串 209
3.7.4 string 210
3.7.5 輸入方式 210
3.8 練習 210
A.1!到n!的和(1174) 210
B.等比數列(1175) 211
C.平均數(1179) 211
D.級數求和(1180) 211
E.整數內碼(1183) 212
F.算菜價(1700) 212
G.去掉雙斜槓注釋(1216) 213
第二部分 拓 展 技 巧
第4章 數組與結構 217
4.1 一維數組 217
4.1.1 定義與初始化 217
4.1.2 空間與元素 221
4.1.3 數組意義 223
4.2 一維數組套用 225
4.2.1 可用數組解決 225
4.2.2 用數組更高效 232
4.2.3 通常用數組解決 237
4.3 多維數組 243
4.3.1 定義與初始化 243
4.3.2 多維數組套用 246
4.4 結構 252
4.4.1 結構概念 252
4.4.2 結構定義 253
4.4.3 結構操作 254
4.5 結構數組 258
4.5.1 定義與使用 258
4.5.2 結構數組套用 262
4.6 目的歸納 273
4.6.1 一維數組 273
4.6.2 一維數組套用 273
4.6.3 多維數組 273
4.6.4 結構 274
4.6.5 結構數組 274
4.7 練習 274
A.“順”序列(1198) 274
B.數星星(1008) 275
C.組合數(1086) 275
D.摺紙遊戲(1087) 276
E.倒楊輝三角形(1197) 277
F.檔案名稱排序(1383) 277
G.最少攔截系統(1099) 278
第5章 文法及表達 279
5.1 文法淺釋 279
5.1.1 文法概述 279
5.1.2 文法描述 283
5.1.3 文法約束 288
5.2 詞法理解 289
5.2.1 詞法 289
5.2.2 標識符 289
5.2.3 關鍵字 291
5.2.4 字面值 292
5.2.5 操作符 295
5.3 實體與類型 297
5.3.1 實體屬性 297
5.3.2 實體類型 298
5.3.3 常量 301
5.3.4 左值和右值 303
5.4 數值類型轉換 304
5.4.1 隱式轉換 304
5.4.2 顯式轉換 306
5.5 表達式 308
5.5.1 概念 308
5.5.2 賦值表達式 309
5.5.3 關係表達式 311
5.5.4 邏輯表達式 314
5.5.5 選擇表達式 316
5.5.6 逗號表達式 317
5.6 位邏輯 319
5.6.1 位操作 319
5.6.2 整除判斷問題 321
5.6.3 人員選派問題 324
5.7 表達式的副作用 329
5.7.1 運算元求值順序 329
5.7.2 編譯器相關 331
5.7.3 副作用現象 331
5.7.4 消除副作用 332
5.7.5 追根溯源 333
5.8 目的歸納 334
5.8.1 文法淺釋 334
5.8.2 詞法理解 334
5.8.3 實體與類型 334
5.8.4 類型轉換 335
5.8.5 表達式 335
5.8.6 位邏輯 335
5.8.7 表達式副作用 335
5.9 練習 336
A.三位對稱素數(1181) 336
B.十-二進制轉換(1185) 336
C.斐波那契數的餘數(1090) 337
D.五位以內對稱素數(1187) 337
E.統計天數(1188) 338
F.整除3、5、7(1184) 338
第6章 數據指針 340
6.1 指針本質 340
6.1.1 原始概念 340
6.1.2 記憶體地址 341
6.1.3 定義與性質 342
6.1.4 間接訪問 346
6.1.5 類型轉換 350
6.2 指針限定 353
6.2.1 實體與名字對應 353
6.2.2 限定指針 354
6.3 數組的指針性 359
6.3.1 數組實體 359
6.3.2 訪問元素 365
6.3.3 指針與數組的差別 369
6.4 數組類型蛻變 372
6.4.1 數組傳遞 372
6.4.2 數組傳遞實例 376
6.5 動態記憶體 379
6.5.1 概念 379
6.5.2 申請與釋放 381
6.5.3 堆空間管理 388
6.5.4 記憶體泄漏與溢出 390
6.6 指針與結構 394
6.6.1 結構指針 394
6.6.2 鏈結構 398
6.6.3 鍊表操作 403
6.7 目的歸納 413
6.7.1 指針本質 413
6.7.2 指針限定 413
6.7.3 數組的指針性 414
6.7.4 數組類型蛻變 414
6.7.5 動態記憶體 414
6.7.6 指針與結構 415
6.8 練習 415
A.浮點數位碼(1193) 415
B.半數跳海(1080) 416
C.歌詞字數排序 417
D.仿記憶體管理 418
E.機器人排序 419
第三部分 組 織 程 序
第7章 函式初步 423
7.1 函式參數 423
7.1.1 參數概念 423
7.1.2 參數傳遞 425
7.1.3 類型匹配 428
7.1.4 參數默認 429
7.2 指針參數 433
7.2.1 指針參數的作用 433
7.2.2 傳遞安全性 436
7.2.3 指針參數的作用 437
7.3 引用參數 438
7.3.1 引用 438
7.3.2 引用匹配 441
7.3.3 引用本質 443
7.4 函式返回 447
7.4.1 函式的返回 447
7.4.2 返回指針 449
7.4.3 返回引用 452
7.5 函式重載 455
7.5.1 重載概述 455
7.5.2 重載識別 458
7.5.3 重載技術 461
7.5.4 重載抑或參數默認 462
7.6 函式指針 465
7.6.1 函式類型 465
7.6.2 指向函式的指針 467
7.6.3 作為參數 470
7.6.4 類型名 474
7.6.5 函式指針數組 477
7.6.6 函式類型蛻化 478
7.6.7 函式指針意義 480
7.7 目的歸納 481
7.7.1 函式參數 481
7.7.2 指針參數 481
7.7.3 引用參數 481
7.7.4 函式返回 481
7.7.5 函式重載 482
7.7.6 函式指針 482
7.8 練習 482
A.對稱素數(1194) 482
B.n!的位數(1215) 483
C.12!配對(1191) 483
D.大數和(1222) 483
E.大數乘(1225) 484
F.排列對稱串(1218) 484
第8章 函式進階 486
8.1 函式棧 486
8.1.1 運行記憶體布局 486
8.1.2 棧機制 490
8.1.3 棧區演繹 494
8.2 函式驅動問題 498
8.2.1 函式驅動說明 498
8.2.2 驅動的制約因素 499
8.2.3 棧中騰挪問題 499
8.3 main函式 501
8.3.1 命令驅動 501
8.3.2 main參數 503
8.3.3 main返回 508
8.4 遞歸原理 510
8.4.1 遞歸概念 510
8.4.2 遞歸函式設計要領 512
8.4.3 消去遞歸 515
8.5 函式設計 518
8.5.1 一般設計原則 518
8.5.2 函式模組理論 526
8.6 語言設計 530
8.6.1 函式黑盒性 530
8.6.2 折中設計 533
8.6.3 函式副作用 535
8.7 目的歸納 538
8.7.1 函式棧 538
8.7.2 函式驅動 538
8.7.3 main函式 539
8.7.4 遞歸函式 539
8.7.5 函式設計 539
8.7.6 語言設計 540
8.8 練習 540
A. 最大公約數(1177) 540
B. 密鑰加密(1195) 540
C. 斐波那契數(1219) 541
D. 整數模(1227) 542
E. 最近的兩點(1223) 542
F. 整數的因子數(1192) 543
第9章 程式構造 545
9.1 程式概述 545
9.1.1 靜態描述 545
9.1.2 動態描述 551
9.2 程式組織 554
9.2.1 邏輯設計 554
9.2.2 代碼組織 556
9.2.3 數據布局 563
9.3 設計實例 567
9.3.1 Josephus問題 567
9.3.2 再析Josephus問題 576
9.4 名字時效 584
9.4.1 作用域 584
9.4.2 生命期 595
9.4.3 名空間 597
9.5 編譯實現 605
9.5.1 編譯指令 605
9.5.2 編譯連結 613
9.5.3 編譯錯誤 617
9.6 目的歸納 629
9.6.1 程式概述 629
9.6.2 程式組織 629
9.6.3 設計實例 630
9.6.4 名字時效 630
9.6.5 編譯實現 630
9.7 練習 630
A.大數四則運算 630
B.小計算器 631
參考文獻 636

相關詞條

熱門詞條

聯絡我們