第1章 語言解析 1
1.1 關于變量的存儲類別 1
1.2 關于數值在內存中的表示 4
1.2.1 字符類型和整數類型 5
1.2.2 浮點數類型 9
1.3 容易用錯的保留字 10
1.4 自增、自減運算符 15
1.5 關于指針 16
1.5.1 指針變量的概念 17
1.5.2 指針變量的引用 18
1.5.3 指針和數組 20
1.5.4 指針的算術運算和關系運算 23
1.5.5 指針數組和數組指針 26
1.5.6 數組的首地址和數組首元素的地址 27
1.6 關于存儲模式 29
1.7 結構體和共用體 30
1.7.1 結構體 30
1.7.2 共用體 32
1.8 常見的內存錯誤 33
1.8.1 對未初始化的指針所指空間賦值 33
1.8.2 空間分配太小 34
1.8.3 數組使用超界 35
1.8.4 使用已釋放的空間 36
1.8.5 內存泄漏 36
第2章 輸入輸出格式 37
2.1 A+B 問題 37
2.2 字母轉換問題 41
第3章 簡單數據處理問題 43
3.1 最大公約數 43
3.2 數根 45
3.3 雞兔同籠 47
3.4 電梯 49
3.5 路邊的樹 51
3.6 大數的位數 52
3.7 會繞圈的數 54
3.8 尾數相等 56
3.9 競賽排名 58
3.10 找數 60
第4章 遞 推 64
4.1 兔子繁殖 65
4.2 捕魚 66
4.3 賣西瓜 68
4.4 平面分隔 69
4.5 走臺階 71
4.6 棋盤完美覆蓋 72
4.7 漢諾塔 74
4.8 數字序列 77
4.9 Fibonacci 數列 80
4.10 分數數列 82
4.11 過河卒 85
第5章 進制轉換問題 89
5.1 進制轉換 90
5.2 確定進制 92
5.3 負進制轉換 94
第6章 字符串處理問題 97
6.1 字符類型函數和字符串操作函數 97
6.2 字符串操作時容易出現的問題 99
6.3 最長子串 100
6.4 字符串相等 103
6.5 統(tǒng)計字符數 105
6.6 密碼 107
第7章 大數問題 111
7.1 大數加法 111
7.2 大數乘法 115
7.3 大數除法 118
7.4 高精度計算 121
第8章 枚 舉 124
8.1 枚舉法的基本程序框架 124
8.2 簡化算法模型 125
8.3 優(yōu)選枚舉對象 127
8.4 精簡循環(huán)次數 132
8.5 改變枚舉方式 139
8.6 轉換約束檢查 142
第9章 模 擬 145
9.1 運算模擬 145
9.1.1 除法模擬 145
9.1.2 乘法模擬 149
9.2 過程模擬 154
9.2.1 操作步驟模擬 154
9.2.2 顯示模擬 164
第10章 回溯與遞歸 169
10.1 回溯 169
10.1.1 回溯法描述及程序框架 169
10.1.2 找組合數 173
10.1.3 填數 175
10.1.4 串的劃分 179
10.2 遞 歸 182
10.2.1 訪問二叉樹的根結點 183
10.2.2 串的進一步劃分 184
10.2.3 分解質因數 187
10.2.4 求二叉樹的后序序列 189
10.2.5 8皇后問題 192
10.2.6 素數環(huán) 194
10.2.7 旋轉方陣 197
第11章 搜 索 200
11.1 石油探測 202
11.2 迷宮問題 205
11.3 馬的走法 210
11.4 變換字符串 212
11.5 整倍數 219
附錄 ACM國際大學生程序設計競賽介紹 225
參考文獻 227