C/C++簡明雙鏈教程

李昕 吳春雷 郭磊

  • 出版商: 清華大學
  • 出版日期: 2024-09-01
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • ISBN: 7302669929
  • ISBN-13: 9787302669920
  • 相關分類: C++ 程式語言
  • 下單後立即進貨 (約4週~6週)

  • C/C++簡明雙鏈教程-preview-1
  • C/C++簡明雙鏈教程-preview-2
  • C/C++簡明雙鏈教程-preview-3
C/C++簡明雙鏈教程-preview-1

相關主題

商品描述

"本書按照程序設計的基本要求,採用簡明易用原則組織內容。全書案例實現以 C++ 語法為主,面向在線評測(OnlineJudge,OJ)系統,提高學生解決實際問題的能力,既註重知識點的凝練,又強調其應用場景,結合了大量的例題。本書與清覽、PTA、力扣等平臺緊密銜接,構建了全方位、全時段的學習環境。在知識點之間、知識點和習題之間構建雙鏈知識網絡,構建新形態教材,形成理論與實踐的緊密互補。 全書共分8章:第1章指明瞭教程的特色和C++的學習準備;第2章重點闡述數據類型、操作符和輸入輸出等語法基礎;第3章包括分支結構和函數初步設計等內容;第4章重點介紹循環結構及其應用;第5章介紹數組以及其應用,以及C++ 和C 形式的字符串;第6章通過指針重點瞭解空間地址分配的概 念;第7章簡單介紹了面向對象的概念;第8章介紹了模板和容器的應用。 本書適合作為高等院校電腦、軟件工程、人工智能等專業本科生編程課程的入門教材,同時可作為面向OJ 平臺的各類競賽的參考書。 "

目錄大綱

目  錄

第1章 學習準備 / 1

1.1 教程特色 / 1

1.1.1 雙鏈知識網絡 / 1

1.1.2 面向OJ系統 / 1

1.1.3 簡明原則 / 2

1.1.4 易用原則 / 2

1.2 電腦基本原理 / 2

1.2.1 運算器基本原理 / 3

1.2.2 程序執行和內存管理基本原理 / 4

1.3 C++程序設計 / 8

1.3.1 C++程序基本結構 / 8

1.3.2 C++程序的編譯與運行 / 8

1.4 IDE的使用 / 9

1.4.1 CodeBlocks新建項目 / 10

1.4.2 CodeBlocks調試基礎 / 13

1.4.3 CodeBlocks常用功能 / 15

1.5 在線評測系統 / 16

1.5.1 PTA / 16

1.5.2 其他OJ / 17

第2章 程序設計基礎 / 19

2.1 數據類型 / 19

2.1.1 常見數據類型 / 19

2.1.2 轉義字符 / 21

2.1.3 標識符 / 21

2.1.4 C語言的輸出方式 / 21

2.2 整型 / 23

2.2.1 整型的數值範圍 / 23

2.2.2 整數N進制轉十進制 / 26

2.2.3 整數十進制轉換為N進制 / 27

2.3 浮點型 / 27

2.3.1 浮點數的內存表示 / 27

2.3.2 純小數十進制轉換為二進制 / 29

2.4 其他數據類型 / 30

2.4.1 字符 / 30

2.4.2 字符串 / 34

2.4.3 布爾型 / 35

2.5 數據類型轉換 / 36

2.5.1 隱式類型轉換 / 36

2.5.2 顯式類型轉換 / 39

2.5.3 整型提升* / 40

2.5.4 類型轉換的精度損失 / 41

2.5.5 四捨五入和趨零舍入 / 42

2.6 操作符 / 46

2.6.1 運算符 / 46

2.6.2 除法和整除 / 46

2.6.3 求模運算 / 48

2.6.4 邏輯運算符 / 49

2.6.5 自增和自減運算 / 51

2.6.6 sizeof運算符 / 52

2.6.7 位運算* / 52

2.6.8 三個層次的變量交換 / 54

2.7 獲取用戶輸入 / 56

2.7.1 整型和浮點型的cin輸入 / 56

2.7.2 字符串的輸入 / 58

2.7.3 字符的輸入 / 60

2.7.4 數字和字符的混合輸入 / 60

2.7.5 逗號分隔的數值 / 62

2.8 時間處理 / 64

2.9 常用數學函數 / 65

2.10 運算效率的底層分析* / 67

2.10.1 負數和補碼 / 67

2.10.2 整型的極限值 / 69

2.10.3 常見運算的效率分析 / 70

題單 / 70

第3章 分支與函數初步 / 72

3.1 分支結構 / 72

3.1.1 單分支控制 / 72

3.1.2 雙分支控制 / 75

3.1.3 多分支控制 / 77

3.1.4 分支嵌套 / 78

3.2 分支程序優化 / 80

3.2.1 三天打魚兩天曬網 / 80

3.2.2 蟲子吃蘋果 / 81

3.3 自定義函數 / 83

3.3.1 函數定義 / 83

3.3.2 函數執行順序 / 84

3.3.3 函數聲明 / 85

3.3.4 函數返回值 / 87

3.3.5 變量的作用域 / 88

3.3.6 參數傳遞和引用 / 90

3.3.7 函數重載 / 91

3.3.8 參數的默認值* / 93

3.4 局部變量和函數的內存模型 / 94

3.5 變量的深度理解* / 97

題單 / 98

第4章 循環 / 99

4.1 while循環 / 99

4.2 do-while循環 / 101

4.3 for循環 / 102

4.4 嵌套循環 / 105

4.4.1 嵌套循環基本方法 / 105

4.4.2 內循環變量的初始化 / 108

4.5 break和continue / 109

4.5.1 死循環與break / 109

4.5.2 循環與continue / 110

4.6 循環與遞歸 / 111

4.6.1 遞歸的演化 / 111

4.6.2 簡單遞歸 / 114

4.6.3 分類遞歸 / 116

4.7 經典循環問題 / 119

4.7.1 整數分解和倒序重組 / 119

4.7.2 素數判斷 / 119

4.7.3 窮舉法 / 121

4.7.4 對稱數判斷 / 122

4.7.5 二進制中1的個數 / 123

4.7.6 乘法的加法實現* / 125

4.8 循環與輸入 / 127

4.8.1 輸入重定向 / 127

4.8.2 數量不確定輸入 / 129

4.8.3 多級數量不確定輸入 / 130

4.9 程序優化案例 / 131

題單 / 135

第5章 數組與字符串 / 136

5.1 一維數組的定義和初始化 / 136

5.1.1 一維數組的定義 / 136

5.1.2 一維數組的初始化 / 137

5.1.3 一維數組的內存模型 / 138

5.1.4 數組的基本運算 / 139

5.1.5 數組作為函數參數 / 141

5.2 一維數組的應用 / 142

5.2.1 數組的插入與刪除 / 142

5.2.2 數組與循環的聯動 / 143

5.2.3 尺取法 / 145

5.2.4 空間換時間 / 148

5.2.5 打表法 / 151

5.2.6 排序 / 156

5.2.7 動態規劃* / 160

5.3 二維數組 / 164

5.4 C++的字符串 / 167

5.4.1 字符串的基本操作 / 167

5.4.2 字符串的長度和容量* / 170

5.4.3 字符串與整型的相互轉換 / 173

5.4.4 字符串分割 / 175

5.4.5 子串問題 / 176

5.4.6 高精度計算 / 178

5.5 C風格的字符串 / 179

5.5.1 C風格字符串的定義和初始化 / 179

5.5.2 C風格字符串的基本操作 / 180

5.5.3 C風格字符串的應用 / 184

題單 / 187

第6章 指針 / 188

6.1 指針的概念與指針變量的定義 / 188

6.1.1 指針與指針變量 / 188

6.1.2 指針變量的定義 / 189

6.1.3 指針的兩個“值” / 190

6.1.4 強大的指針 / 191

6.2 數組與指針 / 192

6.2.1 一維數組與指針 / 192

6.2.2 二維數組與指針 / 196

6.2.3 二維數組與一維數組 / 198

6.2.4 數組作為函數參數 / 199

6.2.5 C風格字符串與指針 / 200

6.3 堆內存與動態空間分配* / 202

題單 / 204

第7章 面向對象 / 205

7.1 類和對象 / 205

7.2 動態對象和this指針 / 207

7.3 動態屬性和析構函數 / 209

7.4 封裝 / 210

7.5 繼承 / 211

7.6 多態 / 213

7.7 操作符重載 / 216

7.8 靜態屬性 / 217

7.9 綜合練習——構建鏈表 / 219

題單 / 223

第8章 模板和容器 / 224

8.1 泛型編程 / 224

8.1.1 模板函數 / 224

8.1.2 模板類* / 226

8.2 STL容器 / 227

8.2.1 容器的分類 / 228

8.2.2 迭代器 / 230

8.3 向量(vector) / 232

8.3.1 遍歷 / 232

8.3.2 向量的典型操作 / 235

8.3.3 查找重復元素 / 237

8.4 高級應用 / 238

8.4.1 降序排序 / 238

8.4.2 全部刪除指定元素 / 239

8.4.3 for_each算法* / 241

8.5 堆棧(stack) / 242

8.6 其他典型序列容器* / 244

8.6.1 雙向隊列deque / 244

8.6.2 單向隊列queue / 246

8.6.3 鏈表(list) / 247

8.7 字典 / 253

8.7.1 關聯容器字典map / 253

8.7.2 無序容器字典unordered_map / 255

8.7.3 無序容器字典unordered_set / 257

8.7.4 字典與循環的聯動 / 258

題單 / 261

附錄A 知識點匯總 / 262

附錄B C++運算符 / 274

參考文獻 / 276