C 入門經典(第9版)

C 入門經典(第9版)

本書適合C++程式設計和計算機科學入門課程使用。閱讀本書不要求讀者有任何編程經驗,也不要求掌握除了中學代數之外的其他任何數學知識。

基本介紹

  • 書名:C入門經典(第9版)
  • 作者:(美)Walter Savitch
  • 譯者: 周靖
  • ISBN:9787302402978
  • 定價:128元
  • 出版社:清華大學出版社
  • 出版時間:2015.06.01
目 錄,第1章 計算機和C++編程入門,第2章 C++基礎知識,第3章 更多的控制流程,第4章 過程抽象和返回值的函式,第5章 所有子任務的函式,第6章 I/O流:對象和類入門,第7章 數組,第8章 字元串和向量,9.1 指針,第10章 定義類,第11章 類中的友元函式、重載,操作符和數組,第12章 獨立編譯和命名空間,第13章 指針和鍊表,第14章 遞歸,第15章 繼承,第16章 異常處理,第17章 模板,第18章 標準模板庫,

目 錄

第1章 計算機和C++編程入門

概述 2
1.1 計算機系統 2
硬體 2
軟體 5
高級語言 6
編譯器 7
1.2 編程和問題求解 9
算法 9
程式設計 10
面向對象編程 12
軟體生命周期 12
1.3 C++入門 13
C++語言的起源 13
一個C++示範程式 14
簡單C++程式的布局 17
編譯和運行C++程式 19
1.4 測試和調試 21
程式錯誤的分類 22
小結 24
自測題答案 24
編程練習 25
編程項目 26

第2章 C++基礎知識

概述 30
預備知識 30
2.1 變數和賦值 30
變數 30
名稱:標識符 32
變數聲明 33
賦值語句 34
2.2 輸入和輸出 37
使用cout進行輸出 37
include預編譯指令和命名空間 38
轉義序列 39
格式化帶小數點的數字 41
用cin進行輸入 42
設計輸入和輸出 43
2.3 數據類型和表達式 44
int類型和double類型 44
其他數值類型 45
C++11類型 46
char類型 47
bool類型 48
string類簡介 48
類型的兼容性 49
算術操作符和表達式 51
更多賦值語句 54
2.4 簡單控制流程 54
一個簡單的分支機制 54
複合語句 59
簡單的循環機制 61
遞增操作符和遞減操作符 63
2.5 程式風格 66
縮進 67
注釋 67
為常量命名 68
小結 71
自測題答案 71
編程練習 74
編程項目 76

第3章 更多的控制流程

概述 80
預備知識 80
3.1 使用布爾表達式 80
布爾表達式求值 80
枚舉類型(選讀) 85
3.2 多 路 分 支 86
嵌套語句 86
多路if-else語句 88
switch語句 92
為選單使用switch語句 95
語句塊 96
3.3 C++循環語句詳解 99
while語句回顧 99
再論遞增操作符和遞減操作符 100
for語句 102
應該使用哪種循環 106
break語句 108
3.4 設計循環 109
求和與求乘積的循環 109
終止循環 111
嵌套循環 113
調試循環 114
小結 117
自測題答案 117
編程練習 121
編程項目 122

第4章 過程抽象和返回值的函式

概述 126
預備知識 126
4.1 自頂向下設計 126
4.2 預定義函式 126
使用預定義函式 127
隨機數生成 130
強制類型轉換 131
強制類型轉換的古老形式 133
4.3 程式設計師自定義函式 134
函式定義 134
返回布爾值的函式 138
另一種形式的函式聲明 138
函式定義語法小結 140
再論函式定義的位置 140
4.4 過程抽象 142
黑盒的比喻 142
4.5 作用域和局部變數 151
函式如同小程式 151
全局常量和全局變數 153
傳值形參是局部變數 155
塊作用域 156
再論命名空間 157
4.6 重載函式名稱 160
重載入門 160
自動類型轉換 164
小結 166
自測題答案 166
編程練習 169
編程項目 170

第5章 所有子任務的函式

概述 174
預備知識 174
5.1 void函式 174
void函式的定義 174
void函式中的return語句 177
5.2 傳引用參數 178
初探傳引用調用 179
傳引用調用詳解 180
混合的參數列表 185
5.3 使用過程抽象 188
在函式中調用其他函式 188
前條件和後條件 189
5.4 測試和調試函式 194
存根和驅動程式 194
5.5 常規調試技術 197
兼容並蓄,不抱偏見 198
檢查常見錯誤 198
定位錯誤 198
assert宏 200
小結 202
自測題答案 202
編程練習 205
編程項目 206

第6章 I/O流:對象和類入門

概述 210
預備知識 210
6.1 流和基本檔案I/O 210
檔案之於I/O的重要性 211
檔案I/O 211
類與對象入門 214
檔案I/O技術 218
追加到檔案(選讀) 220
檔案名稱作為輸入(選讀) 221
6.2 流I/O工具 224
用流函式格式化輸出 224
操縱元 227
流作為函式實參 228
命名空間的問題 231
6.3 字元I/O 233
成員函式get和put 233
putback成員函式(選讀) 236
函式的默認實參(選讀) 240
eof成員函式 243
預定義字元函式 246
小結 249
自測題答案 249
編程練習 254
編程項目 254

第7章 數組

概述 260
預備知識 260
7.1 數組入門 260
聲明和引用數組 260
數組在記憶體中的表示 263
初始化數組 265
7.2 函式中的數組 267
索引變數作為函式參數 267
整個數組作為函式參數 269
const參數修飾符 271
返回數組的函式 273
7.3 數組編程 282
部分填充數組 282
7.4 多維數組 292
多維數組基礎 292
多維數組參數 293
小結 298
自測題答案 298
編程練習 301
編程項目 302

第8章 字元串和向量

概述 310
預備知識 310
8.1 字元串的數組類型 310
C字元串值和C字元串變數 311
中的其他函式 315
C字元串輸入和輸出 318
C字元串到數值的轉換和可靠輸入 320
8.2 標準string類 324
標準類string簡介 324
string類的I/O 326
用string類進行字元串處理 330
string對象和C字元串之間的
轉換 335
字元串和數字之間的轉換 336
8.3 向量 336
向量基礎知識 336
效率問題 339
小結 341
自測題答案 341
編程練習 343
編程項目 343
第9章 指針和動態數組 349
概述 350
預備知識 350

9.1 指針

指針變數 351
基本記憶體管理 356
靜態變數和自動變數 356
9.2 動態數組 359
數組變數和指針變數 359
創建和使用動態數組 361
指針運算(選讀) 364
多維動態數組(選讀) 365
小結 367
自測題答案 367
編程練習 368
編程項目 368

第10章 定義類

概述 374
預備知識 374
10.1 結構 374
用於異種數據的結構 374
結構作為函式參數 378
對結構進行初始化 380
10.2 類 382
定義類和成員函式 382
公共成員和私有成員 386
總結類的一些特徵 396
用於初始化的構造函式 397
10.3 抽象數據類型 405
用於生成抽象數據類型的類 405
10.4 繼承 411
派生類 412
定義派生類 413
小結 416
自測題答案 416
編程練習 420
編程項目 420

第11章 類中的友元函式、重載

操作符和數組

概述 426
預備知識 426
11.1 友元函式 426
友元函式 428
實現digit_to_int(選讀) 435
const參數修飾符 437
11.2 重載操作符 441
重載操作符 442
用於自動類型轉換的構造函式 444
重載一元操作符 445
重載>>和<< 446
11.3 數組和類 452
類數組 452
數組作為類成員 455
11.4 類和動態數組 458
析構函式 460
拷貝構造函式 463
重載賦值操作符 467
小結 470
自測題答案 470
編程練習 476
編程項目 477

第12章 獨立編譯和命名空間

概述 484
預備知識 484
12.1 獨立編譯 484
ADT回顧 484
使用#ifndef 492
12.2 命名空間 495
命名空間和using預編譯指令 495
創建命名空間 496
限定名稱 498
命名空間的微妙之處(選讀) 499
無名命名空間 500
小結 505
自測題答案 505
編程練習 506
編程項目 508

第13章 指針和鍊表

概述 510
預備知識 510
13.1 節點和鍊表 510
節點 511
nullptr 513
鍊表 514
在表頭插入節點 515
搜尋鍊表 518
指針作為疊代器 520
在列表中插入和刪除節點 521
鍊表的變體 524
類構成的鍊表 526
13.2 棧和佇列 528
棧 528
佇列 532
小結 536
自測題答案 536
編程練習 538
編程項目 538

第14章 遞歸

概述 546
預備知識 546
14.1 面向任務的遞歸函式 546
深入遞歸 552
用於遞歸的棧 554
遞歸與疊代 555
14.2 面向值的遞歸函式 556
要返回值的遞歸函式的常規形式 556
14.3 遞歸思想 560
遞歸設計技術 560
小結 570
自測題答案 570
編程練習 573
編程項目 573

第15章 繼承

概述 578
預備知識 578
15.1 繼承基礎 578
派生類 580
派生類中的構造函式 585
protected限定符 588
重定義成員函式 590
重定義與重載的比較 592
訪問重定義的基函式 593
15.2 繼承細節 594
不繼承的函式 594
派生類中的賦值操作符和拷貝
構造函式 595
派生類中的析構函式 595
15.3 多態性 596
晚期綁定 597
C++虛函式 597
虛函式和擴展類型兼容性 601
小結 607
自測題答案 607
編程練習 610
編程項目 612

第16章 異常處理

概述 618
預備知識 618
16.1 異常處理基礎 618
異常處理的簡單例子 619
定義自己的異常類 625
多個throw塊和catch塊 626
在函式中拋出異常 629
異常規範 630
16.2 用於異常處理的編程技術 632
拋出異常的時機 632
異常類層次結構 634
測試可用記憶體 634
重新拋出異常 635
小結 636
自測題答案 636
編程練習 637
編程項目 638

第17章 模板

概述 642
預備知識 642
17.1 用於算法抽象的模板 642
函式模板 643
17.2 用於數據抽象的模板 651
類模板的語法 651
小結 657
自測題答案 657
編程練習 659
編程項目 659

第18章 標準模板庫

概述 664
預備知識 664
18.1 疊代器 664
using聲明 665
疊代器基礎 665
疊代器的種類 670
常量和可變疊代器 673
逆向疊代器 673
其他種類的疊代器 675
18.2 容器 675
順序容器 676
容器配接器stack和queue 679
關聯容器set和map 682
效率問題 687
18.3 泛型算法 688
運行時間和大O表示法 689
容器訪問運行時間 691
不修改容器的算法 692
會修改容器的算法 695
set算法 696
排序算法 697
小結 698
自測題答案 698
編程練習 699
編程項目 700
附錄1 C++關鍵字 705
附錄2 操作符的優先權 706
附錄3 ASCII字元集 707
附錄4 部分庫函式 708
附錄5 內聯函式 712
附錄6 重載數組索引方括弧 713
附錄7 this指針 714
附錄8 將操作符重載為成員操作符 716

相關詞條

熱門詞條

聯絡我們