C/C++ 程序設計導論 — 從計算到編程 (微課視頻版)
張力生、張化川、何 睿、趙春澤
相關主題
商品描述
本書以基礎理論和編程實踐相結合的方式,圖文並茂地介紹設計程序所需的數學知識、電腦基礎知識和電腦語言基本知識,從計算和數據角度系統地介紹了設計程序的基本原理、基本方法和典型編程模式,並使用C/C++語言實現設計的程序。全書分為兩部分,共10章。第一部分為基礎篇,包括概述、表達式和數據類型、構造分支、構造循環、函數等知識;第二部分為應用篇,包括程序組織、數組、指針和引用、結構、底層編程等知識。書中的每個知識點都從數學引入,有相應的數學推導、編程步驟、實現代碼和編程要點。 本書適合作為全國高等院校電腦及相關專業的程序設計課程的教材,也可供從事軟件開發的專業人員自學使用。
目錄大綱
目 錄
第一部分 基 礎 篇
第1章 概述 3
1.1 電腦 3
1.2 電腦語言 4
1.3 為什麽選擇C/C++語言 5
1.4 簡單程序 6
1.5 編譯和連接 6
1.6 調試程序 7
1.7 本章小結 9
1.8 習題 9
第2章 表達式和數據類型 10
2.1 表達式 10
2.1.1 四則運算中的計算 10
2.1.2 在電腦中的計算順序 11
2.1.3 表達式的運算序列 12
2.1.4 計算表達式的基本方法 14
2.2 算術運算 18
2.2.1 算術運算的語法和語義 18
2.2.2 編寫表達式 20
2.2.3 表達式語句 21
2.3 變量及其運算 21
2.3.1 電腦中的變量 22
2.3.2 賦值運算 26
2.4 整型 30
2.4.1 理解整數與進制 30
2.4.2 整數的數據類型 33
2.4.3 自增和自減運算 37
2.5 字符型 40
2.5.1 字符集 40
2.5.2 使用字符型 41
2.6 實數型 43
2.6.1 浮點數記數法 43
2.6.2 實數型分類 45
2.6.3 實數的字面表示 45
2.6.4 實數型的精度和範圍 45
2.7 算術類型轉換 46
2.7.1 整數的數據類型轉換 46
2.7.2 算術運算的自動類型規則 48
2.7.3 強制數據類型轉換 49
2.8 計算表達式的方法 50
2.8.1 確定表達式的運算順序 51
2.8.2 標註數據類型 51
2.8.3 計算表達式的值 52
2.9 字符流和輸出格式 53
2.9.1 字符流的工作原理 53
2.9.2 控制輸出單元的格式 54
2.10 表達式的調試與維護 55
2.10.1 調試編譯錯誤 56
2.10.2 整型的溢出 57
2.10.3 整數的重要性 58
2.11 本章小結 58
2.12 習題 59
第3章 構造分支 61
3.1 結構化程序設計 61
3.1.1 3種基本結構 61
3.1.2 流程圖 62
3.2 分支結構及條件 62
3.2.1 if語句 64
3.2.2 關系運算 65
3.2.3 邏輯運算 68
3.3 構造分支的典型模式 73
3.3.1 單分支(if…) 73
3.3.2 復合語句和空語句 74
3.3.3 雙分支(if…else…) 77
3.3.4 if語句嵌套 78
3.3.5 多分支(if…else if…else) 81
3.4 使用switch語句 82
3.5 條件運算 86
3.5.1 條件運算的語法語義 86
3.5.2 條件運算表達式舉例 86
3.6 I/O流及其運算 89
3.6.1 輸出數據 90
3.6.2 輸入數據 92
3.7 分支的調試與維護 96
3.7.1 代碼格式的重要性 96
3.7.2 調試分支的邏輯錯誤 97
3.8 本章小結 98
3.9 習題 99
第4章 構造循環 101
4.1 從順序到循環 101
4.1.1 數列求和問題 102
4.1.2 數學歸納法中的遞推 103
4.2 使用遞推構造循環 105
4.2.1 累加和 105
4.2.2 調和級數 107
4.2.3 while語句 108
4.2.4 逗號運算 109
4.3 循環變量模式 110
4.3.1 循環變量模式的流程框架 110
4.3.2 循環變量模式的代碼框架 111
4.3.3 數列求積問題 112
4.4 嵌套循環編程模式 113
4.5 循環語句 116
4.5.1 do…while語句 116
4.5.2 for語句 118
4.5.3 轉向語句 120
4.6 應用舉例 122
4.6.1 計算階乘的累加和 122
4.6.2 程序的運行效率 125
4.6.3 計算ln2 125
4.6.4 判斷素數 129
4.6.5 輸出圖形 133
4.7 循環的調試與維護 136
4.7.1 調試循環的基本方法 136
4.7.2 維護循環代碼 138
4.8 本章小結 138
4.9 習題 139
第5章 函數 141
5.1 數學函數與黑盒思維 141
5.2 電腦函數 144
5.2.1 定義函數 145
5.2.2 函數的調用 146
5.2.3 函數調用的內部機制 148
5.2.4 函數的原型 151
5.3 變量管理 153
5.3.1 局部變量、全局變量 154
5.3.2 復合語句的語義 157
5.3.3 訪問變量的規則 158
5.4 復合函數與分層的思想 159
5.4.1 復合函數 160
5.4.2 數學公式中的復合函數 161
5.4.3 分層思想 162
5.5 函數的嵌套調用 164
5.6 遞歸函數 165
5.6.1 數學歸納法中的遞歸 166
5.6.2 遞歸函數舉例 166
5.6.3 遞歸調用過程的內部實現 167
5.6.4 編寫遞歸函數的方法 168
5.7 重載函數與默認參數值 171
5.7.1 重載函數 171
5.7.2 匹配重載函數的步驟 172
5.7.3 默認參數值 174
5.8 函數模板 175
5.9 應用舉例 177
5.9.1 求最大公約數 178
5.9.2 漢諾塔問題 179
5.10 函數的調試與維護 180
5.10.1 白盒測試和黑盒測試 181
5.10.2 測試用例和白盒測試技術 181
5.11 本章小結 183
5.12 習題 183
第二部分 應 用 篇
第6章 組織程序 187
6.1 目前所處的學習階段 187
6.2 模塊化程序設計思想 189
6.3 模塊與多文件結構 190
6.3.1 劃分模塊的原則 191
6.3.2 源文件與頭文件 192
6.4 使用多文件結構 193
6.4.1 IDE功能介紹 193
6.4.2 使用多文件結構步驟 193
6.5 預編譯與模塊接口 195
6.5.1 預編譯 195
6.5.2 模塊接口 197
6.6 調試與維護 200
6.6.1 測試驅動開發 201
6.6.2 調試函數與黑盒測試 201
6.7 本章小結 201
6.8 習題 202
第7章 數組 203
7.1 數據的重要性 203
7.2 一維數組 203
7.2.1 數組定義 204
7.2.2 數組初始化 206
7.2.3 訪問數組元素 208
7.3 二維數組 211
7.4 二維數組初始化 215
7.5 數組應用 217
7.5.1 矩陣乘法 217
7.5.2 冒泡排序法 220
7.5.3 Josephus問題 223
7.6 本章小結 229
7.7 習題 230
第8章 指針和引用 231
8.1 指針及運算 231
8.1.1 指針的概念 231
8.1.2 定義指針變量 232
8.1.3 指針的基本運算 233
8.1.4 指針的加減運算 236
8.2 動態管理堆內存 238
8.2.1 malloc( )和free( ) 238
8.2.2 new與delete 240
8.3 函數調用中傳遞數組 241
8.3.1 傳遞一維數組 241
8.3.2 傳遞二維數組 243
8.3.3 返回指針 244
8.4 字符數組 246
8.4.1 定義字符數組 246
8.4.2 字符串常量 248
8.4.3 字符串的基本運算 249
8.4.4 使用字符串運算 252
8.4.5 使用字符數組的安全性 254
8.4.6 字符串數組 256
8.5 函數指針與數據排序 257
8.6 引用 260
8.6.1 傳值調用的局限 260
8.6.2 傳地址調用 261
8.6.3 引用的概念 262
8.6.4 傳引用調用 263
8.7 應用舉例 264
8.7.1 消除指針提高安全性 264
8.7.2 使用函數模板重用代碼 266
8.7.3 字符串排序 270
8.8 程序安全性問題 272
8.8.1 限制變量訪問 272
8.8.2 提高函數調用的安全性 273
8.9 本章小結 274
8.10 習題 274
第9章 結構 277
9.1 聲明結構 277
9.2 定義和訪問結構變量 279
9.3 使用結構 281
9.3.1 使用點運算訪問成員變量 281
9.3.2 使用指針訪問變量 283
9.4 應用舉例 284
9.4.1 使用動態數組管理員工信息 284
9.4.2 使用指針數組管理員工信息 286
9.4.3 多維表 288
9.4.4 Josephus問題 290
9.5 本章小結 297
9.6 習題 298
第10章 底層編程 299
10.1 進制和計算方法 299
10.1.1 十進制及計算方法 299
10.1.2 自然數的二進制及計算方法 303
10.1.3 整數的補碼 304
10.1.4 十六進制 306
10.2 位運算 307
10.2.1 移位運算 307
10.2.2 按位邏輯運算 309
10.2.3 編程實現加減法運算 310
10.2.4 編程實現整數乘法 312
10.2.5 R進制電腦 315
10.2.6 IP地址 320
10.3 聯合 323
10.3.1 聲明聯合和定義變量 323
10.3.2 字節的順序 324
10.3.3 圖像的像素點 326
10.3.4 IP地址 327
10.4 本章小結 329
10.5 習題 329
附錄A ASCII表 331
附錄B 運算表 332
參考文獻 336