程式設計基礎——從問題到程式(第3版)

程式設計基礎——從問題到程式(第3版)

《 程式設計基礎——從問題到程式(第3版)》是清華大學出版社出版的圖書,作者是王紅梅。

基本介紹

  • 書名:程式設計基礎——從問題到程式(第3版) 
  • 作者:王紅梅
  • 出版社:清華大學出版社
  • 出版時間:2021年2月1日
  • 定價:59.80 元
  • ISBN:9787302564034
  • 印刷日期:2021年1月29日
  • 印次:3-1
內容簡介,圖書目錄,

內容簡介

本書以C程式設計語言為工具,以程式設計過程為主線,通過“問題→想法→算法→程式”的問題求解過程,提高學生的程式設計能力和計算思維能力。本書不是單純地解釋語言概念,而是以任務驅動的方式,帶領學生分析問題、構造算法、應用程式設計語言解決實際問題,使學生在潛移默化中學會程式設計。本書遵循初學者的認知規律,科學安排知識單元之間的拓撲關係,概念清晰,實例豐富,深入淺出,是程式設計初學者的理想教材。

圖書目錄

第1章 緒論 1
1.1 程式、程式設計與程式設計語言 1
1.1.1 程式設計的基本概念 1
1.1.2 程式設計語言的發展 2
1.1.3 程式設計語言的分類 4
1.2 程式的基本構成 5
1.2.1 基本字元集 6
1.2.2 詞法單位 6
1.2.3 語法單位 7
1.3 初識C程式 9
1.3.1 C程式示例 9
1.3.2 簡單C程式的典型結構 9
1.3.3 C程式的輸入/輸出 11
1.3.4 C程式的上機過程 13
1.4 程式風格 14
1.4.1 標識符的命名規則 14
1.4.2 注釋 15
1.4.3 縮進 16
1.4.4 行文格式 16
1.4.5 大括弧風格 17
1.5 本章實驗項目 17
1.6 本章教學資源 18
第2章 算法與計算思維 19
2.1 程式的靈魂——算法 19
2.1.1 什麼是算法 19
2.1.2 如何描述算法 20
2.1.3 如何評價算法 22
2.1.4 算法的重要性 24
2.2 計算思維 25
2.2.1 程式設計的一般過程 25
2.2.2 程式設計與計算思維 27
2.2.3 程式的基本框架 27
2.3 本章實驗項目 29
2.4 本章教學資源 29
第3章 數據的存儲表示 30
【引例3.1】 計算圓的周長 30
3.1 存儲數據的載體 31
3.1.1 二進制 31
3.1.2 記憶體 33
3.2 基本數據類型 34
3.2.1 整型 34
3.2.2 實型 37
3.2.3 字元型 38
3.2.4 邏輯型 39
3.3 常量 40
3.3.1 字面常量 40
3.3.2 符號常量 42
3.4 變數 44
3.4.1 變數的概念 44
3.4.2 變數的定義和初始化 45
3.4.3 變數的賦值 46
3.5 程式設計實例 48
3.5.1 程式設計實例3.1——溫度轉換 48
3.5.2 程式設計實例3.2——計算本息和 49
3.6 本章實驗項目 49
3.7 本章教學資源 50
第4章 數據的運算處理 52
4.1 算術運算 52
【引例4.1】 計算三角形的周長 52
4.1.1 算術運算 53
4.1.2 運算符的優先權和結合性 54
4.1.3 程式設計實例4.1——通用產品代碼 54
4.2 邏輯運算 56
【引例4.2】 判斷閏年 56
4.2.1 關係運算 56
4.2.2 邏輯運算 57
4.2.3 程式設計實例4.2——賽車評論 58
4.3 賦值運算 59
4.3.1 賦值運算 59
4.3.2 複合賦值運算 60
4.3.3 自增/自減運算 60
4.4 其他運算 61
4.4.1 逗號運算 61
4.4.2 取長度運算 62
4.4.3 條件運算 62
4.5 運算對象的類型轉換 63
4.5.1 自動類型轉換 63
4.5.2 強制類型轉換 65
4.6 本章實驗項目 66
4.7 本章教學資源 66
第5章 程式的基本控制結構 67
5.1 順序結構 67
【引例5.1】 四則運算 67
5.1.1 複合語句實現順序結構 68
5.1.2 程式設計實例5.1——整數的逆值 69
5.2 選擇結構 70
【引例5.2】 奇偶判定 70
5.2.1 邏輯值控制的選擇結構 70
5.2.2 算術值控制的選擇結構 73
5.2.3 程式設計實例5.2——水仙花數 74
5.2.4 程式設計實例5.3——某年某月有多少天 75
5.3 循環結構 76
【引例5.3】 偶數和 76
5.3.1 當型循環 77
5.3.2 直到型循環 78
5.3.3 計數型循環 78
5.3.4 循環結構的嵌套 80
5.3.5 程式設計實例5.4——整數的位數 81
5.3.6 程式設計實例5.5——歐幾里得算法 82
5.3.7 程式設計實例5.6——百元買百雞問題 83
5.4 其他控制語句 84
【引例5.4】 素數判定 84
5.4.1 break語句 85
5.4.2 continue語句 86
5.4.3 程式設計實例5.7——哥德巴赫猜想 86
5.5 本章實驗項目 87
5.6 本章教學資源 88
第6章 批量同類型數據的組織——數組 90
6.1 一維數組 90
【引例6.1】 順序查找 90
6.1.1 一維數組的定義和初始化 91
6.1.2 一維數組的操作 94
6.1.3 程式設計實例6.1——找最大值 95
6.1.4 程式設計實例6.2——折半查找 96
6.1.5 程式設計實例6.3——合併有序數組 97
6.2 二維數組 98
【引例6.2】 矩陣轉置 98
6.2.1 二維數組的定義和初始化 99
6.2.2 二維數組的操作 101
6.2.3 程式設計實例6.4——主對角線元素之和 102
6.2.4 程式設計實例6.5——哥尼斯堡七橋問題 103
6.2.5 程式設計實例6.6——幻方問題 105
6.3 本章實驗項目 106
6.4 本章教學資源 107
第7章 程式的組裝單元——函式 108
7.1 用戶定義的函式——自定義函式 108
【引例7.1】 列印直角實心三角形 108
7.1.1 函式定義 109
7.1.2 函式調用 111
7.1.3 函式聲明 112
7.1.4 程式設計實例7.1——列印九九乘法表(函式版) 114
7.1.5 程式設計實例7.2——歐幾里得算法(函式版) 115
7.2 系統定義的函式——庫函式 115
【引例7.2】 素數判定 116
7.2.1 頭檔案與檔案包含 117
7.2.2 標準輸入/輸出函式 118
7.2.3 隨機函式 120
7.2.4 程式設計實例7.3——三角形的面積 121
7.2.5 程式設計實例7.4——猜數遊戲 122
7.3 變數的作用域 124
【引例7.3】 雞兔同籠問題(全局變數版) 124
7.3.1 局部變數 125
7.3.2 全局變數 126
7.4 變數的生存期 127
【引例7.4】 字數統計(靜態變數版) 128
7.4.1 自動變數 129
7.4.2 靜態變數 130
7.5 本章實驗項目 131
7.6 本章教學資源 131
第8章 變數的間接訪問——指針 133
8.1 指針的概念 133
【引例8.1】 答疑教室 133
8.1.1 指針變數的定義和初始化 134
8.1.2 指針變數的操作 136
8.1.3 指針所指變數的操作 138
8.2 指針作為函式的參數 139
【引例8.2】 雞兔同籠問題(函式版) 139
8.2.1 值傳遞方式——函式的輸入 140
8.2.2 指針傳遞方式——函式的輸出 141
8.2.3 指針傳遞方式——函式的輸入/輸出 141
8.2.4 程式設計實例8.1——求一元二次方程的根 143
8.2.5 程式設計實例8.2——三個整數由小到大排序 144
8.3 數組作為函式的參數 145
【引例8.3】 順序查找(函式版) 145
8.3.1 一維數組作為函式的參數 146
8.3.2 二維數組作為函式的參數 147
8.3.3 程式設計實例8.3——簡單選擇排序 148
8.3.4 程式設計實例8.4——鞍點 150
8.4 本章實驗項目 151
8.5 本章教學資源 152
第9章 字元數據的組織——字元串 153
【引例9.1】 愷撒加密 153
9.1 字元串變數的定義和初始化 154
9.1.1 字元數組 155
9.1.2 字元串指針 156
9.2 字元串的操作 157
9.2.1 輸入/輸出操作 157
9.2.2 賦值操作 160
9.2.3 字元串的比較 161
9.3 程式設計實例 162
9.3.1 程式設計實例9.1——字數統計 162
9.3.2 程式設計實例9.2——字元串匹配 163
9.4 本章實驗項目 165
9.5 本章教學資源 165
第10章 自定義數據類型 167
10.1 可枚舉數據的組織——枚舉類型 167
【引例10.1】 行走機器人 167
10.1.1 枚舉類型的定義 169
10.1.2 枚舉變數的定義與初始化 169
10.1.3 枚舉變數的操作 171
10.1.4 程式設計實例10.1——荷蘭國旗問題 172
10.2 不同類型數據的組織——結構體類型 173
【引例10.2】 統計考研成績 174
10.2.1 結構體類型的定義 175
10.2.2 結構體變數的定義和初始化 176
10.2.3 結構體變數的操作 177
10.2.4 結構體數組 179
10.2.5 程式設計實例10.2——最近對問題 181
10.3 為數據類型定義別名 183
10.4 本章實驗項目 184
10.5 本章教學資源 185
第11章 再談函式 186
11.1 函式的嵌套調用 186
【引例11.1】 字元串的循環左移 186
11.1.1 函式——封裝的小程式 188
11.1.2 函式的嵌套調用 188
11.1.3 程式設計實例11.1——公共子序列 189
11.1.4 程式設計實例11.2——弦截法求方程的根 191
11.2 函式的遞歸調用 193
【引例11.2】 求n! 193
11.2.1 遞歸的基本思想 194
11.2.2 遞歸函式的定義 195
11.2.3 遞歸函式的調用過程 196
11.2.4 程式設計實例11.3——漢諾塔問題 197
11.2.5 程式設計實例11.4——折半查找 199
11.3 本章實驗項目 200
11.4 本章教學資源 200
第12章 再談指針 202
12.1 指針與數組 202
【引例12.1】 判斷回文串 202
12.1.1 用指針訪問一維數組 203
12.1.2 用指針訪問二維數組 204
12.1.3 指針數組 205
12.1.4 程式設計實例12.1——解密藏頭詩 206
12.2 指針與結構體 207
【引例12.2】 統計考研成績(函式版) 207
12.2.1 指向結構體的指針 208
12.2.2 結構體指針作為函式參數 210
12.2.3 程式設計實例12.2——日期格式 210
12.3 動態存儲分配 211
【引例12.3】 動態數組求最大值 211
12.3.1 申請和釋放存儲空間 212
12.3.2 動態數組 215
12.3.3 鍊表 217
12.3.4 程式設計實例12.3——發紙牌 220
12.3.5 程式設計實例12.4——進制轉換 222
12.4 本章實驗項目 223
12.5 本章教學資源 224
第13章 再談輸入/輸出 226
【引例13.1】 檔案複製 226
13.1 檔案緩衝區與檔案指針 227
13.1.1 檔案緩衝區 227
13.1.2 檔案指針 228
13.2 檔案的當前位置指針 229
13.2.1 什麼是檔案的當前位置指針 229
13.2.2 跟蹤檔案的當前位置指針 229
13.2.3 定位檔案的當前位置指針 230
13.3 檔案的打開與關閉 231
13.3.1 檔案的打開 231
13.3.2 檔案的關閉 233
13.4 檔案的讀寫操作 233
13.4.1 字元方式讀寫檔案 234
13.4.2 字元串方式讀寫檔案 234
13.4.3 格式化方式讀寫檔案 236
13.4.4 二進制方式讀寫檔案 237
13.5 程式設計實例 238
13.5.1 程式設計實例13.1——註冊與登錄 238
13.5.2 程式設計實例13.2——統計考研成績(檔案版) 240
13.6 本章實驗項目 242
13.7 本章教學資源 243
第14章 再談程式的基本結構 244
14.1 多檔案程式 244
14.1.1 多檔案程式的構成 244
14.1.2 將源程式檔案分解為多個程式檔案模組 245
14.2 外部變數和外部函式 246
14.2.1 外部變數 246
14.2.2 外部函式 248
14.3 嵌套包含 249
14.3.1 條件編譯 249
14.3.2 保護頭檔案 251
14.4 程式設計實例14.1——石頭、剪子、布遊戲 253
14.5 本章實驗項目 257
14.6 本章教學資源 257
第15章 低級程式設計 258
【引例15.1】 異或加密 258
15.1 數據表示 260
15.1.1 二進制數與八進制數和十六進制數之間的轉換 260
15.1.2 位域 260
15.2 位運算 262
15.2.1 位邏輯運算 262
15.2.2 移位運算 263
15.2.3 位運算的套用舉例 264
15.3 程式設計實例 265
15.3.1 程式設計實例15.1——快速歐幾里得算法 265
15.3.2 程式設計實例15.2——過濾特殊字元 266
15.4 本章實驗項目 267
15.5 本章教學資源 267
附錄A 標準ASCII碼 269
附錄B 運算符的優先權和結合性 271
附錄C 常用庫函式 272
參考文獻 277
XII
程式設計基礎——從問題到程式(第3版)

相關詞條

熱門詞條

聯絡我們