本書是一本針對(duì)零基礎(chǔ)學(xué)習(xí)者編寫的C語言程序設(shè)計(jì)入門教材,全書分為程序設(shè)計(jì)基礎(chǔ)篇和程序設(shè)計(jì)進(jìn)階篇。程序設(shè)計(jì)基礎(chǔ)篇主要內(nèi)容包括C語言的核心語法、程序設(shè)計(jì)思想和實(shí)踐應(yīng)用。程序設(shè)計(jì)進(jìn)階篇主要內(nèi)容包括指針、結(jié)構(gòu)體與共用體、位運(yùn)算和文件,旨在使讀者體會(huì)C語言的模塊化編程思想及對(duì)指針與結(jié)構(gòu)體類型的實(shí)際應(yīng)用,學(xué)會(huì)用構(gòu)造數(shù)據(jù)類型和指針來處理生活中的問題。全書通過豐富的代碼示例、流程圖解和生活案例,循序漸進(jìn)地講解C語言的各方面知識(shí)。本書可作為高等學(xué)校本科及?茖W(xué)生程序設(shè)計(jì)課程的入門教材,還可供廣大程序設(shè)計(jì)初學(xué)者自學(xué)使用。通過閱讀本書,讀者能夠打下堅(jiān)實(shí)的編程基礎(chǔ),并為學(xué)習(xí)其他高級(jí)語言(如C++、Java)鋪平道路。
薛冰冰,河南科技大學(xué)副教授。省級(jí)線上線下混合式一流本科課程、精品在線開放課程《C語言程序設(shè)計(jì)》負(fù)責(zé)人。出版教材多部。
程序設(shè)計(jì)基礎(chǔ)篇
第1章 C語言程序設(shè)計(jì)引論 2
1.1 程序和程序設(shè)計(jì) 2
1.1.1 程序 2
1.1.2 程序設(shè)計(jì) 2
1.2 程序設(shè)計(jì)語言的發(fā)展過程 3
1.3 C語言簡(jiǎn)介 4
1.3.1 C語言的發(fā)展 4
1.3.2 C語言的優(yōu)點(diǎn) 4
1.4 C語言程序的結(jié)構(gòu) 5
1.4.1 簡(jiǎn)單的C語言程序 5
1.4.2 C語言程序的結(jié)構(gòu) 7
1.5 C語言程序的集成開發(fā)環(huán)境和運(yùn)行步驟 8
1.5.1 C語言的集成開發(fā)環(huán)境 8
1.5.2 C語言程序的運(yùn)行步驟 9
本章小結(jié) 10
習(xí)題1 10
第2章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式 11
2.1 C語言中常用的符號(hào) 11
2.2 C語言數(shù)據(jù)類型概述 12
2.3 常量 14
2.3.1 整型常量 14
2.3.2 實(shí)型常量 14
2.3.3 字符常量 15
2.3.4 字符串常量 16
2.3.5 符號(hào)常量 16
2.4 變量 17
2.4.1 變量的定義 17
2.4.2 變量的初始化 17
2.4.3 變量的賦值和引用 17
2.5 運(yùn)算符和表達(dá)式 17
2.5.1 運(yùn)算符和表達(dá)式 17
2.5.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 18
2.5.3 賦值運(yùn)算符和賦值表達(dá)式 20
2.5.4 復(fù)合賦值運(yùn)算符和復(fù)合賦值運(yùn)算表達(dá)式 21
2.5.5 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 21
2.5.6 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 22
2.5.7 邏輯運(yùn)算符和邏輯表達(dá)式 22
2.5.8 字節(jié)運(yùn)算符和字節(jié)運(yùn)算表達(dá)式 23
2.6 數(shù)據(jù)類型轉(zhuǎn)換 24
2.6.1 數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換 24
2.6.2 數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換 26
本章小結(jié) 27
習(xí)題2 27
第3章 順序結(jié)構(gòu)程序設(shè)計(jì) 29
3.1 算法和結(jié)構(gòu)化程序設(shè)計(jì) 29
3.1.1 算法的基本概念 29
3.1.2 結(jié)構(gòu)化程序設(shè)計(jì) 30
3.2 C語句概述 31
3.2.1 表達(dá)式語句 31
3.2.2 函數(shù)調(diào)用語句 32
3.2.3 控制語句 32
3.2.4 復(fù)合語句 32
3.2.5 空語句 32
3.3 數(shù)據(jù)的輸入和輸出 32
3.3.1 輸入和輸出的實(shí)現(xiàn) 33
3.3.2 單字符輸入和輸出 33
3.3.3 數(shù)據(jù)的格式化輸出 34
3.3.4 數(shù)據(jù)的格式化輸入 36
3.4 順序結(jié)構(gòu)程序設(shè)計(jì)舉例 39
本章小結(jié) 42
習(xí)題3 42
第4章 選擇結(jié)構(gòu)程序設(shè)計(jì) 44
4.1 if語句 44
4.1.1 if雙分支語句 44
4.1.2 if單分支語句 46
4.1.3 if多分支語句 48
4.2 條件運(yùn)算符和條件表達(dá)式 51
4.2.1 條件運(yùn)算符 51
4.2.2 條件表達(dá)式 51
4.3 switch語句 53
4.3.1 switch語句的一般形式 53
4.3.2 switch語句的執(zhí)行過程 54
4.3.3 switch語句的使用說明 55
4.4 選擇結(jié)構(gòu)程序設(shè)計(jì)舉例 56
本章小結(jié) 58
習(xí)題4 59
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 61
5.1 while語句 61
5.1.1 while語句的一般形式 61
5.1.2 while語句的執(zhí)行流程 62
5.1.3 while語句的使用說明 62
5.2 do…while語句 64
5.2.1 do…while語句的一般形式 64
5.2.2 do…while語句的執(zhí)行流程 65
5.2.3 do…while語句和while
語句的區(qū)別 66
5.3 for語句 66
5.3.1 for語句的一般形式 66
5.3.2 for語句的執(zhí)行過程 67
5.3.3 for語句的其他形式 68
5.3.4 3種循環(huán)語句的比較 69
5.4 break語句和continue語句 70
5.4.1 break語句 70
5.4.2 continue語句 71
5.5 循環(huán)嵌套 71
5.5.1 循環(huán)嵌套的概念及常見形式 71
5.5.2 循環(huán)嵌套的執(zhí)行過程 72
5.5.3 循環(huán)嵌套的注意事項(xiàng) 73
5.6 循環(huán)程序綜合舉例 73
5.6.1 多項(xiàng)式的求和 73
5.6.2 字符的統(tǒng)計(jì) 76
5.6.3 數(shù)據(jù)的搜索 77
5.6.4 圖形的輸出 80
本章小結(jié) 82
習(xí)題5 83
第6章 函數(shù) 85
6.1 函數(shù)引入 85
6.2 函數(shù)定義 86
6.2.1 函數(shù)定義的一般形式 86
6.2.2 return語句 88
6.3 函數(shù)調(diào)用 89
6.3.1 函數(shù)調(diào)用的方法 89
6.3.2 函數(shù)調(diào)用的數(shù)據(jù)傳遞 93
6.3.3 函數(shù)調(diào)用的過程 94
6.4 函數(shù)聲明 95
6.4.1 函數(shù)聲明的形式 95
6.4.2 函數(shù)聲明的位置 96
6.4.3 庫函數(shù)的聲明 97
6.5 函數(shù)的嵌套調(diào)用和遞歸調(diào)用 98
6.5.1 函數(shù)的嵌套調(diào)用 98
6.5.2 函數(shù)的遞歸調(diào)用 100
6.6 變量的作用域及存儲(chǔ)類型 104
6.6.1 變量的作用域 104
6.6.2 變量的存儲(chǔ)類型 108
6.6.3 變量的作用域和存儲(chǔ)類型小結(jié) 112
6.7 多文件程序 113
本章小結(jié) 115
習(xí)題6 115
第7章 數(shù)組 118
7.1 數(shù)組引入 118
7.1.1 問題的提出 118
7.1.2 數(shù)組的基本概念 119
7.1.3 數(shù)組的分類 120
7.2 一維數(shù)組 120
7.2.1 一維數(shù)組的定義 120
7.2.2 一維數(shù)組的引用 121
7.2.3 一維數(shù)組的存儲(chǔ) 122
7.2.4 一維數(shù)組的初始化 123
7.2.5 一維數(shù)組的應(yīng)用舉例 124
7.3 向函數(shù)傳遞一維數(shù)組 126
7.4 一維數(shù)組的常用算法及其應(yīng)用 129
7.5 多維數(shù)組 136
7.5.1 二維數(shù)組的定義 136
7.5.2 二維數(shù)組的引用 136
7.5.3 二維數(shù)組的存儲(chǔ) 137
7.5.4 二維數(shù)組的初始化 138
7.5.5 二維數(shù)組的應(yīng)用舉例 138
7.6 向函數(shù)傳遞二維數(shù)組 140
7.7 字符數(shù)組 144
7.7.1 字符串 144
7.7.2 字符數(shù)組與字符串 144
7.7.3 字符數(shù)組的定義與初始化 144
7.7.4 字符數(shù)組的輸入和輸出 146
7.7.5 常用的字符串處理函數(shù) 148
7.7.6 字符數(shù)組的應(yīng)用舉例 150
本章小結(jié) 153
習(xí)題7 153
程序設(shè)計(jì)進(jìn)階篇
第8章 指針 156
8.1 指針的概念 156
8.2 指針變量的定義及初始化 158
8.2.1 定義指針變量 158
8.2.2 初始化指針變量 158
8.3 通過指針訪問變量 159
8.4 指針和數(shù)組 162
8.4.1 指針和一維數(shù)組 162
8.4.2 用指針引用數(shù)組元素 163
8.4.3 指針和二維數(shù)組 165
8.5 指針和字符 168
8.5.1 指向字符的指針 168
8.5.2 指向字符串的指針 169
8.6 指針和函數(shù) 170
8.6.1 用指針變量作為函數(shù)參數(shù) 170
8.6.2 用指針變量作為函數(shù)返回值 172
8.6.3 指向函數(shù)的指針變量 173
8.7 二級(jí)指針和指針數(shù)組 174
8.7.1 二級(jí)指針 174
8.7.2 指針數(shù)組 175
本章小結(jié) 179
習(xí)題8 179
第9章 結(jié)構(gòu)體與共用體 182
9.1 結(jié)構(gòu)體類型與結(jié)構(gòu)體變量 182
9.1.1 結(jié)構(gòu)體類型的定義 182
9.1.2 結(jié)構(gòu)體變量的定義 183
9.1.3 結(jié)構(gòu)體變量的引用 185
9.1.4 結(jié)構(gòu)體變量的初始化 185
9.1.5 結(jié)構(gòu)體變量的應(yīng)用舉例 187
9.2 結(jié)構(gòu)體類型與結(jié)構(gòu)體數(shù)組 188
9.2.1 結(jié)構(gòu)體數(shù)組的定義 188
9.2.2 結(jié)構(gòu)體數(shù)組的引用 188
9.2.3 結(jié)構(gòu)體數(shù)組的初始化 188
9.2.4 結(jié)構(gòu)體數(shù)組的應(yīng)用舉例 189
9.3 結(jié)構(gòu)體與指針 190
9.3.1 指向結(jié)構(gòu)體變量的指針 190
9.3.2 指向結(jié)構(gòu)體數(shù)組的指針 192
9.4 結(jié)構(gòu)體與函數(shù) 193
9.4.1 結(jié)構(gòu)體變量的成員作為函數(shù)參數(shù) 194
9.4.2 結(jié)構(gòu)體變量作為函數(shù)參數(shù) 194
9.4.3 結(jié)構(gòu)體數(shù)組作為函數(shù)參數(shù) 195
9.4.4 指向結(jié)構(gòu)體的指針變量作為函數(shù)參數(shù) 196
9.4.5 綜合應(yīng)用 197
9.5 動(dòng)態(tài)內(nèi)存分配與鏈表 201
9.5.1 動(dòng)態(tài)內(nèi)存函數(shù) 201
9.5.2 鏈表與指針 203
9.5.3 鏈表中結(jié)點(diǎn)的定義 204
9.5.4 鏈表的基本操作 204
9.6 共用體類型 210
9.6.1 共用體類型的定義 210
9.6.2 共用體變量的定義 211
9.6.3 共用體變量的引用和初始化 211
9.6.4 共用體類型應(yīng)用實(shí)例 212
9.7 枚舉類型 213
9.7.1 枚舉類型的定義 213
9.7.2 枚舉變量的定義 214
9.7.3 枚舉變量的引用 214
9.7.4 枚舉類型應(yīng)用實(shí)例 215
9.8 自定義類型 215
本章小結(jié) 216
習(xí)題9 216
第10章 位運(yùn)算 219
10.1 位運(yùn)算符概述 219
10.2 位運(yùn)算符功能 220
10.2.1 與運(yùn)算(&) 220
10.2.2 或運(yùn)算(|) 221
10.2.3 異或運(yùn)算(^) 222
10.2.4 取反運(yùn)算(~) 222
10.2.5 移位運(yùn)算 223
10.2.6 復(fù)合位運(yùn)算賦值運(yùn)算符 224
本章小結(jié) 224
習(xí)題10 224
第11章 文件 226
11.1 文件概述 226
11.2 文件指針的定義 226
11.3 文件的基本操作 227
11.3.1 文件打開函數(shù) 227
11.3.2 文件關(guān)閉函數(shù) 229
11.3.3 文件檢測(cè)函數(shù) 229
11.3.4 文件定位函數(shù) 229
11.3.5 字符讀寫函數(shù) 230
11.3.6 字符串讀寫函數(shù) 233
11.3.7 格式化讀寫函數(shù) 235
11.3.8 數(shù)據(jù)塊讀寫函數(shù) 237
本章小結(jié) 238
習(xí)題11 238
附錄A 常用字符與ASCII碼對(duì)照表 241
附錄B C語言運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 242
參考文獻(xiàn) 244