本書立足于作者近20年的C語言教學(xué)經(jīng)驗(yàn)編寫而成,共14章,內(nèi)容包括概述,數(shù)據(jù)類型與輸入/輸出,運(yùn)算符與表達(dá)式,算法與結(jié)構(gòu)化程序設(shè)計(jì),選擇結(jié)構(gòu)程序設(shè)計(jì),循環(huán)結(jié)構(gòu)程序設(shè)計(jì),數(shù)組與字符串,指針,函數(shù),結(jié)構(gòu)體、共用體、枚舉、鏈表,編譯預(yù)處理,文件,用C語言構(gòu)造簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu)(選學(xué)),發(fā)展與規(guī)范(選學(xué))。全書內(nèi)容經(jīng)過精心篩選,按照理解順序組織,追求由淺入深、步步提高。除涵蓋C語言的語法知識(shí)外,本書還專門增加了用C語言構(gòu)造隊(duì)列、棧、樹等實(shí)用的數(shù)據(jù)結(jié)構(gòu)及其相應(yīng)的常用算法。在第14章中用一個(gè)較簡(jiǎn)單實(shí)用的案例解釋讀者的困惑:與C語言相比,C++增加了什么。本書配有《C語言程序設(shè)計(jì)上機(jī)實(shí)驗(yàn)與習(xí)題解答》(第2版)(ISBN 978-7-121-37954-3)。此外,本書配套程序源代碼、PPT課件、動(dòng)畫演示視頻、實(shí)驗(yàn)自動(dòng)閱卷系統(tǒng)等資源,讀者可登錄華信教育資源網(wǎng)(www.hxedu.com.cn)免費(fèi)下載。本書特別適合作為大學(xué)C語言課程的教材及相關(guān)愛好者的自學(xué)教材,也適合作為二級(jí)C語言考試的參考用書。
藺德軍,青島大學(xué)教師,從事C語言程序設(shè)計(jì)課程教學(xué)多年,并輔導(dǎo)二級(jí)C語言考試,出版教材多部。
第1章 概述 1
1.1 程序設(shè)計(jì)語言 1
1.1.1 程序設(shè)計(jì)語言的概念 1
1.1.2 程序設(shè)計(jì)語言的發(fā)展 1
1.1.3 程序設(shè)計(jì)的一般步驟 3
1.2 C語言的發(fā)展歷史和特點(diǎn) 3
1.2.1 C語言的發(fā)展歷史 3
1.2.2 C語言的特點(diǎn) 4
1.3 第1個(gè)C語言程序 5
1.3.1 必要的計(jì)算機(jī)基礎(chǔ)知識(shí)——初識(shí)內(nèi)存 5
1.3.2 一個(gè)C語言程序從編寫到執(zhí)行的過程 6
1.3.3 使用VC++ 6.0調(diào)試程序 6
1.3.4 使用VC++ 2010調(diào)試程序 10
1.3.5 編譯時(shí)常見錯(cuò)誤 13
1.3.6 鏈接時(shí)常見錯(cuò)誤 13
1.3.7 執(zhí)行時(shí)常見錯(cuò)誤 14
1.4 C語言程序結(jié)構(gòu)與注意事項(xiàng) 15
1.5 本章小結(jié) 17
習(xí)題1 17
第2章 數(shù)據(jù)類型與輸入/輸出 18
2.1 變量與常量 18
2.2 常量的表示 19
2.2.1 C語言的基本數(shù)據(jù)類型 19
2.2.2 常量表示一覽表 19
2.2.3 字符常量 20
2.2.4 整型常量 21
2.2.5 浮點(diǎn)型常量 22
2.2.6 雙精度型常量 22
2.2.7 字符串常量 22
2.3 簡(jiǎn)單變量類型 23
2.3.1 標(biāo)識(shí)符的要求 23
2.3.2 字符變量、整型變量 24
2.3.3 浮點(diǎn)型變量、雙精度型變量 27
2.4 輸入/輸出 30
2.4.1 getchar()與putchar()函數(shù) 30
2.4.2 printf()函數(shù) 31
2.4.3 scanf()函數(shù) 34
2.5 本章小結(jié) 37
習(xí)題2 38
第3章 運(yùn)算符與表達(dá)式 41
3.1 表達(dá)式 41
3.2 優(yōu)先級(jí)與結(jié)合方向 41
3.3 基本算術(shù)運(yùn)算符 42
3.4 自增、自減運(yùn)算符 43
3.5 賦值運(yùn)算符 45
3.6 關(guān)系運(yùn)算符 46
3.7 邏輯運(yùn)算符 47
3.8 條件運(yùn)算符 48
3.9 逗號(hào)運(yùn)算符 49
3.10 位邏輯運(yùn)算符 51
3.11 移位運(yùn)算符 52
3.12 復(fù)合運(yùn)算符 54
3.13 類型轉(zhuǎn)換與混合運(yùn)算 54
3.14 其他運(yùn)算符 56
3.15 運(yùn)算符的優(yōu)先級(jí)與結(jié)合性一覽表 57
3.16 常用數(shù)學(xué)函數(shù) 58
3.17 本章小結(jié) 59
習(xí)題3 59
第4章 算法與結(jié)構(gòu)化程序設(shè)計(jì) 65
4.1 算法及其表示 65
4.1.1 算法的概念 65
4.1.2 算法的特征 65
4.1.3 算法的描述方法 67
4.2 結(jié)構(gòu)化程序設(shè)計(jì) 68
4.2.1 C語言語句綜述 68
4.2.2 goto語句 69
4.2.3 軟件危機(jī)與結(jié)構(gòu)化程序設(shè)計(jì)的提出 70
4.2.4 結(jié)構(gòu)化程序設(shè)計(jì)的核心思想 71
4.2.5 三種基本程序結(jié)構(gòu)的N-S圖 73
4.3 順序結(jié)構(gòu)程序設(shè)計(jì) 74
4.3.1 順序結(jié)構(gòu)的含義 74
4.3.2 順序結(jié)構(gòu)程序設(shè)計(jì)示例 74
4.4 程序調(diào)試 75
4.5 本章小結(jié) 77
習(xí)題4 77
第5章 選擇結(jié)構(gòu)程序設(shè)計(jì) 79
5.1 if語句 79
5.1.1 if語句的格式 79
5.1.2 if語句的注意事項(xiàng) 80
5.1.3 程序示例 80
5.2 if-else語句 82
5.2.1 if-else語句的格式 82
5.2.2 if-else語句的注意事項(xiàng) 83
5.2.3 縮進(jìn)結(jié)構(gòu)的書寫方式 84
5.2.4 if-else-if語句 86
5.3 switch語句 88
5.3.1 switch語句的格式 88
5.3.2 switch語句的流程圖及N-S圖 91
5.3.3 switch語句的注意事項(xiàng) 93
5.4 本章小結(jié) 93
習(xí)題5 93
第6章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 98
6.1 循環(huán)結(jié)構(gòu)概述 98
6.2 while語句 98
6.3 for語句 100
6.3.1 for語句的格式 100
6.3.2 for語句的注意事項(xiàng) 102
6.4 do語句 102
6.5 break語句與continue語句 104
6.5.1 break語句 104
6.5.2 continue語句 105
6.5.3 break語句與continue語句的替代方法 107
6.6 循環(huán)嵌套 108
6.7 常見循環(huán)類問題 109
6.8 本章小結(jié) 114
習(xí)題6 115
第7章 數(shù)組與字符串 119
7.1 數(shù)組的聲明與存儲(chǔ) 119
7.1.1 數(shù)組的聲明與使用 119
7.1.2 數(shù)組的存儲(chǔ)及數(shù)組名中存儲(chǔ)的內(nèi)容 121
7.1.3 數(shù)組的初始化 123
7.1.4 使用隨機(jī)數(shù)函數(shù) 126
7.2 數(shù)組的常用操作 127
7.2.1 查找最大值、最小值 127
7.2.2 排序 128
7.2.3 插入/刪除元素 130
7.2.4 查找 131
7.3 字符數(shù)組與字符串 132
7.3.1 字符數(shù)組 132
7.3.2 字符串 133
7.3.3 字符串的輸入/輸出 134
7.3.4 字符串的常用處理函數(shù) 136
7.4 程序設(shè)計(jì)示例 138
7.5 本章小結(jié) 140
習(xí)題7 140
第8章 指針 144
8.1 指針的含義與使用 144
8.1.1 指針與目標(biāo)單元 145
8.1.2 指針的聲明與初始化 145
8.1.3 指針的注意事項(xiàng) 146
8.1.4 指針的使用 147
8.2 指針與一維數(shù)組 147
8.3 動(dòng)態(tài)內(nèi)存分配 152
8.4 復(fù)雜指針 154
8.4.1 數(shù)組指針及多維數(shù)組指針 154
8.4.2 指針數(shù)組 157
8.4.3 二級(jí)指針 159
8.4.4 數(shù)組指針數(shù)組 161
8.4.5 三級(jí)指針與多級(jí)指針 161
8.4.6 指針歸納 162
8.5 本章小結(jié) 163
習(xí)題8 163
第9章 函數(shù) 166
9.1 函數(shù)功能 166
9.2 函數(shù)的定義與使用 167
9.2.1 函數(shù)的定義與調(diào)用格式 167
9.2.2 函數(shù)的定義與調(diào)用注意事項(xiàng) 168
9.2.3 定義一個(gè)函數(shù)的步驟 169
9.2.4 函數(shù)聲明與頭文件 169
9.2.5 函數(shù)的調(diào)用與返回 171
9.3 簡(jiǎn)單參數(shù)傳遞 172
9.3.1 值的傳遞 172
9.3.2 變量地址的傳遞 173
9.3.3 參數(shù)的處理次序 175
9.4 變量的作用域 176
9.4.1 不同變量的作用域 176
9.4.2 extern關(guān)鍵字 178
9.5 傳遞數(shù)組作為參數(shù) 179
9.5.1 傳遞一維數(shù)組 179
9.5.2 傳遞多維數(shù)組 181
9.5.3 傳遞指針數(shù)組 183
9.5.4 const關(guān)鍵字 184
9.6 變量的存儲(chǔ)類型 185
9.7 遞歸 188
9.8 函數(shù)指針 191
9.9 主函數(shù)的參數(shù) 193
9.10 本章小結(jié) 194
習(xí)題9 194
第10章 結(jié)構(gòu)體、共用體、枚舉、鏈表 200
10.1 結(jié)構(gòu)體 200
10.1.1 結(jié)構(gòu)體的定義 200
10.1.2 關(guān)鍵字typedef的用法 201
10.1.3 結(jié)構(gòu)體變量的定義與初始化 202
10.1.4 結(jié)構(gòu)體與函數(shù) 208
10.2 共用體 209
10.3 枚舉 211
10.3.1 枚舉的定義和枚舉變量的聲明 211
10.3.2 枚舉變量的賦值和使用 212
10.4 鏈表 213
10.4.1 鏈表的定義 213
10.4.2 鏈表的建立與遍歷 214
10.4.3 鏈表節(jié)點(diǎn)的插入、刪除操作 217
10.4.4 完整程序示例 220
10.5 本章小結(jié) 221
習(xí)題10 222
第11章 編譯預(yù)處理 229
11.1 宏定義 229
11.1.1 不帶參數(shù)的宏定義 229
11.1.2 帶參數(shù)的宏定義 231
11.1.3 #undef 233
11.2 文件包含 233
11.3 條件編譯 234
11.4 本章小結(jié) 238
習(xí)題11 239
第12章 文件 241
12.1 文件類型 241
12.2 文件的打開與關(guān)閉 242
12.2.1 文件的打開 242
12.2.2 文件的關(guān)閉 244
12.3 文件的讀/寫 244
12.3.1 如何判斷文件結(jié)束 245
12.3.2 fgetc()、fputc()函數(shù) 245
12.3.3 fscanf()、fprintf()函數(shù) 247
12.3.4 fgets()、fputs()函數(shù) 250
12.3.5 fread()、fwrite()函數(shù) 251
12.4 文件指針的移動(dòng) 253
12.4.1 rewind()函數(shù) 253
12.4.2 fseek()、ftell()函數(shù) 253
12.4.3 隨機(jī)讀/寫 254
12.5 本章小結(jié) 255
習(xí)題12 256
第13章 用C語言構(gòu)造簡(jiǎn)單數(shù)據(jù)結(jié)構(gòu)(選學(xué)) 261
13.1 數(shù)據(jù)結(jié)構(gòu)概述 261
13.1.1 基本概念 261
13.1.2 數(shù)據(jù)的邏輯結(jié)構(gòu) 261
13.1.3 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) 262
13.2 算法復(fù)雜度 262
13.2.1 算法的時(shí)間復(fù)雜度 262
13.2.2 算法的空間復(fù)雜度 263
13.3 隊(duì)列 263
13.4 棧 266
13.5 樹 268
13.5.1 樹的基本概念 268
13.5.2 二叉樹的基本概念 268
13.5.3 二叉樹的遍歷 269
第14章 發(fā)展與規(guī)范(選學(xué)) 272
14.1 認(rèn)識(shí)C++ 272
14.2 C語言標(biāo)準(zhǔn) 274
二級(jí)C語言筆試真題及答案(一) 276
二級(jí)C語言筆試真題及答案(二) 286
附錄A ASCII碼 296
附錄B stdio.h中的常用函數(shù) 297
附錄C stdlib.h中的常用函數(shù) 298
附錄D string.h中的常用函數(shù) 299
附錄E math.h中的常用函數(shù) 300