第1章程序設(shè)計(jì)與C語(yǔ)言1
11計(jì)算機(jī)與程序、程序設(shè)計(jì)語(yǔ)言1
12C語(yǔ)言的出現(xiàn)和發(fā)展過(guò)程2
13簡(jiǎn)單的C語(yǔ)言程序3
14C語(yǔ)言程序的結(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)算的簡(jiǎ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語(yǔ)言允許使用的數(shù)據(jù)類型42
2.8.6運(yùn)算符的優(yōu)先級(jí)與結(jié)合性42
本章小結(jié)43
習(xí)題44
第3章最簡(jiǎn)單的C程序設(shè)計(jì)順序程序設(shè)計(jì)46
31算法是程序的靈魂46
3.1.1什么是算法46
3.1.2怎樣表示算法48
32程序的三種基本結(jié)構(gòu)51
33C語(yǔ)句綜述52
34賦值表達(dá)式和賦值語(yǔ)句55
3.4.1賦值表達(dá)式55
3.4.2賦值過(guò)程中的類型轉(zhuǎn)換57
3.4.3賦值語(yǔ)句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簡(jiǎn)單的格式輸入與輸出65
3.7.1用簡(jiǎn)單的printf函數(shù)輸出數(shù)據(jù)65
3.7.2用簡(jiǎn)單的scanf函數(shù)輸入數(shù)據(jù)68
38順序結(jié)構(gòu)程序設(shè)計(jì)舉例71
39提高部分75
3.9.1關(guān)于無(wú)符號(hào)數(shù)據(jù)與有符號(hào)數(shù)據(jù)之間的賦值75
3.9.2較復(fù)雜的輸入輸出格式控制77
3.9.3簡(jiǎn)單易用的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語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)94
4.2.1用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)舉例94
4.2.2if語(yǔ)句的一般形式96
4.2.3if語(yǔ)句使用的說(shuō)明96
4.2.4使用嵌套的if語(yǔ)句實(shí)現(xiàn)多層條件判斷98
43利用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)102
44程序綜合舉例104
45提高部分107
4.5.1用條件表達(dá)式實(shí)現(xiàn)簡(jiǎ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語(yǔ)句和do…while語(yǔ)句實(shí)現(xiàn)循環(huán)114
5.2.1用while語(yǔ)句實(shí)現(xiàn)循環(huán)114
5.2.2用do…while語(yǔ)句實(shí)現(xiàn)循環(huán)116
53用for 語(yǔ)句實(shí)現(xiàn)循環(huán)119
5.3.1for語(yǔ)句的一般形式和執(zhí)行過(guò)程119
5.3.2for循環(huán)程序舉例 120
54循環(huán)的嵌套123
55提前結(jié)束循環(huán)124
5.5.1用break語(yǔ)句提前退出循環(huán) 124
5.5.2用continue語(yǔ)句提前結(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語(yǔ)句的各種形式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ì)說(shuō)明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(漢諾)塔問(wèn)題205
本章小結(jié)208
習(xí)題210
第8章善于使用指針212
81什么是指針212
82指針變量213
8.2.1使用指針變量訪問(wèn)變量的例子213
8.2.2怎樣定義指針變量214
8.2.3怎樣引用指針變量216
8.2.4指針變量作為函數(shù)參數(shù)218
83通過(guò)指針引用數(shù)組223
8.3.1數(shù)組元素的指針223
8.3.2通過(guò)指針引用數(shù)組元素224
8.3.3用數(shù)組名作函數(shù)參數(shù)228
84通過(guò)指針引用字符串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建立簡(jiǎn)單的靜態(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文件的打開(kāi)與關(guān)閉283
10.2.1用fopen函數(shù)打開(kāi)數(shù)據(jù)文件284
10.2.2用fclose函數(shù)關(guān)閉文件285
103文件的順序讀寫(xiě)285
10.3.1向文件讀寫(xiě)字符286
10.3.2向文件讀寫(xiě)一個(gè)字符串289
10.3.3文件的格式化讀寫(xiě)293
10.3.4用二進(jìn)制方式讀寫(xiě)文件293
104文件的隨機(jī)讀寫(xiě)297
10.4.1文件位置標(biāo)記及其定位297
10.4.2隨機(jī)讀寫(xiě)文件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文件讀寫(xiě)的出錯(cuò)檢測(cè)303
本章小結(jié)303
習(xí)題305
附錄A常用字符與ASCII碼對(duì)照表306
附錄BC語(yǔ)言中的關(guān)鍵字307
附錄C運(yùn)算符和結(jié)合性308
附錄DC語(yǔ)言常用語(yǔ)法提要311
附錄EC庫(kù)函數(shù)316
參考文獻(xiàn)323
第1章程序設(shè)計(jì)與C語(yǔ)言1
1.1計(jì)算機(jī)與程序、程序設(shè)計(jì)語(yǔ)言1
1.2C語(yǔ)言的出現(xiàn)和發(fā)展過(guò)程2
1.3簡(jiǎn)單的C語(yǔ)言程序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)算的簡(jiǎ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語(yǔ)言允許使用的數(shù)據(jù)類型52
2.8.6運(yùn)算符的優(yōu)先級(jí)與結(jié)合性52
本章小結(jié)53
習(xí)題54
第3章最簡(jiǎn)單的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語(yǔ)句綜述63
3.4賦值表達(dá)式和賦值語(yǔ)句65
3.4.1賦值表達(dá)式65
3.4.2賦值過(guò)程中的類型轉(zhuǎn)換68
3.4.3賦值語(yǔ)句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簡(jiǎn)單的格式輸入與輸出76
3.7.1用簡(jiǎn)單的printf函數(shù)輸出數(shù)據(jù)77
3.7.2用簡(jiǎn)單的scanf函數(shù)輸入數(shù)據(jù)81
3.8順序結(jié)構(gòu)程序設(shè)計(jì)舉例84
3.9提高部分88
3.9.1關(guān)于無(wú)符號(hào)數(shù)據(jù)與有符號(hào)數(shù)據(jù)之間的賦值88
3.9.2較復(fù)雜的輸入輸出格式控制90
3.9.3簡(jiǎn)單易用的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語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)108
4.2.1用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)舉例108
4.2.2if語(yǔ)句的一般形式110
4.2.3if語(yǔ)句使用的說(shuō)明111
4.2.4使用嵌套的if語(yǔ)句實(shí)現(xiàn)多層條件判斷112
4.3利用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)117
4.4程序綜合舉例119
4.5提高部分123
4.5.1用條件表達(dá)式實(shí)現(xiàn)簡(jiǎ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語(yǔ)句和do…while語(yǔ)句實(shí)現(xiàn)循環(huán)130
5.2.1用while語(yǔ)句實(shí)現(xiàn)循環(huán)130
5.2.2用do…while語(yǔ)句實(shí)現(xiàn)循環(huán)133
5.3用for 語(yǔ)句實(shí)現(xiàn)循環(huán)135
5.3.1for語(yǔ)句的一般形式和執(zhí)行過(guò)程135
5.3.2for循環(huán)程序舉例 136
5.4循環(huán)的嵌套140
5.5提前結(jié)束循環(huán)141
5.5.1用break語(yǔ)句提前退出循環(huán) 141
5.5.2用continue語(yǔ)句提前結(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語(yǔ)句的各種形式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ì)說(shuō)明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(漢諾)塔問(wèn)題229
本章小結(jié)233
習(xí)題235
第8章善于使用指針237
8.1什么是指針237
8.2指針變量238
8.2.1使用指針變量訪問(wèn)變量的例子238
8.2.2怎樣定義指針變量240
8.2.3怎樣引用指針變量241
8.2.4指針變量作為函數(shù)參數(shù)243
8.3通過(guò)指針引用數(shù)組249
8.3.1數(shù)組元素的指針249
8.3.2通過(guò)指針引用數(shù)組元素250
8.3.3用數(shù)組名作函數(shù)參數(shù)255
8.4通過(guò)指針引用字符串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建立簡(jiǎn)單的靜態(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文件的打開(kāi)與關(guān)閉316
10.2.1用fopen函數(shù)打開(kāi)數(shù)據(jù)文件317
10.2.2用fclose函數(shù)關(guān)閉文件318
10.3文件的順序讀寫(xiě)319
10.3.1向文件讀寫(xiě)字符319
10.3.2向文件讀寫(xiě)一個(gè)字符串323
10.3.3文件的格式化讀寫(xiě)327
10.3.4用二進(jìn)制方式讀寫(xiě)文件328
10.4文件的隨機(jī)讀寫(xiě)332
10.4.1文件位置標(biāo)記及其定位332
10.4.2隨機(jī)讀寫(xiě)文件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文件讀寫(xiě)的出錯(cuò)檢測(cè)338
本章小結(jié)339
習(xí)題340
附錄A常用字符與ASCII代碼對(duì)照表342
附錄BC語(yǔ)言中的關(guān)鍵字343
附錄C運(yùn)算符和結(jié)合性344
附錄DC語(yǔ)言常用語(yǔ)法提要347
附錄EC庫(kù)函數(shù)352
參考文獻(xiàn)359