第1章程序設(shè)計(jì)與C語言1
11計(jì)算機(jī)與程序、程序設(shè)計(jì)語言1
12C語言的出現(xiàn)和發(fā)展過程2
13簡單的C語言程序3
14C語言程序的結(jié)構(gòu)和特點(diǎn)6
15運(yùn)行C程序的步驟與方法7
16程序設(shè)計(jì)的任務(wù)9
本章小結(jié)10
習(xí)題10
第2章數(shù)據(jù)的存儲(chǔ)與運(yùn)算11
21數(shù)據(jù)在計(jì)算機(jī)中是怎樣存儲(chǔ)的11
2.1.1數(shù)據(jù)在計(jì)算機(jī)中是以二進(jìn)制形式存儲(chǔ)的11
2.1.2位、字節(jié)和地址12
2.1.3不同類型數(shù)據(jù)的存儲(chǔ)方式13
22整型數(shù)據(jù)的運(yùn)算與分析15
2.2.1整型數(shù)據(jù)運(yùn)算程序舉例和分析15
2.2.2整型常量與整型變量17
23實(shí)型數(shù)據(jù)的運(yùn)算與分析20
2.3.1實(shí)型數(shù)據(jù)的運(yùn)算舉例20
2.3.2實(shí)型常量的表示形式22
2.3.3實(shí)型變量22
24字符型數(shù)據(jù)的運(yùn)算24
2.4.1字符數(shù)據(jù)運(yùn)算的簡單例子24
2.4.2字符常量和字符變量25
2.4.3字符串常量29
25符號(hào)常量30
2.5.1為什么要用符號(hào)常量 31
2.5.2符號(hào)常量的性質(zhì)和使用方法32
26算術(shù)運(yùn)算符和算術(shù)表達(dá)式34
2.6.1算術(shù)運(yùn)算符34
2.6.2算術(shù)表達(dá)式36
27C運(yùn)算符和C表達(dá)式38
2.7.1C運(yùn)算符38
2.7.2C表達(dá)式38
28提高部分39
2.8.1求補(bǔ)碼的方法39
2.8.2整型常量的表示形式39
2.8.3整型變量的類型40
2.8.4整型常量的類型41
2.8.5C語言允許使用的數(shù)據(jù)類型42
2.8.6運(yùn)算符的優(yōu)先級(jí)與結(jié)合性42
本章小結(jié)43
習(xí)題44
第3章最簡單的C程序設(shè)計(jì)順序程序設(shè)計(jì)46
31算法是程序的靈魂46
3.1.1什么是算法46
3.1.2怎樣表示算法48
32程序的三種基本結(jié)構(gòu)51
33C語句綜述52
34賦值表達(dá)式和賦值語句55
3.4.1賦值表達(dá)式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ù)輸出一個(gè)字符61
3.6.2用getchar函數(shù)輸入一個(gè)字符63
37簡單的格式輸入與輸出65
3.7.1用簡單的printf函數(shù)輸出數(shù)據(jù)65
3.7.2用簡單的scanf函數(shù)輸入數(shù)據(jù)68
38順序結(jié)構(gòu)程序設(shè)計(jì)舉例71
39提高部分75
3.9.1關(guān)于無符號(hào)數(shù)據(jù)與有符號(hào)數(shù)據(jù)之間的賦值75
3.9.2較復(fù)雜的輸入輸出格式控制77
3.9.3簡單易用的C 的輸入輸出84
本章小結(jié)85
習(xí)題86
第4章選擇結(jié)構(gòu)程序設(shè)計(jì)88
41條件判斷88
4.1.1條件判斷的含義88
4.1.2關(guān)系運(yùn)算符和關(guān)系表達(dá)式89
4.1.3邏輯運(yùn)算符和邏輯表達(dá)式90
42用if語句實(shí)現(xiàn)選擇結(jié)構(gòu)94
4.2.1用if語句實(shí)現(xiàn)選擇結(jié)構(gòu)舉例94
4.2.2if語句的一般形式96
4.2.3if語句使用的說明96
4.2.4使用嵌套的if語句實(shí)現(xiàn)多層條件判斷98
43利用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)102
44程序綜合舉例104
45提高部分107
4.5.1用條件表達(dá)式實(shí)現(xiàn)簡單的選擇結(jié)構(gòu)107
4.5.2在程序中使用條件表達(dá)式109
本章小結(jié)110
習(xí)題111
第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)114
51程序中需要用循環(huán)結(jié)構(gòu)114
52用while語句和do…while語句實(shí)現(xiàn)循環(huán)114
5.2.1用while語句實(shí)現(xiàn)循環(huán)114
5.2.2用do…while語句實(shí)現(xiàn)循環(huán)116
53用for 語句實(shí)現(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ù)組及對(duì)其初始化 151
6.4.2怎樣引用字符數(shù)組153
6.4.3字符串和字符串結(jié)束標(biāo)志153
6.4.4怎樣進(jìn)行字符數(shù)組的輸入輸出155
6.4.5字符串處理函數(shù)157
6.4.6字符數(shù)組應(yīng)用舉例158
65提高部分162
6.5.1為什么在定義二維數(shù)組時(shí)采用兩對(duì)雙括號(hào)的形式162
6.5.2對(duì)C的字符串函數(shù)的詳細(xì)說明163
本章小結(jié)167
習(xí)題167
第7章用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)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對(duì)被調(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ù)實(shí)參186
7.4.2用數(shù)組名作為函數(shù)參數(shù)187
75變量的作用域和生存期194
7.5.1變量的作用域局部變量和全局變量194
7.5.2變量的存儲(chǔ)方式和生存期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實(shí)參求值的順序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建立動(dòng)態(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向文件讀寫一個(gè)字符串289
10.3.3文件的格式化讀寫293
10.3.4用二進(jìn)制方式讀寫文件293
104文件的隨機(jī)讀寫297
10.4.1文件位置標(biāo)記及其定位297
10.4.2隨機(jī)讀寫文件300
105提高部分301
10.5.1系統(tǒng)定義的文件類型指針301
10.5.2回車換行符的轉(zhuǎn)換302
10.5.3fread和fwrite函數(shù)用于二進(jìn)制文件的輸入輸出302
10.5.4文件讀寫的出錯(cuò)檢測(cè)303
本章小結(jié)303
習(xí)題305
附錄A常用字符與ASCII碼對(duì)照表306
附錄BC語言中的關(guān)鍵字307
附錄C運(yùn)算符和結(jié)合性308
附錄DC語言常用語法提要311
附錄EC庫函數(shù)316
參考文獻(xiàn)323
第1章程序設(shè)計(jì)與C語言1
1.1計(jì)算機(jī)與程序、程序設(shè)計(jì)語言1
1.2C語言的出現(xiàn)和發(fā)展過程2
1.3簡單的C語言程序3
1.4運(yùn)行C程序的步驟與方法7
1.4.1運(yùn)行C程序的步驟7
1.4.2上機(jī)運(yùn)行C程序的方法8
本章小結(jié)16
習(xí)題17
第2章數(shù)據(jù)的存儲(chǔ)與運(yùn)算18
2.1數(shù)據(jù)在計(jì)算機(jī)中是怎樣存儲(chǔ)的18
2.1.1數(shù)據(jù)在計(jì)算機(jī)中是以二進(jìn)制形式存儲(chǔ)的18
2.1.2位、字節(jié)和地址19
2.1.3不同類型數(shù)據(jù)的存儲(chǔ)方式20
2.2整型數(shù)據(jù)的運(yùn)算與分析22
2.2.1整型數(shù)據(jù)運(yùn)算程序舉例和分析22
2.2.2整型常量與整型變量24
2.3實(shí)型數(shù)據(jù)的運(yùn)算與分析27
2.3.1實(shí)型數(shù)據(jù)的運(yùn)算舉例27
2.3.2實(shí)型常量的表示形式29
2.3.3實(shí)型變量30
2.4字符型數(shù)據(jù)的運(yùn)算32
2.4.1字符數(shù)據(jù)運(yùn)算的簡單例子32
2.4.2字符常量和字符變量33
2.4.3字符串常量38
2.5符號(hào)常量39
2.5.1為什么要用符號(hào)常量 39
2.5.2符號(hào)常量的性質(zhì)和使用方法42
2.6算術(shù)運(yùn)算符和算術(shù)表達(dá)式43
2.6.1算術(shù)運(yùn)算符44
2.6.2算術(shù)表達(dá)式45
2.7C運(yùn)算符和C表達(dá)式47
2.7.1C運(yùn)算符47
2.7.2C表達(dá)式48
2.8提高部分48
2.8.1求補(bǔ)碼的方法48
2.8.2整型常量的表示形式49
2.8.3整型變量的類型50
2.8.4整型常量的類型51
2.8.5C語言允許使用的數(shù)據(jù)類型52
2.8.6運(yùn)算符的優(yōu)先級(jí)與結(jié)合性52
本章小結(jié)53
習(xí)題54
第3章最簡單的C程序設(shè)計(jì)順序程序設(shè)計(jì)56
3.1算法是程序的靈魂56
3.1.1什么是算法56
3.1.2怎樣表示算法58
3.2程序的三種基本結(jié)構(gòu)61
3.3C語句綜述63
3.4賦值表達(dá)式和賦值語句65
3.4.1賦值表達(dá)式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ù)輸出一個(gè)字符73
3.6.2用getchar函數(shù)輸入一個(gè)字符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è)計(jì)舉例84
3.9提高部分88
3.9.1關(guān)于無符號(hào)數(shù)據(jù)與有符號(hào)數(shù)據(jù)之間的賦值88
3.9.2較復(fù)雜的輸入輸出格式控制90
3.9.3簡單易用的C 的輸入輸出98
本章小結(jié)99
習(xí)題100
第4章選擇結(jié)構(gòu)程序設(shè)計(jì)102
4.1條件判斷102
4.1.1條件判斷的含義102
4.1.2關(guān)系運(yùn)算符和關(guān)系表達(dá)式103
4.1.3邏輯運(yùn)算符和邏輯表達(dá)式105
4.2用if語句實(shí)現(xiàn)選擇結(jié)構(gòu)108
4.2.1用if語句實(shí)現(xiàn)選擇結(jié)構(gòu)舉例108
4.2.2if語句的一般形式110
4.2.3if語句使用的說明111
4.2.4使用嵌套的if語句實(shí)現(xiàn)多層條件判斷112
4.3利用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)117
4.4程序綜合舉例119
4.5提高部分123
4.5.1用條件表達(dá)式實(shí)現(xiàn)簡單的選擇結(jié)構(gòu)123
4.5.2在程序中使用條件表達(dá)式125
本章小結(jié)126
習(xí)題127
第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)130
5.1程序中需要用循環(huán)結(jié)構(gòu)130
5.2用while語句和do…while語句實(shí)現(xiàn)循環(huán)130
5.2.1用while語句實(shí)現(xiàn)循環(huán)130
5.2.2用do…while語句實(shí)現(xiàn)循環(huán)133
5.3用for 語句實(shí)現(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ù)組及對(duì)其初始化 171
6.4.2怎樣引用字符數(shù)組172
6.4.3字符串和字符串結(jié)束標(biāo)志173
6.4.4怎樣進(jìn)行字符數(shù)組的輸入輸出175
6.4.5字符串處理函數(shù)177
6.4.6字符數(shù)組應(yīng)用舉例178
6.5提高部分182
6.5.1為什么在定義二維數(shù)組時(shí)采用兩對(duì)雙括號(hào)的形式182
6.5.2對(duì)C的字符串函數(shù)的詳細(xì)說明183
本章小結(jié)188
習(xí)題189
第7章用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)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對(duì)被調(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ù)實(shí)參208
7.4.2用數(shù)組名作函數(shù)參數(shù)210
7.5變量的作用域和生存期217
7.5.1變量的作用域局部變量和全局變量217
7.5.2變量的存儲(chǔ)方式和生存期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實(shí)參求值的順序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建立動(dòng)態(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向文件讀寫一個(gè)字符串323
10.3.3文件的格式化讀寫327
10.3.4用二進(jìn)制方式讀寫文件328
10.4文件的隨機(jī)讀寫332
10.4.1文件位置標(biāo)記及其定位332
10.4.2隨機(jī)讀寫文件335
10.5提高部分337
10.5.1系統(tǒng)定義的文件類型指針337
10.5.2回車換行符的轉(zhuǎn)換337
10.5.3fread和fwrite函數(shù)用于二進(jìn)制文件的輸入輸出338
10.5.4文件讀寫的出錯(cuò)檢測(cè)338
本章小結(jié)339
習(xí)題340
附錄A常用字符與ASCII代碼對(duì)照表342
附錄BC語言中的關(guān)鍵字343
附錄C運(yùn)算符和結(jié)合性344
附錄DC語言常用語法提要347
附錄EC庫函數(shù)352
參考文獻(xiàn)359