第1章 程序設計概論 1
1.1 問題求解的思維過程 1
1.2 算法基礎 3
1.2.1 算法的概念及其特征 3
1.2.2 算法的基本結構 4
1.2.3 算法的描述方法 4
1.3 數據結構基礎 6
1.4 程序設計語言概述 8
1.4.1 程序設計語言的發(fā)展歷史 8
1.4.2 程序設計范型 11
1.4.3 過程型程序設計語言的語法元素 12
1.4.4 過程型程序設計語言的基本功能 13
1.5 程序設計的一般過程 17
1.6 程序的構建與運行 19
習題1 21
第2章 C語言概述 22
2.1 C語言程序的基本結構 22
2.1.1 結構單一的C程序 22
2.1.2 結構相對完整的C程序 24
2.1.3 對C程序的一般認識 26
2.2 C語言的語法元素 26
2.2.1 字符集 26
2.2.2 標識符 27
2.2.3 定界符與間隔符 28
2.3 數據類型與數據結構 28
2.3.1 數據類型 28
2.3.2 變量與常量 30
2.4 運算與表達式 33
2.5 可執(zhí)行語句 34
2.6 函數 35
2.7 輸入/輸出操作與函數 36
2.7.1 格式化輸入/輸出函數 36
2.7.2 字符輸入/輸出函數 40
*2.8 在Visual C++ 6.0下調試C程序 40
習題2 44
第3章 算術運算程序設計 46
3.1 變量的深度解析 46
3.1.1 變量賦初值 46
3.1.2 變量的訪問 47
3.2 算術表達式求值 48
3.2.1 算術運算符 48
3.2.2 表達式的書寫 50
3.2.3 表達式的數據類型 52
3.2.4 表達式求值規(guī)則 55
3.3 案例研究——求解一元二次方程 55
3.4 變量地址與指針變量 57
3.4.1 變量的地址 57
3.4.2 簡單指針變量 58
3.4.3 指針變量的賦值 59
3.4.4 指針變量的引用 60
3.4.5 指針變量的初步應用 62
*3.5 常見錯誤及其排除方法 64
3.5.1 語法錯誤 64
3.5.2 運行錯誤 66
3.5.3 邏輯錯誤 67
習題3 67
第4章 邏輯運算與流程控制 70
4.1 邏輯運算及其表達式 70
4.1.1 關系運算及其表達式 70
4.1.2 邏輯運算 71
4.1.3 各類運算符的優(yōu)先級 72
4.2 流程控制概述 73
4.3 選擇控制結構 73
4.3.1 只有一路選擇方案的if語句 73
4.3.2 具有兩路選擇方案的if語句 75
4.3.3 多路選擇方案與if語句嵌套 76
4.4 循環(huán)控制結構 81
4.4.1 計數循環(huán)與for語句 82
4.4.2 條件循環(huán)與while語句 84
4.4.3 條件循環(huán)與do-while語句 86
4.4.4 標志循環(huán)與交互式循環(huán) 87
4.4.5 流程控制結構的嵌套 89
4.5 案例研究 90
4.5.1 選舉計票問題程序設計 90
4.5.2 快遞運費計價問題程序設計 92
4.6 三個流程控制語句的使用 94
4.6.1 break語句 94
4.6.2 continue語句 95
4.6.3 switch語句 96
*4.7 流程控制中的常見錯誤 97
4.7.1 等式運算符與賦值運算符的誤用 97
4.7.2 循環(huán)語句中的花括號問題 98
4.7.3 if語句與while語句的混淆問題 98
4.7.4 死循環(huán)與差1循環(huán)錯誤 99
4.7.5 其他常見錯誤 99
習題4 100
第5章 常用基礎算法與程序設計 103
5.1 基于迭代策略的問題求解 103
5.1.1 用遞推法求解問題 104
5.1.2 用倒推法求解問題 109
5.1.3 用迭代法求解高次方程 110
5.2 基于窮舉策略的問題求解 112
5.2.1 窮舉法解方程組 113
5.2.2 求解數字與數值問題 115
5.2.3 求解邏輯問題 120
*5.3 程序調試 122
5.3.1 常用的調試命令 123
5.3.2 動態(tài)調試的主要方法 123
習題5 125
第6章 模塊化程序設計技術 126
6.1 函數的定義及其原型聲明 126
6.1.1 函數的定義 126
6.1.2 函數原型聲明 128
6.2 數據在函數中的傳遞方式 130
6.2.1 函數的調用方式 130
6.2.2 函數參數的傳遞方式 131
6.2.3 函數值的返回方式 132
6.2.4 函數中的自動局部變量 133
6.3 函數與指針 134
6.3.1 用指針作為函數的形式參數 134
6.3.2 返回指針值的函數 136
6.3.3 指向函數的指針 137
6.4 遞歸問題程序設計 139
6.5 模塊化程序設計技術 142
6.5.1 使用函數的好處 142
6.5.2 模塊化程序設計方法 143
6.6 案例研究——分數運算的解決方案 146
*6.7 函數編程的常見錯誤與程序測試 151
6.7.1 函數編程的常見錯誤 151
6.7.2 程序測試 152
習題6 153
第7章 批量數據處理程序設計 156
7.1 一維數組 156
7.1.1 一維數組的定義和引用 156
7.1.2 一維數組的初始化與賦值 157
7.1.3 指向數組元素的指針 159
7.1.4 將一維數組傳遞給函數 163
7.2 一維數組的應用 164
7.2.1 集合搜索 164
7.2.2 集合中元素的排序 168
7.3 二維數組 170
7.3.1 二維數組的定義及引用 170
7.3.2 二維數組的初始化 171
7.3.3 二維數組與指向行元素的指針 172
7.3.4 二維數組作為函數參數 176
7.4 二維數組的應用 178
7.4.1 矩陣的簡單運算 179
7.4.2 柵格數據處理 182
7.5 案例研究——快遞費用核算解決方案 185
7.6 動態(tài)創(chuàng)建數組 189
7.6.1 動態(tài)創(chuàng)建一維數組 189
7.6.2 動態(tài)創(chuàng)建二維數組 191
*7.7 數組下標越界問題 192
習題7 193
第8章 文本信息處理程序設計 199
8.1 字符數組與字符串 199
8.1.1 字符數組 199
8.1.2 字符串 200
8.2 字符串的輸入/輸出 201
8.2.1 字符串的格式化輸入/輸出 201
8.2.2 字符串的整行輸入/輸出 202
8.3 對字符串的操作 202
8.3.1 兩個字符串的相互賦值 203
8.3.2 字符串長度的測定 204
8.3.3 字符串的比較 204
8.3.4 字符串的連接 205
8.3.5 字符串的搜索與定位 206
8.4 案例研究——文本信息處理 208
*8.5 字符分析與常見字符串編程錯誤 213
8.5.1 字符分析與轉換 213
8.5.2 常見字符串編程錯誤 213
習題8 215
第9章 結構數據類型 218
9.1 結構類型及結構體 218
9.1.1 結構類型的定義 218
9.1.2 結構體的定義及引用 220
9.1.3 結構體作為函數的參數及返回值 222
9.1.4 結構數組 224
9.1.5 指向結構類型的指針 226
9.2 對結構類型的操作 229
9.2.1 用結構類型表示復數 230
9.2.2 對結構體進行輸入/輸出 232
9.2.3 對結構體進行比較運算 233
9.3 鏈表 234
9.3.1 鏈表概述 234
9.3.2 動態(tài)創(chuàng)建鏈表 236
9.3.3 遍歷與查找鏈表 238
9.3.4 向鏈表中插入結點 239
9.3.5 從鏈表中刪除結點 241
9.3.6 鏈表的綜合操作 242
9.4 案例研究——用結構類型改進快遞
費用結算方案 244
*9.5 常見編程錯誤與共用類型 250
9.5.1 結構類型常見編程錯誤 250
9.5.2 共用類型 251
9.5.3 枚舉類型 254
習題9 256
第10章 在磁盤上存取數據 259
10.1 磁盤文件概述 259
10.1.1 文件的分類 259
10.1.2 文件名 259
10.1.3 文件控制塊與指針 260
10.1.4 文件緩沖區(qū) 261
10.2 文件的打開與關閉 261
10.3 對文本文件的操作 263
10.3.1 文本文件的存儲格式 263
10.3.2 對文本文件的讀寫操作 263
10.4 對二進制文件的操作 267
10.5 文件的隨機讀寫 271
10.6 案例研究——快遞業(yè)務簡單數據庫
? 的建立 273
*10.7 文件的常見編程錯誤 280
習題10 281
第11章 位運算 283
11.1 按位進行邏輯運算 283
11.1.1 位邏輯運算的概念 283
11.1.2 位運算的應用 285
11.2 移位運算 289
11.2.1 移位運算的概念 289
11.2.2 移位運算的應用 290
11. 3 位運算在加密/解密中的應用 290
習題11 293
第12章 編寫大型程序 295
12.1 復雜問題的抽象與分解 295
12.1.1 過程抽象 295
12.1.2 數據抽象 296
12.2 個人函數庫的創(chuàng)建 296
12.2.1 頭文件 297
12.2.2 實現文件 298
12.3 變量的存儲類別 299
12.3.1 extern聲明全局變量 300
12.3.2 auto變量 302
12.3.3 static變量 302
12.3.4 register變量 304
12.4 條件編譯 305
習題12 307
附錄A ASCII字符表 310
附錄B C語言庫函數 312
參考文獻 319