主要內容
本書作為精品教學建設立項教材,集多年各個時期教學改革立項實施方案及C語言教學資源建設之精華,結合現代程式設計理念,最佳化、提煉了相關知識要點。
全書共13章,通過套用案例全面解析C語言程式設計的知識要點、實現方法、基本原理以及C語言的語義、語法規範等,覆蓋了相關知識內容與重點,主要包括電腦程式設計算法與實現、C語言程式的組成結構、編譯運行、各種數據存儲類型及相關運算、各類程式流程控制命令與控制結構、數組的定義與使用、函式定義與變數的作用、編譯預處理與宏定義的使用方法、數據存儲地址的操作與指針變數、構造類型與自定義類型的定義與使用、位運算操作與套用、檔案系統管理與數據操作等。
本書可作為高等學校本科的計算機專業基礎課教材,也可作為各學科專業公共基礎課教材,還可以作為高校課程設計或軟體研發人員實現程式算法的參考案例用書,並可供全國計算機等級考試和編程基礎培訓的案例分析教學、自學使用。
圖書目錄
第1章電腦程式設計算法實現1
1.1程式設計概述1
1.1.1程式設計語言1
1.1.2程式設計過程3
1.2程式設計算法與實現4
1.3電腦程式算法的表示5
1.3.1自然語言描述6
1.3.2程式流程圖描述6
1.3.3NS圖描述7
1.3.4程式設計語言描述8
1.4程式算法實現案例分析12
1.5練習題15
第2章C語言程式的組成與編譯運行16
2.1C語言程式設計概述16
2.1.1C語言程式設計的發展16
2.1.2C語言程式設計的特點17
2.1.3C語言程式的組成結構19
2.2C語言程式的編譯與運行21
2.2.1編輯調試與編譯運行步驟21
2.2.2常用編譯運行環境22
2.3C語言的語義規範34
2.3.1C語言程式的基本規範34
2.3.2C語言的標識符37
2.3.3C語言的保留關鍵字38
2.4練習題38
第3章數據存儲類型與相關運算39
3.1數據存儲方式39
3.1.1數據存儲與數制轉換39
3.1.2數據存儲類型與定義41
3.1.3存儲地址與占用空間43
3.1.4數據常量分類45
3.1.5程式變數定義49
3.2數據存儲方式與套用50
C程式設計案例教程(第2版)目錄3.2.1數據存儲的正負數問題51
3.2.2數據變數取值範圍52
3.2.3實型數據存儲方式56
3.2.4字元型數據存儲方式59
3.2.5各種存儲類型混合運算61
3.3運算符與運算表達式62
3.3.1運算符優先權與強制類型轉換63
3.3.2算術運算符與算術運算表達式65
3.3.3賦值運算符與賦值運算表達式68
3.3.4逗號運算符與逗號運算表達式71
3.3.5關係運算符與關係運算表達式72
3.3.6邏輯運算符與邏輯運算表達式74
3.3.7條件運算符與條件運算表達式76
3.4練習題78
第4章順序結構程式設計80
4.1C程式設計流程控制80
4.1.1基本流程控制80
4.1.2順序結構流程控制81
4.2基本順序結構命令語句83
4.2.1賦值語句83
4.2.2空語句83
4.2.3複合語句84
4.2.4無條件轉向語句84
4.2.5函式調用語句85
4.2.6表達式語句86
4.3常用基本輸入輸出函式87
4.3.1字元類型輸入函式87
4.3.2字元類型輸出函式89
4.3.3格式化輸入輸出函式90
4.4練習題97
第5章條件分支選擇結構程式設計99
5.1條件分支選擇結構99
5.1.1簡單if分支選擇結構99
5.1.2ifelse分支選擇結構101
5.1.3嵌套的ifelse選擇結構103
5.1.4else if多路分支選擇結構107
5.2switchcase條件選擇語句109
5.2.1switchcase條件選擇結構110
5.2.2switchcase條件選擇語句的套用112
5.3綜合案例分析116
5.4練習題121
第6章循環控制結構程式設計123
6.1循環控制結構123
6.1.1循環控制結構組成要素123
6.1.2while()循環控制結構124
6.1.3dowhile()循環控制結構131
6.1.4for()循環控制結構134
6.2循環控制結構的嵌套139
6.3循環控制結構的輔助控制命令142
6.3.1無條件轉移命令goto語句142
6.3.2終止循環執行命令break語句143
6.3.3返回循環條件命令continue146
6.4幾種循環控制結構的比較148
6.5循環控制結構綜合案例分析148
6.6練習題154
第7章數組的定義及套用156
7.1數組的性質156
7.2一維數組的定義與引用158
7.2.1一維數組的定義158
7.2.2一維數組元素的引用159
7.2.3一維數組的初始化160
7.2.4一維數組套用案例161
7.3多維數組的定義與引用167
7.3.1二維數組的定義與引用167
7.3.2二維數組程式算法案例172
7.3.3三維數組的定義與引用176
7.3.4多維數組的套用177
7.4字元數組與字元串操作178
7.4.1字元數組的定義與初始化178
7.4.2字元串的處理及套用180
7.4.3常用的字元串處理函式182
7.4.4字元數組套用案例189
7.5練習題194
第8章函式與變數196
8.1C語言函式的分類與套用196
8.1.1C語言函式分類196
8.1.2系統標準庫函式198
8.1.3自定義函式200
8.2自定義函式與函式類型203
8.3自定義函式參數與參數傳遞204
8.3.1形式參數和實際參數204
8.3.2數組作為函式參數206
8.4自定義函式的調用209
8.5函式的嵌套調用210
8.6函式的遞歸調用212
8.7函式變數的存儲與作用域216
8.7.1局部變數216
8.7.2全局變數218
8.8動態存儲變數和靜態存儲變數222
8.8.1程式變數的存儲類型222
8.8.2auto型變數224
8.8.3extern型變數225
8.8.4static型局部變數與全局變數225
8.8.5register型變數227
8.9全局函式和局部函式227
8.9.1局部函式228
8.9.2全局函式228
8.10函式與變數綜合案例分析231
8.11練習題238
第9章編譯預處理242
9.1編譯預處理命令242
9.2宏定義與宏代換243
9.2.1不帶參數的宏定義244
9.2.2帶參數的宏定義245
9.2.3宏定義作用域的終止249
9.3檔案包含處理251
9.4條件編譯253
9.5練習題257
第10章地址與指針變數259
10.1變數的記憶體地址與指針259
10.1.1指針變數的定義261
10.1.2指針變數的賦值262
10.1.3指針變數運算符及運算263
10.1.4指針變數作函式參數266
10.2數組與地址指針268
10.2.1指向數組的指針變數268
10.2.2指向數組元素的指針變數269
10.2.3數組名作函式參數272
10.2.4指針變數作函式參數274
10.2.5多維數組與指針變數277
10.3字元串與指針變數281
10.3.1字元串處理方法281
10.3.2字元串指針作函式參數285
10.4函式的指針及指向函式的指針變數287
10.4.1函式指針變數的定義288
10.4.2用函式指針調用函式288
10.4.3用函式指針變數作函式參數289
10.4.4返回指針值的指針函式291
10.5指針數組與指向指針數組的指針變數293
10.5.1指針數組293
10.5.2指向指針的指針變數296
10.6main()命令行參數傳遞298
10.7指針變數綜合案例300
10.8練習題305
第11章構造類型與自定義類型308
11.1結構體類型與結構體變數308
11.1.1結構體類型的定義308
11.1.2結構體類型變數的定義及引用310
11.2結構體數組的定義及引用315
11.2.1結構體數組的定義及初始化315
11.2.2結構體數組的引用316
11.3指向結構體類型數據的指針318
11.3.1指向結構體變數的指針318
11.3.2指向結構體數組的指針319
11.3.3結構體類型作為函式參數321
11.4鍊表結構及套用325
11.4.1靜態鍊表的創建及引用326
11.4.2動態鍊表的創建及引用327
11.4.3單向動態鍊表的創建及引用329
11.4.4在單向動態鍊表中插入結點334
11.4.5從單向動態鍊表中刪除結點339
11.5共用體類型與共用體變數344
11.5.1共用體類型及共用體變數的定義345
11.5.2共用體變數的引用346
11.6枚舉類型與枚舉變數349
11.6.1枚舉類型的定義349
11.6.2枚舉類型變數349
11.7自定義數據類型說明符351
11.8練習題357
第12章位運算操作358
12.1位運算符及運算操作358
12.1.1位運算及運算符358
12.1.2按位與運算359
12.1.3按位或運算360
12.1.4按位異或運算361
12.1.5按位取反運算361
12.1.6按位左移運算362
12.1.7按位右移運算363
12.1.8複合賦值位運算364
12.2位段定義及套用364
12.2.1位段的定義364
12.2.2位段的引用366
12.3位運算操作套用案例367
12.4練習題369
第13章檔案系統管理與操作370
13.1檔案的組成結構370
13.1.1檔案的概念與構成370
13.1.2檔案系統操作形式372
13.2緩衝型檔案的操作與使用373
13.2.1緩衝型檔案結構類型與檔案指針373
13.2.2緩衝型檔案的標準庫函式374
13.3檔案的打開與關閉375
13.3.1檔案打開函式與操作模式375
13.3.2檔案關閉函式的使用379
13.4檔案中數據的讀寫操作380
13.4.1檔案中字元數據的讀寫操作380
13.4.2檔案中字元串數據的讀寫操作384
13.4.3檔案中數值數據的讀寫操作387
13.4.4檔案中數據的格式化讀寫操作389
13.5檔案位置指針的定位392
13.5.1檔案指針的定位操作392
13.5.2檔案指針復位函式392
13.5.3當前指針位置測試函式393
13.5.4定位指針位置函式394
13.6檔案操作錯誤的檢測395
13.6.1檔案讀寫操作檢測函式396
13.6.2檔案錯誤狀態清除函式397
13.7其他緩衝型檔案函式398
13.7.1檔案結束位置測試函式398
13.7.2磁碟檔案刪除函式399
13.8檔案操作管理綜合套用案例分析401
13.9練習題404
附錄A常用字元與ASCII碼對照表408
附錄B運算符的優先權與結合性409
參考文獻410
1.1程式設計概述1
1.1.1程式設計語言1
1.1.2程式設計過程3
1.2程式設計算法與實現4
1.3電腦程式算法的表示5
1.3.1自然語言描述6
1.3.2程式流程圖描述6
1.3.3NS圖描述7
1.3.4程式設計語言描述8
1.5程式算法實現案例分析12
1.6練習題15
第2章C程式設計組成與編譯運行16
2.1C語言程式設計概述16
2.1.1C語言程式設計的發展16
2.1.2C程式設計特點17
2.1.3C程式設計組成結構19
2.2C程式設計的編譯與運行21
2.2.1編輯調試與編譯運行步驟21
2.2.2常用編譯運行環境22
2.3C語言程式設計語義規範34
2.3.1C語言程式的基本規範34
2.3.2C語言程式設計標識符37
2.3.3C語言的保留關鍵字38
2.4練習題38
第3章數據存儲類型與相關運算39
3.1數據存儲方式39
3.1.1數據存儲與數制轉換39
3.1.2數據存儲類型與定義41
3.1.3存儲地址與占用空間44
3.1.4數據常量分類45
3.1.5程式變數定義49
3.2數據存儲方式與套用51
3.2.1數據存儲的正負數問題51
3.2.2數據變數取值範圍52
3.2.3實型數據存儲方式56
3.2.4字元型數據存儲方式59
3.2.5各種存儲類型混合運算62
3.3運算符與運算表達式63
3.3.1運算符優先權與數據類型轉換63
3.3.2算術運算符與算術運算表達式65
3.3.3賦值運算符與賦值運算表達式69
3.3.4逗號運算符與逗號運算表達式71
3.3.5關係運算符與關係運算表達式73
3.3.6邏輯運算符與邏輯運算表達式74
3.3.7條件運算符與條件運算表達式76
3.4練習題78
第4章順序結構程式設計80
4.1C程式設計流程控制80
4.1.1基本流程控制80
4.1.2順序結構流程控制81
4.2基本順序結構命令語句83
4.2.1基本順序命令83
4.2.2表達式語句86
4.3常用基本輸入輸出函式87
4.3.1字元類型輸入函式87
4.3.2字元類型輸出函式89
4.3.3格式化輸入輸出函式90
4.4練習題97
第5章條件分支選擇結構程式設計99
5.1條件分支選擇結構99
5.1.1簡單if分支選擇結構99
5.1.2ifelse分支選擇結構101
5.1.3嵌套的ifelse選擇結構103
5.1.4elseif多路分支選擇結構107
5.2switchcase條件選擇開關語句109
5.2.1switchcase條件選擇結構110
5.2.2switchcase條件選擇語句112
5.3綜合案例分析116
5.4練習題121
第6章循環控制結構程式設計123
6.1循環控制結構123
6.1.1循環控制結構組成要素123
6.1.2while()循環控制結構124
6.1.3dowhile()循環控制結構131
6.1.4for()循環控制結構134
6.2循環控制結構的嵌套139
6.3循環控制結構的輔助控制命令142
6.3.1無條件轉移命令goto語句142
6.3.2終止循環執行命令break語句143
6.3.3返回循環條件命令continue語句146
6.4幾種循環控制結構的比較148
6.5循環控制結構綜合案例分析148
6.6練習題154
第7章數組的定義及套用156
7.1數組的性質156
7.2一維數組的定義與引用158
7.2.1一維數組的定義158
7.2.2一維數組元素的引用159
7.2.3一維數組的初始化160
7.2.4一維數組套用案例161
7.3多維數組的定義與套用167
7.3.1二維數組的定義與引用167
7.3.2二維數組程式算法案例172
7.3.3三維數組的定義與套用176
7.3.4多維數組的套用177
7.4字元數組與字元串操作178
7.4.1字元數組的定義與初始化178
7.4.2字元串的處理及套用180
7.4.3常用的字元串處理函式182
7.4.4字元數組套用案例189
7.5練習題194
第8章函式與變數的作用196
8.1C語言函式的分類與套用196
8.1.1C語言函式分類196
8.1.2系統標準庫函式198
8.1.3自定義函式200
8.2自定義函式與函式類型203
8.3自定義函式參數與參數傳遞204
8.3.1形式參數和實際參數204
8.3.2數組作為函式參數206
8.4自定義函式的調用209
8.5函式的嵌套調用210
8.6函式的遞歸調用212
8.7函式變數的存儲與作用域216
8.7.1局部變數216
8.7.2全局變數218
8.8動態存儲變數和靜態存儲變數222
8.8.1程式變數的存儲類型222
8.8.2auto型動態存儲變數224
8.8.3extern全程變數225
8.8.4static靜態局部變數與靜態全局變數225
8.8.5register型暫存器變數227
8.9全局函式和局部函式228
8.9.1static局部函式228
8.9.2extern全局函式228
8.10函式與變數綜合案例分析231
8.11練習題239
第9章編譯預處理243
9.1編譯預處理命令243
9.2宏定義與宏代換244
9.2.1不帶參數的宏定義245
9.2.2帶參數的宏定義246
9.2.3宏定義作用域的終止250
9.3檔案包含處理252
9.4條件編譯254
9.5練習題258
第10章地址與指針變數260
10.1變數的記憶體地址與指針260
10.1.1指針變數的定義262
10.1.2指針變數的賦值263
10.1.3指針變數運算符及運算264
10.1.4指針變數作函式參數267
10.2數組與地址指針269
10.2.1指向數組的指針變數270
10.2.2指向數組元素的指針變數270
10.2.3數組名作函式參數273
10.2.4指針變數作函式參數275
10.2.5多維數組與指針變數278
10.3字元串與指針變數282
10.3.1字元串處理方法282
10.3.2字元串指針作函式參數286
10.4函式的指針及指向函式的指針變數288
10.4.1函式指針變數的定義289
10.4.2用函式指針調用函式289
10.4.3用函式指針變數作函式參數290
10.4.4返回指針值的指針函式292
10.5指針數組與指向指針數組的指針變數294
10.5.1指針數組294
10.5.2指向指針的指針變數296
10.6main命令行參數傳遞299
10.7指針變數綜合案例301
10.8練習題306
第11章構造類型與自定義類型309
11.1結構體類型與結構體變數309
11.1.1結構體類型的定義309
11.1.2結構體類型變數的定義與引用311
11.2結構體數組的定義和引用316
11.2.1結構體數組的定義與初始化316
11.2.2結構體數組的引用317
11.3指向結構體類型數據的指針319
11.3.1指向結構體變數的指針319
11.3.2指向結構體數組的指針320
11.3.3結構體類型作為函式參數322
11.4鍊表結構及套用326
11.4.1靜態鍊表的創建與引用327
11.4.2動態鍊表的創建與引用328
11.4.3單向動態鍊表的創建與引用330
11.4.4在單向動態鍊表中插入結點334
11.4.5從單向動態鍊表中刪除結點339
11.5共用體類型與共用體變數345
11.5.1共用體類型及共用體變數的定義345
11.5.2共用體變數的引用347
11.6枚舉類型與枚舉變數349
11.6.1枚舉類型的定義350
11.6.2枚舉類型變數350
11.7自定義數據類型說明符352
11.8練習題357
第12章位運算操作359
12.1位運算符及運算操作359
12.1.1位運算及運算符359
12.1.2按位“與”運算360
12.1.3按位“或”運算361
12.1.4按位“異或”運算362
12.1.5按位“取反”運算362
12.1.6按位“左移”運算363
12.1.7按位“右移”運算364
12.1.8複合賦值位運算365
12.2位段定義及套用365
12.2.1位段的定義366
11.2.2位段的引用367
12.3位運算操作套用案例368
12.4練習題370
第13章檔案系統管理與操作371
13.1檔案的組成結構371
13.1.1檔案的概念與構成371
13.1.2檔案系統操作形式373
13.2緩衝型檔案的操作與使用374
13.2.1緩衝型檔案結構類型與檔案指針374
13.2.2緩衝型檔案的標準庫函式375
13.3檔案的打開與關閉376
13.3.1檔案打開函式與操作模式376
13.3.2檔案關閉函式的使用380
13.4檔案中數據的讀寫操作381
13.4.1檔案中字元數據的讀寫操作382
13.4.2檔案中字元串數據的讀寫操作385
13.4.3檔案中數值數據的讀寫操作389
13.4.4檔案中數據的格式化讀寫操作391
13.5檔案指針的定位393
13.5.1檔案指針的定位操作393
13.5.2檔案指針復位函式393
13.5.3當前指針位置測試函式394
13.5.4定位指針位置函式395
13.6檔案操作錯誤的檢測397
13.6.1檔案讀寫操作檢測函式397
13.6.2檔案錯誤狀態清除函式398
13.7其他緩衝型檔案函式400
13.7.1檔案結束位置測試函式400
13.7.2磁碟檔案刪除函式401
13.8檔案操作管理綜合套用案例分析402
13.9練習題406
附錄A常用字元與ASCII碼對照表409
附錄B運算符的優先權與結合性410
參考文獻411