本書(shū)以C語(yǔ)言為編程環(huán)境,由淺入深地介紹了C語(yǔ)言的完整內(nèi)容以及過(guò)程化程序設(shè)計(jì)的思想和方法。全書(shū)共有13章。第 1章介紹了什么是程序設(shè)計(jì)。第 2章給出了一個(gè)完整的C語(yǔ)言程序,并介紹了如何在VS2010中輸入、編譯鏈接及調(diào)試程序。第3~5章分別介紹了C語(yǔ)言中支持結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu):順序、分支和循環(huán)所必需的工具。第6章介紹了如何編寫(xiě)及應(yīng)用函數(shù);第7章介紹了處理批量數(shù)據(jù)的工具,即數(shù)組。上述章節(jié)的內(nèi)容都是C語(yǔ)言的核心知識(shí),請(qǐng)務(wù)必掌握。第8~11章分別講解了結(jié)構(gòu)體、共用體、鏈表、位運(yùn)算和文件等編程技術(shù)。第 12章講解了如何用結(jié)構(gòu)化程序設(shè)計(jì)思想指導(dǎo)一個(gè)大程序的開(kāi)發(fā),以及軟件開(kāi)發(fā)的基本過(guò)程。該章中用“猜硬幣”游戲介紹了自頂向下分解的過(guò)程,用“石頭、剪刀、布”游戲介紹了模塊劃分,用“龜兔賽跑模擬”的例子介紹了如何建立一個(gè)自己的庫(kù)以及如何應(yīng)用自己創(chuàng)建的庫(kù),用學(xué)生管理系統(tǒng)和書(shū)店管理系統(tǒng)講述了軟件開(kāi)發(fā)的過(guò)程。第 13章介紹了通用算法設(shè)計(jì)技術(shù),旨在讓讀者了解,當(dāng)遇到一個(gè)問(wèn)題時(shí)應(yīng)該如何設(shè)計(jì)解決問(wèn)題的算法。
本書(shū)內(nèi)容翔實(shí)、講解深入,每個(gè)知識(shí)點(diǎn)都提供了示例,全書(shū)共有171道例題和228個(gè)程序樣例,所有程序樣例都在VS2010中調(diào)試通過(guò)。為了方便讀者自學(xué),本書(shū)還提供了118道自測(cè)題和141道編程題,以及所有習(xí)題的答案,且配套了講解主要知識(shí)點(diǎn)的視頻。
本書(shū)適合C語(yǔ)言初學(xué)者,也適合有一定基礎(chǔ)的讀者?勺鳛楦鞲叩仍盒S(jì)算機(jī)專(zhuān)業(yè)的教材,也可供從事計(jì)算機(jī)軟件開(kāi)發(fā)的人員參考。
學(xué)習(xí)程序設(shè)計(jì),初學(xué)者往往遇到這樣的困境:語(yǔ)言規(guī)則可以倒背如流,但寫(xiě)出的代碼總是編譯通不過(guò),即使編譯通過(guò)了卻也得不出想要的結(jié)果。怎么辦?《第一行代碼 C語(yǔ)言》可以給你提供幫助。
你不需要具備高深的數(shù)學(xué)和電子學(xué)知識(shí),只需要訓(xùn)練自己以計(jì)算機(jī)能夠理解的方式去表達(dá)自己的邏輯,也就是要具備“計(jì)算思維”,尋找到解決問(wèn)題的方法,然后用編程語(yǔ)言去指揮計(jì)算機(jī)執(zhí)行即可。因此,本書(shū)與常規(guī)的C語(yǔ)言書(shū)不同,除了C語(yǔ)言本身的語(yǔ)法規(guī)則外,本書(shū)更關(guān)注的是培養(yǎng)初學(xué)者具有程序設(shè)計(jì)的思想,掌握程序設(shè)計(jì)的方法。
另外,計(jì)蒜客在線教育團(tuán)隊(duì),為本書(shū)的讀者提供了伴隨式的在線編程平臺(tái)支持,讀者可以將圖書(shū)和線上編程結(jié)合起來(lái)學(xué)習(xí)。
提供掃碼看視頻服務(wù),全書(shū)94個(gè)微視頻,總時(shí)長(zhǎng)超過(guò)1000分鐘。
提供輔助教學(xué)資源包,包括實(shí)驗(yàn)、試卷及答案、教學(xué)大綱、PPT等。
翁惠玉:上海交通大學(xué)副教授,“程序設(shè)計(jì)”“數(shù)據(jù)結(jié)構(gòu)”和“計(jì)算機(jī)網(wǎng)絡(luò)”等課程主講教師,曾獲高等教育教學(xué)成果獎(jiǎng)一等獎(jiǎng)、高等教育教學(xué)成果獎(jiǎng)二等獎(jiǎng)、高等教育上海市級(jí)教育成果一等獎(jiǎng)等。
第1章 程序設(shè)計(jì)概述 1
1.1 什么是程序設(shè)計(jì) 1
1.2 計(jì)算機(jī)的基本組成 2
1.2.1 計(jì)算機(jī)硬件 2
1.2.2 計(jì)算機(jī)軟件 4
1.3 程序設(shè)計(jì)語(yǔ)言 4
1.3.1 機(jī)器語(yǔ)言 4
1.3.2 匯編語(yǔ)言 5
1.3.3 高級(jí)語(yǔ)言 6
1.3.4 智能語(yǔ)言 7
1.3.5 C語(yǔ)言 7
1.4 程序設(shè)計(jì)過(guò)程 7
1.4.1 算法設(shè)計(jì) 8
1.4.2 編碼 11
1.4.3 編譯與鏈接 11
1.4.4 調(diào)試與維護(hù) 12
1.5 編程規(guī)范及常見(jiàn)問(wèn)題 13
1.5.1 真的需要算法設(shè)計(jì)階段嗎 13
1.5.2 為什么不用自然語(yǔ)言編程 13
1.5.3 寄存器、主存儲(chǔ)器和外存儲(chǔ)器有什么不同 13
1.5.4 所有的計(jì)算機(jī)能夠執(zhí)行的指令都是相同的嗎 13
1.5.5 為什么需要編譯和鏈接 13
1.5.6 為什么在不同類(lèi)型的計(jì)算機(jī)上運(yùn)行C語(yǔ)言程序需要使用不同的編譯器 14
1.5.7 為什么不同類(lèi)型的計(jì)算機(jī)不能運(yùn)行同一個(gè)匯編程序 14
1.6 小結(jié) 14
1.7 自測(cè)題 14
1.8 實(shí)戰(zhàn)訓(xùn)練 15
第2章 初識(shí)C語(yǔ)言 16
2.1 一個(gè)完整的C語(yǔ)言程序 16
2.1.1 注釋 17
2.1.2 預(yù)編譯 17
2.1.3 主程序 18
2.2 C語(yǔ)言的開(kāi)發(fā)環(huán)境 20
2.2.1 VS2010的安裝 20
2.2.2 程序輸入 20
2.2.3 編譯鏈接 24
2.2.4 程序的運(yùn)行 25
2.2.5 程序的調(diào)試 28
2.3 編程規(guī)范及常見(jiàn)問(wèn)題 30
2.3.1 注意注釋 30
2.3.2 良好的排版習(xí)慣 30
2.3.3 為什么要學(xué)C語(yǔ)言 31
2.3.4 如何學(xué)習(xí)程序設(shè)計(jì) 31
2.3.5 什么是庫(kù) 31
2.4 小結(jié) 32
2.5 自測(cè)題 32
2.6 實(shí)戰(zhàn)訓(xùn)練 32
第3章 順序程序設(shè)計(jì) 33
3.1 常量與變量 33
3.1.1 變量定義 33
3.1.2 數(shù)據(jù)類(lèi)型 35
3.1.3 常量與符號(hào)常量 39
3.2 數(shù)據(jù)的輸入/輸出 44
3.2.1 字符的輸入/輸出 44
3.2.2 格式化輸入/輸出 46
3.3 算術(shù)運(yùn)算 54
3.3.1 算術(shù)表達(dá)式 54
3.3.2 不同類(lèi)型數(shù)據(jù)間的混合運(yùn)算 56
3.3.3 強(qiáng)制類(lèi)型轉(zhuǎn)換 57
3.3.4 數(shù)學(xué)函數(shù)庫(kù) 59
3.4 賦值運(yùn)算 60
3.4.1 賦值表達(dá)式 60
3.4.2 賦值的嵌套 62
3.4.3 復(fù)合賦值運(yùn)算 62
3.4.4 自增和自減運(yùn)算符 63
*3.5 信息表示 64
3.5.1 數(shù)制間的轉(zhuǎn)換 64
3.5.2 整數(shù)的表示 66
3.5.3 實(shí)數(shù)的表示 69
3.6 順序程序設(shè)計(jì)示例 69
3.7 程序規(guī)范及常見(jiàn)問(wèn)題 71
3.7.1 變量命名 71
3.7.2 運(yùn)算符的優(yōu)先級(jí) 71
3.7.3 數(shù)據(jù)運(yùn)算時(shí)的注意事項(xiàng) 71
3.7.4 為什么要定義符號(hào)常量 72
3.7.5 變量定義后且對(duì)它賦值前的值是什么 72
3.7.6 不要在表達(dá)式中插入有副作用的子表達(dá)式 72
3.8 小結(jié) 72
3.9 自測(cè)題 73
3.10 實(shí)戰(zhàn)訓(xùn)練 74
第4章 分支程序設(shè)計(jì) 76
4.1 關(guān)系表達(dá)式 76
4.2 邏輯表達(dá)式 78
4.2.1 邏輯運(yùn)算 78
4.2.2 短路求值 80
4.3 if語(yǔ)句 82
4.3.1 if語(yǔ)句的形式 82
4.3.2 if語(yǔ)句的嵌套 87
4.3.3 條件表達(dá)式 90
4.4 switch語(yǔ)句及其應(yīng)用 92
4.5 程序規(guī)范及常見(jiàn)問(wèn)題 102
4.5.1 條件語(yǔ)句程序的排版 102
4.5.2 不要連用關(guān)系運(yùn)算符 102
4.5.3 注意短路求值 102
4.5.4 常見(jiàn)錯(cuò)誤 102
4.6 小結(jié) 103
4.7 自測(cè)題 103
4.8 實(shí)戰(zhàn)訓(xùn)練 104
第5章 循環(huán)程序設(shè)計(jì) 106
5.1 計(jì)數(shù)循環(huán) 106
5.1.1 for語(yǔ)句 106
5.1.2 for語(yǔ)句的進(jìn)一步討論 115
5.1.3 for循環(huán)的嵌套 116
5.2 break和continue語(yǔ)句 118
5.2.1 break語(yǔ)句 118
5.2.2 continue語(yǔ)句 120
5.3 基于哨兵的循環(huán) 121
5.3.1 while語(yǔ)句 122
5.3.2 do…while循環(huán) 128
5.4 循環(huán)的中途退出 130
5.5 編程規(guī)范和常見(jiàn)問(wèn)題 134
5.5.1 循環(huán)語(yǔ)句程序的排版 134
5.5.2 優(yōu)化循環(huán)體 134
5.5.3 使用for循環(huán)的注意事項(xiàng) 134
5.5.4 常見(jiàn)錯(cuò)誤 134
5.5.5 三個(gè)循環(huán)語(yǔ)句之間的關(guān)系 135
5.6 小結(jié) 135
5.7 自測(cè)題 135
5.8 實(shí)戰(zhàn)訓(xùn)練 136
第6章 過(guò)程封裝——函數(shù) 139
6.1 函數(shù)的定義 140
6.1.1 函數(shù)的基本結(jié)構(gòu) 140
6.1.2 return語(yǔ)句 141
6.1.3 函數(shù)示例 141
6.2 函數(shù)的使用 144
6.2.1 函數(shù)原型的聲明 144
6.2.2 函數(shù)調(diào)用 146
6.2.3 將函數(shù)與主程序放在一起 147
6.2.4 函數(shù)調(diào)用過(guò)程 151
6.3 帶參數(shù)的宏 154
6.4 變量的作用域 155
6.4.1 局部變量 155
6.4.2 全局變量 156
6.5 變量的存儲(chǔ)類(lèi)別 158
6.5.1 自動(dòng)變量 158
6.5.2 靜態(tài)變量 159
6.5.3 寄存器變量 160
6.5.4 外部變量 161
*6.6 多源文件程序的編譯鏈接 163
6.7 遞歸程序設(shè)計(jì) 164
6.7.1 遞歸的基本概念 165
6.7.2 遞歸函數(shù)的應(yīng)用 167
6.8 編程規(guī)范及常見(jiàn)問(wèn)題 173
6.8.1 使用函數(shù)時(shí)的建議 173
6.8.2 函數(shù)命名 174
6.8.3 沒(méi)有返回值的函數(shù)是否需要return語(yǔ)句 174
6.8.4 盡量避免使用全局變量 174
6.8.5 盡量避免實(shí)際參數(shù)表達(dá)式有副作用 175
6.8.6 常見(jiàn)錯(cuò)誤 175
6.9 小結(jié) 175
6.10 自測(cè)題 176
6.11 實(shí)戰(zhàn)訓(xùn)練 177
第7章 批量數(shù)據(jù)處理——數(shù)組 179
7.1 一維數(shù)組 179
7.1.1 一維數(shù)組的定義 179
7.1.2 數(shù)組元素的引用 180
7.1.3 一維數(shù)組的內(nèi)存映像 184
7.1.4 一維數(shù)組的應(yīng)用 185
7.2 數(shù)組作為函數(shù)的參數(shù) 190
7.3 查找算法 195
7.3.1 順序查找 196
7.3.2 二分查找 197
7.4 排序算法 201
7.4.1 直接選擇排序法 201
7.4.2 冒泡排序法 203
7.5 二維數(shù)組 205
7.5.1 二維數(shù)組的定義 206
7.5.2 二維數(shù)組元素的引用 207
7.5.3 二維數(shù)組的內(nèi)存映像 208
7.5.4 二維數(shù)組的應(yīng)用 208
7.5.5 二維數(shù)組作為函數(shù)的參數(shù) 218
7.6 字符串 220
7.6.1 字符串的存儲(chǔ)及初始化 220
7.6.2 字符串的輸入/輸出 221
7.6.3 字符串作為函數(shù)參數(shù) 225
7.6.4 字符串處理函數(shù) 230
7.6.5 字符串的應(yīng)用 232
7.7 程序規(guī)范及常見(jiàn)問(wèn)題 234
7.7.1 數(shù)組下標(biāo)必須從0開(kāi)始嗎 234
7.7.2 能用表達(dá)式des = src將字符串src賦給字符串des嗎 234
7.7.3 為什么存放字符串的數(shù)組長(zhǎng)度比字符串的實(shí)際長(zhǎng)度多一個(gè)字符235
7.7.4 有了scanf函數(shù)為什么還需要gets函數(shù) 235
7.7.5 傳遞字符串為什么只需要一個(gè)參數(shù) 235
7.7.6 傳遞二維數(shù)組時(shí)形式參數(shù)中第二個(gè)方括號(hào)中的值為什么必須指定 235
7.8 小結(jié) 235
7.9 自測(cè)題 236
7.10 實(shí)戰(zhàn)訓(xùn)練 237
第8章 指針 240
8.1 指針的概念 240
8.1.1 指針與間接訪問(wèn) 240
8.1.2 指針變量的定義 241
8.1.3 指針變量的操作 242
8.2 指針與數(shù)組 246
8.2.1 指向數(shù)組元素的指針 246
8.2.2 指針運(yùn)算與數(shù)組訪問(wèn) 246
8.3 指針與函數(shù) 250
8.3.1 指針作為參數(shù) 250
8.3.2 返回指針的函數(shù) 254
8.3.3 數(shù)組作為函數(shù)參數(shù)的進(jìn)一步討論 256
8.4 動(dòng)態(tài)內(nèi)存分配 259
8.4.1 動(dòng)態(tài)變量 259
8.4.2 動(dòng)態(tài)變量的創(chuàng)建 259
8.4.3 動(dòng)態(tài)變量的消亡 261
8.4.4 內(nèi)存泄露 261
8.4.5 查找malloc和calloc的失誤 261
8.4.6 動(dòng)態(tài)變量應(yīng)用 263
8.5 指針與字符串 265
8.5.1 用指向字符的指針變量表示字符串 265
8.5.2 字符串作為函數(shù)的參數(shù) 266
8.5.3 返回字符串的函數(shù) 268
8.6 指針數(shù)組與多級(jí)指針 270
8.6.1 指針數(shù)組 270
*8.6.2 main函數(shù)的參數(shù) 272
*8.6.3 多級(jí)指針 276
*8.6.4 二維數(shù)組與指向一維數(shù)組的指針 277
*8.6.5 動(dòng)態(tài)二維數(shù)組 279
*8.7 函數(shù)指針 280
8.7.1 指向函數(shù)的指針 280
8.7.2 函數(shù)指針作為函數(shù)參數(shù) 281
8.7.3 函數(shù)指針用于菜單選擇 284
8.8 編程規(guī)范與常見(jiàn)問(wèn)題 285
8.8.1 int x, *p = &x;有錯(cuò)嗎 285
8.8.2 避免使用懸空指針和未初始化的指針 286
8.8.3 不同類(lèi)型的指針之間為什么不能賦值 286
8.8.4 指針與數(shù)組等價(jià)嗎 286
8.8.5 值傳遞和指針傳遞的區(qū)別是什么 286
8.8.6 返回指針的函數(shù)必須確保返回值指向的變量在函數(shù)執(zhí)行
結(jié)束時(shí)依然存在 287
8.8.7 使用動(dòng)態(tài)變量時(shí)必須嚴(yán)格防止內(nèi)存泄露 287
8.9 小結(jié) 287
8.10 自測(cè)題 288
8.11 實(shí)戰(zhàn)訓(xùn)練 289
第9章 更多的數(shù)據(jù)類(lèi)型 290
9.1 枚舉類(lèi)型 290
9.2 類(lèi)型別名 293
9.3 結(jié)構(gòu)體 294
9.3.1 結(jié)構(gòu)體的概念 294
9.3.2 結(jié)構(gòu)體類(lèi)型的定義 295
9.3.3 結(jié)構(gòu)體類(lèi)型變量的定義 296
9.3.4 結(jié)構(gòu)體類(lèi)型變量的使用 299
9.3.5 結(jié)構(gòu)體與函數(shù) 302
9.4 鏈表 308
9.4.1 鏈表的概念 308
9.4.2 單鏈表的存儲(chǔ) 310
9.4.3 單鏈表的操作 311
9.4.4 帶頭結(jié)點(diǎn)的單鏈表 312
9.4.5 單鏈表實(shí)例 313
9.5 共用體 316
9.5.1 共用體概念和共用體類(lèi)型的定義 316
9.5.2 共用體類(lèi)型變量的定義及初始化 318
9.5.3 共用體變量的使用 318
9.6 編程規(guī)范及常見(jiàn)問(wèn)題 324
9.6.1 結(jié)構(gòu)體中每個(gè)字段的類(lèi)型都不相同嗎 324
9.6.2 單鏈表中為什么要引入頭結(jié)點(diǎn) 324
9.6.3 引入結(jié)構(gòu)體有什么用處 324
9.6.4 結(jié)構(gòu)體和共用體的區(qū)別 324
9.6.5 結(jié)構(gòu)體和共用體類(lèi)型定義時(shí)能否省略類(lèi)型名 324
9.6.6 結(jié)構(gòu)體類(lèi)型定義與結(jié)構(gòu)體變量定義 325
9.7 小結(jié) 325
9.8 自測(cè)題 325
9.9 實(shí)戰(zhàn)訓(xùn)練 326
第10章 位運(yùn)算與位段 328
10.1 位運(yùn)算 328
10.1.1 “按位與”運(yùn)算 328
10.1.2 “按位或”運(yùn)算 330
10.1.3 “按位異或”運(yùn)算 331
10.1.4 “按位取反”運(yùn)算 333
10.1.5 “左移”運(yùn)算 335
10.1.6 “右移”運(yùn)算 335
10.1.7 位運(yùn)算與賦值運(yùn)算 337
10.1.8 不同長(zhǎng)度的數(shù)據(jù)進(jìn)行位運(yùn)算 337
10.2 位段 338
10.2.1 位段的概念及定義 338
10.2.2 位段的引用 339
10.3 編程規(guī)范及常見(jiàn)問(wèn)題 341
10.3.1 檢驗(yàn)?zāi)硵?shù)中指定位的值 341
10.3.2 將數(shù)據(jù)中的某一位的值置成0 341
10.3.3 將數(shù)據(jù)中的某一位的值置成1 342
10.3.4 將數(shù)據(jù)中的某一位的值取反 342
10.4 小結(jié) 342
10.5 自測(cè)題 342
10.6 實(shí)戰(zhàn)訓(xùn)練 343
第11章 文件 344
11.1 內(nèi)存與外存 344
11.2 文件的概念 345
11.2.1 什么是文件 345
11.2.2 ASCII文件與二進(jìn)制文件 346
11.3 文件緩沖與文件指針 346
11.4 文件的打開(kāi)與關(guān)閉 347
11.4.1 打開(kāi)文件 347
11.4.2 關(guān)閉文件 349
11.5 ASCII文件的讀寫(xiě) 349
11.5.1 字符讀寫(xiě)函數(shù) 350
11.5.2 字符串讀寫(xiě)函數(shù) 352
11.5.3 數(shù)值讀寫(xiě)函數(shù) 354
11.6 二進(jìn)制文件的讀寫(xiě) 358
11.6.1 fwrite函數(shù) 358
11.6.2 fread函數(shù) 360
11.7 文件的順序訪問(wèn) 362
11.7.1 什么是文件的順序訪問(wèn) 362
11.7.2 feof函數(shù) 363
11.8 文件的隨機(jī)訪問(wèn) 364
11.8.1 文件定位指針 365
11.8.2 rewind函數(shù) 365
11.8.3 fseek函數(shù) 367
11.8.4 ftell函數(shù) 369
*11.9 文件操作與控制臺(tái)操作 370
11.10 編程規(guī)范及常見(jiàn)問(wèn)題 371
11.10.1 良好的文件使用習(xí)慣 371
11.10.2 文件打開(kāi)方式選擇 372
11.10.3 文件指針與文件定位指針 372
11.10.4 流與文件 372
11.11 小結(jié) 372
11.12 自測(cè)題 373
11.13 實(shí)戰(zhàn)訓(xùn)練 373
第12章 軟件開(kāi)發(fā)過(guò)程 374
12.1 結(jié)構(gòu)化程序設(shè)計(jì)思想 374
12.2 自頂向下分解示例:“猜硬幣”游戲 375
12.2.1 頂層分解 375
12.2.2 prn_instruction函數(shù)的實(shí)現(xiàn) 376
12.2.3 play函數(shù)的實(shí)現(xiàn) 376
12.2.4 get_call_from_user函數(shù)的實(shí)現(xiàn) 378
12.3 模塊劃分示例:“石頭、剪刀、布”游戲 380
12.3.1 自頂向下分解 381
12.3.2 模塊劃分 382
12.3.3 頭文件的設(shè)計(jì) 383
12.3.4 模塊實(shí)現(xiàn) 386
12.4 設(shè)計(jì)自己的庫(kù)示例:隨機(jī)函數(shù)庫(kù)的設(shè)計(jì)和實(shí)現(xiàn) 389
12.4.1 隨機(jī)函數(shù)庫(kù)的功能設(shè)計(jì) 390
12.4.2 接口文件的設(shè)計(jì) 390
12.4.3 實(shí)現(xiàn)文件的設(shè)計(jì) 391
12.5 隨機(jī)函數(shù)庫(kù)的應(yīng)用示例:模擬龜兔賽跑 392
12.5.1 自頂向下分解 392
12.5.2 模塊劃分及實(shí)現(xiàn) 393
12.6 軟件開(kāi)發(fā)過(guò)程 395
12.6.1 軟件危機(jī) 395
12.6.2 軟件工程 396
12.7 軟件開(kāi)發(fā)過(guò)程示例:學(xué)生管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 397
12.7.1 需求分析 397
12.7.2 概要設(shè)計(jì) 398
12.7.3 詳細(xì)設(shè)計(jì) 400
12.7.4 編碼與測(cè)試 402
12.8 軟件開(kāi)發(fā)示例:網(wǎng)上書(shū)店的設(shè)計(jì) 407
12.8.1 需求分析 407
12.8.2 概要設(shè)計(jì) 408
12.8.3 詳細(xì)設(shè)計(jì) 411
12.9 編程規(guī)范及常見(jiàn)問(wèn)題 413
12.9.1 頭文件的格式 413
12.9.2 實(shí)現(xiàn)一個(gè)庫(kù)為什么需要兩個(gè)文件 413
12.9.3 慎用全局變量 414
12.10 小結(jié) 414
12.11 自測(cè)題 414
12.12 實(shí)戰(zhàn)訓(xùn)練 414
第13章 通用算法設(shè)計(jì) 416
13.1 枚舉法 416
13.2 貪婪法 423
13.3 分治法 427
13.4 動(dòng)態(tài)規(guī)劃 431
13.5 回溯法 435
13.6 小結(jié) 442
13.7 實(shí)戰(zhàn)訓(xùn)練 442
附錄 443
附錄1 第1章自測(cè)題答案 443
附錄2 第2章自測(cè)題答案 445
附錄3 第3章自測(cè)題答案 446
附錄4 第4章自測(cè)題答案 451
附錄5 第5章自測(cè)題答案 453
附錄6 第6章自測(cè)題答案 455
附錄7 第7章自測(cè)題答案 459
附錄8 第8章自測(cè)題答案 463
附錄9 第9章自測(cè)題答案 466
附錄10 第10章自測(cè)題答案 467
附錄11 第11章自測(cè)題答案 470
附錄12 第12章自測(cè)題答案 472
附錄13 ASCII編碼表 474