本書以培養(yǎng)學(xué)生程序設(shè)計(jì)思維和基本能力為目標(biāo),在知識(shí)點(diǎn)的組織結(jié)構(gòu)方面,充分考慮C語言重要語法知識(shí)點(diǎn)的全面性,又突出學(xué)生開發(fā)程序的實(shí)踐能力和工程能力的訓(xùn)練。本書共11章,全面講述C語言語法知識(shí)點(diǎn),從簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu)、簡(jiǎn)單控制結(jié)構(gòu)到復(fù)雜數(shù)據(jù)結(jié)構(gòu)、復(fù)雜控制結(jié)構(gòu),循序漸進(jìn)地展示C語言特性。本書采用啟發(fā)式的寫作風(fēng)格,以程序設(shè)計(jì)主線,以應(yīng)用編程為驅(qū)動(dòng),每個(gè)章節(jié)按照提出問題、分析問題、解決問題的思路寫作。本書的所有參考資料請(qǐng)參見網(wǎng)站http://jsjjc.hut.edu.cn或http://www.hxedu.com.cn。本書適用對(duì)象是高等院校計(jì)算機(jī)專業(yè)及非計(jì)算機(jī)專業(yè)的師生,計(jì)算機(jī)等級(jí)考試培訓(xùn)班師生,廣大C語言自學(xué)者。
朱艷輝,女,湖南工業(yè)大學(xué)計(jì)算機(jī)學(xué)院教授,副院長(zhǎng),湖南省高教學(xué)會(huì)計(jì)算機(jī)教育專業(yè)委員會(huì)理事,中國(guó)計(jì)算機(jī)學(xué)會(huì)高級(jí)會(huì)員。
第1章 C語言程序設(shè)計(jì)概論 1
1.1 問題提出:程序設(shè)計(jì)概述 1
1.2 程序設(shè)計(jì)語言 3
1.2.1 自然語言和計(jì)算機(jī)語言 3
1.2.2 程序設(shè)計(jì)語言介紹 4
1.3 初識(shí)C語言程序 4
1.4 實(shí)現(xiàn)問題求解的過程 6
1.4.1 計(jì)算機(jī)求解問題步驟 6
1.4.2 問題分析和建模 6
1.4.3 算法設(shè)計(jì) 6
1.4.4 程序設(shè)計(jì) 8
1.5 C語言的發(fā)展歷史及特點(diǎn) 9
1.5.1 C語言的發(fā)展 9
1.5.2 C語言的特點(diǎn) 11
1.5.3 C語言的基本符號(hào) 11
1.6 C語言程序的開發(fā)環(huán)境 13
1.6.1 C語言的一般上機(jī)步驟 13
1.6.2 Visual C++ 2010集成開發(fā)環(huán)境 14
1.7 科學(xué)計(jì)算器和學(xué)生成績(jī)管理系統(tǒng) 17
本章小結(jié) 19
習(xí)題1 19
第2章 簡(jiǎn)單的C程序設(shè)計(jì) 21
2.1 問題提出:順序結(jié)構(gòu)程序設(shè)計(jì) 21
2.2 格式輸出語句 22
2.2.1 格式輸出語句程序舉例和解析 22
2.2.2 格式輸出printf()函數(shù) 23
2.3 格式輸入語句 26
2.3.1 格式輸入語句程序舉例和解析 26
2.3.2 格式輸入函數(shù)scanf() 27
2.4 字符數(shù)據(jù)輸入、輸出 30
2.4.1 字符數(shù)據(jù)輸入、輸出程序舉例和解析 30
2.4.2 字符輸出函數(shù)putchar()和字符輸入函數(shù)getchar() 30
2.5 簡(jiǎn)單C程序設(shè)計(jì)舉例 32
本章小結(jié) 33
習(xí)題2 35
第3章 選擇(分支)結(jié)構(gòu)程序設(shè)計(jì) 37
3.1 問題提出:選擇(分支)結(jié)構(gòu)程序設(shè)計(jì) 37
3.2 if語句 38
3.2.1 簡(jiǎn)單if語句 38
3.2.2 關(guān)系運(yùn)算符 40
3.2.3 邏輯運(yùn)算符 41
3.2.4 if-else語句 42
3.2.5 if-else-if語句 44
3.2.6 if語句嵌套 45
3.3 條件表達(dá)式 48
3.4 switch語句 49
3.4.1 switch語句程序舉例 49
3.4.2 switch語句應(yīng)用 50
3.5 選擇結(jié)構(gòu)程序綜合應(yīng)用 53
本章小結(jié) 57
習(xí)題3 59
第4章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 61
4.1 問題提出:循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 61
4.2 while循環(huán) 62
4.2.1 while循環(huán)程序舉例和解析 62
4.2.2 while語句 63
4.3 do-while循環(huán) 64
4.3.1 do-while循環(huán)程序舉例和解析 64
4.3.2 do-while語句 65
4.4 for循環(huán) 66
4.4.1 for循環(huán)程序舉例和解析 66
4.4.2 for語句 67
4.5 循環(huán)嵌套 68
4.5.1 循環(huán)程序舉例和解析 68
4.5.2 循環(huán)嵌套 69
4.5.3 break和continue語句 71
4.6 循環(huán)結(jié)構(gòu)程序應(yīng)用綜合舉例 73
本章小結(jié) 76
習(xí)題4 77
第5章 函數(shù) 80
5.1 問題提出:函數(shù)的應(yīng)用 80
5.2 函數(shù)的定義、聲明和調(diào)用 82
5.2.1 有關(guān)函數(shù)的程序舉例和解析 82
5.2.2 函數(shù)的定義 82
5.2.3 函數(shù)的聲明 83
5.2.4 函數(shù)的調(diào)用 84
5.3 函數(shù)的參數(shù)和值 86
5.3.1 函數(shù)應(yīng)用程序舉例和解析 86
5.3.2 函數(shù)的參數(shù) 87
5.3.3 函數(shù)的值 88
5.4 函數(shù)的嵌套調(diào)用 88
5.4.1 函數(shù)的嵌套調(diào)用程序舉例和解析 88
5.4.2 函數(shù)的嵌套調(diào)用說明 89
5.5 函數(shù)的遞歸調(diào)用 89
5.5.1 函數(shù)的遞歸調(diào)用程序舉例和解析 89
5.5.2 函數(shù)的遞歸調(diào)用說明 90
5.6 變量的作用域和存儲(chǔ)類別 91
5.6.1 變量應(yīng)用的程序舉例和解析 91
5.6.2 變量的作用域 92
5.6.3 變量的存儲(chǔ)類別 94
5.7 編譯預(yù)處理命令 98
5.7.1 編譯預(yù)處理程序舉例和解析 98
5.7.2 宏定義 98
5.7.3 文件包含 102
5.7.4 條件編譯 103
5.8 函數(shù)應(yīng)用舉例 105
本章小結(jié) 109
習(xí)題5 109
第6章 數(shù)據(jù)類型、常量、變量、表達(dá)式 112
6.1 C語言的基本數(shù)據(jù)類型及其內(nèi)部表示 112
6.1.1 數(shù)據(jù)類型概述 112
6.1.2 整數(shù)類型 113
6.1.3 實(shí)數(shù)類型 114
6.1.4 字符類型 115
6.2 常量和變量 116
6.2.1 常量 116
6.2.2 變量 120
6.3 運(yùn)算符和表達(dá)式 122
6.3.1 賦值運(yùn)算符和賦值表達(dá)式 123
6.3.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 125
6.3.3 位運(yùn)算符和位運(yùn)算表達(dá)式 127
6.3.4 逗號(hào)運(yùn)算符和求字節(jié)運(yùn)算符 129
6.4 數(shù)據(jù)類型轉(zhuǎn)換 131
6.4.1 類型自動(dòng)轉(zhuǎn)換 131
6.4.2 賦值轉(zhuǎn)換 132
6.4.3 強(qiáng)制類型轉(zhuǎn)換 133
本章小結(jié) 134
習(xí)題6 136
第7章 數(shù)組 140
7.1 問題的提出:數(shù)組的運(yùn)用 140
7.2 一維數(shù)組 141
7.2.1 一維數(shù)組的程序舉例和解析 141
7.2.2 一維數(shù)組類型定義 142
7.2.3 一維數(shù)組元素的引用 143
7.2.4 一維數(shù)組元素的初始化 144
7.3 二維數(shù)組 145
7.3.1 二維數(shù)組的程序舉例和解析 145
7.3.2 二維數(shù)組的定義 147
7.3.3 二維數(shù)組元素的引用 147
7.3.4 二維數(shù)組的初始化 148
7.4 字符數(shù)組 150
7.4.1 程序舉例和解析 150
7.4.2 字符數(shù)組的定義和元素引用 150
7.4.3 字符串變量 151
7.5 字符串常用函數(shù) 153
7.6 向函數(shù)傳遞數(shù)組 156
7.6.1 向函數(shù)傳遞一維數(shù)組 156
7.6.2 向函數(shù)傳遞二維數(shù)組 157
7.7 數(shù)組應(yīng)用程序舉例 158
本章小結(jié) 165
習(xí)題7 165
第8章 指針 169
8.1 問題的提出:指針的運(yùn)用 169
8.2 指針變量的定義、賦值和運(yùn)算 171
8.2.1 指針變量程序舉例和解析 171
8.2.2 指針變量的定義 172
8.2.3 指針變量的賦值及初始化 173
8.2.4 指針變量的運(yùn)算 174
8.3 指針作為函數(shù)的參數(shù) 176
8.3.1 指針作為函數(shù)參數(shù)程序舉例和解析 176
8.3.2 指針作為函數(shù)參數(shù)時(shí)的注意事項(xiàng) 178
8.4 指針與一維數(shù)組 178
8.4.1 指針與一維數(shù)組程序舉例和解析 178
8.4.2 指針與一維數(shù)組的關(guān)系 179
8.5 指針與字符串 181
8.5.1 指針與字符串程序舉例和解析 181
8.5.2 指針與字符串、字符數(shù)組的關(guān)系 182
8.6 指針與二維數(shù)組 183
8.6.1 指針與二維數(shù)組程序舉例和解析 183
8.6.2 指針與二維數(shù)組的關(guān)系 184
8.7 指針與內(nèi)存的動(dòng)態(tài)分配 186
8.7.1 指針與內(nèi)存的動(dòng)態(tài)分配程序舉例與解析 187
8.7.2 動(dòng)態(tài)內(nèi)存分配的步驟 188
8.7.3 動(dòng)態(tài)內(nèi)存分配函數(shù) 188
8.8 指針進(jìn)階 189
8.8.1 指針作為函數(shù)返回值 189
8.8.2 指向函數(shù)的指針 190
8.8.3 指針數(shù)組 192
8.8.4 指向指針的指針 193
8.8.5 指針數(shù)組名與指針數(shù)組元素的關(guān)系 194
8.8.6 main()函數(shù)的參數(shù)和返回值 194
8.9 指針綜合應(yīng)用 196
本章小結(jié) 202
習(xí)題8 205
第9章 結(jié)構(gòu)體、共用體和枚舉 210
9.1 問題的提出:結(jié)構(gòu)體、共用體和枚舉的運(yùn)用 210
9.2 結(jié)構(gòu)體 211
9.2.1 結(jié)構(gòu)體程序舉例和解析 211
9.2.2 結(jié)構(gòu)體類型 214
9.2.3 結(jié)構(gòu)體類型變量 215
9.2.4 結(jié)構(gòu)體數(shù)組 217
9.2.5 結(jié)構(gòu)體指針 219
9.2.6 結(jié)構(gòu)變量、結(jié)構(gòu)指針作為函數(shù)參數(shù) 220
9.2.7 定義自己的類型名 222
9.3 鏈表 223
9.3.1 鏈表程序舉例和解析 223
9.3.2 鏈表的概念 225
9.3.3 鏈表的操作 225
9.4 共用體 228
9.4.1 共用體程序舉例和解析 228
9.4.2 共用體類型及變量的定義 229
9.4.3 共用體變量的引用 229
9.5 枚舉類型 230
9.5.1 枚舉類型程序舉例與解析 230
9.5.2 枚舉類型基本概念 231
9.6 應(yīng)用程序舉例 233
本章小結(jié) 235
習(xí)題9 236
第10章 文件 240
10.1 問題的提出:文件在程序設(shè)計(jì)中的運(yùn)用 240
10.2 文件概述 241
10.2.1 有關(guān)文件的程序舉例和解析 241
10.2.2 文件分類 242
10.2.3 C語言對(duì)文件的處理方法 242
10.2.4 文件結(jié)構(gòu)指針 243
10.3 文件的打開和關(guān)閉 244
10.3.1 文件的打開和關(guān)閉程序舉例和解析 244
10.3.2 文件的打開 245
10.3.3 文件的關(guān)閉 246
10.4 文件的讀和寫 247
10.4.1 文件的讀和寫程序舉例和解析 247
10.4.2 字符方式文件讀函數(shù)fgetc()、寫函數(shù)fputc() 248
10.4.3 字符串方式文件讀函數(shù)fgets()、寫函數(shù)fputs() 249
10.4.4 格式化文件讀函數(shù)fscanf()、寫函數(shù)fprintf() 250
10.4.5 數(shù)據(jù)塊讀函數(shù)fread()、寫函數(shù)fwrite() 252
10.5 文件的隨機(jī)讀寫 254
10.5.1 文件的隨機(jī)讀寫程序舉例和解析 254
10.5.2 文件的定位函數(shù) 254
10.6 文件的錯(cuò)誤檢測(cè) 256
10.7 程序設(shè)計(jì)舉例 256
本章小結(jié) 259
習(xí)題10 260
第11章 C語言的綜合應(yīng)用 264
11.1 科學(xué)計(jì)算器 264
11.1.1 科學(xué)計(jì)算器的設(shè)計(jì)思想 264
11.1.2 函數(shù)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 265
11.2 學(xué)生成績(jī)管理系統(tǒng) 274
11.2.1 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)要求 274
11.2.2 函數(shù)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 276
11.2.3 學(xué)生成績(jī)管理系統(tǒng)參考源代碼 280
本章小結(jié) 294
習(xí)題11 294
附錄A ASCII碼表 296
附錄B C語言中運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 297
附錄C C語言的關(guān)鍵字及其用途 298
附錄D C語言常用語法摘要 299
附錄E C語言常用標(biāo)準(zhǔn)庫(kù)函數(shù) 303
參考文獻(xiàn) 311