本書以Visual C++ 2010為編程環(huán)境,通過分析問題、設(shè)計算法、編寫和調(diào)試程序等步驟,介紹了順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)的算法分析和程序設(shè)計方法,力求讓讀者掌握分析問題的方法,培養(yǎng)讀者算法設(shè)計的能力、編程和調(diào)試的能力以及模塊化程序設(shè)計思想。全書共14章。第1-2章介紹程序設(shè)計基礎(chǔ)與C語言的編程環(huán)境;第3-7章介紹結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)與函數(shù)和數(shù)組的基礎(chǔ)知識;第8章介紹字符型數(shù)據(jù)處理;第9-11章介紹編譯預(yù)處理、指針以及其他的數(shù)據(jù)類型;第12、13章介紹位運(yùn)算與文件;第14章介紹幾個綜合的編程牯∽?????摴栠楥檜???撓汯灳湡∽???う????巜?潦瑮>??
1章 程序設(shè)計基礎(chǔ) 1
1.1 程序設(shè)計語言 1
1.1.1 什么是程序 1
1.1.2 語言的分類 1
1.1.3 C語言簡介 2
1.1.4 C語言組成 3
1.2 計算機(jī)的組成與程序設(shè)計的本質(zhì) 3
1.2.1 計算機(jī)系統(tǒng)結(jié)構(gòu) 3
1.2.2 程序設(shè)計的本質(zhì) 4
1.2.3 程序設(shè)計的過程 4
1.3 算法的概念和特性 5
1.3.1 什么是算法 5
1.3.2 算法舉例 5
1.3.3 算法的特性 6
1.4 算法的表示方法 6
1.4.1 自然語言 7
1.4.2 偽代碼 7
1.4.3 傳統(tǒng)流程圖 7
1.4.4 N-S流程圖 7
1.5 結(jié)構(gòu)化的程序設(shè)計方法 8
1.5.1 結(jié)構(gòu)化程序設(shè)計 8
1.5.2 結(jié)構(gòu)化程序設(shè)計方法 9
習(xí) 題 10
2章 C語言編程與調(diào)試 12
2.1 Visual C++ 2010 Epress 12
2.1.1 安裝和啟動 12
2.1.2 Visual C++ 2010的開發(fā)環(huán)境 13
2.1.3 Visual C++ 2010中程序編寫與調(diào)試 15
2.2 Dev C++ 21
2.2.1 安裝和啟動 21
2.2.2 Dev C++的開發(fā)環(huán)境 22
2.1.3 Dev C++中程序設(shè)計與調(diào)試 23
習(xí) 題 27
3章 順序結(jié)構(gòu)程序設(shè)計與編程基礎(chǔ) 28
3.1 順序結(jié)構(gòu)算法設(shè)計 28
3.2 C語言編程基礎(chǔ) 29
3.2.1 數(shù)據(jù)類型 30
3.2.2 變量 31
3.2.3 常量 33
3.2.4 整型數(shù)據(jù)的處理 34
3.2.5 實(shí)型數(shù)據(jù)的處理 38
3.2.6 運(yùn)算符和表達(dá)式 41
3.2.7 數(shù)據(jù)類型的轉(zhuǎn)換 47
3.2.8 C語句 48
3.2.9 C程序的注釋 49
3.3 順序結(jié)構(gòu)程序設(shè)計 49
3.4 常見的編程錯誤及其調(diào)試 52
3.4.1 語法錯誤 52
3.4.2 運(yùn)行時錯誤 54
4.4.3 未檢測到的錯誤 55
3.4.4 邏輯錯誤 56
3.4.5 程序調(diào)試方法 57
習(xí) 題 57
4章 函數(shù) 62
4.1 函數(shù)的定義和調(diào)用 62
4.1.1 函數(shù)定義 62
4.1.2 函數(shù)調(diào)用 63
4.1.3 函數(shù)返回值 64
4.1.4 參數(shù)的傳遞 65
4.1.5 對被調(diào)用函數(shù)的聲明 66
4.2 變量的作用域 67
4.3 變量的存儲類別和生存期 70
4.4 程序的模塊化設(shè)計 72
習(xí) 題 74
5章 選擇結(jié)構(gòu)程序設(shè)計 77
5.1 選擇結(jié)構(gòu)算法設(shè)計 77
5.2 關(guān)系運(yùn)算與邏輯運(yùn)算 81
5.2.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 81
5.2.2 邏輯運(yùn)算符和邏輯表達(dá)式 82
5.3 if語句 84
5.4 switch語句 90
5.5 選擇結(jié)構(gòu)的嵌套 94
5.6 條件運(yùn)算符 97
習(xí) 題 98
6章 循環(huán)結(jié)構(gòu)程序設(shè)計 104
6.1 當(dāng)型循環(huán) 104
6.2 直到型循環(huán) 110
6.3 for循環(huán)語句 112
6.4 break語句和continue語句 114
6.5 循環(huán)的嵌套 115
6.6 循環(huán)結(jié)構(gòu)編程舉例 118
6.7 函數(shù)的嵌套調(diào)用 122
6.8 函數(shù)的遞歸調(diào)用 123
習(xí) 題 126
7章 數(shù)組 133
7.1 一維數(shù)組 133
7.1.1 一維數(shù)組 133
7.1.2 一維數(shù)組程序設(shè)計 135
7.1.3 數(shù)組元素作為函數(shù)參數(shù) 140
7.1.4 一維數(shù)組作為函數(shù)參數(shù) 140
7.2 二維數(shù)組 145
7.2.1 二維數(shù)組 145
7.2.2 二維數(shù)組程序設(shè)計 148
7.2.3 多維數(shù)組作為函數(shù)參數(shù) 151
習(xí) 題 154
8章 字符、字符數(shù)組與字符串 160
8.1 字符類型 160
8.1.1 字符型常量、變量 160
8.1.2 字符型數(shù)據(jù)的輸入和輸出 162
8.1.3 字符串 164
8.2 字符數(shù)組 165
8.2.1 字符數(shù)組的定義和使用 165
8.2.2 字符串?dāng)?shù)組 167
8.2.3 字符串處理函數(shù) 169
8.3 字符串處理 173
8.3.1 字符串處理算法和程序設(shè)計 173
8.3.2 字符串作為函數(shù)參數(shù) 175
習(xí) 題 177
9章 編譯預(yù)處理 181
9.1 宏定義 181
9.1.1 不帶參數(shù)的宏定義 181
9.1.2 帶參數(shù)的宏定義 184
9.2 文件包含 186
9.3 條件編譯 188
習(xí) 題 191
10章 指針 194
10.1 地址和指針 194
10.2 變量的指針和指向變量的指針變量 194
10.2.1 定義指針變量 194
10.2.2 指針變量的引用 195
10.2.3 指針變量作為函數(shù)參數(shù) 197
10.3 數(shù)組的指針和指向數(shù)組的指針變量 199
10.3.1 指向數(shù)組元素的指針 199
10.3.2 通過指針引用數(shù)組元素 199
10.3.3 數(shù)組和指向數(shù)組的指針變量作函數(shù)參數(shù) 201
10.3.4 指向多維數(shù)組的指針和指針變量 204
10.4 字符串的指針和指向字符串的指針變量 207
10.4.1 字符串的表示形式 207
10.4.2 字符串指針作函數(shù)參數(shù) 208
10.4.3 字符指針變量和字符數(shù)組的討論 209
10.5 函數(shù)的指針和指向函數(shù)的指針變量★ 210
10.5.1 用函數(shù)指針變量調(diào)用函數(shù) 210
10.5.2 用指向函數(shù)的指針作函數(shù)參數(shù) 211
10.6 返回指針值的函數(shù) 212
10.7 指針數(shù)組和指向指針的指針 213
10.7.1 指針數(shù)組 213
10.7.2 指向指針的指針 215
10.7.3 指針數(shù)組作main函數(shù)的形參 217
習(xí) 題 219
11章 其他數(shù)據(jù)類型 225
11.1 結(jié)構(gòu)體 225
11.1.1 結(jié)構(gòu)體類型的聲明 225
11.1.2 定義結(jié)構(gòu)體類型變量 226
11.1.3 結(jié)構(gòu)體變量的引用 228
11.1.4 結(jié)構(gòu)體變量的初始化 228
11.2 結(jié)構(gòu)體數(shù)組 230
11.2.1 定義結(jié)構(gòu)體數(shù)組 230
11.2.2 結(jié)構(gòu)體數(shù)組的初始化 230
11.2.3 結(jié)構(gòu)體數(shù)組應(yīng)用舉例 232
11.3 指向結(jié)構(gòu)體類型數(shù)據(jù)的指針 232
11.3.1 指向結(jié)構(gòu)體變量的指針 233
11.3.2 指向結(jié)構(gòu)體數(shù)組的指針 233
11.3.3 用結(jié)構(gòu)體變量和指向結(jié)構(gòu)體的指針作函數(shù)參數(shù) 234
11.4 鏈表 236
11.4.1 鏈表概述 236
11.4.2 處理動態(tài)鏈表所需的函數(shù) 237
11.4.3 建立動態(tài)鏈表 239
11.4.4 輸出鏈表 242
11.4.5 刪除鏈表的節(jié)點(diǎn) 242
11.4.6 插入鏈表節(jié)點(diǎn) 245
11.4.7 鏈表的綜合作 249
11.5 共用體 250
11.5.1 共用體的概念 250
11.5.2 共用體變量的引用 251
11.6 枚舉類型 254
11.7 用typedef定義類型 255
習(xí) 題 257
12章 位運(yùn)算 264
12.1 位運(yùn)算符和位運(yùn)算 264
12.1.1 按位取反(~)運(yùn)算符 264
12.1.2 按位與(&)運(yùn)算符 265
12.1.3 按位或(|)運(yùn)算符 266
12.1.4 按位異或(^)運(yùn)算符 266
12.1.5 左移(<<)運(yùn)算符 267
12.1.6 右移(>>)運(yùn)算符 268
12.1.7 位運(yùn)算賦值運(yùn)算符 269
12.1.8 不同長度的運(yùn)算數(shù)之間的運(yùn)算規(guī)則 269
12.2 位運(yùn)算程序?qū)嵗?269
習(xí) 題 271
13章 文件 273
13.1 文件概述 273
13.2 文件指針 274
13.3 文件的打開與關(guān)閉 274
13.3.1 fopen函數(shù) 275
13.3.2 fclose函數(shù) 276
13.4 文件的讀寫 276
13.4.1 fputc函數(shù) 277
13.4.2 fgetc函數(shù) 278
13.4.3 fputs函數(shù) 278
13.4.4 fgets函數(shù) 279
13.4.5 fprintf函數(shù) 280
13.4.6 fscanf函數(shù) 281
13.4.7 fwrite函數(shù) 281
13.4.8 fread函數(shù) 282
13.4.9 rewind函數(shù) 283
13.4.10 fseek函數(shù) 284
13.4.11 ftell函數(shù) 285
13.4.12 feof函數(shù) 285
13.4.13 ferror函數(shù) 286
習(xí) 題 286
14章 綜合程序設(shè)計 290
14.1 排序算法比較 290
14.2 個人通訊錄 294
習(xí) 題 300
附錄 ANSI C常用庫函數(shù) 301
參考文獻(xiàn) 306