問題求解與程式設計習題解答和實驗指導

《問題求解與程式設計習題解答和實驗指導》是2015年清華大學出版社出版的圖書,圖書作者是鮑春波 林芳 謝麗聰。

基本信息

作者:鮑春波 林芳 謝麗聰
定價:39元
印次:1-1
ISBN:9787302402664
出版日期:2015.09.01
印刷日期:2015.08.18

內容簡介

本書是與主教材《問題求解與程式設計》配套使用的習題解答和實驗指導,包括5個部分。第一部分是教材各章的概念填空題目和全部線上評測題目的參考答案,每個線上評測題目的求解均與教材的風格一致,按照分析設計實現的框架展開。第二部分是實驗指導,詳細介紹了程式設計的命令行環境、集成環境的搭建方法,以及vi編輯器、Emacs編輯器的使用方法。特別介紹了如何用gcc編譯器和grx圖形庫(與Turbo C圖形庫兼容)進行圖形程式設計。第三部分是實驗,包括精心設計的10個實驗,每個實驗對應主教材的一章。第四部分是實驗解答,包括每個實驗中程式基礎練習的答案、程式改錯題目的錯誤原因分析。第五部分是課程設計的具體要求和內容安排,因材施教,有針對性地安排了兩種課程設計方案。

目錄結構

第一部分習題解答

概念填空/3

1計算機與程式設計/3

2程式設計入門/3

3選擇程式設計/3

4循環程式設計/3

5模組化程式設計/4

6數組程式設計/4

7指針程式設計/4

8結構程式設計/4

9檔案程式設計/4

10低級程式設計/4線上評測/5

1計算機與程式設計/5

2程式設計入門/5

2.1Hello/5

2.2輸出圖案/5

2.3簡單的整數運算/6

2.4計算二次多項式的值/7

2.5硬幣兌換問題/8

2.6分離3位整數的每一位/9

2.7簡單的浮點運算/10

2.8存款利息計算/10

2.9平均成績計算/11

2.10二進制數轉換為十進制數/12

3選擇程式設計/13

3.1奇偶判斷/13

3.2求兩個整數的最大值/13

3.3比較兩個整數的大小/14

3.4分段函式求值/15

3.5回文判斷/163.6字元判斷/16

3.7計算一個整數的位數/18

3.8選擇時間段/19

3.9求三個整數的最大值/20

3.10三個整數排序/21

4循環程式設計/22

4.1求10個整數的最大值和最小值/22

4.2求任意多個整數的最大值和最小值/23

4.3求奇數自然數之和/24

4.4計算a+aa+aaa+…的值/25

4.5求任意多個正整數之和/26

4.6近似計算/27

4.7列印上三角的99乘法表/28

4.8列印菱形圖案/29

4.9求最大公約數/30

4.10求水仙花數/31

4.11求π的近似值/32

4.12列出完數/33

4.13猴子吃桃問題/34

5模組化程式設計/35

5.1求和函式/35

5.2階乘計算函式/37

5.3溫度轉換函式/38

5.4數字字元判斷函式/39

5.5判斷兩個實數是否相等的函式/40

5.6自定義的輸出格式函式/41

5.7牛頓法求一個數的平方根函式/42

5.8計算兩個整數的最大公約數函式/43

5.9遞歸計算兩個數的最大公約數函式/44

5.10遞歸計算正整數n的k次冪函式/45

5.11用遞歸把一個整數轉換為字元串/47

6數組程式設計/48

6.1把一組數據逆序/48

6.2求一組數據的最大值/49

6.3一組數據的逆序函式/50

6.4一組數據的最大值函式/51

6.5向一組數據首插入一個數據/52

6.6插入排序/53

6.7比賽評分/54

6.8遞歸倒置一個字元串/55

6.9統計單詞數/58

6.10單詞排序/59

6.11楊輝三角(二維數組)/61

6.12矩陣加法/62

6.13把一個字元串的字元之間插入空格/64

6.14字元串連線函式/65

7指針程式設計/66

7.1用指針間接訪問變數/66

7.2用指針訪問一維數組/67

7.3用指針訪問字元串/68

7.4用列指針訪問二維數組/69

7.5用行指針訪問二維數組/70

7.6用指針調用函式/71

7.7用指針作為函式的參數/73

7.8用指向二維數組的列指針作為函式的

參數/75

7.9用指向二維數組的行指針作為函式的

參數/76

7.10字元串逆置函式的指針版(非遞歸)/78

7.11動態創建一維數組——求最大值索引的

函式/79

7.12動態創建二維數組——矩陣轉置函式/80

7.13字元串比較/82

7.14學生姓名排序/85

8結構程式設計/87

8.1計算平面上的點之間的距離/87

8.2計算任意多個平面上的點之間的距離/88

8.3平面上的點靜態連結/90

8.4平面上的點動態連結/91

8.5約瑟夫環/94

8.6比賽報名管理/97

8.7個人財務管理/100

8.8通訊錄管理/103

8.9複數運算/108

8.10輸出某一天是星期幾/110

9檔案程式設計/112

9.1檔案版的平面上點之間的距離/112

9.2檔案版的最大最小值/114

9.3檔案版的求學生成績平均值/115

9.4二進制數據檔案的建立和載入/117

9.5結構數據檔案的建立和載入/119

9.6檔案記錄的修改和更新/121

9.7在檔案中查找某個記錄信息/123

9.8在檔案中插入一條記錄/126

9.9刪除檔案中的某一條記錄/128

9.10把檔案中的數據記錄排序/130

10低級程式設計/134

10.1按位列印無符號整數/134

10.2判斷給定的整數是不是2的整數

次冪/135

10.3把字元包裝到無符號整型變數中/136

10.4把包裝到無符號整型變數中的字元解

包裝/138

10.5用位段表示撲克牌信息/141

第二部分實驗指導

1命令行實驗環境的建立/147

1.1軟體下載與安裝/147

1.1.1MinGW/147

1.1.2TDMG++/148

1.2在命令行使用gcc編譯器/148

1.2.1分步生成hello.exe/148

1.2.2一步生成hello.exe/149

1.3make命令和makefile檔案/1502集成開發環境的建立/152

2.1Code∷Blocks/152

2.1.1Code∷Blocks的基本用法/153

2.1.2建立一個工程/153

2.1.3構造自己的庫/155

2.2其他集成環境/160

2.2.1DevC++/160

2.2.2RHIDE/161

2.2.3TurboC/C++和WinTC/161

2.2.4VisualC++/162

2.2.5EclipseCDT/1633編輯器/165

3.1vi編輯器/165

3.1.1vim的啟動和退出/165

3.1.2在vim/gvim中移動游標/167

3.1.3開始編輯/168

3.1.4使用ex模式的命令行/168

3.1.5在vim中執行外部命令/171

3.1.6可視模式/171

3.2Emacs編輯器/171

3.2.1Emacs簡介/171

3.2.2Emacs軟體下載和安裝/172

3.2.3Emacs配置/172

3.2.4Emacs的基本用法/1744程式測試與調試/176

4.1程式的錯誤類型/176

4.1.1編譯連結錯誤/176

4.1.2運行錯誤/176

4.1.3邏輯錯誤/177

4.2程式排錯/177

4.2.1使用調試器調試/178

4.2.2不使用調試器調試/182

4.3程式測試/1835GRX圖形庫介紹/185

5.1生成GRX圖形庫/185

5.2GRX圖形程式設計/187

5.2.1GRX的HelloWorld!/187

5.2.2編譯運行GRXHello程式/188

5.2.3GRX基本繪圖函式/189

5.2.4用GRX庫編譯TurboC圖形

程式/207

第三部分實驗

1實驗準備/219

1.1實驗目的/219

1.2實驗內容/219

1.2.1熟悉課程網站/219

1.2.2英文打字練習/219

1.2.3命令練習/219

1.2.4編輯練習/220

1.2.5編譯練習/2202程式設計入門實驗/223

2.1實驗目的/223

2.2實驗內容/223

2.2.1程式基礎練習/223

2.2.2程式改錯/224

2.2.3問題求解/2253選擇程式設計實驗/226

3.1實驗目的/226

3.2實驗內容/226

3.2.1程式基礎練習/226

3.2.2程式改錯/227

3.2.3問題求解/2284循環程式設計實驗/230

4.1實驗目的/230

4.2實驗內容/230

4.2.1程式基礎練習/230

4.2.2程式改錯/233

4.2.3問題求解/2345函式程式設計實驗/236

5.1實驗目的/236

5.2實驗內容/236

5.2.1程式基礎練習/236

5.2.2程式改錯/238

5.2.3問題求解/2406數組程式設計實驗/242

6.1實驗目的/242

6.2實驗內容/242

6.2.1程式基礎練習/242

6.2.2程式改錯/244

6.2.3問題求解/2467指針程式設計實驗/247

7.1實驗目的/247

7.2實驗內容/247

7.2.1程式基礎練習/247

7.2.2程式改錯/249

7.2.3問題求解/2518結構程式設計實驗/252

8.1實驗目的/252

8.2實驗內容/252

8.2.1程式基礎練習/252

8.2.2程式改錯/254

8.2.3問題求解/2559檔案程式設計實驗/257

9.1實驗目的/257

9.2實驗內容/257

9.2.1程式基礎練習/257

9.2.2程式改錯/258

9.2.3問題求解/25910低級程式設計實驗/261

10.1實驗目的/261

10.2實驗內容/261

10.2.1程式基礎練習/261

10.2.2程式改錯/262

10.2.3問題求解/264

第四部分實驗解答

1實驗準備/2672程式設計入門實驗/268

2.1程式基礎練習/268

2.2程式改錯/2683選擇程式設計實驗/271

3.1程式基礎練習/271

3.2程式改錯/2714循環程式設計實驗/274

4.1程式基礎練習/274

4.2程式改錯/2765函式程式設計實驗/280

5.1程式基礎練習/280

5.2程式改錯/2816數組程式設計實驗/285

6.1程式基礎練習/285

6.2程式改錯/2877指針程式設計實驗/290

7.1程式基礎練習/290

7.2程式改錯/2918結構程式設計實驗/294

8.1程式基礎練習/294

8.2程式改錯/2979檔案程式設計實驗/300

9.1程式基礎練習/300

9.2程式改錯/30010低級程式設計實驗/304

10.1程式基礎練習/304

10.2程式改錯/305關於實驗報告/307

第五部分課程設計

1課程設計的目的/311

2課程設計的基本要求/312

3課程設計的基本內容/314

3.1A組題目/314

3.2B組題目/315

4課程設計報告格式/318

5學時安排/320

6考核方式與評分標準/321

附錄/322

OnlineJudge簡介/322

Moodle簡介/323

2.3.1真值與機器碼/33

2.3.2原碼錶示/34

2.3.3反碼錶示/35

2.3.4補碼錶示/36

2.3.5移碼錶示/37

2.3.6原碼、反碼和補碼之間的轉換/38

2.4二十進制編碼/39

2.4.18421碼/39

2.4.2餘3碼/39

2.4.32421碼/40

2.5計算機中非數值數據的表示/40

2.5.1ASCII碼/40

2.5.2Unicode碼/44

2.5.3漢字國標碼GB2312—80/46

2.5.4漢字點陣顯示/47

2.5.5校驗碼/49

2.6高級數據表示/51

2.6.1自定義數據表示/51

2.6.2向量數組數據表示/52

2.6.3堆疊數據表示/53

2.6.4引入數據表示的原則/53

2.7課後習題/58

課後習題答案/58

第3章數字邏輯基礎/60

3.1數位訊號基礎/60

3.1.1電源電壓/60

3.1.2邏輯電平/60

3.1.3噪聲容限/61

3.1.4直流電壓傳輸特性/61

3.1.5靜態約束/62

3.2半導體基礎/63

3.2.1半導體/63

3.2.2二極體/64

3.2.3電容/64

3.2.4MOS電晶體/64

3.3布爾表達式/67

3.3.1術語/67

3.3.2與或式/67

3.3.3或與式/68

3.4布爾代數/69

3.4.1公理/69

3.4.2單變數定理/69

3.4.3多變數定理/71

3.4.4定理的統一證明方法/72

3.4.5等式化簡/72

3.5卡諾圖化簡法/73

3.5.1卡諾圖的構成/73

3.5.2布爾函式在卡諾圖上的表示/74

3.5.3卡諾圖的性質/75

3.5.4卡諾圖化簡的基本步驟/75

3.6列表化簡法/77

3.6.1用列表法確定布爾函式的所有

質蘊涵項/77

3.6.2用質蘊涵表確定必要質蘊涵/78

3.6.3求函式的最小覆蓋/79

3.7邏輯門電路基礎/82

3.7.1與門/82

3.7.2或門/83

3.7.3非門/85

3.7.4與非門/86

3.7.5或非門/87

3.7.6與或非門/88

3.8組合邏輯網路的分析設計與舉例/88

3.8.1組合網路的分析/88

3.8.2組合網路的設計/89

3.8.3二進制運算電路的邏輯設計/91

3.8.4十進制邏輯電路的設計/94

3.9觸發器/97

3.9.1RS觸發器/97

3.9.2JK觸發器/99

3.9.3D觸發器/100

3.9.4T觸發器/102

3.10同步時序電路的分析及設計舉例/103

3.10.1概述/103

3.10.2狀態約束/104

3.10.3系統時序/104

3.10.4時鐘偏移/106

3.10.5亞穩態/108

3.10.6同步器/109

3.10.7同步時序電路的設計舉例/110

3.11異步時序電路的分析及設計舉例/114

3.11.1概述/114

3.11.2異步時序流程表的建立與

簡化/117

3.11.3流程表的狀態分配/119

3.11.4異步時序電路的設計舉例/122

3.12課後習題/128

課後習題答案/131

第4章運算方法與運算器/136

4.1數的定點與浮點表示/136

4.1.1定點表示/136

4.1.2浮點表示/137

4.2定點加減法運算/141

4.2.1補碼加法運算/141

4.2.2補碼減法運算/143

4.2.3溢出及其檢測方法/144

4.3定點乘法運算/145

4.3.1原碼一位乘法/145

4.3.2原碼兩位乘法/146

4.3.3補碼一位乘法/148

4.3.4補碼兩位乘法/149

4.3.5陣列乘法器/150

4.4定點數除法運算/153

4.4.1原碼和補碼除法中的加減交

替法/153

4.4.2原碼兩位除法/156

4.4.3陣列除法器/158

4.5浮點算術運算/160

4.5.1浮點加法和減法/160

4.5.2浮點乘法運算/162

4.5.3浮點除法運算/162

4.6運算器電路/162

4.6.1加法器/162

4.6.2減法器/165

4.6.3比較器/166

4.6.4算術邏輯單元/166

4.6.5移位器和循環移位器/168

4.774LS181運算器/169

4.7.174LS181算術邏輯單元的

工作原理/169

4.7.274LS181功能測試/171

4.8課後習題/172

課後習題答案/172

第5章指令與指令系統/174

5.1指令系統的發展/174

5.2指令系統/175

5.2.1指令系統的介紹/175

5.2.2指令的分類/175

5.3指令格式/176

5.3.1零地址指令/176

5.3.2單指令地址/177

5.3.3雙地址指令/177

5.3.4三地址指令/177

5.3.5多地址指令/177

5.4定址方式/178

5.4.1立即數定址/178

5.4.2暫存器定址/178

5.4.3直接定址/179

5.4.4間接定址/179

5.4.5變址定址/180

5.4.6相對定址/181

5.5複雜指令系統和精簡指令系統/182

5.5.1複雜指令系統/182

5.5.2精簡指令系統/182

5.6指令集結構的功能設計/183

5.6.1CISC指令集結構的功能設計/183

5.6.2RISC指令集結構的功能設計/185

5.6.3控制指令功能設計/186

5.7運算元的類型、表示和大小/189

5.7.1運算元的類型/189

5.7.2運算元的表示和大小/189

5.8指令集格式的設計/190

5.8.1定址方式的表示方法/191

5.8.2指令集格式的選擇/191

5.8.3操作碼的最佳化設計/192

5.8.4地址碼的最佳化設計/193

5.9處理器的指令周期/194

5.9.1指令周期/194

5.9.2非訪內指令的指令周期/195

5.9.3訪內指令的指令周期/197

5.9.4間接訪問主存儲器指令的指令

周期/198

5.9.5程式控制指令的指令周期/199

5.9.6用框圖語言表示指令周期/202

5.10ARM指令集結構/203

5.10.1DLX中的暫存器/203

5.10.2ARM的模式/204

5.10.3ARM的指令格式/204

5.10.4ARM的載入/存儲/206

5.10.5數據處理指令/207

5.10.6分支和跳轉操作/208

5.10.7ARM支持協處理器操作/209

5.10.8ARM雜項指令/209

5.10.9ARM的偽指令/210

5.10.10RISC體系結構與ARM的

性能優勢/210

5.10.11RISC體系結構的優勢/211

5.10.12體系結構的性能優勢/211

5.11RISC指令並行處理/212

5.11.1指令級並行概念/212

5.11.2實現指令集並行處理的

技術/213

5.12課後習題/214

課後習題答案/215

第6章控制器及性能提高/219

6.1控制器的構成/219

6.1.1中央處理器的功能與組成/219

6.1.2控制器的功能及結構框圖/223

6.1.3控制方式及時序部件/226

6.1.4中斷系統/231

6.2微操作命令分析/233

6.2.1取指周期/233

6.2.2間訪周期/233

6.2.3執行周期/233

6.2.4中斷周期/235

6.3指令的執行過程/236

6.3.1順序控制/236

6.3.2超前控制/237

6.3.3流水線控制/238

6.4流水線技術/239

6.4.1流水線的基本概念/239

6.4.2流水線的分類/241

6.4.3流水線中的相關/243

6.5RISC處理器的指令流水線/260

6.5.1ARM7流水線技術/261

6.5.2ARM9流水線技術/261

6.5.3ARM11流水線技術/262

6.6流水線性能分析/263

6.6.1線性流水線的性能分析/263

6.6.2線性流水線的性能分析舉例/268

6.6.3非線性流水線的調度技術

簡介/269

6.7超標量體系結構/271

6.7.1簡單超標量/272

6.7.2多傳送超標量/273

6.7.3超標量性能/274

6.8分支預測/275

6.8.1分支預測的必要性/275

6.8.2單T位預測器/276

6.8.3雙位預測器/278

6.8.4計數器、移位器和預測器/279

6.8.5局部分支預測器/280

6.8.6全局分支預測器/282

6.8.7G選擇預測器/284

6.8.8G共享預測器/285

6.8.9混合預測器/286

6.8.10分支目標緩衝/287

6.9微程式控制器/289

6.9.1微程式控制原理/289

6.9.2微程式設計技術/289

6.10硬布線控制器/293

6.10.1基本思想/293

6.10.2硬布線控制邏輯設計中的

若干問題/294

6.10.3硬布線控制器和微程式

控制器的比較/295

6.11課後習題/296

課後習題答案/297

第7章存儲系統/300

7.1存儲系統的層次結構/300

7.2主存儲器/301

7.2.1主存儲器的分類/301

7.2.2讀/寫存儲器/303

7.2.3非易失性半導體存儲器/307

7.3主存儲器組成/309

7.3.1位擴展/309

7.3.2字擴展/310

7.3.3字位擴展/311

7.4相聯存儲器/312

7.5高速緩衝存儲器/314

7.5.1高速緩衝存儲器概述/314

7.5.2映像規則/319

7.5.3查找方法/321

7.5.4替換算法/322

7.5.5寫策略/323

7.5.6高速緩衝暫存器的結構/325

7.5.7高速緩衝存儲器的性能分析/327

7.5.8高速緩衝存儲器的性能改進/331

7.6降低cache失效率的方法/331

7.6.1增加cache塊大小/334

7.6.2提高相聯度/336

7.6.3Victim cache/337

7.6.4偽相聯cache/338

7.6.5硬體預取技術/339

7.6.6由編譯器控制的預取/340

7.6.7編譯器最佳化/342

7.7減少cache失效開銷/346

7.7.1讓讀失效優先於寫/346

7.7.2子塊放置技術/346

7.7.3請求字處理技術/347

7.7.4非阻塞cache技術/348

7.7.5採用兩級cache/349

7.8減少命中時間/352

7.8.1容量小、結構簡單的cache/352

7.8.2虛擬cache/353

7.8.3寫操作流水化/355

7.8.4cache最佳化技術總結/355

7.9外部存儲設備/356

7.9.1磁碟設備/356

7.9.2Flash存儲器/360

7.9.3磁帶設備/361

7.9.4光碟設備/362

7.10廉價磁碟冗餘陣列/363

7.10.1RAID0/364

7.10.2RAID1/366

7.10.3RAID2/367

7.10.4RAID3/368

7.10.5RAID4/369

7.10.6RAID5/370

7.10.7RAID6/371

7.10.8RAID7/371

7.10.9RAID的實現與發展/372

7.11虛擬存儲器/373

7.11.1虛擬存儲器基本原理/373

7.11.2頁式虛擬存儲器/374

7.11.3段式虛擬存儲器/377

7.11.4快表/378

7.12進程保護和虛存實例/381

7.12.1進程保護/382

7.12.2ARM的段頁式存儲結構/383

7.13課後習題/386

課後習題答案/387

第8章輸入/輸出系統與匯流排/391

8.1引言/391

8.1.1I/O設備的編址與I/O接口

的基本功能/391

8.1.2I/O設備數據傳送方式/393

8.1.3I/O系統性能與CPU的性能/394

8.1.4I/O系統的可靠性/395

8.2可靠性、可用性和可信性/396

8.3匯流排系統/397

8.3.1普林斯頓體系與哈佛體系/397

8.3.2匯流排分類/399

8.3.3匯流排操作/400

8.3.4常用的系統匯流排/406

8.4I/O系統性能分析/422

8.4.1I/O性能與系統回響時間/422

8.4.2Little定律/425

8.4.3M/M/1排隊系統/425

8.4.4M/M/m排隊系統/427

8.5I/O與作業系統/429

8.5.1DMA和虛擬存儲器/429

8.5.2I/O和cache數據一致性/430

8.5.3異步I/O/431

8.5.4塊伺服器和檔案伺服器/432

8.6小結/432

附錄A嵌入式計算機上的無線技術/433

8.7課後習題/442

課後習題答案/444

第9章並行處理機與多處理機/449

9.1引言/449

9.1.1並行性/449

9.1.2並行計算機體系結構的分類/450

9.1.3SISD向MIMD的演變/450

9.1.4並行處理面臨的挑戰/452

9.2並行處理機結構與特點/454

9.2.1並行處理機的典型結構/454

9.2.2並行處理機的特點/455

9.3並行計算機基本結構/456

9.3.1Illiac Ⅳ計算機/456

9.3.2Burroughs BSP計算機/461

9.3.3CM2計算機/465

9.4互連網路的基本概念/468

9.4.1互連網路在計算機系統中的

作用/468

9.4.2主要特性和性能參數/469

9.4.3互連函式/471

9.4.4互連網路的種類/475

9.5互連網路/476

9.5.1互連網路的性能參數/477

9.5.2靜態連線網路/479

9.5.3動態連線網路/483

9.6多處理機系統結構與特點/487

9.6.1基本結構/487

9.6.2多處理機系統特點/488

9.7多處理機cache一致性問題/490

9.7.1多處理機cache一致性/490

9.7.2實現一致性的基本方案/491

9.7.3監聽協定及其實現/493

9.7.4分散式共享存儲器體系結構/494

9.7.5基於目錄的cache一致性/495

9.7.6目錄協定及其實現/496

9.8同步/498

9.8.1基本硬體原語/498

9.8.2用一致性實現鎖/499

9.8.3同步性能問題/501

9.8.4大規模機器的同步/503

9.9同時多執行緒/506

9.9.1將執行緒級並行轉換為指令級

並行/507

9.9.2同時多執行緒處理器的設計/508

9.9.3同時多執行緒的性能/509

9.10先進的並行處理與多處理機介紹/511

9.10.1格線計算機/511

9.10.2雲計算/513

9.10.3集群機/516

9.11小結/517

9.12課後習題/518

課後習題答案/519

第10章虛擬化技術原理/523

10.1概述/523

10.1.1虛擬化/523

10.1.2虛擬機/523

10.1.3全虛擬化和單虛擬化/524

10.1.4硬體虛擬化概況/524

10.2處理器虛擬化原理精要/526

10.2.1體系結構背景/526

10.2.2經典的虛擬化方法/527

10.2.3x86 ISA分析/527

10.2.4x86虛擬化方法/528

10.2.5其他體系結構分析/531

10.2.6其他體系所採用的虛擬化

方法/531

10.3記憶體虛擬化原理精要/531

10.3.1概述/531

10.3.2頁表虛擬化基本思想/532

10.3.3頁表虛擬化實現/533

10.4I/O虛擬化原理精要/534

10.4.1全虛擬化/534

10.4.2半虛擬化/534

10.4.3軟體模擬/536

10.5VMM結構/537

10.5.1概述/537

10.5.2宿主模型/537

10.5.3Hypervisor模型/538

10.5.4混合模型/538

10.6課後習題/539

課後習題答案/539第1章Visual Basic.NET簡介1

1.1Visual Basic.NET簡介1

1.1.1Visual Basic.NET的歷史1

1.1.2Visual Basic.NET的特點1

1.2.NET框架概述2

1.3Visual Studio.NET集成開發環境4

1.3.1選單欄4

1.3.2工具列5

1.3.3窗體設計器6

1.3.4工具箱7

1.3.5屬性視窗8

1.3.6解決方案資源管理器9

1.3.7代碼編輯器9

1.3.8輸出視窗9

1.3.9錯誤列表視窗10

1.3.10My Project視窗10

1.3.11類視圖視窗11

1.3.12引用視窗11

1.4面向對象程式設計的基本概念12

1.4.1類與對象12

1.4.2對象的屬性12

1.4.3對象的方法13

1.4.4對象的事件與事件過程13

1.5Visual Basic.NET 3種應用程式結構14

1.5.1Visual Basic.NET編寫控制台套用

程式14

1.5.2Visual Basic.NET編寫Windows

應用程式16

1.5.3Visual Basic.NET編寫ASP.NET

Web應用程式17

1.6習題19

1.6.1選擇題19

1.6.2填空題20

1.6.3判斷題20

1.6.4簡答題20

第2章Visual Basic.NET編程基礎21

2.1數據類型和表達式21

2.1.1數據類型21

2.1.2常量22

2.1.3變數23

2.1.4運算符24

2.1.5表達式28

2.2順序結構29

2.3選擇結構30

2.3.1單行結構條件語句30

2.3.2塊結構條件語句31

2.3.3多分支結構34

2.4循環結構36

2.4.1While當循環控制結構37

2.4.2For…Next循環控制結構38

2.4.3Do循環控制結構40

2.4.4循環結構語句的比較43

2.4.5循環結構嵌套43

2.5數組45

2.5.1聲明數組45

2.5.2數組的初始化47

2.5.3For Each…Next語句48

2.5.4數組的套用49

2.5.5調整數組大小53

2.5.6ArrayList類53

2.6過程55

2.6.1Sub過程55

2.6.2Function過程57

2.6.3參數的值傳遞和引用傳遞59

2.6.4過程的嵌套調用與遞歸調用60

2.6.5常用內部函式62

2.7習題65

2.7.1選擇題65

2.7.2填空題66

2.7.3簡答題67

2.7.4閱讀程式寫出運行結果67

2.7.5編程題68

第3章Visual Basic.NET面向對象程式設計70

3.1面向對象程式設計的基本特性70

3.2類和對象的定義 71

3.2.1類的定義71

3.2.2類中數據成員的定義 74

3.2.3類中方法的定義74

3.2.4對象的定義及成員訪問76

3.2.5類中屬性的定義及使用78

3.2.6類中事件的定義及使用81

3.2.7構造函式和析構函式85

3.3類的繼承與派生 86

3.3.1基類和派生類87

3.3.2派生類的構造函式89

3.4類的多態性 91

3.4.1重載與重寫91

3.4.2多態性及其實現93

3.5接口94

3.6委託97

3.7Visual Basic.NET常用類100

3.7.1Console類100

3.7.2Math類100

3.7.3Convert類101

3.7.4String類101

3.7.5與窗體應用程式相關的類 102

3.8命名空間103

3.8.1聲明命名空間103

3.8.2導入命名空間104

3.8.3常用命名空間104

3.9綜合套用105

3.10習題108

3.10.1選擇題108

3.10.2填空題108

3.10.3編程題109

第4章Visual Basic.NET控制項及其套用110

4.1控制項共有的基本操作110

4.1.1控制項常用屬性和事件110

4.1.2控制項的錨定和停靠111

4.2標籤和文本框控制項112

4.2.1標籤112

4.2.2文本框113

4.2.3隻能輸入數字文本框114

4.2.4創建口令文本框115

4.2.5隻讀文本框115

4.3單選按鈕套用——模擬單項選擇題測試115

4.3.1常用屬性和事件115

4.3.2實例開發115

4.4複選框套用——模擬多項選擇題測試118

4.4.1常用屬性和事件118

4.4.2實例開發118

4.4.3窗體中多頁顯示效果實現技巧121

4.5列表框套用——小學生做加減法的

算術練習程式121

4.5.1常用屬性和事件121

4.5.2實例開發122

4.5.3Random類的使用124

4.5.4關於隨機System.Random類隨機

數方法Next的套用技巧125

4.6組合框套用——國家名選擇126

4.6.1常用屬性和事件126

4.6.2實例開發127

4.7Timer控制項用法——飄動窗體128

4.7.1常用屬性和事件129

4.7.2實例開發129

4.8圖片框套用——圖片自動瀏覽器130

4.8.1常用屬性和事件130

4.8.2實例開發131

4.8.3圖片的縮放技巧133

4.9利用滾動條控制項調配顏色134

4.9.1滾動條的屬性和事件135

4.9.2實例開發135

4.10TreeView控制項和ListView控制項——

學校系部分層列表137

4.10.1TreeView控制項137

4.10.2實例開發139

4.10.3ListView控制項141

4.10.4實例開發141

4.11選單使用143

4.11.1創建主選單143

4.11.2實例開發144

4.11.3上下文選單145

4.11.4實例開發145

4.12對話框控制項套用——自己的記事本145

4.12.1打開檔案對話框控制項145

4.12.2保存檔案對話框控制項147

4.12.3顏色對話框控制項147

4.12.4字型對話框控制項148

4.12.5PrintDialog控制項和PrintDocument

控制項148

4.12.6對話框控制項套用實例開發149

4.13實現控制項數組的功能——計算器設計152

4.13.1一個過程處理多個控制項的事件

153

4.13.2控制項數組的建立154

4.13.3實例開發154

4.14習題157

4.14.1選擇題157

4.14.2填空題158

4.14.3編程題158

第5章圖形圖像編程160

5.1圖形圖像繪製基礎知識160

5.1.1GDI+概述160

5.1.2Graphics類161

5.1.3坐標162

5.1.4Paint事件162

5.2繪製基本圖形163

5.2.1創建畫筆163

5.2.2繪製直線164

5.2.3繪製矩形165

5.2.4繪製多邊形166

5.2.5繪製曲線166

5.2.6繪製橢圓和弧線167

5.3創建畫刷填充圖形168

5.4圖像處理171

5.4.1顯示圖像171

5.4.2圖像的平移、旋轉和縮放173

5.4.3彩色圖像變換灰度圖像173

5.5文字處理175

5.5.1創建字型176

5.5.2格式化輸出文本176

5.6五子棋遊戲設計177

5.7人物拼圖遊戲設計181

5.8習題187

5.8.1選擇題187

5.8.2填空題187

5.8.3編程題188

第6章檔案處理和系統操作189

6.1資料夾和檔案管理189

6.1.1System.IO命名空間189

6.1.2目錄(資料夾)管理189

6.1.3檔案管理193

6.1.4資料夾瀏覽器實現196

6.2檔案的讀寫199

6.2.1FileStream類讀寫檔案200

6.2.2文本檔案的讀寫204

6.2.3二進制檔案的讀寫210

6.3處理滑鼠和鍵盤事件215

6.3.1處理滑鼠相關的事件215

6.3.2處理鍵盤相關的事件217

6.4習題220

6.4.1選擇題220

6.4.2填空題220

6.4.3編程題221

第7章資料庫套用222

7.1資料庫的基本概念222

7.1.1關係資料庫與二維表222

7.1.2關係資料庫的有關概念223

7.1.3關係資料庫的操作224

7.2ADO.NET簡介226

7.2.1ADO.NET體系結構226

7.2.2.NET Data Provider227

7.2.3DataSet對象228

7.2.4ADO.NET相關類的命名空間228

7.2.5ADO.NET的在線上與脫機數據

存取模式230

7.3ADO.NET對象及其編程230

7.3.1使用Connection對象連線數據源

230

7.3.2使用Command對象執行資料庫

操作232

7.3.3使用DataReader對象233

7.3.4使用DataAdapter對象235

7.3.5使用DataSet對象237

7.3.6數據綁定241

7.4資料庫中的圖像存取245

7.4.1資料庫中的圖像存取方法245

7.4.2資料庫中的圖像存取示例245

7.5圖書管理案例250

7.6習題255

7.6.1選擇題255

7.6.2填空題256

7.6.3簡答題256

7.6.4編程題257

第8章Web應用程式開發258

8.1什麼是ASP.NET258

8.1.1ASP.NET頁面的結構258

8.1.2ASP.NET網頁代碼模型259

8.1.3編譯和部署260

8.1.4ASP.NET常用內置對象260

8.2ASP.NET控制項264

8.2.1ASP.NET控制項概述264

8.2.2HTML伺服器控制項265

8.2.3Web伺服器控制項267

8.2.4Button、ImageButton和LinkButton

控制項268

8.2.5Image控制項和ImageMap控制項270

8.2.6文本輸入控制項272

8.2.7複選框和單選按鈕274

8.2.8AdRotator控制項277

8.2.9Calendar控制項278

8.2.10PlaceHolder控制項280

8.2.11視圖控制項282

8.2.12驗證控制項285

8.3資料庫操作289

8.3.1基於數據源的數據綁定289

8.3.2數據源組件292

8.3.3GridView控制項295

8.3.4實例開發300

8.4習題303

8.4.1填空題303

8.4.2簡答題303

8.4.3編程題303

第9章網路程式開發304

9.1網路通信編程基礎304

9.1.1Socket套接字簡介304

9.1.2TCP和UDP304

9.1.3Socket編程原理305

9.1.4套接字Socket類編程306

9.1.5.NET框架中網路通信的套用

層類311

9.2使用TcpClient類和TcpListener 類

實現TCP通信312

9.2.1數據流類312

9.2.2TcpClient類和TcpListener類313

9.2.3實現基於TCP的區域網路通信

程式316

9.3使用UdpClient類實現UDP編程324

9.3.1UdpClient類325

9.3.2UdpClient類開發UDP程式的

過程326

9.4基於UDP的P2P網路中國象棋327

9.4.1P2P知識327

9.4.2兩人對戰網路中國象棋設計327

9.4.3兩人對戰網路中國象棋具體實現

335

9.5習題351

9.5.1填空題351

9.5.2簡答題351

9.5.3編程題351

第10章My命名空間352

10.1My命名空間概述352

10.2My.Application353

10.3My.Computer355

10.3.1My.Computer.Audio355

10.3.2My.Computer.Clipboard355

10.3.3My.Computer.Clock355

10.3.4My.Computer.FileSystem355

10.3.5My.Computer.Info356

10.3.6My.Computer.Network357

10.3.7My.Computer.Printers357

10.3.8My.Computer.Registry357

10.3.9My.Computer.Screen358

10.4My.Resources358

10.5My.User360

10.6My.Forms361

10.7My.WebServices362

10.8My.Settings362

10.8.1My.Settings的用途362

10.8.2添加和刪除應用程式設定362

10.9My命名空間的擴展365

10.9.1添加自定義的類或模組365

10.9.2擴展My.Application或

My.Computer366

10.10習題366

10.10.1填空題366

10.10.2簡答題367

附錄AASCII碼錶368

附錄B程式調試370

附錄CVB 6.0與VB.NET的區別374

參考文獻380

第3章數字邏輯電路及其在計算機中的套用38

3.1基本概念38

3.1.1最小項38

3.1.2最小項的性質38

3.1.3最小項表達式39

3.2邏輯函式的卡諾圖化簡法40

3.2.1卡諾圖40

3.2.2卡諾圖的編號41

3.2.3用卡諾圖化簡邏輯函式42

3.3不完全規定的邏輯函式及其化簡方法44

3.3.1無關最小項的概念44

3.3.2利用無關最小項化簡邏輯函式45

3.4組合邏輯電路的分析與設計46

3.4.1組合邏輯電路的分析46

3.4.2組合邏輯電路的設計47

3.5計算機中常用的組合邏輯部件49

3.5.1加法器49

3.5.2解碼器50

3.5.3編碼器51

3.5.4多路選擇器52

3.5.5多路分配器53

3.6時序電路的基本單元觸發器55

3.6.1RS觸發器55

3.6.2觸發器外部邏輯特性的描述58

3.6.3維阻D觸發器59

3.6.4主從JK觸發器60

3.6.5T觸發器60

3.6.6觸發器的時間參數61

3.6.7觸發器的激勵表62

3.7計算機中常用的時序邏輯部件63

3.7.1暫存器63

3.7.2計數器66

習題369

第4章硬體描述語言VHDL基礎72

4.1VHDL概述72

4.2VHDL程式的基本結構73

4.2.1VHDL程式示例73

4.2.2實體74

4.2.3結構體76

4.2.4庫、包集合及配置76

4.3VHDL語法基礎78

4.3.1標識符和保留字78

4.3.2數據對象79

4.3.3數據類型81

4.3.4運算操作符83

4.4VHDL的常用描述語句84

4.4.1順序描述語句84

4.4.2並行描述語句91

4.5VHDL描述實例94

4.5.1組合邏輯電路的VHDL描述94

4.5.2時序邏輯電路的VHDL描述97

習題4102

第二部分計算機的基本結構與彙編語言程式設計

第5章計算機的基本結構與工作過程103

5.1計算機的基本結構103

5.1.1馮·諾依曼計算機基本結構103

5.1.2計算機的基本組成框圖及功能部件

簡介104

5.2計算機的工作流程107

5.2.1指令與程式107

5.2.2計算機的基本工作流程108

5.3計算機系統的組成110

5.3.1硬體與軟體110

5.3.2計算機系統的基本組成111

5.4微型計算機的分類及主要技術指標111

5.4.1微型計算機的分類111

5.4.2微型計算機的主要技術指標112

5.5微型計算機的基本結構及系統組成113

5.5.1微型計算機基本結構114

5.5.2微型計算機的系統組成115

習題5116

第6章計算機的核心部件——微處理器117

6.1微處理器的工作模式117

6.1.1實模式117

6.1.2保護模式117

6.1.3虛擬8086模式118

6.2微處理器的編程結構118

6.2.1程式可見暫存器118

6.2.280x86/Pentium處理器的暫存器

模型118

6.3微處理器的定址機制123

6.3.1存儲器分段技術123

6.3.2實模式下的存儲器定址124

6.3.3堆疊127

6.4微處理器的內部組成結構及相關技術128

6.4.1匯流排接口單元BIU128

6.4.2指令cache與數據cache128

6.4.3超標量流水線結構129

6.4.4動態轉移預測及轉移目標緩衝器

BTB130

6.4.5指令預取器和預取緩衝器132

6.4.6指令解碼器132

6.4.7執行單元EU133

6.4.8浮點處理單元FPU133

6.4.9控制單元CU133

6.5微處理器的外部引腳信號134

6.5.180386 DX的外部引腳信號概況134

6.5.2存儲器/IO接口信號136

6.5.3中斷接口信號138

6.5.4DMA接口信號138

6.5.5協處理器接口信號139

6.6微處理器的操作時序139

6.6.1匯流排時序基本概念139

6.6.2基本的匯流排時序142

習題6143

第7章定址方式與指令系統144

7.1定址方式144

7.1.1數據定址方式144

7.1.2轉移地址定址方式149

7.2指令編碼151

7.2.1指令編碼格式151

7.2.2指令編碼舉例154

7.38086指令系統155

7.3.1數據傳送指令155

7.3.2算術運算指令160

7.3.3邏輯運算與移位指令170

7.3.4串操作指令173

7.3.5轉移指令176

7.3.6處理器控制指令183

7.480x86及Pentium系列指令系統184

習題7184

第8章彙編語言程式設計基礎186

8.1彙編語言的特點186

8.2彙編語言程式結構和基本語法187

8.2.1示例程式187

8.2.2基本概念188

8.2.3指令語句193

8.2.4偽指令語句195

8.2.5宏指令200

8.2.6簡化段定義203

8.3ROM BIOS中斷調用和DOS系統功能

調用204

8.3.1ROM BIOS中斷調用204

8.3.2DOS系統功能調用205

8.4彙編語言程式的上機調試205

8.4.1建立源檔案206

8.4.2彙編206

8.4.3連線207

8.4.4運行207

8.4.5調試207

8.5彙編語言程式設計的基本方法208

8.5.1程式設計的基本步驟208

8.5.2程式的基本結構形式208

8.5.3子程式設計210

8.6彙編語言的編程套用213

8.6.1I/O與通信213

8.6.2聲音與時鐘214

8.6.3樂曲程式215

8.6.4鍵盤I/O218

8.6.5滑鼠器編程220

8.6.6圖形顯示223

8.7Windows環境下彙編語言程式設計226

8.7.1Windows API函式226

8.7.2指令集選擇227

8.7.3工作模式選擇227

8.7.4函式的原型定義227

8.7.5Windows應用程式的基本結構

框架228

8.7.6Win32彙編語言應用程式實例228

8.7.7MASM 32彙編與連線命令229

8.8彙編語言與高級語言的混合編程230

8.8.1內嵌彙編231

8.8.2在C程式中直接調用彙編

子程式232

8.8.3彙編語言程式調用C函式235

習題8235

第三部分存儲器與I/O接口技術

第9章存儲器及其接口239

9.1概述239

9.1.1存儲系統的層次結構239

9.1.2記憶體儲器的基本結構及其數據存儲

格式241

9.2半導體存儲器的結構及工作原理243

9.2.1可讀寫存儲器RAM243

9.2.2隻讀存儲器ROM252

9.3存儲器接口258

9.3.1存儲器接口中的片選控制258

9.3.2存儲器接口分析與設計舉例260

9.3.3雙連線埠存儲器261

9.4高速快取(cache)263

9.4.1cache基本原理263

9.4.2cache的組織方式265

9.4.3cache的更新方式及替換算法266

9.5虛擬存儲器268

9.5.1虛擬存儲器的工作原理268

9.5.280x86的虛擬存儲技術270

習題9271

第10章I/O接口技術273

10.1I/O接口概述273

10.1.1I/O接口的基本功能273

10.1.2I/O接口的基本結構274

10.1.3I/O連線埠的編址方式274

10.1.4I/O接口的地址解碼及片選信號

的產生276

10.1.5I/O指令277

10.2I/O控制方式277

10.2.1程式控制方式277

10.2.2中斷控制方式278

10.2.3DMA方式279

10.3DMA技術280

10.3.1DMA控制器的基本功能280

10.3.2DMA控制器的一般結構281

10.3.3DMA控制器的工作方式283

10.3.4DMA工作過程283

10.3.5可程式DMA控制器8237284

10.4中斷系統285

10.4.1基本概念285

10.4.280x86實模式的中斷系統288

10.4.3可程式中斷控制器8259A293

10.4.4中斷服務程式設計294

習題10298

第11章可程式接口電路實例299

11.1可程式並行接口的組成及工作過程299

11.1.1可程式並行接口的組成及其

與CPU和外設的連線299

11.1.2可程式並行接口的數據輸入輸出

過程300

11.2可程式並行接口電路8255A300

11.2.18255A的性能概要300

11.2.28255A晶片引腳分配及引腳信號

說明300

11.2.38255A內部結構框圖302

11.2.48255A的控制字303

11.2.58255A的工作方式304

11.2.68255A的狀態字309

11.2.78255A套用舉例310

11.3可程式計數器/定時器8253311

11.3.1概述312

11.3.2可程式計數器/定時器8253312

11.3.38253的套用324

習題11326

第12章D/A和A/D轉換器328

12.1計算機自動控制系統中的D/A和A/D

轉換328

12.2D/A轉換器329

12.2.1D/A轉換器的工作原理329

12.2.2D/A轉換器的主要技術指標332

12.2.3D/A轉換器晶片333

12.2.4D/A轉換器晶片與微處理器的

接口335

12.2.5D/A轉換器的套用336

12.3A/D轉換器337

12.3.1基本概念337

12.3.2A/D轉換器的工作原理339

12.3.3A/D轉換器的主要技術指標340

12.3.4A/D轉換器晶片341

12.3.5A/D轉換器晶片與微處理器的

接口342

習題12345

第四部分高性能微處理器技術

第13章匯流排技術346

13.1概述346

13.1.1匯流排346

13.1.2匯流排的分類347

13.1.3匯流排標準348

13.1.4匯流排仲裁349

13.2PCI匯流排350

13.2.1概述350

13.2.2PCI匯流排的系統結構及特點350

13.3USB匯流排352

13.3.1USB概述352

13.3.2USB的拓撲結構353

13.3.3USB線纜及連線器353

13.4高速匯流排接口IEEE 1394354

習題13355

第14章高性能微處理器的先進技術及典型結構356

14.1高性能微處理器所採用的先進技術356

14.1.1指令級並行356

14.1.2超標量技術357

14.1.3超長指令字結構358

14.1.4超級流水線技術358

14.1.5RISC技術359

14.2高性能微處理器舉例360

14.2.164位處理器Alpha 21064360

14.2.2Itanium處理器——IA64架構

的開放硬體平台362

14.3多核處理器簡介365

14.3.1複雜單處理器結構所遇到的

挑戰365

14.3.2多核處理器的出現365

14.3.3多核處理器結構的主要特點366

14.4現代PC主機板典型結構367

14.4.1晶片組、橋晶片及接口插座367

14.4.2Pentium PC主機板結構368

14.4.3Pentium 4 PC主機板的I/O組織

結構369

習題14370

附錄ADOS功能調用(INT 21H)371

附錄BBIOS中斷調用376

附錄C調試程式DEBUG的使用380

附錄D部分習題參考答案384

參考文獻399

相關詞條

熱門詞條

聯絡我們