本書從計算機基礎(chǔ)知識講起,繼而介紹標(biāo)準(zhǔn)C語言的內(nèi)容。除此之外,書中還包含了C編程必需的若干重要內(nèi)容。
本書深入淺出,文字簡練,將復(fù)雜的問題簡單化,篇幅不大但內(nèi)容全面;對各章節(jié)的重點、難點把握準(zhǔn)確,處理得當(dāng);注重培養(yǎng)編程思維能力,對編程時易犯的錯誤,點評到位。
本書作者講授C語言20多年,有豐富的編程和教學(xué)經(jīng)驗,對學(xué)生的思維方式和學(xué)習(xí)狀況非常了解,對C語言的知識體系爛熟于心。在書中,作者奉獻(xiàn)了自己對許多問題的獨到見解。書中大量的編程經(jīng)驗和注意事項,蘊含著作者長期的積累,凝聚著C語言的精華。
本書非常適合作為高等學(xué)校各專業(yè)程序設(shè)計基礎(chǔ)、C語言程序設(shè)計等課程的正式教材,也可作為自學(xué)教材或?qū)W習(xí)參考書,尤其適合作為C程序員的編程指導(dǎo)手冊和入門教材。本書封面貼有清華大學(xué)出版社防偽標(biāo)簽,無標(biāo)簽者不得銷售。
本書可以(但不限于)作為:
計算機科學(xué)與技術(shù)專業(yè)本科生《程序設(shè)計基礎(chǔ)》或《C程序設(shè)計》教材。
數(shù)字媒體技術(shù)、軟件工程、網(wǎng)絡(luò)工程、信息安全、通信工程、電子、自動化及其他工科專業(yè)本科生程序設(shè)計教材。
會計、經(jīng)濟、金融、管理、心理學(xué)、統(tǒng)計以及其他非工科專業(yè)研究生或本科生程序設(shè)計教材。
專科院校或職業(yè)技術(shù)學(xué)院計算機專業(yè)或非計算機專業(yè)程序設(shè)計教材。
C語言自學(xué)教材。
具有一定C語言基礎(chǔ)的讀者進(jìn)階優(yōu)選學(xué)習(xí)資料。
少數(shù)對編程具有濃厚興趣和天賦的中學(xué)生自學(xué)C語言的教材或課外閱讀資料。
王金鵬教授,1986年畢業(yè)于北京大學(xué)物理系,1997年獲計算機應(yīng)用碩士學(xué)位,目前從事計算機教學(xué)和科研,研究方向為圖像處理。近年來在國內(nèi)外刊物發(fā)表科研論文十幾篇,出版教材3部,主持省級科研項目和省教改項目多項,校《程序設(shè)計基礎(chǔ)》精品課負(fù)責(zé)人,講授《C程序設(shè)計》20多年,連續(xù)數(shù)年獲得校優(yōu)秀教學(xué)效果一等獎,在學(xué)生中享有很高的聲譽和威望。
第1章計算機基礎(chǔ)知識1
1.1計算機的硬件組成1
1.1.1運算器1
1.1.2控制器1
1.1.3存儲器1
1.1.4輸入設(shè)備3
1.1.5輸出設(shè)備3
1.2數(shù)制及數(shù)制間的轉(zhuǎn)換3
1.2.1二進(jìn)制3
1.2.2八進(jìn)制5
1.2.3十六進(jìn)制5
1.3原碼、反碼和補碼6
1.3.1原碼6
1.3.2反碼6
1.3.3補碼6
1.4路徑及其表示6
1.4.1路徑的概念6
1.4.2當(dāng)前盤和當(dāng)前目錄7
1.4.3絕對路徑和相對路徑7
1.5計算機語言8
1.5.1機器語言8
1.5.2匯編語言9
1.5.3高級語言10
1.6算法11
1.6.1算法的概念11
1.6.2算法的特性12
1.6.3算法的表示12
1.6.4程序的3種基本結(jié)構(gòu)13
習(xí)題114[1]〖2〗C語言可以這樣學(xué)[1]目錄〖2〗第2章C程序和C編譯器簡介16
2.1C語言及C標(biāo)準(zhǔn)簡介16
2.1.1C語言的出現(xiàn)16
2.1.2C語言的特點16
2.1.3C標(biāo)準(zhǔn)17
2.2簡單的C程序18
2.3C程序的構(gòu)成22
2.4C編譯器及操作簡介24
2.4.1Turbo C 2.0編程環(huán)境及常用操作簡介24
2.4.2Visual C++6.0編程環(huán)境及常用操作簡介28
習(xí)題233
第3章C編程基礎(chǔ)知識35
3.1常量和變量35
3.1.1常量35
3.1.2變量35
3.2基本數(shù)據(jù)類型40
3.2.1整型數(shù)據(jù)40
3.2.2實型數(shù)據(jù)42
3.2.3字符型數(shù)據(jù)45
3.2.4字符串47
3.3符號常量和常變量48
3.3.1符號常量48
3.3.2常變量48
3.4運算符和表達(dá)式49
3.4.1算術(shù)運算符49
3.4.2賦值運算符和賦值表達(dá)式50
3.4.3自增自減運算符51
3.4.4逗號運算符和逗號表達(dá)式53
3.4.5類型轉(zhuǎn)換運算符54
3.5數(shù)據(jù)的類型轉(zhuǎn)換55
習(xí)題355
第4章F順序結(jié)構(gòu)程序設(shè)計59
4.1賦值語句59
4.1.1賦值語句及其執(zhí)行過程59
4.1.2賦值的幾種數(shù)據(jù)處理方式59
4.2輸入輸出函數(shù)63
4.2.1緩沖區(qū)的概念及作用63
4.2.2getchar()和putchar()64
4.2.3printf()和scanf()65
4.3順序結(jié)構(gòu)程序設(shè)計舉例70
習(xí)題472
第5章選擇結(jié)構(gòu)程序設(shè)計76
5.1關(guān)系運算符和關(guān)系表達(dá)式76
5.1.1關(guān)系運算符76
5.1.2關(guān)系表達(dá)式76
5.2邏輯運算符和邏輯表達(dá)式77
5.2.1邏輯運算符77
5.2.2邏輯表達(dá)式78
5.3if語句79
5.3.1if語句的格式79
5.3.2if語句的使用說明80
5.3.3嵌套的if語句83
5.3.4if語句應(yīng)用舉例85
5.3.5if語句編程的常見問題87
5.4條件運算符和條件表達(dá)式92
5.5switch語句93
5.5.1switch語句的格式及執(zhí)行過程94
5.5.2switch語句應(yīng)用舉例96
5.5.3switch語句編程的常見錯誤97
習(xí)題598
第6章循環(huán)結(jié)構(gòu)程序設(shè)計104
6.1循環(huán)及其實現(xiàn)思想104
6.2循環(huán)語句105
6.2.1while循環(huán)105
6.2.2dowhile循環(huán)107
6.2.3for循環(huán)108
6.2.43種循環(huán)的比較110
6.3循環(huán)的控制111
6.3.1計數(shù)器控制循環(huán)和其他條件控制循環(huán)111
6.3.2break和continue112
6.3.3循環(huán)結(jié)束后循環(huán)變量的值與終值的比較115
6.4多重循環(huán)116
6.5循環(huán)編程舉例117
習(xí)題6126
第7章函數(shù)132
7.1函數(shù)的作用132
7.2函數(shù)的定義134
7.2.1函數(shù)定義的格式134
7.2.2函數(shù)的返回值134
7.2.3函數(shù)參數(shù)的設(shè)置138
7.3函數(shù)的調(diào)用140
7.3.1函數(shù)調(diào)用前的聲明140
7.3.2函數(shù)調(diào)用的方式142
7.4函數(shù)的參數(shù)傳遞143
7.4.1形參與實參143
7.4.2參數(shù)的傳遞143
7.4.3參數(shù)傳遞的單向性144
7.5函數(shù)的嵌套調(diào)用145
7.6遞歸函數(shù)146
7.6.1遞歸的條件146
7.6.2遞歸函數(shù)的執(zhí)行過程147
7.6.3遞歸與迭代149
7.7函數(shù)編程舉例150
7.8內(nèi)部函數(shù)和外部函數(shù)153
習(xí)題7154
第8章變量的作用域和存儲類別158
8.1變量的作用域158
8.1.1局部變量158
8.1.2全局變量158
8.2同名變量的辨析160
8.3變量的存儲類別和生存期162
8.3.1內(nèi)存的存儲區(qū)域162
8.3.2動態(tài)變量162
8.3.3靜態(tài)變量163
8.4變量的作用域和生存期164
習(xí)題8165
第9章編譯預(yù)處理168
9.1宏定義168
9.1.1無參宏定義168
9.1.2有參宏定義169
9.1.3嵌套的宏定義170
9.2文件包含170
9.2.1文件包含的格式170
9.2.2文件包含的作用171
9.2.3文件包含兩種格式的區(qū)別171
9.3條件編譯172
9.3.1條件編譯的格式172
9.3.2條件編譯應(yīng)用舉例174
習(xí)題9175
第10章用指針變量訪問變量178
10.1指針和指針變量178
10.1.1指針和指針變量的概念178
10.1.2直接尋址和間接尋址179
10.1.3指針變量的值、地址及類型181
10.2通過指針變量訪問變量181
10.2.1指針變量的定義181
10.2.2指針變量的賦值182
10.2.3通過指針變量間接訪問一個變量183
10.3指針變量在函數(shù)傳遞中的作用183
習(xí)題10188
第11章數(shù)組191
11.1一維數(shù)組191
11.1.1一維數(shù)組的定義191
11.1.2一維數(shù)組的元素構(gòu)成及一維數(shù)組的存儲結(jié)構(gòu)192
11.1.3數(shù)組名的指針類型192
11.1.4數(shù)組元素的表示方法193
11.1.5一維數(shù)組的引用194
11.1.6一維數(shù)組的初始化196
11.1.7一維數(shù)組應(yīng)用舉例196
11.2二維數(shù)組201
11.2.1二維數(shù)組的定義201
11.2.2二維數(shù)組的元素構(gòu)成及二維數(shù)組的存儲結(jié)構(gòu)202
11.2.3二維數(shù)組名的指針類型202
11.2.4二維數(shù)組中下標(biāo)變量的表示方法203
11.2.5二維數(shù)組的引用204
11.2.6二維數(shù)組的初始化205
11.2.7二維數(shù)組應(yīng)用舉例205
11.3字符數(shù)組和字符串處理函數(shù)206
11.3.1字符數(shù)組206
11.3.2字符串處理函數(shù)207
11.3.3字符數(shù)組應(yīng)用舉例211
習(xí)題11213
第12章用指針變量訪問下標(biāo)變量218
12.1用指針變量訪問下標(biāo)變量的方法218
12.1.1知識回顧218
12.1.2用指針變量訪問一維數(shù)組中的下標(biāo)變量218
12.1.3用指針變量訪問二維數(shù)組中的下標(biāo)變量220
12.2用指針變量訪問下標(biāo)變量的適用場合221
習(xí)題12224
第13章指針綜述228
13.1指針類型簡介228
13.2指向變量的指針229
13.2.1指向變量的指針常量229
13.2.2指向變量的指針變量229
13.3指向數(shù)組的指針230
13.3.1指向一維數(shù)組的指針常量230
13.3.2指向一維數(shù)組的指針變量231
13.3.3指向一維數(shù)組的指針變量的適用場合232
13.4指針與字符串233
13.4.1字符串的表示方式233
13.4.2用指針變量處理字符串235
13.5指針與函數(shù)237
13.5.1函數(shù)的入口地址237
13.5.2指向函數(shù)的指針變量237
13.5.3指向函數(shù)的指針變量的作用238
13.5.4指針函數(shù)239
13.6指針數(shù)組240
13.6.1指針數(shù)組的定義240
13.6.2指針數(shù)組的引用241
13.6.3指針數(shù)組應(yīng)用舉例241
13.7指向指針變量的指針241
13.7.1指向指針變量的不可變指針241
13.7.2指向指針變量的指針變量242
13.7.3應(yīng)用舉例242
13.8帶參數(shù)的main()函數(shù)245
13.8.1C語言對main()函數(shù)參數(shù)的規(guī)定245
13.8.2帶參數(shù)main()函數(shù)的作用245
13.8.3帶參數(shù)的main()函數(shù)的執(zhí)行過程246
13.8.4程序舉例246
13.9動態(tài)內(nèi)存分配247
13.9.1動態(tài)內(nèi)存分配函數(shù)247
13.9.2動態(tài)內(nèi)存分配舉例248
習(xí)題13249
第14章數(shù)據(jù)類型的自定義254
14.1結(jié)構(gòu)體的定義和結(jié)構(gòu)體變量的定義254
14.1.1結(jié)構(gòu)體的概念和結(jié)構(gòu)體的定義254
14.1.2結(jié)構(gòu)體變量的定義和空間分配256
14.1.3結(jié)構(gòu)體變量的初始化258
14.1.4結(jié)構(gòu)體數(shù)組的定義和初始化259
14.2結(jié)構(gòu)體變量的引用259
14.2.1結(jié)構(gòu)體變量的引用方法259
14.2.2結(jié)構(gòu)體變量引用舉例260
14.3用指針變量操作結(jié)構(gòu)體變量261
14.3.1為什么要通過指針變量訪問結(jié)構(gòu)體變量261
14.3.2應(yīng)用舉例262
14.4鏈表及鏈表操作簡介263
14.4.1鏈表的概念263
14.4.2使用鏈表的優(yōu)點264
14.4.3鏈表操作簡介264
14.5共用體269
14.5.1共用體的概念269
14.5.2共用體的作用270
14.5.3共用體及共用體變量的定義271
14.5.4共用體變量(數(shù)組)的初始化272
14.5.5共用體變量的引用272
14.6枚舉類型273
14.6.1枚舉類型的定義273
14.6.2枚舉變量的定義274
14.6.3枚舉變量的使用274
14.6.4枚舉應(yīng)用舉例274
14.7用typedef定義類型別名275
習(xí)題14277
第15章位運算280
15.1C語言中的位運算符280
15.2位運算及應(yīng)用281
15.2.1按位與281
15.2.2按位或282
15.2.3異或283
15.2.4取反284
15.2.5左移284
15.2.6右移285
習(xí)題15286
第16章文件288
16.1文件及相關(guān)的概念288
16.1.1文件的范疇288
16.1.2文件中存儲數(shù)據(jù)的兩種方式288
16.1.3文件的種類289
16.1.4文件操作函數(shù)及緩沖區(qū)的概念290
16.2文件讀寫的原理291
16.3文件的讀寫位置指針和文件結(jié)束標(biāo)志292
16.3.1讀寫位置指針292
16.3.2文件結(jié)束標(biāo)志292
16.4文件的打開和關(guān)閉293
16.4.1文件的打開293
16.4.2文件的關(guān)閉299
16.5文件的讀寫300
16.5.1fgetc()和fputc()301
16.5.2fread()和fwrite()303
16.5.3fgets()和fputs()307
16.5.4fscanf()和fprintf()308
16.6讀寫位置指針的移動和定位310
16.6.1移動讀寫位置指針的函數(shù)310
16.6.2兩個與讀寫位置指針有關(guān)的函數(shù)311
16.7文件的出錯檢測312
16.8文件操作舉例313
習(xí)題16317
第17章綜合應(yīng)用舉例320
17.1簡單的計算器(一)320
17.2簡單的計算器(二)322
17.3數(shù)據(jù)庫文件的讀取325
附錄AC語言規(guī)約335
附錄B輸入輸出重定向 337
附錄CC語言的關(guān)鍵字340
附錄D常用字符與ASCII碼對照表341
附錄E運算符的優(yōu)先級和結(jié)合性342
附錄F常用庫函數(shù)344
參考文獻(xiàn)349