定 價:59.8 元
叢書名:科學出版社“十四五”普通高等教育本科規(guī)劃教材
- 作者:劉杰,鞠成東,叢曉紅
- 出版時間:2023/8/1
- ISBN:9787030761569
- 出 版 社:科學出版社
- 中圖法分類:TP312.8
- 頁碼:308
- 紙張:
- 版次:01
- 開本:16
本書為適應(yīng)新工科復合型人才對計算思維和問題求解能力的要求而編寫,全書共10章,主要內(nèi)容包括:計算思維與問題求解、簡單的C程序設(shè)計、程序結(jié)構(gòu)、函數(shù)、數(shù)組、指針、結(jié)構(gòu)體、文件、常用算法和經(jīng)典人工智能算法。本書兼顧計算思維與程序設(shè)計基礎(chǔ)知識,注重問題抽象,通過案例分析,逐步給出問題求解算法與程序?qū)崿F(xiàn),引導讀者建立算法思維和程序設(shè)計思維。本書將數(shù)值計算貫穿于各章節(jié),并通過“常用算法”和“經(jīng)典人工智能算法”兩章,進一步拓展讀者問題求解思維,提高讀者解決復雜專業(yè)領(lǐng)域問題的能力和學科交叉融合的能力。
更多科學出版社服務(wù),請掃碼獲取。
目錄
第1章 計算思維與問題求解 1
1.1 計算思維與程序設(shè)計 1
1.2 計算機內(nèi)部數(shù)據(jù)表示及0-1符號化 2
1.2.1 位、字節(jié)與字長 2
1.2.2 二進制基本運算規(guī)則 3
1.2.3 進位制及其相互轉(zhuǎn)換 6
1.2.4 數(shù)值型信息表示方法 8
1.2.5 非數(shù)值型信息表示方法 12
1.3 計算機結(jié)構(gòu)與機器指令 16
1.3.1 存儲器組成結(jié)構(gòu) 18
1.3.2 運算器組成結(jié)構(gòu) 19
1.3.3 控制器組成結(jié)構(gòu) 20
1.3.4 機器指令表示方法 20
1.4 機器程序執(zhí)行 22
1.5 計算機問題求解的靈魂——算法 24
1.5.1 算法及其特性 24
1.5.2 算法表示方法 24
1.6 程序設(shè)計中的數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu) 27
1.7 計算機問題求解的步驟 28
1.7.1 求解問題的一般步驟 28
1.7.2 C語言程序開發(fā)步驟 30
1.8 C語言程序結(jié)構(gòu)及實例 32
1.8.1 C程序構(gòu)成 32
1.8.2 C編程風格 34
1.9 習題 34
第2章 簡單的C程序設(shè)計 37
2.1 標準C程序基本框架 37
2.2 常量和變量 39
2.2.1 常量 39
2.2.2 變量 39
2.3 數(shù)據(jù)類型 40
2.3.1 數(shù)據(jù)類型的一般概念 40
2.3.2 整型數(shù)據(jù) 41
2.3.3 實型數(shù)據(jù) 45
2.3.4 字符型數(shù)據(jù) 47
2.4 運算符 50
2.4.1 賦值運算符 50
2.4.2 基本算術(shù)運算符 53
2.4.3 自增、自減運算符 54
2.4.4 逗號運算符 55
2.5 標準輸入輸出 56
2.5.1 輸出字符函數(shù)putchar 56
2.5.2 輸入字符函數(shù)getchar 57
2.5.3 輸出函數(shù)printf 57
2.5.4 輸入函數(shù)scanf 59
2.6 數(shù)值算法——線性插值 60
2.7 綜合應(yīng)用實例 61
2.7.1 估算身高 61
2.7.2 飛機升力系數(shù) 63
2.7.3 汽車停車視距 64
2.8 習題 65
第3章 程序結(jié)構(gòu) 69
3.1 條件表達式 69
3.1.1 關(guān)系運算符 69
3.1.2 關(guān)系運算符實例解析 69
3.1.3 邏輯運算符 70
3.1.4 邏輯運算符實例解析 70
3.1.5 條件運算符 71
3.1.6 條件運算符實例解析 72
3.2 選擇結(jié)構(gòu)語句 73
3.2.1 單分支結(jié)構(gòu)if語句 73
3.2.2 雙分支結(jié)構(gòu)if語句 73
3.2.3 多分支選擇結(jié)構(gòu)if語句 76
3.2.4 多分支選擇結(jié)構(gòu)switch語句 77
3.2.5 if語句的嵌套 80
3.3 循環(huán)結(jié)構(gòu)語句 83
3.3.1 循環(huán)結(jié)構(gòu)while語句 83
3.3.2 循環(huán)結(jié)構(gòu)for語句 84
3.3.3 循環(huán)結(jié)構(gòu)do-while語句 85
3.4 循環(huán)的嵌套 87
3.5 循環(huán)結(jié)構(gòu)的討論 88
3.5.1 while循環(huán)、for循環(huán)和do-while循環(huán)的比較 88
3.5.2 提前終止循環(huán)break語句 89
3.5.3 提前結(jié)束本次循環(huán)continue語句 89
3.6 數(shù)值方法——一元函數(shù)定積分近似求解 90
3.7 綜合應(yīng)用實例 91
3.7.1 攝氏度與華氏度的對照表 91
3.7.2 獎金發(fā)放情況 92
3.7.3 艦船識別 93
3.8 習題 95
第4章 函數(shù) 99
4.1 模塊化程序設(shè)計與C函數(shù) 99
4.2 函數(shù)定義和函數(shù)聲明 99
4.2.1 函數(shù)的定義 99
4.2.2 函數(shù)的聲明 101
4.3 數(shù)的參數(shù)和返回值 102
4.3.1 形式參數(shù)和實際參數(shù) 102
4.3.2 函數(shù)的返回值 103
4.4 函數(shù)調(diào)用 103
4.4.1 函數(shù)調(diào)用的一般形式 103
4.4.2 函數(shù)的嵌套調(diào)用 104
4.4.3 函數(shù)的遞歸調(diào)用 104
4.5 變量的作用域 107
4.5.1 局部變量 107
4.5.2 全局變量 108
4.6 變量的存儲類別 109
4.6.1 自動變量 110
4.6.2 寄存器變量 110
4.6.3 外部變量 111
4.6.4 靜態(tài)變量 112
4.7 內(nèi)部函數(shù)和外部函數(shù) 113
4.7.1 內(nèi)部函數(shù) 113
4.7.2 外部函數(shù) 113
4.8 數(shù)值方法——非線性方程的解 114
4.8.1 簡單迭代法 114
4.8.2 牛頓迭代法 116
4.8.3 弦截法 118
4.9 綜合應(yīng)用實例 120
4.9.1 隨機數(shù)序列生成 120
4.9.2 氣溫模擬數(shù)據(jù)生成 123
4.9.3 系統(tǒng)可靠性仿真 124
4.10 習題 126
第5章 數(shù)組 131
5.1 一維數(shù)組 131
5.1.1 一維數(shù)組的定義和初始化 131
5.1.2 一維數(shù)組元素的引用 132
5.2 二維數(shù)組 132
5.2.1 二維數(shù)組的定義和初始化 132
5.2.2 二維數(shù)組元素的引用 133
5.3 字符數(shù)組 134
5.3.1 字符數(shù)組的初始化 134
5.3.2 字符數(shù)組的輸入輸出 135
5.3.3 字符串處理函數(shù) 135
5.4 數(shù)組作為參數(shù) 137
5.4.1 數(shù)組元素作為函數(shù)實參 137
5.4.2 數(shù)組名作為函數(shù)參數(shù) 138
5.5 數(shù)據(jù)序列的排序與查找 141
5.5.1 選擇排序法 141
5.5.2 冒泡排序法 142
5.5.3 插入排序法 143
5.5.4 二分查找法 143
5.6 數(shù)值方法——線性方程組求解 145
5.7 綜合應(yīng)用實例 149
5.7.1 矩陣的應(yīng)用 149
5.7.2 學生成績統(tǒng)計 151
5.7.3 字符串截取 153
5.7.4 加密算法 154
5.8 習題 155
第6章 指針 161
6.1 地址和指針 161
6.1.1 指針的引入 161
6.1.2 內(nèi)存數(shù)據(jù)的訪問方式 163
6.2 指針變量的定義及使用 165
6.2.1 指針變量的定義 165
6.2.2 指針變量的使用方法 166
6.3 指針與數(shù)組 169
6.3.1 指針的加、減運算規(guī)則 170
6.3.2 訪問數(shù)組元素的幾種方法 171
6.3.3 多維數(shù)組與指針 172
6.3.4 使用指針處理數(shù)組舉例 174
6.4 指針與字符串 177
6.4.1 用字符數(shù)組存放字符串 177
6.4.2 用字符指針指向字符串 178
6.4.3 使用指針處理字符串 181
6.5 指針與函數(shù) 182
6.5.1 指針作函數(shù)的參數(shù) 182
6.5.2 使用指針作參數(shù)傳遞一組
數(shù)據(jù) 184
6.6 指向指針的指針 185
6.6.1 指向指針的指針變量的定義 186
6.6.2 指向指針的指針變量的舉例 187
6.7 綜合應(yīng)用實例 187
6.7.1 整數(shù)循環(huán)移位 187
6.7.2 數(shù)制間的轉(zhuǎn)換 189
6.7.3 尋找區(qū)間內(nèi)的素數(shù) 191
6.7.4 運用指針插入排序 192
6.8 習題 196
第7章 結(jié)構(gòu)體 202
7.1 結(jié)構(gòu)體類型 202
7.2 結(jié)構(gòu)體類型變量 203
7.2.1 結(jié)構(gòu)體類型變量的定義 203
7.2.2 結(jié)構(gòu)體變量的引用 204
7.2.3 結(jié)構(gòu)體變量的初始化 206
7.3 結(jié)構(gòu)體數(shù)組 206
7.3.1 結(jié)構(gòu)體數(shù)組的定義 207
7.3.2 結(jié)構(gòu)體數(shù)組的引用 207
7.4 結(jié)構(gòu)體類型的變量作為函數(shù)參數(shù) 209
7.4.1 結(jié)構(gòu)體成員作為函數(shù)參數(shù) 209
7.4.2 結(jié)構(gòu)體變量作為函數(shù)參數(shù) 210
7.5 結(jié)構(gòu)體指針變量 211
7.6 鏈表 212
7.7 數(shù)值方法 215
7.7.1 復數(shù)的乘除 215
7.7.2 用二分法求解非線性方程 217
7.8 綜合應(yīng)用實例 219
7.8.1 學生成績統(tǒng)計 219
7.8.2 “三天打魚兩天曬網(wǎng)”問題 221
7.8.3 稅后工資計算 223
7.9 習題 225
第8章 文件 232
8.1 文件概述 232
8.2 文件型指針 233
8.3 文件的打開與關(guān)閉 234
8.3.1 文件的打開 235
8.3.2 文件的關(guān)閉 235
8.4 文件的讀寫 236
8.4.1 文件尾部測試函數(shù) 236
8.4.2 文件的字符讀/寫函數(shù) 236
8.4.3 文件的字符串讀/寫函數(shù) 237
8.4.4 文件的數(shù)據(jù)塊讀/寫函數(shù) 237
8.4.5 文件的格式化讀/寫函數(shù) 238
8.5 文件定位 239
8.5.1 文件位置指針重置函數(shù) 239
8.5.2 文件位置指針定位函數(shù) 240
8.6 數(shù)值方法——拉格朗日插值 240
8.7 綜合應(yīng)用實例 241
8.7.1 統(tǒng)計文本文件中字符的個數(shù) 241
8.7.2 判斷兩個文件內(nèi)容是否相同 242
8.7.3 逐行排序數(shù)據(jù)文件 243
8.7.4 讀取數(shù)據(jù)文件計算拉格朗日插值 245
8.8 習題 247
第9章 常用算法 250
9.1 窮舉法 250
9.2 分治法 251
9.3 遞推法 252
9.4 遞歸法 253
9.5 迭代法 254
9.6 貪心算法 256
9.7 回溯法 258
9.8 動態(tài)規(guī)劃算法 260
9.9 習題 263
第10章 經(jīng)典人工智能算法 266
10.1 概述 266
10.2 K-Means聚類算法 267
10.2.1 K-Means聚類算法簡介 267
10.2.2 K-Means聚類算法原理 267
10.2.3 K-Means聚類算法實例 269
10.3 KNN算法 270
10.3.1 KNN算法簡介 270
10.3.2 KNN算法原理 270
10.3.3 KNN算法實例 272
10.4 樸素貝葉斯分類算法 274
10.4.1 樸素貝葉斯分類算法簡介 274
10.4.2 樸素貝葉斯分類算法原理 274
10.4.3 樸素貝葉斯分類算法實例 276
10.5 單層感知機算法 277
10.5.1 單層感知機算法簡介 277
10.5.2 單層感知機算法原理 278
10.5.3 單層感知機算法實例 281
10.6 遺傳算法 284
10.6.1 遺傳算法簡介 284
10.6.2 遺傳算法原理 284
10.6.3 遺傳算法實例 289
10.7 決策樹算法 290
10.7.1 決策樹算法簡介 290
10.7.2 決策樹算法原理 291
10.7.3 決策樹算法實例 293
10.8 習題 295
參考文獻 300