目錄
第1章 C程序設計初步 1
1.1 簡單的C程序 1
1.2 基本的輸入輸出函數 3
1.2.1
scanf()函數的簡單應用 3
1.2.2
printf()函數的簡單應用 6
1.3
C程序的基本結構 6
1.4
C程序的開發環境 8
1.4.1
C/C 程序設計學習與實驗系統 8
1.4.2
Visual C 2010 11
1.4.3
C/C 程序設計學習與實驗系統與Visual C 2010直通車 15
1.5 算法 16
1.6 綜合實例:學生成績管理程序(一) 21
1.7 常見程序錯誤及解決方法 22
1.8 學習C程序設計的方法 25
1.8.1
學習C程序設計是否過時 25
1.8.2
如何學習C程序設計 26
本章小結 30
習題1 30
實驗1 C程序集成實驗環境 31
第2章 順序結構程序設計 41
2.1 順序結構程序引例 41
2.2 標識符 42
2.3 編程規范 42
2.4 基本數據類型 44
2.5 常量與變量 44
2.5.1
常量 44
2.5.2
變量 48
2.6 運算符與表達式 56
2.6.1
常用的運算符與表達式 56
2.6.2
賦值運算符與賦值表達式 57
2.6.3
算術運算符與算術表達式 61
2.6.4
條件運算符與條件表達式 64
2.6.5
逗號運算符與逗號表達式 65
2.6.6
位運算符與位表達式 66
2.7 常見的數學函數與表達式 70
2.8 順序結構程序設計 71
2.8.1
C語句 71
2.8.2
數據的輸入輸出 72
2.9 順序結構程序舉例 79
2.10
綜合實例:學生成績管理程序(二) 84
2.11
常見程序錯誤及解決方法 85
本章小結 87
習題2 87
實驗2 順序結構程序設計 89
第3章 選擇結構程序設計 91
3.1 選擇引例 91
3.2 選擇條件 92
3.2.1
關系運算符和關系表達式 92
3.2.2
邏輯運算符和邏輯表達式 92
3.3
if語句 93
3.3.1
if語句的一般形式 93
3.3.2
用if語句實現簡單的選擇結構 96
3.3.3
用if語句實現多分支選擇結構 99
3.4
switch語句 104
3.4.1
switch語句的一般形式 104
3.4.2
用switch語句實現多分支選擇結構 106
3.5 應用舉例 109
3.6 綜合實例:學生成績管理程序(三) 116
3.7 常見程序錯誤及解決方法 119
本章小結 120
習題3 120
實驗3 選擇程序設計 124
第4章 循環結構程序設計 128
4.1 循環引例 128
4.2
while語句 129
4.3
do…while語句 131
4.4
for語句 135
4.5 循環結構的比較 137
4.6
break和continue語句 139
4.6.1
break語句 139
4.6.2
continue語句 141
4.7 循環的嵌套 143
4.8 循環程序舉例 147
4.9 綜合實例:學生成績管理程序(四) 158
4.10
常見程序錯誤及解決方法 160
本章小結 162
習題4 163
實驗4 循環結構程序設計 166
第5章 數組 170
5.1 數組引例 170
5.2 一維數組 171
5.2.1
一維數組的定義 171
5.2.2
一維數組的引用 172
5.2.3
一維數組的初始化 173
5.2.4
一維數組的應用 173
5.3 二維數組及多維數組 176
5.3.1
二維數組的定義 176
5.3.2
二維數組的引用 177
5.3.3
二維數組的初始化 178
5.3.4
二維數組的應用 179
5.4 字符數組與字符串 182
5.4.1
字符數組的定義 182
5.4.2
字符數組的引用 183
5.4.3
字符數組的初始化 183
5.4.4
字符串和字符串結束標志 184
5.4.5
字符數組的輸入輸出 185
5.4.6
字符串處理函數 187
5.4.7
字符數組的應用 192
5.5 排序與查找 194
5.6 應用舉例 200
5.7 綜合實例:學生成績管理程序(五) 202
5.8 常見程序錯誤 212
本章小結 212
習題5 213
實驗5 數組 215
第6章 函數 218
6.1 函數概念 218
6.2 函數的定義與調用 220
6.2.1
函數的定義 220
6.2.2
函數調用 221
6.2.3
形式參數和實際參數 224
6.2.4
函數的返回值 225
6.3 函數的嵌套調用和遞歸 226
6.3.1
函數的嵌套調用 226
6.3.2
函數的遞歸調用 228
6.4 數組作為函數參數 232
6.5 變量的作用域及存儲類型 238
6.5.1
動態存儲方式與靜態存儲方式 238
6.5.2
變量的作用域 239
6.6 外部、內部函數 243
6.7 預處理命令 244
6.8 應用舉例 246
6.9 綜合實例:學生成績管理程序(六) 250
6.10 常見程序錯誤及解決方法 260
本章小結 263
習題6 264
實驗6 函數 267
第7章 指針 270
7.1 指針引例 270
7.2 指針和指針變量 271
7.2.1
指針的概念 271
7.2.2
指針變量的定義和引用 271
7.2.3
指針變量作為函數參數 273
7.3 指針與數組 275
7.3.1
通過指針訪問一維數組 275
7.3.2
通過指針訪問二維數組 279
7.3.3
通過指針訪問字符串 282
7.3.4
用數組名作為函數參數 285
7.3.5
指針數組 287
7.4 指針與函數 290
7.4.1
指向函數的指針 290
7.4.2
返回指針值的函數 293
7.5 指向指針型數據的指針 295
7.6 動態數組 298
7.6.1
內存的動態分配 298
7.6.2
動態數組的應用 300
7.7 應用舉例 301
7.8 綜合實例:學生成績管理程序(七) 305
7.9 常見程序錯誤及解決方法 315
本章小結 316
習題7 316
實驗7 指針 318
第8章 結構體與其他構造類型 321
8.1 結構體引例 321
8.2 結構體類型和結構體變量 323
8.2.1
定義結構體類型 323
8.2.2
結構體變量的定義 325
8.2.3
結構體變量的初始化和引用 327
8.3 結構體數組 331
8.3.1
結構體數組的定義 331
8.3.2
結構體數組的初始化和引用 332
8.4 結構體指針 334
8.4.1
指向結構體變量的指針 334
8.4.2
指向結構體數組的指針 336
8.4.3
向函數傳遞結構體 337
8.5 鏈表 339
8.5.1
鏈表的定義 339
8.5.2
建立動態鏈表 341
8.5.3
鏈表的刪除 344
8.5.4
鏈表的插入 345
8.6 共用體類型 347
8.7 枚舉類型 350
8.8 用typedef聲明新類型名 352
8.9 應用舉例 354
8.10
綜合實例:學生成績管理程序(八) 359
8.11
常見程序錯誤及解決方法 369
本章小結 370
習題8 370
實驗8 結構體與其他構造類型 374
第9章 文件 377
9.1 文件引例 377
9.2
C文件概述 378
9.3 文件的打開與關閉 379
9.3.1
文件類型指針 379
9.3.2
文件的打開函數 379
9.3.3
文件的關閉函數 381
9.4 文件的讀寫 382
9.4.1
文件讀寫函數 382
9.4.2
文件的讀寫舉例 385
9.5 文件定位 388
9.5.1
文件定位函數——fseek( )函數 388
9.5.2
文件出錯檢測函數 389
9.6 文件綜合舉例 391
9.7 綜合實例:學生成績管理程序(九) 394
9.8 常見程序錯誤及解決方法 403
本章小結 404
習題9 404
實驗9 文件 406
第10章 綜合實例:用Visual
C 2010 開發通訊錄管理程序 410
10.1
較大程序的開發過程 410
10.2
綜合程序設計實例 411
10.2.1
題目的內容要求 411
10.2.2
程序的功能設計 412
10.2.3
程序的數據設計 413
10.2.4
程序的函數設計 414
10.2.5
用Visual C 2010開發通訊錄管理程序 415
10.2.6
整體調試 444
10.2.7
程序維護 444
10.3
用Visual C 2010編寫較大程序的注意事項 444
本章小結 445
習題10 445
參考文獻 446
附錄A 用Visual C
2010編寫、調試C程序的方法 447
附錄B 常用ASCII碼字符對照表 457
附錄C 常用庫函數 458
附錄D 習題參考答案 466