本書是河南省省級精品課程“C語言程序設(shè)計”的配套教材。全書分為程序設(shè)計基礎(chǔ)篇和程序設(shè)計進(jìn)階篇兩大部分:基礎(chǔ)篇介紹了C語言概述,數(shù)據(jù)類型、運算符與表達(dá)式,順序結(jié)構(gòu)程序設(shè)計,選擇結(jié)構(gòu)程序設(shè)計,循環(huán)結(jié)構(gòu)程序設(shè)計,數(shù)組,函數(shù)及預(yù)處理命令;進(jìn)階篇主要介紹了指針,結(jié)構(gòu)體與共用體,位運算及文件。本書知識體系完整、結(jié)構(gòu)清晰、敘述簡潔、例題典型豐富,注重對讀者進(jìn)行程序設(shè)計方法的基礎(chǔ)訓(xùn)練,培養(yǎng)良好的程序設(shè)計風(fēng)格。本書配有網(wǎng)絡(luò)版的教學(xué)平臺及考試系統(tǒng),并提供相關(guān)的教學(xué)資源(電子課件、例題源代碼等)。本書適合作為高等院校非計算機(jī)類各專業(yè)“C語言程序設(shè)計”課程的教材,也可作為計算機(jī)程序設(shè)計人員的參考書。
程序設(shè)計基礎(chǔ)篇
第1章 C語言概述 1
1.1 程序設(shè)計語言的發(fā)展過程 1
1.1.1 機(jī)器語言(第一代語言) 1
1.1.2 匯編語言(第二代語言) 1
1.1.3 高級語言 1
1.2 C語言簡介 2
1.2.1 C語言的發(fā)展 2
1.2.2 C語言的特點 2
1.2.3 C語言和C++語言 3
1.3 C語言程序的結(jié)構(gòu) 3
1.3.1 簡單的C語言程序 3
1.3.2 C語言程序的結(jié)構(gòu) 6
1.4 C語言程序的運行步驟和集成開發(fā)環(huán)境 7
1.4.1 C語言程序的運行步驟 7
1.4.2 C語言的集成開發(fā)環(huán)境 8
小結(jié) 9
習(xí)題1 9
第2章 數(shù)據(jù)類型、運算符與表達(dá)式 11
2.1 C語言數(shù)據(jù)類型概述 11
2.2 常量 12
2.2.1 常量的概念 12
2.2.2 符號常量 12
2.2.3 整型常量 13
2.2.4 實型常量 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 實型變量 20
2.3.4 字符型變量 22
2.4 算術(shù)運算符和算術(shù)表達(dá)式 24
2.4.1 運算符概述 24
2.4.2 算術(shù)運算符和算術(shù)表達(dá)式 25
2.5 賦值運算符和賦值表達(dá)式 27
2.5.1 賦值運算符 27
2.5.2 賦值表達(dá)式及其值 27
2.5.3 復(fù)合賦值運算符 28
2.6 逗號運算符和逗號表達(dá)式 29
2.7 數(shù)據(jù)類型轉(zhuǎn)換 30
2.7.1 數(shù)據(jù)類型的自動轉(zhuǎn)換 30
2.7.2 數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換 32
小結(jié) 33
習(xí)題2 33
第3章 順序結(jié)構(gòu)程序設(shè)計 36
3.1 結(jié)構(gòu)化程序設(shè)計方法 36
3.1.1 自頂向下、逐步求精、模塊化的結(jié)構(gòu)化程序設(shè)計方法 36
3.1.2 程序的結(jié)構(gòu) 36
3.2 C語句概述 37
3.2.1 表達(dá)式語句 38
3.2.2 函數(shù)調(diào)用語句 39
3.2.3 控制語句 39
3.2.4 復(fù)合語句 39
3.2.5 空語句 40
3.3 程序的注釋 40
3.4 數(shù)據(jù)的輸入和輸出 40
3.4.1 輸入和輸出的基本概念 40
3.4.2 輸入和輸出的實現(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è)計舉例 50
小結(jié) 54
習(xí)題3 54
第4章 選擇結(jié)構(gòu)程序設(shè)計 57
4.1 關(guān)系運算符和關(guān)系表達(dá)式 57
4.1.1 關(guān)系運算符及其優(yōu)先級和結(jié)合性 57
4.1.2 關(guān)系表達(dá)式 57
4.1.3 使用關(guān)系運算符應(yīng)注意的問題 58
4.2 邏輯運算符和邏輯表達(dá)式 59
4.2.1 邏輯運算符及其優(yōu)先級和結(jié)合性 59
4.2.2 邏輯表達(dá)式 60
4.2.3 使用邏輯運算符應(yīng)注意的問題 60
4.3 if語句 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語句嵌套形成多分支結(jié)構(gòu) 68
4.4 條件運算符和條件表達(dá)式 74
4.4.1 條件運算符 74
4.4.2 條件表達(dá)式和求值規(guī)則 74
4.5 switch語句 76
4.5.1 switch語句的一般形式 76
4.5.2 switch語句的功能 76
4.5.3 switch語句使用說明 78
4.6 選擇結(jié)構(gòu)程序設(shè)計舉例 79
4.7 switch語句與多分支if語句的比較 84
小結(jié) 84
習(xí)題4 84
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計 89
5.1 循環(huán)結(jié)構(gòu)的引入 89
5.2 三種實現(xiàn)循環(huán)結(jié)構(gòu)的語句 89
5.2.1 while語句 89
5.2.2 do-while語句 92
5.2.3 for語句 93
5.3 break語句和continue語句 100
5.3.1 break語句 100
5.3.2 continue語句 101
5.4 循環(huán)嵌套 102
5.4.1 循環(huán)嵌套的概念 102
5.4.2 循環(huán)嵌套常見的形式 102
5.4.3 循環(huán)嵌套的執(zhí)行過程 102
5.4.4 使用注意事項 103
5.5 綜合程序設(shè)計 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 問題的提出 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ù)組的存儲 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ù)組的存儲 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ù)定義的說明 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)用的過程 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 問題的提出 170
7.6.2 數(shù)組作為函數(shù)參數(shù)的形式 171
7.7 變量的作用域及存儲類別 180
7.7.1 變量的作用域 180
7.7.2 變量的存儲類別 184
7.7.3 變量的作用域和存儲類別小結(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ìn)階篇
第9章 指針 206
9.1 指針的概念 206
9.2 訪問變量的地址 207
9.3 定義及初始化指針變量 208
9.3.1 定義指針變量 208
9.3.2 初始化指針變量 209
9.4 通過指針訪問變量 210
9.5 指針的運算 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 二級指針和指針數(shù)組 229
9.9.1 二級指針 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 動態(tài)內(nèi)存分配與鏈表 260
10.6.1 動態(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 共用體實例 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章 位運算 280
11.1 位運算符概述 280
11.1.1 與運算 280
11.1.2 或運算 282
11.1.3 異或運算 284
11.1.4 取反運算 285
11.1.5 移位運算 285
11.2 位運算賦值運算符 287
11.3 位域(位段) 287
11.3.1 位域的定義和位域變量的說明 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 文件檢測函數(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è)計 305
小結(jié) 314
習(xí)題12 314
附錄A 常用字符與ASCII碼對照表 317
附錄B 擴(kuò)展ASCII碼對照表 318
附錄C C語言關(guān)鍵字 319
附錄D C語言的9種控制語句 320
附錄E C語言運算符的優(yōu)先級與
結(jié)合性 321
附錄F 常用的ANSI C標(biāo)準(zhǔn)庫函數(shù) 323
參考文獻(xiàn) 328