本書是河南省省級(jí)精品課程“C語(yǔ)言程序設(shè)計(jì)”的配套教材。全書分為程序設(shè)計(jì)基礎(chǔ)篇和程序設(shè)計(jì)進(jìn)階篇兩大部分:基礎(chǔ)篇介紹了C語(yǔ)言概述,數(shù)據(jù)類型、運(yùn)算符與表達(dá)式,順序結(jié)構(gòu)程序設(shè)計(jì),選擇結(jié)構(gòu)程序設(shè)計(jì),循環(huán)結(jié)構(gòu)程序設(shè)計(jì),數(shù)組,函數(shù)及預(yù)處理命令;進(jìn)階篇主要介紹了指針,結(jié)構(gòu)體與共用體,位運(yùn)算及文件。本書知識(shí)體系完整、結(jié)構(gòu)清晰、敘述簡(jiǎn)潔、例題典型豐富,注重對(duì)讀者進(jìn)行程序設(shè)計(jì)方法的基礎(chǔ)訓(xùn)練,培養(yǎng)良好的程序設(shè)計(jì)風(fēng)格。本書配有網(wǎng)絡(luò)版的教學(xué)平臺(tái)及考試系統(tǒng),并提供相關(guān)的教學(xué)資源(電子課件、例題源代碼等)。本書適合作為高等院校非計(jì)算機(jī)類各專業(yè)“C語(yǔ)言程序設(shè)計(jì)”課程的教材,也可作為計(jì)算機(jī)程序設(shè)計(jì)人員的參考書。
程序設(shè)計(jì)基礎(chǔ)篇
第1章 C語(yǔ)言概述 1
1.1 程序設(shè)計(jì)語(yǔ)言的發(fā)展過(guò)程 1
1.1.1 機(jī)器語(yǔ)言(第一代語(yǔ)言) 1
1.1.2 匯編語(yǔ)言(第二代語(yǔ)言) 1
1.1.3 高級(jí)語(yǔ)言 1
1.2 C語(yǔ)言簡(jiǎn)介 2
1.2.1 C語(yǔ)言的發(fā)展 2
1.2.2 C語(yǔ)言的特點(diǎn) 2
1.2.3 C語(yǔ)言和C++語(yǔ)言 3
1.3 C語(yǔ)言程序的結(jié)構(gòu) 3
1.3.1 簡(jiǎn)單的C語(yǔ)言程序 3
1.3.2 C語(yǔ)言程序的結(jié)構(gòu) 6
1.4 C語(yǔ)言程序的運(yùn)行步驟和集成開發(fā)環(huán)境 7
1.4.1 C語(yǔ)言程序的運(yùn)行步驟 7
1.4.2 C語(yǔ)言的集成開發(fā)環(huán)境 8
小結(jié) 9
習(xí)題1 9
第2章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式 11
2.1 C語(yǔ)言數(shù)據(jù)類型概述 11
2.2 常量 12
2.2.1 常量的概念 12
2.2.2 符號(hào)常量 12
2.2.3 整型常量 13
2.2.4 實(shí)型常量 14
2.2.5 字符常量 15
2.2.6 字符串常量 17
2.3 變量 18
2.3.1 變量的概念及其應(yīng)用 18
2.3.2 整型變量 18
2.3.3 實(shí)型變量 20
2.3.4 字符型變量 22
2.4 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 24
2.4.1 運(yùn)算符概述 24
2.4.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 25
2.5 賦值運(yùn)算符和賦值表達(dá)式 27
2.5.1 賦值運(yùn)算符 27
2.5.2 賦值表達(dá)式及其值 27
2.5.3 復(fù)合賦值運(yùn)算符 28
2.6 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 29
2.7 數(shù)據(jù)類型轉(zhuǎn)換 30
2.7.1 數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換 30
2.7.2 數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換 32
小結(jié) 33
習(xí)題2 33
第3章 順序結(jié)構(gòu)程序設(shè)計(jì) 36
3.1 結(jié)構(gòu)化程序設(shè)計(jì)方法 36
3.1.1 自頂向下、逐步求精、模塊化的結(jié)構(gòu)化程序設(shè)計(jì)方法 36
3.1.2 程序的結(jié)構(gòu) 36
3.2 C語(yǔ)句概述 37
3.2.1 表達(dá)式語(yǔ)句 38
3.2.2 函數(shù)調(diào)用語(yǔ)句 39
3.2.3 控制語(yǔ)句 39
3.2.4 復(fù)合語(yǔ)句 39
3.2.5 空語(yǔ)句 40
3.3 程序的注釋 40
3.4 數(shù)據(jù)的輸入和輸出 40
3.4.1 輸入和輸出的基本概念 40
3.4.2 輸入和輸出的實(shí)現(xiàn) 41
3.5 字符數(shù)據(jù)輸入和輸出函數(shù) 41
3.5.1 字符輸入函數(shù)getchar( ) 41
3.5.2 字符輸出函數(shù)putchar( ) 42
3.6 格式輸入和輸出函數(shù) 42
3.6.1 格式輸入函數(shù)scanf( ) 42
3.6.2 格式輸出函數(shù)printf( ) 46
3.7 順序結(jié)構(gòu)程序設(shè)計(jì)舉例 50
小結(jié) 54
習(xí)題3 54
第4章 選擇結(jié)構(gòu)程序設(shè)計(jì) 57
4.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 57
4.1.1 關(guān)系運(yùn)算符及其優(yōu)先級(jí)和結(jié)合性 57
4.1.2 關(guān)系表達(dá)式 57
4.1.3 使用關(guān)系運(yùn)算符應(yīng)注意的問(wèn)題 58
4.2 邏輯運(yùn)算符和邏輯表達(dá)式 59
4.2.1 邏輯運(yùn)算符及其優(yōu)先級(jí)和結(jié)合性 59
4.2.2 邏輯表達(dá)式 60
4.2.3 使用邏輯運(yùn)算符應(yīng)注意的問(wèn)題 60
4.3 if語(yǔ)句 61
4.3.1 選擇結(jié)構(gòu)引例 61
4.3.2 if-else雙分支結(jié)構(gòu) 62
4.3.3 if單分支結(jié)構(gòu) 66
4.3.4 if語(yǔ)句嵌套形成多分支結(jié)構(gòu) 68
4.4 條件運(yùn)算符和條件表達(dá)式 74
4.4.1 條件運(yùn)算符 74
4.4.2 條件表達(dá)式和求值規(guī)則 74
4.5 switch語(yǔ)句 76
4.5.1 switch語(yǔ)句的一般形式 76
4.5.2 switch語(yǔ)句的功能 76
4.5.3 switch語(yǔ)句使用說(shuō)明 78
4.6 選擇結(jié)構(gòu)程序設(shè)計(jì)舉例 79
4.7 switch語(yǔ)句與多分支if語(yǔ)句的比較 84
小結(jié) 84
習(xí)題4 84
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 89
5.1 循環(huán)結(jié)構(gòu)的引入 89
5.2 三種實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句 89
5.2.1 while語(yǔ)句 89
5.2.2 do-while語(yǔ)句 92
5.2.3 for語(yǔ)句 93
5.3 break語(yǔ)句和continue語(yǔ)句 100
5.3.1 break語(yǔ)句 100
5.3.2 continue語(yǔ)句 101
5.4 循環(huán)嵌套 102
5.4.1 循環(huán)嵌套的概念 102
5.4.2 循環(huán)嵌套常見的形式 102
5.4.3 循環(huán)嵌套的執(zhí)行過(guò)程 102
5.4.4 使用注意事項(xiàng) 103
5.5 綜合程序設(shè)計(jì) 104
5.5.1 窮舉法 104
5.5.2 遞推法 108
5.5.3 迭代法 110
小結(jié) 114
習(xí)題5 114
第6章 數(shù)組 118
6.1 數(shù)組的引入 118
6.1.1 問(wèn)題的提出 118
6.1.2 數(shù)組的基本概念 119
6.1.3 數(shù)組的分類 120
6.2 一維數(shù)組 120
6.2.1 一維數(shù)組的定義 120
6.2.2 一維數(shù)組的引用 120
6.2.3 一維數(shù)組的存儲(chǔ) 121
6.2.4 一維數(shù)組的初始化 121
6.2.5 一維數(shù)組的應(yīng)用舉例 123
6.3 多維數(shù)組 131
6.3.1 二維數(shù)組的定義 131
6.3.2 二維數(shù)組的引用 132
6.3.3 二維數(shù)組的存儲(chǔ) 133
6.3.4 二維數(shù)組的初始化 133
6.3.5 二維數(shù)組應(yīng)用舉例 133
6.4 字符數(shù)組 138
6.4.1 字符數(shù)組的定義與初始化 138
6.4.2 字符數(shù)組的輸入和輸出 139
6.4.3 常用的字符串處理函數(shù) 141
6.4.4 字符數(shù)組的應(yīng)用舉例 144
小結(jié) 147
習(xí)題6 147
第7章 函數(shù) 151
7.1 函數(shù)引入 151
7.2 函數(shù)定義 154
7.2.1 函數(shù)定義的一般形式 154
7.2.2 函數(shù)定義的說(shuō)明 155
7.3 函數(shù)調(diào)用 156
7.3.1 函數(shù)調(diào)用的方法 157
7.3.2 函數(shù)調(diào)用的數(shù)據(jù)傳遞 159
7.3.3 函數(shù)調(diào)用的過(guò)程 160
7.3.4 函數(shù)的返回值 161
7.4 函數(shù)聲明 162
7.4.1 函數(shù)聲明的形式 163
7.4.2 函數(shù)聲明的位置 163
7.5 函數(shù)的嵌套調(diào)用和遞歸調(diào)用 165
7.5.1 函數(shù)的嵌套調(diào)用 165
7.5.2 函數(shù)的遞歸調(diào)用 166
7.6 數(shù)組作為函數(shù)參數(shù) 170
7.6.1 問(wèn)題的提出 170
7.6.2 數(shù)組作為函數(shù)參數(shù)的形式 171
7.7 變量的作用域及存儲(chǔ)類別 180
7.7.1 變量的作用域 180
7.7.2 變量的存儲(chǔ)類別 184
7.7.3 變量的作用域和存儲(chǔ)類別小結(jié) 188
7.8 多文件程序 189
小結(jié) 191
習(xí)題7 191
第8章 預(yù)處理命令 195
8.1 宏定義 195
8.2 文件包含 200
8.3 條件編譯 201
小結(jié) 202
習(xí)題8 202
程序設(shè)計(jì)進(jìn)階篇
第9章 指針 206
9.1 指針的概念 206
9.2 訪問(wèn)變量的地址 207
9.3 定義及初始化指針變量 208
9.3.1 定義指針變量 208
9.3.2 初始化指針變量 209
9.4 通過(guò)指針訪問(wèn)變量 210
9.5 指針的運(yùn)算 213
9.5.1 指針表達(dá)式 213
9.5.2 指針增加和比例因子 215
9.6 指針和數(shù)組 215
9.6.1 指針和一維數(shù)組 215
9.6.2 用指針引用數(shù)組元素 216
9.6.3 指針和二維數(shù)組 219
9.7 指針和字符串 222
9.7.1 指向字符的指針 222
9.7.2 指向字符串的指針 223
9.8 指針與函數(shù) 224
9.8.1 用指針變量作為函數(shù)參數(shù) 224
9.8.2 用指針變量作為函數(shù)返回值 226
9.8.3 指向函數(shù)的指針變量 227
9.9 二級(jí)指針和指針數(shù)組 229
9.9.1 二級(jí)指針 229
9.9.2 指針數(shù)組 230
小結(jié) 234
習(xí)題9 234
第10章 結(jié)構(gòu)體與共用體 243
10.1 結(jié)構(gòu)體引入 243
10.2 結(jié)構(gòu)體變量的使用 244
10.2.1 結(jié)構(gòu)體變量的定義 244
10.2.2 結(jié)構(gòu)體變量的引用 246
10.2.3 結(jié)構(gòu)體變量的初始化 247
10.2.4 結(jié)構(gòu)體變量的使用 248
10.3 結(jié)構(gòu)體數(shù)組 249
10.4 結(jié)構(gòu)體變量作為函數(shù)的參數(shù)和返回值 251
10.5 結(jié)構(gòu)體和指針 255
10.5.1 指向結(jié)構(gòu)體變量的指針 255
10.5.2 指向結(jié)構(gòu)體數(shù)組的指針 256
10.5.3 指向結(jié)構(gòu)體變量的指針作為函數(shù)參數(shù) 258
10.5.4 函數(shù)返回值為指向結(jié)構(gòu)體變量的指針 259
10.6 動(dòng)態(tài)內(nèi)存分配與鏈表 260
10.6.1 動(dòng)態(tài)內(nèi)存函數(shù) 261
10.6.2 用指針處理鏈表 262
10.6.3 鏈表的定義 264
10.6.4 鏈表的基本操作 264
10.7 共用體類型 270
10.7.1 共用體類型的定義 270
10.7.2 共用體變量的定義 270
10.7.3 共用體變量的使用 271
10.7.4 共用體實(shí)例 272
10.8 枚舉類型 273
10.8.1 枚舉類型的定義 273
10.8.2 枚舉變量的定義 274
10.8.3 枚舉變量的賦值和使用 274
10.9 自定義類型 275
小結(jié) 276
習(xí)題10 276
第11章 位運(yùn)算 280
11.1 位運(yùn)算符概述 280
11.1.1 與運(yùn)算 280
11.1.2 或運(yùn)算 282
11.1.3 異或運(yùn)算 284
11.1.4 取反運(yùn)算 285
11.1.5 移位運(yùn)算 285
11.2 位運(yùn)算賦值運(yùn)算符 287
11.3 位域(位段) 287
11.3.1 位域的定義和位域變量的說(shuō)明 287
11.3.2 位域的使用 288
小結(jié) 291
習(xí)題11 291
第12章 文件 293
12.1 文件概述 293
12.2 文件指針的定義 293
12.3 文件的基本操作 294
12.3.1 文件打開函數(shù) 294
12.3.2 文件關(guān)閉函數(shù) 295
12.3.3 文件檢測(cè)函數(shù) 296
12.3.4 文件定位函數(shù) 296
12.3.5 字符讀寫函數(shù) 297
12.3.6 字符串讀寫函數(shù) 301
12.3.7 格式化讀寫函數(shù) 302
12.3.8 數(shù)據(jù)塊讀寫函數(shù) 304
12.4 綜合程序設(shè)計(jì) 305
小結(jié) 314
習(xí)題12 314
附錄A 常用字符與ASCII碼對(duì)照表 317
附錄B 擴(kuò)展ASCII碼對(duì)照表 318
附錄C C語(yǔ)言關(guān)鍵字 319
附錄D C語(yǔ)言的9種控制語(yǔ)句 320
附錄E C語(yǔ)言運(yùn)算符的優(yōu)先級(jí)與
結(jié)合性 321
附錄F 常用的ANSI C標(biāo)準(zhǔn)庫(kù)函數(shù) 323
參考文獻(xiàn) 328