第1章程序設計與C語言1
11計算機與程序、程序設計語言1
12C語言的出現和發展過程2
13簡單的C語言程序3
14C語言程序的結構和特點6
15運行C程序的步驟與方法7
16程序設計的任務9
本章小結10
習題10
第2章數據的存儲與運算11
21數據在計算機中是怎樣存儲的11
2.1.1數據在計算機中是以二進制形式存儲的11
2.1.2位、字節和地址12
2.1.3不同類型數據的存儲方式13
22整型數據的運算與分析15
2.2.1整型數據運算程序舉例和分析15
2.2.2整型常量與整型變量17
23實型數據的運算與分析20
2.3.1實型數據的運算舉例20
2.3.2實型常量的表示形式22
2.3.3實型變量22
24字符型數據的運算24
2.4.1字符數據運算的簡單例子24
2.4.2字符常量和字符變量25
2.4.3字符串常量29
25符號常量30
2.5.1為什么要用符號常量 31
2.5.2符號常量的性質和使用方法32
26算術運算符和算術表達式34
2.6.1算術運算符34
2.6.2算術表達式36
27C運算符和C表達式38
2.7.1C運算符38
2.7.2C表達式38
28提高部分39
2.8.1求補碼的方法39
2.8.2整型常量的表示形式39
2.8.3整型變量的類型40
2.8.4整型常量的類型41
2.8.5C語言允許使用的數據類型42
2.8.6運算符的優先級與結合性42
本章小結43
習題44
第3章最簡單的C程序設計順序程序設計46
31算法是程序的靈魂46
3.1.1什么是算法46
3.1.2怎樣表示算法48
32程序的三種基本結構51
33C語句綜述52
34賦值表達式和賦值語句55
3.4.1賦值表達式55
3.4.2賦值過程中的類型轉換57
3.4.3賦值語句58
3.4.4為變量賦初值59
35數據輸入輸出的概念59
36字符數據的輸入輸出61
3.6.1用putchar函數輸出一個字符61
3.6.2用getchar函數輸入一個字符63
37簡單的格式輸入與輸出65
3.7.1用簡單的printf函數輸出數據65
3.7.2用簡單的scanf函數輸入數據68
38順序結構程序設計舉例71
39提高部分75
3.9.1關于無符號數據與有符號數據之間的賦值75
3.9.2較復雜的輸入輸出格式控制77
3.9.3簡單易用的C 的輸入輸出84
本章小結85
習題86
第4章選擇結構程序設計88
41條件判斷88
4.1.1條件判斷的含義88
4.1.2關系運算符和關系表達式89
4.1.3邏輯運算符和邏輯表達式90
42用if語句實現選擇結構94
4.2.1用if語句實現選擇結構舉例94
4.2.2if語句的一般形式96
4.2.3if語句使用的說明96
4.2.4使用嵌套的if語句實現多層條件判斷98
43利用switch語句實現多分支選擇結構102
44程序綜合舉例104
45提高部分107
4.5.1用條件表達式實現簡單的選擇結構107
4.5.2在程序中使用條件表達式109
本章小結110
習題111
第5章循環結構程序設計114
51程序中需要用循環結構114
52用while語句和do…while語句實現循環114
5.2.1用while語句實現循環114
5.2.2用do…while語句實現循環116
53用for 語句實現循環119
5.3.1for語句的一般形式和執行過程119
5.3.2for循環程序舉例 120
54循環的嵌套123
55提前結束循環124
5.5.1用break語句提前退出循環 124
5.5.2用continue語句提前結束本次循環125
56幾種循環的比較127
57循環程序綜合舉例128
58提高部分132
5.8.1while和do…while循環的比較132
5.8.2for語句的各種形式134
本章小結137
習題137
第6章用數組處理批量數據139
61為什么要用數組139
62怎樣定義和引用一維數組139
6.2.1怎樣定義一維數組140
6.2.2怎樣引用一維數組的元素140
6.2.3一維數組的初始化141
6.2.4一維數組程序舉例142
63怎樣定義和引用二維數組145
6.3.1怎樣定義二維數組 145
6.3.2怎樣引用二維數組的元素146
6.3.3二維數組的初始化147
6.3.4二維數組程序舉例148
64字符數組151
6.4.1怎樣定義字符數組及對其初始化 151
6.4.2怎樣引用字符數組153
6.4.3字符串和字符串結束標志153
6.4.4怎樣進行字符數組的輸入輸出155
6.4.5字符串處理函數157
6.4.6字符數組應用舉例158
65提高部分162
6.5.1為什么在定義二維數組時采用兩對雙括號的形式162
6.5.2對C的字符串函數的詳細說明163
本章小結167
習題167
第7章用函數實現模塊化程序設計169
71函數是什么169
72函數的定義和調用171
7.2.1為什么要定義函數171
7.2.2怎樣定義函數172
7.2.3怎樣調用函數173
7.2.4對被調用函數的聲明和函數原型176
73函數的嵌套調用和遞歸調用178
7.3.1函數的嵌套調用178
7.3.2函數的遞歸調用180
74數組作為函數參數186
7.4.1用數組元素作為函數實參186
7.4.2用數組名作為函數參數187
75變量的作用域和生存期194
7.5.1變量的作用域局部變量和全局變量194
7.5.2變量的存儲方式和生存期197
7.5.3關于作用域和生存期的小結200
76內部函數和外部函數202
7.6.1什么是內部函數202
7.6.2什么是外部函數202
77提高部分204
7.7.1實參求值的順序204
7.7.2遞歸的典型例子Hanoi(漢諾)塔問題205
本章小結208
習題210
第8章善于使用指針212
81什么是指針212
82指針變量213
8.2.1使用指針變量訪問變量的例子213
8.2.2怎樣定義指針變量214
8.2.3怎樣引用指針變量216
8.2.4指針變量作為函數參數218
83通過指針引用數組223
8.3.1數組元素的指針223
8.3.2通過指針引用數組元素224
8.3.3用數組名作函數參數228
84通過指針引用字符串233
8.4.1字符串的表示形式233
8.4.2字符指針作為函數參數236
8.4.3使用字符指針變量和字符數組的區別241
85提高部分243
8.5.1指針使用的技巧243
8.5.2多維數組的指針245
8.5.3指向函數的指針246
8.5.4返回指針值的函數246
8.5.5指針數組247
8.5.6多重指針指向指針的指針247
本章小結249
習題252
第9章用結構體類型處理組合數據用戶自定義數據類型253
91定義和使用結構體變量253
9.1.1自己建立結構體類型253
9.1.2定義結構體類型變量255
9.1.3結構體變量的初始化和引用257
92結構體數組260
93結構體指針263
94用結構體變量和結構體變量的指針作為函數參數267
95用指針處理鏈表270
9.5.1什么是線性鏈表270
9.5.2建立簡單的靜態鏈表271
9.5.3建立動態鏈表272
96提高部分274
9.6.1共用體類型275
9.6.2枚舉類型275
本章小結278
習題279
第10章用文件保存數據280
101C文件的有關概念280
10.1.1什么是文件280
10.1.2文件名281
10.1.3文件的分類281
10.1.4文件緩沖區282
10.1.5文件類型指針282
102文件的打開與關閉283
10.2.1用fopen函數打開數據文件284
10.2.2用fclose函數關閉文件285
103文件的順序讀寫285
10.3.1向文件讀寫字符286
10.3.2向文件讀寫一個字符串289
10.3.3文件的格式化讀寫293
10.3.4用二進制方式讀寫文件293
104文件的隨機讀寫297
10.4.1文件位置標記及其定位297
10.4.2隨機讀寫文件300
105提高部分301
10.5.1系統定義的文件類型指針301
10.5.2回車換行符的轉換302
10.5.3fread和fwrite函數用于二進制文件的輸入輸出302
10.5.4文件讀寫的出錯檢測303
本章小結303
習題305
附錄A常用字符與ASCII碼對照表306
附錄BC語言中的關鍵字307
附錄C運算符和結合性308
附錄DC語言常用語法提要311
附錄EC庫函數316
參考文獻323
第1章程序設計與C語言1
1.1計算機與程序、程序設計語言1
1.2C語言的出現和發展過程2
1.3簡單的C語言程序3
1.4運行C程序的步驟與方法7
1.4.1運行C程序的步驟7
1.4.2上機運行C程序的方法8
本章小結16
習題17
第2章數據的存儲與運算18
2.1數據在計算機中是怎樣存儲的18
2.1.1數據在計算機中是以二進制形式存儲的18
2.1.2位、字節和地址19
2.1.3不同類型數據的存儲方式20
2.2整型數據的運算與分析22
2.2.1整型數據運算程序舉例和分析22
2.2.2整型常量與整型變量24
2.3實型數據的運算與分析27
2.3.1實型數據的運算舉例27
2.3.2實型常量的表示形式29
2.3.3實型變量30
2.4字符型數據的運算32
2.4.1字符數據運算的簡單例子32
2.4.2字符常量和字符變量33
2.4.3字符串常量38
2.5符號常量39
2.5.1為什么要用符號常量 39
2.5.2符號常量的性質和使用方法42
2.6算術運算符和算術表達式43
2.6.1算術運算符44
2.6.2算術表達式45
2.7C運算符和C表達式47
2.7.1C運算符47
2.7.2C表達式48
2.8提高部分48
2.8.1求補碼的方法48
2.8.2整型常量的表示形式49
2.8.3整型變量的類型50
2.8.4整型常量的類型51
2.8.5C語言允許使用的數據類型52
2.8.6運算符的優先級與結合性52
本章小結53
習題54
第3章最簡單的C程序設計順序程序設計56
3.1算法是程序的靈魂56
3.1.1什么是算法56
3.1.2怎樣表示算法58
3.2程序的三種基本結構61
3.3C語句綜述63
3.4賦值表達式和賦值語句65
3.4.1賦值表達式65
3.4.2賦值過程中的類型轉換68
3.4.3賦值語句69
3.4.4變量賦初值70
3.5數據輸入輸出的概念71
3.6字符數據的輸入輸出72
3.6.1用putchar函數輸出一個字符73
3.6.2用getchar函數輸入一個字符74
3.7簡單的格式輸入與輸出76
3.7.1用簡單的printf函數輸出數據77
3.7.2用簡單的scanf函數輸入數據81
3.8順序結構程序設計舉例84
3.9提高部分88
3.9.1關于無符號數據與有符號數據之間的賦值88
3.9.2較復雜的輸入輸出格式控制90
3.9.3簡單易用的C 的輸入輸出98
本章小結99
習題100
第4章選擇結構程序設計102
4.1條件判斷102
4.1.1條件判斷的含義102
4.1.2關系運算符和關系表達式103
4.1.3邏輯運算符和邏輯表達式105
4.2用if語句實現選擇結構108
4.2.1用if語句實現選擇結構舉例108
4.2.2if語句的一般形式110
4.2.3if語句使用的說明111
4.2.4使用嵌套的if語句實現多層條件判斷112
4.3利用switch語句實現多分支選擇結構117
4.4程序綜合舉例119
4.5提高部分123
4.5.1用條件表達式實現簡單的選擇結構123
4.5.2在程序中使用條件表達式125
本章小結126
習題127
第5章循環結構程序設計130
5.1程序中需要用循環結構130
5.2用while語句和do…while語句實現循環130
5.2.1用while語句實現循環130
5.2.2用do…while語句實現循環133
5.3用for 語句實現循環135
5.3.1for語句的一般形式和執行過程135
5.3.2for循環程序舉例 136
5.4循環的嵌套140
5.5提前結束循環141
5.5.1用break語句提前退出循環 141
5.5.2用continue語句提前結束本次循環143
5.6幾種循環的比較145
5.7循環程序綜合舉例145
5.8提高部分150
5.8.1while和do…while循環的比較150
5.8.2for語句的各種形式152
本章小結155
習題156
第6章利用數組處理批量數據157
6.1為什么要用數組157
6.2怎樣定義和引用一維數組157
6.2.1怎樣定義一維數組158
6.2.2怎樣引用一維數組的元素158
6.2.3一維數組的初始化160
6.2.4一維數組程序舉例161
6.3怎樣定義和引用二維數組164
6.3.1怎樣定義二維數組 164
6.3.2怎樣引用二維數組的元素165
6.3.3二維數組的初始化166
6.3.4二維數組程序舉例167
6.4字符數組171
6.4.1怎樣定義字符數組及對其初始化 171
6.4.2怎樣引用字符數組172
6.4.3字符串和字符串結束標志173
6.4.4怎樣進行字符數組的輸入輸出175
6.4.5字符串處理函數177
6.4.6字符數組應用舉例178
6.5提高部分182
6.5.1為什么在定義二維數組時采用兩對雙括號的形式182
6.5.2對C的字符串函數的詳細說明183
本章小結188
習題189
第7章用函數實現模塊化程序設計190
7.1函數是什么190
7.2函數的定義和調用193
7.2.1為什么要定義函數193
7.2.2怎樣定義函數193
7.2.3怎樣調用函數194
7.2.4對被調用函數的聲明和函數原型197
7.3函數的嵌套調用和遞歸調用200
7.3.1函數的嵌套調用200
7.3.2函數的遞歸調用202
7.4數組作為函數參數208
7.4.1用數組元素作函數實參208
7.4.2用數組名作函數參數210
7.5變量的作用域和生存期217
7.5.1變量的作用域局部變量和全局變量217
7.5.2變量的存儲方式和生存期220
7.5.3關于作用域和生存期的小結224
7.6內部函數和外部函數226
7.6.1什么是內部函數226
7.6.2什么是外部函數226
7.7提高部分229
7.7.1實參求值的順序229
7.7.2遞歸的典型例子Hanoi(漢諾)塔問題229
本章小結233
習題235
第8章善于使用指針237
8.1什么是指針237
8.2指針變量238
8.2.1使用指針變量訪問變量的例子238
8.2.2怎樣定義指針變量240
8.2.3怎樣引用指針變量241
8.2.4指針變量作為函數參數243
8.3通過指針引用數組249
8.3.1數組元素的指針249
8.3.2通過指針引用數組元素250
8.3.3用數組名作函數參數255
8.4通過指針引用字符串260
8.4.1字符串的表示形式260
8.4.2字符指針作函數參數265
8.4.3使用字符指針變量和字符數組的區別269
8.5提高部分272
8.5.1指針使用的技巧272
8.5.2多維數組的指針274
8.5.3指向函數的指針275
8.5.4返回指針值的函數275
8.5.5指針數組276
8.5.6多重指針指向指針的指針276
本章小結278
習題281
第9章使用結構體類型處理組合數據用戶自定義數據類型283
9.1定義和使用結構體變量283
9.1.1自己建立結構體類型283
9.1.2定義結構體類型變量285
9.1.3結構體變量的初始化和引用287
9.2結構體數組291
9.3結構體指針294
9.4用結構體變量和結構體變量的指針作函數參數298
9.5用指針處理鏈表302
9.5.1什么是線性鏈表302
9.5.2建立簡單的靜態鏈表303
9.5.3建立動態鏈表304
9.6提高部分307
9.6.1共用體類型307
9.6.2枚舉類型308
本章小結310
習題311
第10章利用文件保存數據313
10.1C文件的有關概念313
10.1.1什么是文件313
10.1.2文件名314
10.1.3文件的分類314
10.1.4文件緩沖區315
10.1.5文件類型指針315
10.2文件的打開與關閉316
10.2.1用fopen函數打開數據文件317
10.2.2用fclose函數關閉文件318
10.3文件的順序讀寫319
10.3.1向文件讀寫字符319
10.3.2向文件讀寫一個字符串323
10.3.3文件的格式化讀寫327
10.3.4用二進制方式讀寫文件328
10.4文件的隨機讀寫332
10.4.1文件位置標記及其定位332
10.4.2隨機讀寫文件335
10.5提高部分337
10.5.1系統定義的文件類型指針337
10.5.2回車換行符的轉換337
10.5.3fread和fwrite函數用于二進制文件的輸入輸出338
10.5.4文件讀寫的出錯檢測338
本章小結339
習題340
附錄A常用字符與ASCII代碼對照表342
附錄BC語言中的關鍵字343
附錄C運算符和結合性344
附錄DC語言常用語法提要347
附錄EC庫函數352
參考文獻359