第1章程序設計與C語言1
11計算機與程序、程序設計語言1
12C語言的出現(xiàn)和發(fā)展過程2
13簡單的C語言程序3
14C語言程序的結構和特點6
15運行C程序的步驟與方法7
16程序設計的任務9
本章小結10
習題10
第2章數(shù)據(jù)的存儲與運算11
21數(shù)據(jù)在計算機中是怎樣存儲的11
2.1.1數(shù)據(jù)在計算機中是以二進制形式存儲的11
2.1.2位、字節(jié)和地址12
2.1.3不同類型數(shù)據(jù)的存儲方式13
22整型數(shù)據(jù)的運算與分析15
2.2.1整型數(shù)據(jù)運算程序舉例和分析15
2.2.2整型常量與整型變量17
23實型數(shù)據(jù)的運算與分析20
2.3.1實型數(shù)據(jù)的運算舉例20
2.3.2實型常量的表示形式22
2.3.3實型變量22
24字符型數(shù)據(jù)的運算24
2.4.1字符數(shù)據(jù)運算的簡單例子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語言允許使用的數(shù)據(jù)類型42
2.8.6運算符的優(yōu)先級與結合性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數(shù)據(jù)輸入輸出的概念59
36字符數(shù)據(jù)的輸入輸出61
3.6.1用putchar函數(shù)輸出一個字符61
3.6.2用getchar函數(shù)輸入一個字符63
37簡單的格式輸入與輸出65
3.7.1用簡單的printf函數(shù)輸出數(shù)據(jù)65
3.7.2用簡單的scanf函數(shù)輸入數(shù)據(jù)68
38順序結構程序設計舉例71
39提高部分75
3.9.1關于無符號數(shù)據(jù)與有符號數(shù)據(jù)之間的賦值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語句實現(xiàn)選擇結構94
4.2.1用if語句實現(xiàn)選擇結構舉例94
4.2.2if語句的一般形式96
4.2.3if語句使用的說明96
4.2.4使用嵌套的if語句實現(xiàn)多層條件判斷98
43利用switch語句實現(xiàn)多分支選擇結構102
44程序綜合舉例104
45提高部分107
4.5.1用條件表達式實現(xiàn)簡單的選擇結構107
4.5.2在程序中使用條件表達式109
本章小結110
習題111
第5章循環(huán)結構程序設計114
51程序中需要用循環(huán)結構114
52用while語句和do…while語句實現(xiàn)循環(huán)114
5.2.1用while語句實現(xiàn)循環(huán)114
5.2.2用do…while語句實現(xiàn)循環(huán)116
53用for 語句實現(xiàn)循環(huán)119
5.3.1for語句的一般形式和執(zhí)行過程119
5.3.2for循環(huán)程序舉例 120
54循環(huán)的嵌套123
55提前結束循環(huán)124
5.5.1用break語句提前退出循環(huán) 124
5.5.2用continue語句提前結束本次循環(huán)125
56幾種循環(huán)的比較127
57循環(huán)程序綜合舉例128
58提高部分132
5.8.1while和do…while循環(huán)的比較132
5.8.2for語句的各種形式134
本章小結137
習題137
第6章用數(shù)組處理批量數(shù)據(jù)139
61為什么要用數(shù)組139
62怎樣定義和引用一維數(shù)組139
6.2.1怎樣定義一維數(shù)組140
6.2.2怎樣引用一維數(shù)組的元素140
6.2.3一維數(shù)組的初始化141
6.2.4一維數(shù)組程序舉例142
63怎樣定義和引用二維數(shù)組145
6.3.1怎樣定義二維數(shù)組 145
6.3.2怎樣引用二維數(shù)組的元素146
6.3.3二維數(shù)組的初始化147
6.3.4二維數(shù)組程序舉例148
64字符數(shù)組151
6.4.1怎樣定義字符數(shù)組及對其初始化 151
6.4.2怎樣引用字符數(shù)組153
6.4.3字符串和字符串結束標志153
6.4.4怎樣進行字符數(shù)組的輸入輸出155
6.4.5字符串處理函數(shù)157
6.4.6字符數(shù)組應用舉例158
65提高部分162
6.5.1為什么在定義二維數(shù)組時采用兩對雙括號的形式162
6.5.2對C的字符串函數(shù)的詳細說明163
本章小結167
習題167
第7章用函數(shù)實現(xiàn)模塊化程序設計169
71函數(shù)是什么169
72函數(shù)的定義和調用171
7.2.1為什么要定義函數(shù)171
7.2.2怎樣定義函數(shù)172
7.2.3怎樣調用函數(shù)173
7.2.4對被調用函數(shù)的聲明和函數(shù)原型176
73函數(shù)的嵌套調用和遞歸調用178
7.3.1函數(shù)的嵌套調用178
7.3.2函數(shù)的遞歸調用180
74數(shù)組作為函數(shù)參數(shù)186
7.4.1用數(shù)組元素作為函數(shù)實參186
7.4.2用數(shù)組名作為函數(shù)參數(shù)187
75變量的作用域和生存期194
7.5.1變量的作用域局部變量和全局變量194
7.5.2變量的存儲方式和生存期197
7.5.3關于作用域和生存期的小結200
76內部函數(shù)和外部函數(shù)202
7.6.1什么是內部函數(shù)202
7.6.2什么是外部函數(shù)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指針變量作為函數(shù)參數(shù)218
83通過指針引用數(shù)組223
8.3.1數(shù)組元素的指針223
8.3.2通過指針引用數(shù)組元素224
8.3.3用數(shù)組名作函數(shù)參數(shù)228
84通過指針引用字符串233
8.4.1字符串的表示形式233
8.4.2字符指針作為函數(shù)參數(shù)236
8.4.3使用字符指針變量和字符數(shù)組的區(qū)別241
85提高部分243
8.5.1指針使用的技巧243
8.5.2多維數(shù)組的指針245
8.5.3指向函數(shù)的指針246
8.5.4返回指針值的函數(shù)246
8.5.5指針數(shù)組247
8.5.6多重指針指向指針的指針247
本章小結249
習題252
第9章用結構體類型處理組合數(shù)據(jù)用戶自定義數(shù)據(jù)類型253
91定義和使用結構體變量253
9.1.1自己建立結構體類型253
9.1.2定義結構體類型變量255
9.1.3結構體變量的初始化和引用257
92結構體數(shù)組260
93結構體指針263
94用結構體變量和結構體變量的指針作為函數(shù)參數(shù)267
95用指針處理鏈表270
9.5.1什么是線性鏈表270
9.5.2建立簡單的靜態(tài)鏈表271
9.5.3建立動態(tài)鏈表272
96提高部分274
9.6.1共用體類型275
9.6.2枚舉類型275
本章小結278
習題279
第10章用文件保存數(shù)據(jù)280
101C文件的有關概念280
10.1.1什么是文件280
10.1.2文件名281
10.1.3文件的分類281
10.1.4文件緩沖區(qū)282
10.1.5文件類型指針282
102文件的打開與關閉283
10.2.1用fopen函數(shù)打開數(shù)據(jù)文件284
10.2.2用fclose函數(shù)關閉文件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系統(tǒng)定義的文件類型指針301
10.5.2回車換行符的轉換302
10.5.3fread和fwrite函數(shù)用于二進制文件的輸入輸出302
10.5.4文件讀寫的出錯檢測303
本章小結303
習題305
附錄A常用字符與ASCII碼對照表306
附錄BC語言中的關鍵字307
附錄C運算符和結合性308
附錄DC語言常用語法提要311
附錄EC庫函數(shù)316
參考文獻323
第1章程序設計與C語言1
1.1計算機與程序、程序設計語言1
1.2C語言的出現(xiàn)和發(fā)展過程2
1.3簡單的C語言程序3
1.4運行C程序的步驟與方法7
1.4.1運行C程序的步驟7
1.4.2上機運行C程序的方法8
本章小結16
習題17
第2章數(shù)據(jù)的存儲與運算18
2.1數(shù)據(jù)在計算機中是怎樣存儲的18
2.1.1數(shù)據(jù)在計算機中是以二進制形式存儲的18
2.1.2位、字節(jié)和地址19
2.1.3不同類型數(shù)據(jù)的存儲方式20
2.2整型數(shù)據(jù)的運算與分析22
2.2.1整型數(shù)據(jù)運算程序舉例和分析22
2.2.2整型常量與整型變量24
2.3實型數(shù)據(jù)的運算與分析27
2.3.1實型數(shù)據(jù)的運算舉例27
2.3.2實型常量的表示形式29
2.3.3實型變量30
2.4字符型數(shù)據(jù)的運算32
2.4.1字符數(shù)據(jù)運算的簡單例子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語言允許使用的數(shù)據(jù)類型52
2.8.6運算符的優(yōu)先級與結合性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數(shù)據(jù)輸入輸出的概念71
3.6字符數(shù)據(jù)的輸入輸出72
3.6.1用putchar函數(shù)輸出一個字符73
3.6.2用getchar函數(shù)輸入一個字符74
3.7簡單的格式輸入與輸出76
3.7.1用簡單的printf函數(shù)輸出數(shù)據(jù)77
3.7.2用簡單的scanf函數(shù)輸入數(shù)據(jù)81
3.8順序結構程序設計舉例84
3.9提高部分88
3.9.1關于無符號數(shù)據(jù)與有符號數(shù)據(jù)之間的賦值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語句實現(xiàn)選擇結構108
4.2.1用if語句實現(xiàn)選擇結構舉例108
4.2.2if語句的一般形式110
4.2.3if語句使用的說明111
4.2.4使用嵌套的if語句實現(xiàn)多層條件判斷112
4.3利用switch語句實現(xiàn)多分支選擇結構117
4.4程序綜合舉例119
4.5提高部分123
4.5.1用條件表達式實現(xiàn)簡單的選擇結構123
4.5.2在程序中使用條件表達式125
本章小結126
習題127
第5章循環(huán)結構程序設計130
5.1程序中需要用循環(huán)結構130
5.2用while語句和do…while語句實現(xiàn)循環(huán)130
5.2.1用while語句實現(xiàn)循環(huán)130
5.2.2用do…while語句實現(xiàn)循環(huán)133
5.3用for 語句實現(xiàn)循環(huán)135
5.3.1for語句的一般形式和執(zhí)行過程135
5.3.2for循環(huán)程序舉例 136
5.4循環(huán)的嵌套140
5.5提前結束循環(huán)141
5.5.1用break語句提前退出循環(huán) 141
5.5.2用continue語句提前結束本次循環(huán)143
5.6幾種循環(huán)的比較145
5.7循環(huán)程序綜合舉例145
5.8提高部分150
5.8.1while和do…while循環(huán)的比較150
5.8.2for語句的各種形式152
本章小結155
習題156
第6章利用數(shù)組處理批量數(shù)據(jù)157
6.1為什么要用數(shù)組157
6.2怎樣定義和引用一維數(shù)組157
6.2.1怎樣定義一維數(shù)組158
6.2.2怎樣引用一維數(shù)組的元素158
6.2.3一維數(shù)組的初始化160
6.2.4一維數(shù)組程序舉例161
6.3怎樣定義和引用二維數(shù)組164
6.3.1怎樣定義二維數(shù)組 164
6.3.2怎樣引用二維數(shù)組的元素165
6.3.3二維數(shù)組的初始化166
6.3.4二維數(shù)組程序舉例167
6.4字符數(shù)組171
6.4.1怎樣定義字符數(shù)組及對其初始化 171
6.4.2怎樣引用字符數(shù)組172
6.4.3字符串和字符串結束標志173
6.4.4怎樣進行字符數(shù)組的輸入輸出175
6.4.5字符串處理函數(shù)177
6.4.6字符數(shù)組應用舉例178
6.5提高部分182
6.5.1為什么在定義二維數(shù)組時采用兩對雙括號的形式182
6.5.2對C的字符串函數(shù)的詳細說明183
本章小結188
習題189
第7章用函數(shù)實現(xiàn)模塊化程序設計190
7.1函數(shù)是什么190
7.2函數(shù)的定義和調用193
7.2.1為什么要定義函數(shù)193
7.2.2怎樣定義函數(shù)193
7.2.3怎樣調用函數(shù)194
7.2.4對被調用函數(shù)的聲明和函數(shù)原型197
7.3函數(shù)的嵌套調用和遞歸調用200
7.3.1函數(shù)的嵌套調用200
7.3.2函數(shù)的遞歸調用202
7.4數(shù)組作為函數(shù)參數(shù)208
7.4.1用數(shù)組元素作函數(shù)實參208
7.4.2用數(shù)組名作函數(shù)參數(shù)210
7.5變量的作用域和生存期217
7.5.1變量的作用域局部變量和全局變量217
7.5.2變量的存儲方式和生存期220
7.5.3關于作用域和生存期的小結224
7.6內部函數(shù)和外部函數(shù)226
7.6.1什么是內部函數(shù)226
7.6.2什么是外部函數(shù)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指針變量作為函數(shù)參數(shù)243
8.3通過指針引用數(shù)組249
8.3.1數(shù)組元素的指針249
8.3.2通過指針引用數(shù)組元素250
8.3.3用數(shù)組名作函數(shù)參數(shù)255
8.4通過指針引用字符串260
8.4.1字符串的表示形式260
8.4.2字符指針作函數(shù)參數(shù)265
8.4.3使用字符指針變量和字符數(shù)組的區(qū)別269
8.5提高部分272
8.5.1指針使用的技巧272
8.5.2多維數(shù)組的指針274
8.5.3指向函數(shù)的指針275
8.5.4返回指針值的函數(shù)275
8.5.5指針數(shù)組276
8.5.6多重指針指向指針的指針276
本章小結278
習題281
第9章使用結構體類型處理組合數(shù)據(jù)用戶自定義數(shù)據(jù)類型283
9.1定義和使用結構體變量283
9.1.1自己建立結構體類型283
9.1.2定義結構體類型變量285
9.1.3結構體變量的初始化和引用287
9.2結構體數(shù)組291
9.3結構體指針294
9.4用結構體變量和結構體變量的指針作函數(shù)參數(shù)298
9.5用指針處理鏈表302
9.5.1什么是線性鏈表302
9.5.2建立簡單的靜態(tài)鏈表303
9.5.3建立動態(tài)鏈表304
9.6提高部分307
9.6.1共用體類型307
9.6.2枚舉類型308
本章小結310
習題311
第10章利用文件保存數(shù)據(jù)313
10.1C文件的有關概念313
10.1.1什么是文件313
10.1.2文件名314
10.1.3文件的分類314
10.1.4文件緩沖區(qū)315
10.1.5文件類型指針315
10.2文件的打開與關閉316
10.2.1用fopen函數(shù)打開數(shù)據(jù)文件317
10.2.2用fclose函數(shù)關閉文件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系統(tǒng)定義的文件類型指針337
10.5.2回車換行符的轉換337
10.5.3fread和fwrite函數(shù)用于二進制文件的輸入輸出338
10.5.4文件讀寫的出錯檢測338
本章小結339
習題340
附錄A常用字符與ASCII代碼對照表342
附錄BC語言中的關鍵字343
附錄C運算符和結合性344
附錄DC語言常用語法提要347
附錄EC庫函數(shù)352
參考文獻359