根據C語言的發展和計算機教學的需要,作者在《C程式設計(第四版)》的基礎上進行了修訂,使內容更加完善,更易於理解,更加切合教學需要。本書按照C語言的新標準C 99進行介紹,所有程式都符合C 99的規定,使編寫程式更加規範;對C語言和程式設計的基本概念和要點講解透徹、全面而深入;按照作者提出的“提出問題—解決問題—歸納分析”三部曲進行教學和組織教材;
目錄
第1章程式設計和C語言11.1什麼是電腦程式1
1.2什麼是計算機語言1
1.3C語言的發展及其特點3
1.4最簡單的C語言程式5
1.4.1最簡單的C語言程式舉例5
1.4.2C語言程式的結構9
1.5運行C程式的步驟與方法11
1.6程式設計的任務13
習題14
第2章算法——程式的靈魂15
2.1程式=算法+數據結構15
2.2什麼是算法16
2.3簡單的算法舉例17
2.4算法的特性20
2.5怎樣表示一個算法21
2.5.1用自然語言表示算法21
2.5.2用流程圖表示算法21
2.5.3三種基本結構和改進的流程圖25
2.5.4用NS流程圖表示算法28
2.5.5用偽代碼表示算法31
2.5.6用計算機語言表示算法32
2.6結構化程式設計方法33
習題35
第3章最簡單的C程式設計——順序程式設計37
3.1順序程式設計舉例37
3.2數據的表現形式及其運算39
3.2.1常量和變數39
3.2.2數據類型42
3.2.3整型數據44
3.2.4字元型數據47
3.2.5浮點型數據49
3.2.6怎樣確定常量的類型50
3.3運算符和表達式51
3.3.1C運算符52
3.3.2基本的算術運算符52
3.3.3自增(++)、自減(--)運算符53
3.3.4算術表達式和運算符的優先權與結合性53
3.3.5不同類型數據間的混合運算54
3.3.6強制類型轉換運算符55
3.4C語句56
3.4.1C語句的作用和分類56
3.4.2最基本的語句——賦值語句58
3.5數據的輸入輸出64
3.5.1輸入輸出舉例64
3.5.2有關數據輸入輸出的概念65
3.5.3用printf函式輸出數據67
3.5.4用scanf函式輸入數據74
3.5.5字元輸入輸出函式76
習題80
第4章選擇結構程式設計83
4.1選擇結構和條件判斷83
4.2用if語句實現選擇結構85
4.2.1用if語句處理選擇結構舉例85
4.2.2if語句的一般形式87
4.3關係運算符和關係表達式89
4.3.1關係運算符及其優先次序90
4.3.2關係表達式90
4.4邏輯運算符和邏輯表達式90
4.4.1邏輯運算符及其優先次序91
4.4.2邏輯表達式92
4.5條件運算符和條件表達式94
4.6選擇結構的嵌套96
4.7用switch語句實現多分支選擇結構99
4.8選擇結構程式綜合舉例102
習題107
第5章循環結構程式設計110
5.1為什麼需要循環控制110
5.2用while語句實現循環111
5.3用do…while語句實現循環113
5.4用for語句實現循環116
5.5循環的嵌套120
5.6幾種循環的比較121
5.7改變循環執行的狀態121
5.7.1用break語句提前終止循環122
5.7.2用continue語句提前結束本次循環123
5.7.3break語句和continue語句的區別124
5.8循環程式舉例127
習題137
第6章利用數組處理批量數據139
6.1怎樣定義和引用一維數組139
6.1.1怎樣定義一維數組140
6.1.2怎樣引用一維數組元素140
6.1.3一維數組的初始化142
6.1.4一維數組程式舉例142
6.2怎樣定義和引用二維數組145
6.2.1怎樣定義二維數組146
6.2.2怎樣引用二維數組的元素147
6.2.3二維數組的初始化148
6.2.4二維數組程式舉例149
6.3字元數組151
6.3.1怎樣定義字元數組151
6.3.2字元數組的初始化152
6.3.3怎樣引用字元數組中的元素152
6.3.4字元串和字元串結束標誌153
6.3.5字元數組的輸入輸出156
6.3.6使用字元串處理函式157
6.3.7字元數組套用舉例162
習題165
第7章用函式實現模組化程式設計167
7.1為什麼要用函式167
7.2怎樣定義函式169
7.2.1為什麼要定義函式169
7.2.2定義函式的方法170
7.3調用函式171
7.3.1函式調用的形式171
7.3.2函式調用時的數據傳遞172
7.3.3函式調用的過程174
7.3.4函式的返回值174
7.4對被調用函式的聲明和函式原型176
7.5函式的嵌套調用179
7.6函式的遞歸調用181
7.7數組作為函式參數189
7.7.1數組元素作函式實參189
7.7.2一維數組名作函式參數191
7.7.3多維數組名作函式參數194
7.8局部變數和全局變數196
7.8.1局部變數196
7.8.2全局變數197
7.9變數的存儲方式和生存期201
7.9.1動態存儲方式與靜態存儲方式201
7.9.2局部變數的存儲類別202
7.9.3全局變數的存儲類別205
7.9.4存儲類別小結209
7.10關於變數的聲明和定義211
7.11內部函式和外部函式212
7.11.1內部函式212
7.11.2外部函式213
習題215
第8章善於利用指針217
8.1指針是什麼217
8.2指針變數219
8.2.1使用指針變數的例子219
8.2.2怎樣定義指針變數220
8.2.3怎樣引用指針變數222
8.2.4指針變數作為函式參數224
8.3通過指針引用數組229
8.3.1數組元素的指針229
8.3.2在引用數組元素時指針的運算229
8.3.3通過指針引用數組元素231
8.3.4用數組名作函式參數236
8.3.5通過指針引用多維數組243
8.4通過指針引用字元串254
8.4.1字元串的引用方式254
8.4.2字元指針作函式參數258
8.4.3使用字元指針變數和字元數組的比較262
8.5指向函式的指針265
8.5.1什麼是函式的指針265
8.5.2用函式指針變數調用函式265
8.5.3怎樣定義和使用指向函式的指針變數267
8.5.4用指向函式的指針作函式參數269
8.6返回指針值的函式273
8.7指針數組和多重指針276
8.7.1什麼是指針數組276
8.7.2指向指針數據的指針變數279
8.7.3指針數組作main函式的形參281
8.8動態記憶體分配與指向它的指針變數284
8.8.1什麼是記憶體的動態分配284
8.8.2怎樣建立記憶體的動態分配284
8.8.3void指針類型286
8.9有關指針的小結288
習題291
第9章用戶自己建立數據類型293
9.1定義和使用結構體變數293
9.1.1自己建立結構體類型293
9.1.2定義結構體類型變數295
9.1.3結構體變數的初始化和引用296
9.2使用結構體數組300
9.2.1定義結構體數組300
9.2.2結構體數組的套用舉例301
9.3結構體指針303
9.3.1指向結構體變數的指針303
9.3.2指向結構體數組的指針304
9.3.3用結構體變數和結構體變數的指針作函式參數306
9.4用指針處理鍊表309
9.4.1什麼是鍊表309
9.4.2建立簡單的靜態鍊表310
9.4.3建立動態鍊表311
9.4.4輸出鍊表315
9.5共用體類型317
9.5.1什麼是共用體類型317
9.5.2引用共用體變數的方式318
9.5.3共用體類型數據的特點319
9.6使用枚舉類型322
9.7用typedef聲明新類型名326
習題330
第10章對檔案的輸入輸出331
10.1C檔案的有關基本知識331
10.1.1什麼是檔案331
10.1.2檔案名稱332
10.1.3檔案的分類332
10.1.4檔案緩衝區333
10.1.5檔案類型指針333
10.2打開與關閉檔案334
10.2.1用fopen函式打開數據檔案335
10.2.2用fclose函式關閉數據檔案337
10.3順序讀寫數據檔案338
10.3.1怎樣向檔案讀寫字元338
10.3.2怎樣向檔案讀寫一個字元串341
10.3.3用格式化的方式讀寫文本檔案345
10.3.4用二進制方式向檔案讀寫一組數據345
10.4隨機讀寫數據檔案350
10.4.1檔案位置標記及其定位350
10.4.2隨機讀寫353
10.5檔案讀寫的出錯檢測355
習題355
附錄357
附錄A常用字元與ASCII代碼對照表357
附錄BC語言中的關鍵字358
附錄C運算符和結合性359
附錄DC語言常用語法提要361
附錄EC庫函式365
參考文獻371