本書是國家級精品課程“大學計算機”系列中“C語言程序設計”課程的主教材,也是該課程中國大學MOOC配套教材。本書以快速掌握程序設計思想為主線,采用“核心語法為先導、實踐應用為目的、知識擴展為提升、疑難辨析以解惑”的內(nèi)容組織方式,突出知識點與技術(shù)點的關(guān)聯(lián)性。全書內(nèi)容主要包括基本數(shù)據(jù)類型、簡單程序設計、循環(huán)結(jié)構(gòu)程序設計、數(shù)組、指針、模塊化程序設計、復雜數(shù)據(jù)類型、動態(tài)存儲空間管理、文件的處理。本書體系完整、結(jié)構(gòu)嚴謹、注重應用、強調(diào)實踐,在編寫時兼顧了全國計算機等級考試的要求。為方便教學,本書還配有電子課件,任課教師可登錄華信教育資源網(wǎng)(www.hxedu.com.cn)免費注冊并下載。本書既可作為高等學!癈語言程序設計”課程的教材,也可作為全國計算機等級考試二級C語言程序設計的培訓或自學教材。
董衛(wèi)軍,計算機理論與軟件博士,信息與通信工程博士后,西北大學副教授,全國高等院校計算機基礎教育研究會理事,陜西省計算機教育學會常務理事兼副秘書長。長期從事大學計算機課程的教學和研究工作,教學經(jīng)驗豐富。出版教材多部。
第1章 基本數(shù)據(jù)類型 1
1.1 程序與工程化程序設計 1
1.1.1 程序 1
1.1.2 工程化程序設計 1
1.2 程序設計語言 7
1.2.1 程序設計語言的概念 7
1.2.2 C語言簡介 7
1.3 數(shù)據(jù)類型與常量 11
1.3.1 數(shù)據(jù)類型 11
1.3.2 常量 12
1.4 變量 16
1.4.1 標識符 16
1.4.2 變量的定義 16
1.5 基本運算 17
1.5.1 運算符與表達式 17
1.5.2 賦值運算 18
1.5.3 算術(shù)運算 20
1.5.4 關(guān)系運算 24
1.5.5 邏輯運算 25
1.5.6 條件運算 26
1.6 知識擴展 28
1.6.1 數(shù)據(jù)的輸入與輸出 28
1.6.2 逗號運算 31
1.6.3 數(shù)據(jù)類型長度運算 32
1.6.4 算術(shù)自反賦值運算 33
1.6.5 位運算 33
1.7 疑難辨析 37
習題1 40
第2章 簡單程序設計 47
2.1 順序結(jié)構(gòu)程序設計 47
2.1.1 語句 47
2.1.2 順序結(jié)構(gòu)程序設計舉例 48
2.2 選擇結(jié)構(gòu)程序設計 49
2.2.1 if語句 49
2.2.2 switch語句 51
2.2.3 選擇結(jié)構(gòu)的嵌套 52
2.2.4 選擇結(jié)構(gòu)程序設計舉例 54
2.3 應用舉例 55
2.4 疑難辨析 60
習題2 61
第3章 循環(huán)結(jié)構(gòu)程序設計 66
3.1 循環(huán)結(jié)構(gòu)語句 66
3.1.1 while語句 66
3.1.2 for語句 68
3.1.3 循環(huán)結(jié)構(gòu)程序設計 71
3.2 多重循環(huán) 73
3.2.1 多重循環(huán)的引入 73
3.2.2 多重循環(huán)結(jié)構(gòu)程序設計 73
3.3 知識擴展 77
3.3.1 do…while語句 77
3.3.2 break和continue語句 78
3.4 應用舉例 79
3.5 疑難辨析 80
習題3 81
第4章 數(shù)組 87
4.1 一維數(shù)組的使用 87
4.1.1 一維數(shù)組概述 88
4.1.2 一維數(shù)組應用舉例 90
4.2 二維數(shù)組的使用 96
4.2.1 二維數(shù)組概述 96
4.2.2 二維數(shù)組應用舉例 98
4.3 知識擴展 100
4.3.1 字符串與字符數(shù)組 100
4.3.2 三維數(shù)組的使用 104
4.4 應用舉例 107
4.5 疑難辨析 109
習題4 111
第5章 指針 118
5.1 指針與指針的運算 118
5.1.1 指針變量與指針常量 118
5.1.2 指針的運算 120
5.2 指針與數(shù)組 124
5.2.1 指針與一維數(shù)組 124
5.2.2 指針與二維數(shù)組 126
5.3 知識擴展 130
5.3.1 指針數(shù)組 130
5.3.2 指向指針的指針 132
5.4 應用舉例 133
5.5 疑難辨析 135
習題5 140
第6章 模塊化程序設計 146
6.1 模塊化程序設計概述 146
6.1.1 模塊化程序設計的基本
思想 146
6.1.2 函數(shù)簡介 147
6.2 函數(shù)的使用 148
6.2.1 自定義函數(shù)的定義 148
6.2.2 自定義函數(shù)的說明 151
6.2.3 函數(shù)調(diào)用 151
6.2.4 函數(shù)使用舉例 152
6.3 知識擴展 156
6.3.1 變量的存儲類別、生存期與
作用域 156
6.3.2 函數(shù)的遞歸調(diào)用 163
6.3.3 理解函數(shù)指針 164
6.3.4 編譯預處理 165
6.4 應用舉例 171
6.5 疑難辨析 178
習題6 180
第7章 復雜數(shù)據(jù)類型 195
7.1 結(jié)構(gòu)體 195
7.1.1 結(jié)構(gòu)體類型與變量的定義 195
7.1.2 結(jié)構(gòu)體變量的使用 197
7.1.3 結(jié)構(gòu)體數(shù)組 200
7.1.4 結(jié)構(gòu)體類型的指針 201
7.2 共用體 203
7.2.1 共用體類型及共用體變量的
定義 204
7.2.2 共用體變量的引用 205
7.3 知識擴展 207
7.3.1 枚舉類型 207
7.3.2 用typedef定義類型 209
7.4 應用舉例 210
7.5 疑難辨析 212
習題7 213
第8章 動態(tài)存儲空間管理 219
8.1 存儲空間的分配與管理 219
8.1.1 存儲空間的組成 219
8.1.2 靜態(tài)和動態(tài)存儲方式 220
8.1.3 靜態(tài)和動態(tài)存儲分配 220
8.2 動態(tài)存儲空間的申請與釋放 221
8.2.1 動態(tài)存儲空間的申請 222
8.2.2 動態(tài)存儲空間的釋放 223
8.3 鏈表的使用 224
8.3.1 鏈表的概念 224
8.3.2 鏈表的基本操作 226
8.4 應用舉例 230
8.5 疑難辨析 242
習題8 244
第9章 文件的處理 248
9.1 文件的基本概念 248
9.1.1 C語言支持的文件格式 248
9.1.2 文件操作的基本思路 250
9.2 文件的基本操作 250
9.2.1 文件指針 250
9.2.2 文件的打開與關(guān)閉 251
9.2.3 字節(jié)級文件的讀/寫 253
9.2.4 字符串文件的讀/寫 255
9.2.5 文件結(jié)束判斷函數(shù) 256
9.3 知識擴展 260
9.3.1 文件的格式化讀/寫 260
9.3.2 文件的塊串級讀/寫 262
9.3.3 文件位置指針的移動 264
9.4 應用舉例 266
9.5 疑難辨析 269
習題9 271
附錄A Visual C++集成環(huán)境使用指南 275
附錄B 常用運算符及其優(yōu)先級和結(jié)合性 279
附錄C 標準C語言頭文件 280
附錄D C語言系統(tǒng)關(guān)鍵字 281
附錄E ASCII編碼表 282
參考文獻 283