內容簡介
本書從計算機基礎知識講起,繼而介紹標準
C語言的內容。除此之外,書中還包含其他教材沒有而C編程又必需的若干重要內容。本書深入淺出,文字簡練,將複雜的問題簡單化,內容全面而篇幅不大;對各章節的重點、難點把握準確,處理得當;注重培養編程思維能力,對編程時易犯的錯誤,點評到位。書中對C語言中最重要的內容——
函式、
指針、
數組、
檔案四部分的編寫,比主流教材上升了一個層次。尤其是指針部分,全面糾正了多年以來主流教材中的若干錯誤,給出了明晰、準確的說法和定義。 本書作者講授C語言二十多年,有豐富的編程和教學經驗,對學生的思維方式和學習狀況非常了解,對C語言的知識體系爛熟於心。
圖書目錄
第1章計算機基礎知識1
1.1計算機的硬體組成1
1.1.1運算器1
1.1.2控制器1
1.1.3存儲器1
1.1.4輸入設備3
1.1.5輸出設備3
1.2數制及數制間的轉換3
1.2.1二進制3
1.2.2八進制5
1.2.3十六進制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當前盤和當前目錄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種基本結構13[1]〖2〗深入淺出新編C程式設計教程[1]目錄〖2〗習題114
第2章C程式和C編譯器簡介16
2.1C語言及C標準簡介16
2.1.1C語言的出現16
2.1.2C語言的特點16
2.1.3C標準17
2.2簡單的C程式18
2.3C程式的構成22
2.4C編譯器及操作簡介24
2.4.1Turbo C 2.0編程環境及常用操作簡介24
2.4.2Visual C++6.0編程環境及常用操作簡介28
習題233
第3章C編程基礎知識35
3.1常量和變數35
3.1.1常量35
3.1.2變數35
3.2基本數據類型40
3.2.1整型數據40
3.2.2實型數據42
3.2.3字元型數據45
3.2.4字元串47
3.3符號常量和常變數48
3.3.1符號常量48
3.3.2常變數48
3.4運算符和表達式49
3.4.1算術運算符49
3.4.2賦值運算符和賦值表達式50
3.4.3自增自減運算符51
3.4.4逗號運算符和逗號表達式53
3.4.5類型轉換運算符54
3.5數據的類型轉換55
習題355
第4章順序結構程式設計59
4.1賦值語句59
4.1.1賦值語句及其執行過程59
4.1.2賦值的幾種數據處理方式59
4.2輸入輸出函式63
4.2.1緩衝區的概念及作用63
4.2.2getchar()和putchar()64
4.2.3printf()和scanf()65
4.3順序結構程式設計舉例70
習題472
第5章選擇結構程式設計76
5.1關係運算符和關係表達式76
5.1.1關係運算符76
5.1.2關係表達式76
5.2邏輯運算符和邏輯表達式77
5.2.1邏輯運算符77
5.2.2邏輯表達式78
5.3if語句79
5.3.1if語句的格式79
5.3.2if語句的使用說明80
5.3.3嵌套的if語句83
5.3.4if語句套用舉例85
5.3.5if語句編程的常見問題87
5.4條件運算符和條件表達式92
5.5switch語句93
5.5.1switch語句的格式及執行過程94
5.5.2switch語句套用舉例96
5.5.3switch語句編程的常見錯誤97
習題598
第6章循環結構程式設計104
6.1循環及其實現思想104
6.2循環語句105
6.2.1while循環105
6.2.2dowhile循環107
6.2.3for循環108
6.2.43種循環的比較110
6.3循環的控制111
6.3.1計數器控制循環和其他條件控制循環111
6.3.2break和continue112
6.3.3循環結束後循環變數的值與終值的比較115
6.4多重循環116
6.5循環編程舉例117
習題6126
第7章函式132
7.1函式的作用132
7.2函式的定義134
7.2.1函式定義的格式134
7.2.2函式的返回值134
7.2.3函式參數的設定138
7.3函式的調用140
7.3.1函式調用前的聲明140
7.3.2函式調用的方式142
7.4函式的參數傳遞143
7.4.1形參與實參143
7.4.2參數的傳遞143
7.4.3參數傳遞的單向性144
7.5函式的嵌套調用145
7.6遞歸函式146
7.6.1遞歸的條件146
7.6.2遞歸函式的執行過程147
7.6.3遞歸與疊代149
7.7函式編程舉例150
7.8內部函式和外部函式153
習題7154
第8章變數的作用域和存儲類別158
8.1變數的作用域158
8.1.1局部變數158
8.1.2全局變數158
8.2同名變數的辨析160
8.3變數的存儲類別和生存期162
8.3.1記憶體的存儲區域162
8.3.2動態變數162
8.3.3靜態變數163
8.4變數的作用域和生存期164
習題8165
第9章用指針變數訪問變數168
9.1指針和指針變數168
9.1.1指針和指針變數的概念168
9.1.2直接定址和間接定址169
9.1.3指針變數的值、地址及類型171
9.2通過指針變數訪問變數171
9.2.1指針變數的定義171
9.2.2指針變數的賦值172
9.2.3通過指針變數間接訪問一個變數173
9.3指針變數在函式傳遞中的作用173
習題9178
第10章數組181
10.1一維數組181
10.1.1一維數組的定義181
10.1.2一維數組的元素構成及一維數組的存儲結構182
10.1.3數組名的指針類型182
10.1.4數組元素的表示方法183
10.1.5一維數組的引用184
10.1.6一維數組的初始化186
10.1.7一維數組套用舉例186
10.2二維數組191
10.2.1二維數組的定義191
10.2.2二維數組的元素構成及二維數組的存儲結構192
10.2.3二維數組名的指針類型192
10.2.4二維數組中下標變數的表示方法193
10.2.5二維數組的引用194
10.2.6二維數組的初始化195
10.2.7二維數組套用舉例195
10.3字元數組和字元串處理函式196
10.3.1字元數組196
10.3.2字元串處理函式197
10.3.3字元數組套用舉例201
習題10203
第11章用指針變數訪問下標變數208
11.1用指針變數訪問下標變數的方法208
11.1.1知識回顧208
11.1.2用指針變數訪問一維數組中的下標變數208
11.1.3用指針變數訪問二維數組中的下標變數210
11.2用指針變數訪問下標變數的適用場合211
習題11214
第12章指針綜述218
12.1指針類型簡介218
12.2指向變數的指針219
12.2.1指向變數的不可變指針219
12.2.2指向變數的指針變數219
12.3指向數組的指針220
12.3.1指向一維數組的不可變指針220
12.3.2指向一維數組的指針變數221
12.3.3指向一維數組的指針變數的適用場合222
12.4指針與字元串223
12.4.1字元串的表示方式223
12.4.2用指針變數處理字元串225
12.5指針與函式227
12.5.1函式的入口地址227
12.5.2指向函式的指針變數227
12.5.3指向函式的指針變數的作用228
12.5.4指針函式229
12.6指針數組230
12.6.1指針數組的定義230
12.6.2指針數組的引用231
12.6.3指針數組套用舉例231
12.7指向指針變數的指針231
12.7.1指向指針變數的不可變指針231
12.7.2指向指針變數的指針變數232
12.7.3套用舉例232
12.8帶參數的main()函式235
12.8.1C語言對main()函式參數的規定235
12.8.2帶參數main()函式的作用235
12.8.3帶參數的main()函式的執行過程236
12.8.4程式舉例236
12.9動態記憶體分配237
12.9.1動態記憶體分配函式237
12.9.2動態記憶體分配舉例238
習題12239
第13章數據類型的自定義244
13.1結構體的定義和結構體變數的定義244
13.1.1結構體的概念和結構體的定義244
13.1.2結構體變數的定義和空間分配246
13.1.3結構體變數的初始化248
13.1.4結構體數組的定義和初始化249
13.2結構體變數的引用249
13.2.1結構體變數的引用方法249
13.2.2結構體變數引用舉例250
13.3用指針變數操作結構體變數251
13.3.1為什麼要通過指針變數訪問結構體變數251
13.3.2套用舉例252
13.4鍊表及鍊表操作簡介253
13.4.1鍊表的概念253
13.4.2使用鍊表的優點254
13.4.3鍊表操作簡介254
13.5共用體259
13.5.1共用體的概念259
13.5.2共用體的作用260
13.5.3共用體及共用體變數的定義261
13.5.4共用體變數(數組)的初始化262
13.5.5共用體變數的引用262
13.6枚舉類型263
13.6.1枚舉類型的定義263
13.6.2枚舉變數的定義264
13.6.3枚舉變數的使用264
13.6.4枚舉套用舉例264
13.7用typedef定義類型別名265
習題13267
第14章位運算270
14.1C語言中的位運算符270
14.2位運算及套用271
14.2.1按位與271
14.2.2按位或272
14.2.3異或273
14.2.4取反274
14.2.5左移274
14.2.6右移275
習題14276
第15章檔案278
15.1檔案及相關的概念278
15.1.1檔案的範疇278
15.1.2檔案中存儲數據的兩種方式278
15.1.3檔案的種類279
15.1.4檔案操作函式及緩衝區的概念280
15.2檔案讀寫的原理281
15.3檔案的讀寫位置指針和檔案結束標誌282
15.3.1讀寫位置指針282
15.3.2檔案結束標誌282
15.4檔案的打開和關閉283
15.4.1檔案的打開283
15.4.2檔案的關閉289
15.5檔案的讀寫290
15.5.1fgetc()和fputc()291
15.5.2fread()和fwrite()293
15.5.3fgets()和fputs()297
15.5.4fscanf()和fprintf()298
15.6讀寫位置指針的移動和定位300
15.6.1移動讀寫位置指針的函式300
15.6.2兩個與讀寫位置指針有關的函式301
15.7檔案的出錯檢測302
15.8檔案操作舉例303
習題15307
第16章編譯預處理310
16.1宏定義310
16.1.1無參宏定義310
16.1.2有參宏定義311
16.1.3嵌套的宏定義312
16.2檔案包含312
16.2.1檔案包含的格式312
16.2.2檔案包含的作用313
16.2.3檔案包含兩種格式的區別313
16.3條件編譯314
16.3.1條件編譯的格式314
16.3.2條件編譯套用舉例316
習題16317
附錄AC語言規約320
附錄B輸入輸出重定向322
附錄CC語言的關鍵字325
附錄D常用字元與ASCII碼對照表326
附錄E運算符的優先權和結合性327
附錄F常用庫函式329
參考文獻334