組合數學(第4版)習題解答

組合數學(第4版)習題解答

《組合數學(第4版)習題解答》是2011年清華大學出版社出版的圖書,作者是盧華明。本書適合作為高等院校計算機及相關專業本科生的輔助教材,也可作為研究生的輔助教材,也可供廣大科學工作者、工程技術人員參考。

基本介紹

  • 書名:組合數學(第4版)習題解答
  • 作者:盧華明
  • ISBN:9787302237433
  • 定價:33元
  • 出版社清華大學出版社
  • 出版時間:2011-01-01
圖書簡介,編輯推薦,圖書目錄,

圖書簡介

組合數學是既古老而又年輕的一門數學分支,它的基本原理非常直觀易懂。本書收集了1200多道組合數學題,涉及4部分內容: 一是加法法則、乘法法則與排列組合;二是序列、遞推關係與母函式、Fibonacci數等;三是容斥原理、鴿巢原理、Ramsey數等;四是Polya定理。

最後說明一下本書只涉及組合數學的部分核心內容,比如圖論部分暫時放棄了。圖論無疑屬於組合數學,但因為它成長壯大,本身內容豐富,所以獨立出去了,以後爭取繼續完成。

編輯推薦

語言程式設計(第2版)人類已經步入信息化的21世紀,資訊時代的到來,使社會經濟向知識經濟發展。為了推進21世紀計算機基礎教育改革,推進精品課程建設以及與之配套的精品教材建設,從素質教育的理念出發,結合信息化社會對高素質、複合型人才的需求,特出版此教材。此教材力求較為全面地介紹C語言的基本內容與程式設計思想。
言是目前國內外廣泛使用的程式設計語言之一 是國內外大學都在開設的重要的基礎課之一。C語言功能豐富、表達能力強、使用方便靈活、程式執行效率高並且可移植性好;既具有高級語言的特點,又具有彙編語言的特點,具有較強的系統處理能力。它支持自頂向下逐步求精的程式設計技術,其函式式結構為實現程式的模組化設計提供了強有力的保障。因此,它被廣泛套用於系統軟體和套用軟體的開發。
本教材從C語言程式設計的基本原理及程式設計的基本思想出發,貫穿“基礎-套用-專題”這一主線,緊扣基礎,面向套用,循序漸進地引導讀者學習程式設計的思想和方法。基礎部分的主要內容包括程式設計中的基本概念與套用,如變數、數組、控制結構及判斷結構等,並在掌握了這些基本概念與套用的基礎上適時引入函式的結構與套用、指針的概念及其套用、算法設計與實現、結構型數據的套用及檔案的操作等面向套用的知識點介紹,然後在上述知識點的基礎上進一步介紹數據結構專題,包括鍊表、棧、佇列和二叉樹的概念與套用。為方便授課和學習,本教材還配套有電子教案和習題解析。
本書的特點之一是通俗易懂,突出“三基”(基本概念、基本原理與基本套用)的介紹與套用。
本書的特點之二是在介紹“算法設計與實現”這部分內容時,重點介紹經典的排序與查找的算法及其實現,同時通過幾種不同算法的比較,討論算法的效率及代碼實現的效率。電腦程式設計,很大一部分工作是為了實現某一特定的模型或算法。本書通過介紹算法設計並通過電腦程式加以實現,可以使讀者更好地學習程式設計的思想、體系結構和方法,尤其是最佳化的程式設計方法。
本書的特點之三是介紹了數據結構的基本內容,如鍊表、棧、佇列和二叉樹的“三基”,將這些內容作為綜合套用的專題,使讀者從實際套用中對C語言程式設計的基本知識得以融會貫通和進一步提高。
本書的特點之四是教材中有代碼的詳細注釋。為了用最簡潔的語言講解代碼結構及功能,本教材在例題代碼中給出了詳細的代碼注釋,以利於讀者更好地理解代碼,同時,教材中的所有代碼均在TC 3.0下面完全通過調試。
本書的特點之五是重點突出、難點分散。這樣從學習者對知識的掌握角度來說是有利的,而且這樣也有利於自學。本教材標有“?”的內容為選學內容,各學校可以根據自己的實際情況決定教材的學習內容。如果這些內容不作為教學內容學習的話,也不影響其他內容在知識點上的承接關係。
本教材中將“編譯預處理”內容放到附錄中去,由於此部分的內容跨越了很多知識點,如果單獨作為一章內容,那么只能將這部分內容放到較靠後的位置。但基礎知識的學習中也牽涉編譯預處理的內容,因此,將這部分內容放到附錄中,可以根據需要及時查詢。讀者可以根據實際情況安排學習編譯預處理內容的進度。
本書可供高等院校、計算機水平考試培訓、各類成人教育學校作為開設程式設計課程的教材,也可供計算機愛好者自學。

圖書目錄

第1章 C語言的基本概念1
1.1 程式設計語言的歷史和發展1
1.2 程式設計過程中的幾個基本概念2
1.2.1 程式2
1.2.2 程式設計2
1.2.3 算法3
1.2.4 數據結構3
1.3 軟體工程的概念4
1.4 C語言的發展與特點4
1.4.1 C語言的發展和ANSI C標準4
1.4.2 C語言的特點5
1.5 C語言程式的基本標識符6
1.6 C程式的幾個簡單實例7
1.7 C程式的結構特點10
1.8 C語言程式的編譯和執行11
1.9 習題12
第2章 C語言程式的基本數據類型及其運算13
2.1 C語言的數據類型13
2.1.1 數據類型的一般概念13
2.1.2 常量14
2.2 數據類型及變數17
2.2.1 基本數據類型17
2.2.2 變數及變數的定義17
2.2.3 變數的初始化18
2.2.4 數據類型轉換19
2.3 運算符和表達式21
2.3.1 運算符和表達式概述21
2.3.2 賦值運算符和賦值表達式22
2.3.3 算術運算符和算術表達式23
2.3.4 關係運算符和關係表達式24
2.3.5 邏輯運算符和邏輯表達式25
2.3.6 條件運算符26
2.3.7 其他運算符27
2.4 位運算符28
2.4.1 按位取反運算符28
2.4.2 移位運算符28
2.4.3 按位“與”、按位“或”、按位“異或”29
2.5 C語言基本輸入輸出函式30
2.5.1 字元輸入輸出函式31
2.5.2 格式化輸入輸出函式32
2.6 習題37
第3章 基本控制結構及其套用39
3.1 算法及結構化程式設計39
3.1.1 算法及其特徵39
3.1.2 算法的類型與結構41
3.2 順序結構程式設計42
3.3 分支結構程式設計43
3.3.1 if 分支43
3.3.2 if-else分支43
3.3.3 多分支if-else if-else形式44
3.3.4 條件分支的嵌套45
3.3.5 開關分支46
3.4 循環結構程式設計50
3.4.1 while語句50
3.4.2 do-while語句50
3.4.3 for語句51
3.4.4 三種循環的比較52
3.4.5 多重循環52
3.4.6 循環和開關分支的中途退出53
3.4.7 goto語句54
3.4.8 結構化程式設計的注意事項55
3.5 結構化程式設計及套用舉例57
3.6 習題58
第4章 數組及其套用62
4.1 一維數組62
4.1.1 一維數組的定義62
4.1.2 一維數組的初始化63
4.1.3 一維數組的引用64
4.1.4 一維數組的套用舉例65
4.2 多維數組67
4.2.1 多維數組的定義67
4.2.2 多維數組的存儲形式67
4.2.3 多維數組的引用68
4.2.4 多維數組的初始化68
4.2.5 數組套用舉例70
4.3 字元型數組與字元串71
4.3.1 字元型數組的概念71
4.3.2 字元型數組的初始化72
4.3.3 字元型數組的輸入輸出73
4.3.4 字元型數組的套用舉例74
4.4 綜合套用舉例75
4.5 習題77
第5章 函式及其套用79
5.1 函式的定義與調用79
5.1.1 C源程式的結構79
5.1.2 函式的定義80
5.1.3 函式的調用82
5.2 函式間的信息傳遞方式85
5.2.1 實參-形參之間的信息傳遞86
5.2.2 函式調用結果的返回89
5.3 函式與數組92
5.3.1 數組元素做實參92
5.3.2 一維數組名做實參92
5.3.3 多維數組名做參數94
5.3.4 字元數組做函式的參數95
5.4 遞歸函式與遞歸調用96
5.4.1 遞歸的概念96
5.4.2 遞歸程式的設計97
5.5 變數的存儲類型及作用域98
5.5.1 auto型變數99
5.5.2 extern型變數99
5.5.3 靜態變數102
5.6 習題104
第6章 指針107
6.1 指針的基本概念及定義方式107
6.1.1 指針的基本概念107
6.1.2 指針的定義107
6.1.3 指針的初始化108
6.1.4 指針運算符110
6.2 指針的運算110
6.2.1 指針的算術運算110
6.2.2 關係運算112
6.2.3 指針的賦值運算112
6.3 指針與數組112
6.3.1 指向一維數組的指針113
6.3.2 指向多維數組的指針115
6.4 字元指針和字元串116
6.5 指針數組118
6.5.1 指針數組的概念118
6.5.2 指針數組的套用119
6.5.3 指針數組在帶形參的main函式中的套用120
6.6 指針在函式參數傳遞中的套用122
6.7 指針型函式122
6.7.1 指針型函式的定義和引用123
6.7.2 指針型函式的套用舉例123
6.8 多級指針124
6.8.1 多級指針的概念及定義124
6.8.2 多級指針套用舉例125
6.9 指向函式的指針126
6.9.1 指向函式的指針的概念126
6.9.2 指向函式的指針的套用127
6.10 動態指針129
6.10.1 動態記憶體分配的概念129
??6.10.2 動態記憶體分配的套用130
6.11 習題132
第7章 排序及查找算法及其實現134
7.1 排序概述134
7.1.1 排序的概念134
7.1.2 排序的定義134
7.1.3 排序的方法135
??7.1.4 排序效率135
7.2 冒泡排序法的設計及其實現137
7.2.1 冒泡算法設計思想137
7.2.2 冒泡算法的實現138
7.3 選擇排序法的設計及其實現139
7.3.1 選擇排序法設計思想139
7.3.2 選擇排序法的實現140
7.4 插入排序法的設計及其實現141
7.4.1 插入排序法設計思想141
7.4.2 插入排序法的實現142
7.5 SHELL排序法的設計及其實現143
7.5.1 SHELL排序法設計思想143
7.5.2 SHELL排序法的實現144
7.6 字元串數組的排序設計及其實現146
7.6.1 字元串數組的排序算法設計思想146
7.6.2 字元串數組排序算法的實現147
7.7 查找概述148
7.8 順序查找及其套用148
7.8.1 順序查找算法的設計思想148
7.8.2 順序查找算法的實現149
7.9 折半查找及其套用150
7.9.1 折半查找算法的設計思想150
7.9.2 折半查找算法的實現151
7.10 習題152
第8章 結構體、聯合體和枚舉153
8.1 結構體的說明和定義153
8.1.1 結構體的概念153
8.1.2 結構體的說明及結構體變數的定義154
8.2 結構體成員的引用與結構體變數的初始化157
8.2.1 結構體成員的引用157
8.2.2 結構體變數的初始化158
8.3 結構體數組159
8.3.1 結構體數組的定義及初始化159
8.3.2 結構體數組的套用舉例159
8.4 結構體指針161
8.4.1 結構體指針及其定義161
8.4.2 通過指針引用結構體成員162
8.4.3 結構體指針的套用舉例163
8.5 結構體在函式間的傳遞166
8.5.1 結構體變數的傳遞166
8.5.2 結構體數組在函式間的傳遞169
8.6 結構體指針型和結構體型函式170
8.6.1 結構體指針型函式170
8.6.2 結構體型函式172
8.7 結構體嵌套174
8.7.1 結構體嵌套的概念174
8.7.2 嵌套結構體類型變數的引用175
8.7.3 結構體嵌套套用舉例176
8.8 聯合體177
8.8.1 聯合體的說明及聯合體變數的定義177
8.8.2 使用聯合體變數應注意的問題182
8.9 枚舉類型184
8.9.1 枚舉類型數據的概念及其定義184
8.9.2 枚舉型變數的使用184
8.10 自定義類型186
8.10.1 自定義類型及其表示形式186
8.10.2 自定義類型的優點187
8.11 位欄位結構體188
8.12 習題189
第9章 檔案操作193
9.1 檔案概述193
9.2 檔案的基本操作197
9.2.1 檔案的打開197
9.2.2 檔案的關閉198
9.2.3 檔案的刪除198
9.2.4 檔案的重命名199
9.2.5 臨時檔案的創建199
9.3 檔案的讀寫操作200
9.3.1 檔案的非格式化讀寫200
9.3.2 檔案的格式化寫操作206
9.3.3 檔案的格式化讀操作208
9.4 檔案的定位209
9.4.1 fgetpos函式209
9.4.2 fsetpos函式209
9.4.3 ftell函式209
9.4.4 fseek函式210
9.4.5 feof函式211
9.5 錯誤處理211
9.5.1 ferror函式211
9.5.2 perror函式211
9.6 習題212
??第10章 線性表及其套用218
10.1 線性表的基本概念218
10.2 結構簡介219
10.2.1 單鍊表220
10.2.2 循環鍊表228
10.2.3 雙向鍊表229
10.3 線性表的套用229
10.3.1 單鍊表的套用: 單鍊表歸併問題229
10.3.2 循環鍊表的套用: 求解約瑟夫問題231
10.4 習題232
??第11章 棧及其套用233
11.1 棧的定義及其基本操作233
11.2 棧的實現234
11.2.1 棧的數組實現234
11.2.2 棧的鏈式存儲實現236
11.3 棧的套用238
11.3.1 棧在進制轉換中的套用238
11.3.2 棧在遞歸中的套用241
11.4 習題243
??第12章 佇列及其套用244
12.1 佇列的定義及基本操作244
12.2 佇列的實現245
12.2.1 用循環數組實現佇列245
12.2.2 用鍊表實現佇列248
12.3 佇列的套用251
12.3.1 列印楊輝三角形251
12.3.2 舞伴問題254
12.4 習題258
??第13章 二叉樹及其套用259
13.1 樹的定義和基本術語259
13.1.1 樹的定義259
13.1.2 樹的基本術語260
13.2 二叉樹的特點及其數學性質261
13.2.1 二叉樹的特點261
13.2.2 二叉樹的數學性質261
13.3 二叉樹的基本操作及其實現263
13.3.1 二叉樹的基本操作263
13.3.2 二叉樹基本操作的實現263
13.4 二叉樹的套用268
13.4.1 二叉樹的遍歷268
13.4.2 利用二叉樹的遍歷建立、列印二叉樹270
13.4.3 利用二叉樹的遍歷按樹狀列印二叉樹273
13.5 習題275
附錄A 預處理命令的套用276
A.1 預處理概述276
A.2 宏定義276
A.2.1 無參宏定義276
A.2.2 帶參宏定義280
A.3 檔案包含284
A.4 條件編譯284
A.4.1 第一種條件編譯形式284
A.4.2 第二種條件編譯形式285
A.4.3 第三種條件編譯形式286
附錄B Turbo C 3.0的上機過程288
B.1 檔案的建立與保存288
B.2 檔案的編輯289
B.3 編譯連線290
B.4 程式的運行291
附錄C Turbo C 3.0程式的調試292
C.1 程式的調試292
C.1.1 有關調試的設定292
C.1.2 設定斷點及動態調試的基本操作293
C.2 程式調試實例295
C.2.1 添加斷點295
C.2.2 觀察變數296
C.2.3 單步執行296
C.2.4 觀察調用關係297
C.2.5 終止調試297
C.2.6 條件斷點297
C.2.7 動態修改變數值298
附錄D Turbo C 3.0部分庫函式表299
附錄E ASCII碼錶311
參考文獻312

相關詞條

熱門詞條

聯絡我們