本書以培養(yǎng)學(xué)生程序設(shè)計思維和基本能力為目標(biāo),在知識點的組織結(jié)構(gòu)方面,充分考慮C語言重要語法知識點的全面性,又突出學(xué)生開發(fā)程序的實踐能力和工程能力的訓(xùn)練。本書共11章,全面講述C語言語法知識點,從簡單數(shù)據(jù)結(jié)構(gòu)、簡單控制結(jié)構(gòu)到復(fù)雜數(shù)據(jù)結(jié)構(gòu)、復(fù)雜控制結(jié)構(gòu),循序漸進地展示C語言特性。本書采用啟發(fā)式的寫作風(fēng)格,以程序設(shè)計主線,以應(yīng)用編程為驅(qū)動,每個章節(jié)按照提出問題、分析問題、解決問題的思路寫作。本書的所有參考資料請參見網(wǎng)站http://jsjjc.hut.edu.cn或http://www.hxedu.com.cn。本書適用對象是高等院校計算機專業(yè)及非計算機專業(yè)的師生,計算機等級考試培訓(xùn)班師生,廣大C語言自學(xué)者。
朱艷輝,女,湖南工業(yè)大學(xué)計算機學(xué)院教授,副院長,湖南省高教學(xué)會計算機教育專業(yè)委員會理事,中國計算機學(xué)會高級會員。
第1章 C語言程序設(shè)計概論 1
1.1 問題提出:程序設(shè)計概述 1
1.2 程序設(shè)計語言 3
1.2.1 自然語言和計算機語言 3
1.2.2 程序設(shè)計語言介紹 4
1.3 初識C語言程序 4
1.4 實現(xiàn)問題求解的過程 6
1.4.1 計算機求解問題步驟 6
1.4.2 問題分析和建模 6
1.4.3 算法設(shè)計 6
1.4.4 程序設(shè)計 8
1.5 C語言的發(fā)展歷史及特點 9
1.5.1 C語言的發(fā)展 9
1.5.2 C語言的特點 11
1.5.3 C語言的基本符號 11
1.6 C語言程序的開發(fā)環(huán)境 13
1.6.1 C語言的一般上機步驟 13
1.6.2 Visual C++ 2010集成開發(fā)環(huán)境 14
1.7 科學(xué)計算器和學(xué)生成績管理系統(tǒng) 17
本章小結(jié) 19
習(xí)題1 19
第2章 簡單的C程序設(shè)計 21
2.1 問題提出:順序結(jié)構(gòu)程序設(shè)計 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 簡單C程序設(shè)計舉例 32
本章小結(jié) 33
習(xí)題2 35
第3章 選擇(分支)結(jié)構(gòu)程序設(shè)計 37
3.1 問題提出:選擇(分支)結(jié)構(gòu)程序設(shè)計 37
3.2 if語句 38
3.2.1 簡單if語句 38
3.2.2 關(guān)系運算符 40
3.2.3 邏輯運算符 41
3.2.4 if-else語句 42
3.2.5 if-else-if語句 44
3.2.6 if語句嵌套 45
3.3 條件表達式 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è)計 61
4.1 問題提出:循環(huán)結(jié)構(gòu)程序設(shè)計 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 變量的作用域和存儲類別 91
5.6.1 變量應(yīng)用的程序舉例和解析 91
5.6.2 變量的作用域 92
5.6.3 變量的存儲類別 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ù)類型、常量、變量、表達式 112
6.1 C語言的基本數(shù)據(jù)類型及其內(nèi)部表示 112
6.1.1 數(shù)據(jù)類型概述 112
6.1.2 整數(shù)類型 113
6.1.3 實數(shù)類型 114
6.1.4 字符類型 115
6.2 常量和變量 116
6.2.1 常量 116
6.2.2 變量 120
6.3 運算符和表達式 122
6.3.1 賦值運算符和賦值表達式 123
6.3.2 算術(shù)運算符和算術(shù)表達式 125
6.3.3 位運算符和位運算表達式 127
6.3.4 逗號運算符和求字節(jié)運算符 129
6.4 數(shù)據(jù)類型轉(zhuǎn)換 131
6.4.1 類型自動轉(zhuǎn)換 131
6.4.2 賦值轉(zhuǎn)換 132
6.4.3 強制類型轉(zhuǎn)換 133
本章小結(jié) 134
習(xí)題6 136
第7章 數(shù)組 140
7.1 問題的提出:數(shù)組的運用 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 問題的提出:指針的運用 169
8.2 指針變量的定義、賦值和運算 171
8.2.1 指針變量程序舉例和解析 171
8.2.2 指針變量的定義 172
8.2.3 指針變量的賦值及初始化 173
8.2.4 指針變量的運算 174
8.3 指針作為函數(shù)的參數(shù) 176
8.3.1 指針作為函數(shù)參數(shù)程序舉例和解析 176
8.3.2 指針作為函數(shù)參數(shù)時的注意事項 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)存的動態(tài)分配 186
8.7.1 指針與內(nèi)存的動態(tài)分配程序舉例與解析 187
8.7.2 動態(tài)內(nèi)存分配的步驟 188
8.7.3 動態(tài)內(nèi)存分配函數(shù) 188
8.8 指針進階 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)體、共用體和枚舉的運用 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è)計中的運用 240
10.2 文件概述 241
10.2.1 有關(guān)文件的程序舉例和解析 241
10.2.2 文件分類 242
10.2.3 C語言對文件的處理方法 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 文件的隨機讀寫 254
10.5.1 文件的隨機讀寫程序舉例和解析 254
10.5.2 文件的定位函數(shù) 254
10.6 文件的錯誤檢測 256
10.7 程序設(shè)計舉例 256
本章小結(jié) 259
習(xí)題10 260
第11章 C語言的綜合應(yīng)用 264
11.1 科學(xué)計算器 264
11.1.1 科學(xué)計算器的設(shè)計思想 264
11.1.2 函數(shù)和數(shù)據(jù)結(jié)構(gòu)設(shè)計 265
11.2 學(xué)生成績管理系統(tǒng) 274
11.2.1 學(xué)生成績管理系統(tǒng)設(shè)計要求 274
11.2.2 函數(shù)和數(shù)據(jù)結(jié)構(gòu)設(shè)計 276
11.2.3 學(xué)生成績管理系統(tǒng)參考源代碼 280
本章小結(jié) 294
習(xí)題11 294
附錄A ASCII碼表 296
附錄B C語言中運算符的優(yōu)先級與結(jié)合性 297
附錄C C語言的關(guān)鍵字及其用途 298
附錄D C語言常用語法摘要 299
附錄E C語言常用標(biāo)準(zhǔn)庫函數(shù) 303
參考文獻 311