第1章程序設(shè)計與C語言1
11計算機與程序、程序設(shè)計語言1
12C語言的出現(xiàn)和發(fā)展過程2
13簡單的C語言程序3
14C語言程序的結(jié)構(gòu)和特點6
15運行C程序的步驟與方法7
16程序設(shè)計的任務(wù)9
本章小結(jié)10
習(xí)題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符號常量的性質(zhì)和使用方法32
26算術(shù)運算符和算術(shù)表達式34
2.6.1算術(shù)運算符34
2.6.2算術(shù)表達式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)先級與結(jié)合性42
本章小結(jié)43
習(xí)題44
第3章最簡單的C程序設(shè)計順序程序設(shè)計46
31算法是程序的靈魂46
3.1.1什么是算法46
3.1.2怎樣表示算法48
32程序的三種基本結(jié)構(gòu)51
33C語句綜述52
34賦值表達式和賦值語句55
3.4.1賦值表達式55
3.4.2賦值過程中的類型轉(zhuǎn)換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順序結(jié)構(gòu)程序設(shè)計舉例71
39提高部分75
3.9.1關(guān)于無符號數(shù)據(jù)與有符號數(shù)據(jù)之間的賦值75
3.9.2較復(fù)雜的輸入輸出格式控制77
3.9.3簡單易用的C 的輸入輸出84
本章小結(jié)85
習(xí)題86
第4章選擇結(jié)構(gòu)程序設(shè)計88
41條件判斷88
4.1.1條件判斷的含義88
4.1.2關(guān)系運算符和關(guān)系表達式89
4.1.3邏輯運算符和邏輯表達式90
42用if語句實現(xiàn)選擇結(jié)構(gòu)94
4.2.1用if語句實現(xiàn)選擇結(jié)構(gòu)舉例94
4.2.2if語句的一般形式96
4.2.3if語句使用的說明96
4.2.4使用嵌套的if語句實現(xiàn)多層條件判斷98
43利用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)102
44程序綜合舉例104
45提高部分107
4.5.1用條件表達式實現(xiàn)簡單的選擇結(jié)構(gòu)107
4.5.2在程序中使用條件表達式109
本章小結(jié)110
習(xí)題111
第5章循環(huán)結(jié)構(gòu)程序設(shè)計114
51程序中需要用循環(huán)結(jié)構(gòu)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提前結(jié)束循環(huán)124
5.5.1用break語句提前退出循環(huán) 124
5.5.2用continue語句提前結(jié)束本次循環(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
本章小結(jié)137
習(xí)題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字符串和字符串結(jié)束標志153
6.4.4怎樣進行字符數(shù)組的輸入輸出155
6.4.5字符串處理函數(shù)157
6.4.6字符數(shù)組應(yīng)用舉例158
65提高部分162
6.5.1為什么在定義二維數(shù)組時采用兩對雙括號的形式162
6.5.2對C的字符串函數(shù)的詳細說明163
本章小結(jié)167
習(xí)題167
第7章用函數(shù)實現(xiàn)模塊化程序設(shè)計169
71函數(shù)是什么169
72函數(shù)的定義和調(diào)用171
7.2.1為什么要定義函數(shù)171
7.2.2怎樣定義函數(shù)172
7.2.3怎樣調(diào)用函數(shù)173
7.2.4對被調(diào)用函數(shù)的聲明和函數(shù)原型176
73函數(shù)的嵌套調(diào)用和遞歸調(diào)用178
7.3.1函數(shù)的嵌套調(diào)用178
7.3.2函數(shù)的遞歸調(diào)用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關(guān)于作用域和生存期的小結(jié)200
76內(nèi)部函數(shù)和外部函數(shù)202
7.6.1什么是內(nèi)部函數(shù)202
7.6.2什么是外部函數(shù)202
77提高部分204
7.7.1實參求值的順序204
7.7.2遞歸的典型例子Hanoi(漢諾)塔問題205
本章小結(jié)208
習(xí)題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
本章小結(jié)249
習(xí)題252
第9章用結(jié)構(gòu)體類型處理組合數(shù)據(jù)用戶自定義數(shù)據(jù)類型253
91定義和使用結(jié)構(gòu)體變量253
9.1.1自己建立結(jié)構(gòu)體類型253
9.1.2定義結(jié)構(gòu)體類型變量255
9.1.3結(jié)構(gòu)體變量的初始化和引用257
92結(jié)構(gòu)體數(shù)組260
93結(jié)構(gòu)體指針263
94用結(jié)構(gòu)體變量和結(jié)構(gòu)體變量的指針作為函數(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
本章小結(jié)278
習(xí)題279
第10章用文件保存數(shù)據(jù)280
101C文件的有關(guān)概念280
10.1.1什么是文件280
10.1.2文件名281
10.1.3文件的分類281
10.1.4文件緩沖區(qū)282
10.1.5文件類型指針282
102文件的打開與關(guān)閉283
10.2.1用fopen函數(shù)打開數(shù)據(jù)文件284
10.2.2用fclose函數(shù)關(guān)閉文件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回車換行符的轉(zhuǎn)換302
10.5.3fread和fwrite函數(shù)用于二進制文件的輸入輸出302
10.5.4文件讀寫的出錯檢測303
本章小結(jié)303
習(xí)題305
附錄A常用字符與ASCII碼對照表306
附錄BC語言中的關(guān)鍵字307
附錄C運算符和結(jié)合性308
附錄DC語言常用語法提要311
附錄EC庫函數(shù)316
參考文獻323
第1章程序設(shè)計與C語言1
1.1計算機與程序、程序設(shè)計語言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
本章小結(jié)16
習(xí)題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符號常量的性質(zhì)和使用方法42
2.6算術(shù)運算符和算術(shù)表達式43
2.6.1算術(shù)運算符44
2.6.2算術(shù)表達式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)先級與結(jié)合性52
本章小結(jié)53
習(xí)題54
第3章最簡單的C程序設(shè)計順序程序設(shè)計56
3.1算法是程序的靈魂56
3.1.1什么是算法56
3.1.2怎樣表示算法58
3.2程序的三種基本結(jié)構(gòu)61
3.3C語句綜述63
3.4賦值表達式和賦值語句65
3.4.1賦值表達式65
3.4.2賦值過程中的類型轉(zhuǎn)換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順序結(jié)構(gòu)程序設(shè)計舉例84
3.9提高部分88
3.9.1關(guān)于無符號數(shù)據(jù)與有符號數(shù)據(jù)之間的賦值88
3.9.2較復(fù)雜的輸入輸出格式控制90
3.9.3簡單易用的C 的輸入輸出98
本章小結(jié)99
習(xí)題100
第4章選擇結(jié)構(gòu)程序設(shè)計102
4.1條件判斷102
4.1.1條件判斷的含義102
4.1.2關(guān)系運算符和關(guān)系表達式103
4.1.3邏輯運算符和邏輯表達式105
4.2用if語句實現(xiàn)選擇結(jié)構(gòu)108
4.2.1用if語句實現(xiàn)選擇結(jié)構(gòu)舉例108
4.2.2if語句的一般形式110
4.2.3if語句使用的說明111
4.2.4使用嵌套的if語句實現(xiàn)多層條件判斷112
4.3利用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)117
4.4程序綜合舉例119
4.5提高部分123
4.5.1用條件表達式實現(xiàn)簡單的選擇結(jié)構(gòu)123
4.5.2在程序中使用條件表達式125
本章小結(jié)126
習(xí)題127
第5章循環(huán)結(jié)構(gòu)程序設(shè)計130
5.1程序中需要用循環(huán)結(jié)構(gòu)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提前結(jié)束循環(huán)141
5.5.1用break語句提前退出循環(huán) 141
5.5.2用continue語句提前結(jié)束本次循環(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
本章小結(jié)155
習(xí)題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字符串和字符串結(jié)束標志173
6.4.4怎樣進行字符數(shù)組的輸入輸出175
6.4.5字符串處理函數(shù)177
6.4.6字符數(shù)組應(yīng)用舉例178
6.5提高部分182
6.5.1為什么在定義二維數(shù)組時采用兩對雙括號的形式182
6.5.2對C的字符串函數(shù)的詳細說明183
本章小結(jié)188
習(xí)題189
第7章用函數(shù)實現(xiàn)模塊化程序設(shè)計190
7.1函數(shù)是什么190
7.2函數(shù)的定義和調(diào)用193
7.2.1為什么要定義函數(shù)193
7.2.2怎樣定義函數(shù)193
7.2.3怎樣調(diào)用函數(shù)194
7.2.4對被調(diào)用函數(shù)的聲明和函數(shù)原型197
7.3函數(shù)的嵌套調(diào)用和遞歸調(diào)用200
7.3.1函數(shù)的嵌套調(diào)用200
7.3.2函數(shù)的遞歸調(diào)用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關(guān)于作用域和生存期的小結(jié)224
7.6內(nèi)部函數(shù)和外部函數(shù)226
7.6.1什么是內(nèi)部函數(shù)226
7.6.2什么是外部函數(shù)226
7.7提高部分229
7.7.1實參求值的順序229
7.7.2遞歸的典型例子Hanoi(漢諾)塔問題229
本章小結(jié)233
習(xí)題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
本章小結(jié)278
習(xí)題281
第9章使用結(jié)構(gòu)體類型處理組合數(shù)據(jù)用戶自定義數(shù)據(jù)類型283
9.1定義和使用結(jié)構(gòu)體變量283
9.1.1自己建立結(jié)構(gòu)體類型283
9.1.2定義結(jié)構(gòu)體類型變量285
9.1.3結(jié)構(gòu)體變量的初始化和引用287
9.2結(jié)構(gòu)體數(shù)組291
9.3結(jié)構(gòu)體指針294
9.4用結(jié)構(gòu)體變量和結(jié)構(gòu)體變量的指針作函數(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
本章小結(jié)310
習(xí)題311
第10章利用文件保存數(shù)據(jù)313
10.1C文件的有關(guān)概念313
10.1.1什么是文件313
10.1.2文件名314
10.1.3文件的分類314
10.1.4文件緩沖區(qū)315
10.1.5文件類型指針315
10.2文件的打開與關(guān)閉316
10.2.1用fopen函數(shù)打開數(shù)據(jù)文件317
10.2.2用fclose函數(shù)關(guān)閉文件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回車換行符的轉(zhuǎn)換337
10.5.3fread和fwrite函數(shù)用于二進制文件的輸入輸出338
10.5.4文件讀寫的出錯檢測338
本章小結(jié)339
習(xí)題340
附錄A常用字符與ASCII代碼對照表342
附錄BC語言中的關(guān)鍵字343
附錄C運算符和結(jié)合性344
附錄DC語言常用語法提要347
附錄EC庫函數(shù)352
參考文獻359