本書由淺入深、循序漸進(jìn)地介紹了C語言程序設(shè)計(jì)的思路和方法,并通過富有趣味性的精彩案例講解將每章中的知識點(diǎn)融會貫通,同時(shí)給出了案例思路分析,提出了案例思考問題,從而提高讀者的學(xué)習(xí)興趣,培養(yǎng)讀者的自主學(xué)習(xí)能力、獨(dú)立思考能力和計(jì)算思維能力。本書共13章,系統(tǒng)地介紹了基于Visual Studio的C語言程序的開發(fā)環(huán)境、數(shù)據(jù)類型、運(yùn)算符與表達(dá)式、基本輸入與輸出語句、流程控制、模塊化程序設(shè)計(jì)方法、位運(yùn)算符和位運(yùn)算、標(biāo)準(zhǔn)文件的輸入與輸出操作、EasyX圖形庫和C++語言面向?qū)ο蠡A(chǔ)。 本書內(nèi)容翔實(shí)、案例新穎、結(jié)構(gòu)清晰、重點(diǎn)明確,以豐富有趣的案例驅(qū)動知識點(diǎn)教學(xué)。本書既可以作為高等院校計(jì)算機(jī)程序設(shè)計(jì)課程的教材,也可以作為計(jì)算機(jī)程序設(shè)計(jì)培訓(xùn)教材和各種計(jì)算機(jī)等級考試的參考教材。
李俊,男,河北大學(xué)副教授。1995.9-1999.7,河北大學(xué)計(jì)算機(jī)軟件專業(yè),大學(xué)本科;1999.7-2020.2,河北大學(xué)計(jì)算機(jī)教學(xué)部;2007.9-2010.7 河北大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,碩士研究生;2020.3-至今 河北大學(xué)電子信息工程學(xué)院,副教授。已出版教材:(1)《ASP動態(tài)網(wǎng)頁設(shè)計(jì)》中國鐵道出版社 2006-08-01;(2)《Visual Basic程序設(shè)計(jì)與應(yīng)用開發(fā)教程》人民郵電出版社 2009-10-10;(3)《C語言程序設(shè)計(jì)教程》機(jī)械工業(yè)出版社 2015-06-01。主持的項(xiàng)目:(1)科技部重點(diǎn)研發(fā)項(xiàng)目《健康養(yǎng)老跨界服務(wù)應(yīng)用示范》子課題《健康養(yǎng)老跨界服務(wù)應(yīng)用示范》負(fù)責(zé)人。(2)河北省自然科學(xué)基金重點(diǎn)項(xiàng)目《冠心病功能學(xué)評價(jià)中關(guān)鍵問題的研究》第二完成人,主要承擔(dān)心臟OCT和CT影像分析工作。
第1章 C語言程序設(shè)計(jì)概述 1
1.1 C語言的發(fā)展及特點(diǎn) 1
1.1.1 C語言的發(fā)展 1
1.1.2 C語言的特點(diǎn) 2
1.2 C語言程序的基本結(jié)構(gòu) 3
1.3 C語言中的字符集、標(biāo)識符與關(guān)鍵字 4
1.3.1 C語言中的字符集 4
1.3.2 C語言中的標(biāo)識符與關(guān)鍵字 5
1.4 C語言程序的開發(fā)環(huán)境 5
1.4.1 C語言程序的開發(fā)過程 6
1.4.2 Microsoft Visual Studio 2010集成開發(fā)環(huán)境 6
本章小結(jié) 12
習(xí)題 12
第2章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式 14
2.1 C語言中的數(shù)據(jù)類型 14
2.1.1 數(shù)據(jù)類型概述 14
2.1.2 整數(shù)類型 15
2.1.3 實(shí)數(shù)類型 16
2.1.4 字符類型 16
2.2 常量與變量 16
2.2.1 常量 16
2.2.2 變量 19
2.3 運(yùn)算符與表達(dá)式 20
2.3.1 算術(shù)運(yùn)算符與算術(shù)表達(dá)式 21
2.3.2 賦值運(yùn)算符與賦值表達(dá)式 22
2.3.3 關(guān)系運(yùn)算符與關(guān)系表達(dá)式 23
2.3.4 邏輯運(yùn)算符與邏輯表達(dá)式 25
2.3.5 條件運(yùn)算符、逗號運(yùn)算符和求字節(jié)數(shù)運(yùn)算符 27
2.4 運(yùn)算符的優(yōu)先級 28
2.5 數(shù)據(jù)類型轉(zhuǎn)換 29
2.5.1 自動類型轉(zhuǎn)換 29
2.5.2 強(qiáng)制類型轉(zhuǎn)換 30
本章小結(jié) 31
習(xí)題 31
第3章 順序結(jié)構(gòu) 33
3.1 算法 33
3.1.1 算法的概念 33
3.1.2 算法的組成要素 34
3.1.3 算法的描述 35
3.2 C語言基本語句 36
3.3 數(shù)據(jù)的輸入與輸出 38
3.3.1 字符的輸入與輸出 38
3.3.2 格式化輸出函數(shù)printf 40
3.3.3 格式化輸入函數(shù)scanf 44
3.4 精彩案例 46
3.4.1 溫度轉(zhuǎn)換 47
3.4.2 進(jìn)制轉(zhuǎn)換 47
3.4.3 大小寫字符轉(zhuǎn)換 47
3.4.4 計(jì)算圓的周長和面積 48
3.4.5 人民幣兌換美元計(jì)算 49
本章小結(jié) 49
習(xí)題 49
第4章 選擇結(jié)構(gòu) 51
4.1 if語句 51
4.1.1 單分支if語句 51
4.1.2 雙分支if語句 53
4.1.3 多分支if語句 54
4.1.4 if語句的嵌套 56
4.2 條件表達(dá)式 58
4.3 switch語句 59
4.4 精彩案例 61
4.4.1 BMI計(jì)算 61
4.4.2 判斷閏年 62
4.4.3 模擬計(jì)算器 63
本章小結(jié) 64
習(xí)題 64
第5章 循環(huán)結(jié)構(gòu) 66
5.1 循環(huán)結(jié)構(gòu)算法 66
5.2 while語句 68
5.3 do...while語句 69
5.4 for語句 71
5.5 break和continue語句 74
5.5.1 break語句 74
5.5.2 continue語句 75
5.6 循環(huán)結(jié)構(gòu)的嵌套 76
5.7 精彩案例 77
5.7.1 猴子吃桃 77
5.7.2 整數(shù)質(zhì)因數(shù)分解 78
5.7.3 電文加密 78
5.7.4 輸出菱形 79
本章小結(jié) 81
習(xí)題 81
第6章 函數(shù)與宏替換 83
6.1 模塊化設(shè)計(jì) 83
6.2 函數(shù)的定義與調(diào)用 84
6.2.1 函數(shù)的定義 84
6.2.2 函數(shù)的調(diào)用 86
6.2.3 參數(shù)的傳遞 89
6.3 函數(shù)的遞歸調(diào)用 90
6.4 變量的作用域與存儲類型 93
6.4.1 變量的作用域 94
6.4.2 變量的存儲類型 96
6.5 宏替換 100
6.5.1 宏替換 100
6.5.2 文件包含 103
6.6 精彩案例 104
6.6.1 判斷回文數(shù) 104
6.6.2 判斷完數(shù) 105
6.6.3 斐波那契數(shù)列 106
本章小結(jié) 107
習(xí)題 107
第7章 數(shù)組 110
7.1 概述 110
7.2 一維數(shù)組 111
7.2.1 一維數(shù)組的定義 111
7.2.2 一維數(shù)組的初始化 112
7.2.3 一維數(shù)組的引用 113
7.2.4 一維數(shù)組的應(yīng)用 114
7.3 二維數(shù)組 118
7.3.1 二維數(shù)組的定義 119
7.3.2 二維數(shù)組的初始化 119
7.3.3 二維數(shù)組的引用 120
7.3.4 二維數(shù)組的應(yīng)用 122
7.4 字符數(shù)組與字符串 123
7.4.1 字符數(shù)組的定義與初始化 124
7.4.2 字符串的概念及存儲 124
7.4.3 字符數(shù)組的輸入與輸出 125
7.4.4 字符串處理函數(shù) 127
7.4.5 字符數(shù)組的應(yīng)用 129
7.5 數(shù)組作為函數(shù)參數(shù) 131
7.6 精彩案例 134
7.6.1 身份證號校驗(yàn) 134
7.6.2 字符串連接 136
7.6.3 刪除字符 137
7.6.4 統(tǒng)計(jì)單詞個(gè)數(shù) 138
本章小結(jié) 139
習(xí)題 139
第8章 指針 141
8.1 指針與指針變量 141
8.1.1 指針的概念 141
8.1.2 指針變量的定義與初始化 142
8.1.3 指針運(yùn)算 144
8.2 指針與數(shù)組 147
8.2.1 一維數(shù)組的指針表示法 147
8.2.2 二維數(shù)組的指針表示法 150
8.3 指針與字符串 154
8.3.1 字符串的指針表示方法 154
8.3.2 字符串?dāng)?shù)組與指針數(shù)組 157
8.4 指針與函數(shù) 159
8.4.1 指針變量作為函數(shù)的形參 159
8.4.2 指針型函數(shù) 165
*8.5 指向指針的指針變量 166
8.6 精彩案例 167
8.6.1 數(shù)字查找 167
8.6.2 字符串截取 169
8.6.3 字符串查找 170
本章小結(jié) 171
習(xí)題 172
第9章 結(jié)構(gòu)體、共用體與枚舉類型 174
9.1 結(jié)構(gòu)體類型的定義 174
9.2 結(jié)構(gòu)體類型變量 176
9.2.1 結(jié)構(gòu)體類型變量的定義 176
9.2.2 結(jié)構(gòu)體類型變量的使用 177
9.2.3 結(jié)構(gòu)體類型變量的初始化 178
9.3 結(jié)構(gòu)體數(shù)組 180
9.3.1 結(jié)構(gòu)體數(shù)組的定義 180
9.3.2 結(jié)構(gòu)體數(shù)組的初始化 181
9.3.3 結(jié)構(gòu)體數(shù)組的使用 181
9.4 結(jié)構(gòu)體類型指針 182
9.4.1 指向結(jié)構(gòu)體類型變量的指針 182
9.4.2 指向結(jié)構(gòu)體數(shù)組的指針 184
9.5 結(jié)構(gòu)體與函數(shù) 186
9.5.1 結(jié)構(gòu)體類型變量作為函數(shù)參數(shù) 186
9.5.2 結(jié)構(gòu)體指針變量作為函數(shù)參數(shù) 187
9.5.3 函數(shù)返回值的類型為結(jié)構(gòu)體類型 188
*9.6 鏈表 189
9.6.1 鏈表概述 189
9.6.2 內(nèi)存管理函數(shù) 190
9.6.3 鏈表的基本操作 192
9.7 共用體類型 198
9.7.1 共用體類型與共用體類型變量 198
9.7.2 共用體類型變量的使用 199
9.8 枚舉類型 202
9.9 精彩案例 205
9.9.1 鏈表存儲職工信息 205
9.9.2 鏈表翻轉(zhuǎn) 206
本章小結(jié) 208
習(xí)題 209
第10章 位運(yùn)算 210
10.1 位運(yùn)算符和位運(yùn)算 210
10.2 位段 212
10.3 綜合案例 214
本章小結(jié) 217
習(xí)題 217
第11章 文件 218
11.1 文件概述 218
11.2 文件的打開與關(guān)閉 220
11.2.1 文件指針 220
11.2.2 文件的打開 221
11.2.3 文件的關(guān)閉 222
11.3 文件讀/寫函數(shù) 223
11.3.1 讀/寫字符函數(shù) 223
11.3.2 讀/寫字符串函數(shù) 225
11.3.3 格式化讀/寫函數(shù) 227
11.3.4 塊讀/寫函數(shù) 228
11.4 文件的定位與隨機(jī)讀/寫 230
11.5 文件檢測函數(shù) 233
11.6 精彩案例 234
11.6.1 文件加密 234
11.6.2 成績信息管理 235
本章小結(jié) 237
習(xí)題 238
第12章 EasyX圖形庫 239
12.1 EasyX圖形庫安裝 239
12.2 基本概念 240
12.2.1 顏色 240
12.2.2 坐標(biāo) 242
12.2.3 設(shè)備 243
12.3 常用庫函數(shù) 244
12.3.1 設(shè)備繪圖相關(guān)函數(shù) 245
12.3.2 顏色轉(zhuǎn)換函數(shù) 245
12.3.3 顏色及樣式設(shè)置函數(shù) 246
12.3.4 圖形繪制相關(guān)函數(shù) 249
12.3.5 文字輸出相關(guān)函數(shù) 251
12.3.6 圖像處理相關(guān)函數(shù) 255
12.4 精彩案例 257
12.4.1 模擬動態(tài)二維星空 257
12.4.2 繪制動態(tài)時(shí)鐘 259
本章小結(jié) 261
習(xí)題 262
第13章 C++語言面向?qū)ο蠡A(chǔ) 263
13.1 C++語言簡介 263
13.2 類和對象 265
13.2.1 類的定義和對象的聲明 265
13.2.2 類的成員函數(shù) 267
13.2.3 類的構(gòu)造函數(shù)與析構(gòu)函數(shù) 269
13.2.4 C++類的訪問修飾符 272
13.3 繼承、重載和多態(tài) 275
13.3.1 類的繼承 275
13.3.2 重載函數(shù)和重載運(yùn)算符 278
13.3.3 多態(tài) 281
13.4 接口 283
13.5 精彩案例 285
13.5.1 計(jì)算正方體、球體和圓柱體的表面積與體積 285
13.5.2 學(xué)生和教師信息管理 287
本章小結(jié) 289
習(xí)題 290
附錄A ASCII碼表 291
附錄B C語言運(yùn)算符優(yōu)先級和結(jié)合方向 292
附錄C C語言常見的錯(cuò)誤信息 293
附錄D C語言常用算法 297
附錄E C語言常用庫函數(shù) 310