本書由淺入深、循序漸進地介紹了C語言程序設(shè)計的思路和方法,并通過富有趣味性的精彩案例講解將每章中的知識點融會貫通,同時給出了案例思路分析,提出了案例思考問題,從而提高讀者的學習興趣,培養(yǎng)讀者的自主學習能力、獨立思考能力和計算思維能力。本書共13章,系統(tǒng)地介紹了基于Visual Studio的C語言程序的開發(fā)環(huán)境、數(shù)據(jù)類型、運算符與表達式、基本輸入與輸出語句、流程控制、模塊化程序設(shè)計方法、位運算符和位運算、標準文件的輸入與輸出操作、EasyX圖形庫和C++語言面向?qū)ο蠡A(chǔ)。 本書內(nèi)容翔實、案例新穎、結(jié)構(gòu)清晰、重點明確,以豐富有趣的案例驅(qū)動知識點教學。本書既可以作為高等院校計算機程序設(shè)計課程的教材,也可以作為計算機程序設(shè)計培訓教材和各種計算機等級考試的參考教材。
李俊,男,河北大學副教授。1995.9-1999.7,河北大學計算機軟件專業(yè),大學本科;1999.7-2020.2,河北大學計算機教學部;2007.9-2010.7 河北大學計算機科學學院,碩士研究生;2020.3-至今 河北大學電子信息工程學院,副教授。已出版教材:(1)《ASP動態(tài)網(wǎng)頁設(shè)計》中國鐵道出版社 2006-08-01;(2)《Visual Basic程序設(shè)計與應用開發(fā)教程》人民郵電出版社 2009-10-10;(3)《C語言程序設(shè)計教程》機械工業(yè)出版社 2015-06-01。主持的項目:(1)科技部重點研發(fā)項目《健康養(yǎng)老跨界服務應用示范》子課題《健康養(yǎng)老跨界服務應用示范》負責人。(2)河北省自然科學基金重點項目《冠心病功能學評價中關(guān)鍵問題的研究》第二完成人,主要承擔心臟OCT和CT影像分析工作。
第1章 C語言程序設(shè)計概述 1
1.1 C語言的發(fā)展及特點 1
1.1.1 C語言的發(fā)展 1
1.1.2 C語言的特點 2
1.2 C語言程序的基本結(jié)構(gòu) 3
1.3 C語言中的字符集、標識符與關(guān)鍵字 4
1.3.1 C語言中的字符集 4
1.3.2 C語言中的標識符與關(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
習題 12
第2章 數(shù)據(jù)類型、運算符與表達式 14
2.1 C語言中的數(shù)據(jù)類型 14
2.1.1 數(shù)據(jù)類型概述 14
2.1.2 整數(shù)類型 15
2.1.3 實數(shù)類型 16
2.1.4 字符類型 16
2.2 常量與變量 16
2.2.1 常量 16
2.2.2 變量 19
2.3 運算符與表達式 20
2.3.1 算術(shù)運算符與算術(shù)表達式 21
2.3.2 賦值運算符與賦值表達式 22
2.3.3 關(guān)系運算符與關(guān)系表達式 23
2.3.4 邏輯運算符與邏輯表達式 25
2.3.5 條件運算符、逗號運算符和求字節(jié)數(shù)運算符 27
2.4 運算符的優(yōu)先級 28
2.5 數(shù)據(jù)類型轉(zhuǎn)換 29
2.5.1 自動類型轉(zhuǎn)換 29
2.5.2 強制類型轉(zhuǎn)換 30
本章小結(jié) 31
習題 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 進制轉(zhuǎn)換 47
3.4.3 大小寫字符轉(zhuǎn)換 47
3.4.4 計算圓的周長和面積 48
3.4.5 人民幣兌換美元計算 49
本章小結(jié) 49
習題 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 條件表達式 58
4.3 switch語句 59
4.4 精彩案例 61
4.4.1 BMI計算 61
4.4.2 判斷閏年 62
4.4.3 模擬計算器 63
本章小結(jié) 64
習題 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
習題 81
第6章 函數(shù)與宏替換 83
6.1 模塊化設(shè)計 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
習題 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ù)組的應用 114
7.3 二維數(shù)組 118
7.3.1 二維數(shù)組的定義 119
7.3.2 二維數(shù)組的初始化 119
7.3.3 二維數(shù)組的引用 120
7.3.4 二維數(shù)組的應用 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ù)組的應用 129
7.5 數(shù)組作為函數(shù)參數(shù) 131
7.6 精彩案例 134
7.6.1 身份證號校驗 134
7.6.2 字符串連接 136
7.6.3 刪除字符 137
7.6.4 統(tǒng)計單詞個數(shù) 138
本章小結(jié) 139
習題 139
第8章 指針 141
8.1 指針與指針變量 141
8.1.1 指針的概念 141
8.1.2 指針變量的定義與初始化 142
8.1.3 指針運算 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 字符串數(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
習題 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
習題 209
第10章 位運算 210
10.1 位運算符和位運算 210
10.2 位段 212
10.3 綜合案例 214
本章小結(jié) 217
習題 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 文件的定位與隨機讀/寫 230
11.5 文件檢測函數(shù) 233
11.6 精彩案例 234
11.6.1 文件加密 234
11.6.2 成績信息管理 235
本章小結(jié) 237
習題 238
第12章 EasyX圖形庫 239
12.1 EasyX圖形庫安裝 239
12.2 基本概念 240
12.2.1 顏色 240
12.2.2 坐標 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)時鐘 259
本章小結(jié) 261
習題 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ù)和重載運算符 278
13.3.3 多態(tài) 281
13.4 接口 283
13.5 精彩案例 285
13.5.1 計算正方體、球體和圓柱體的表面積與體積 285
13.5.2 學生和教師信息管理 287
本章小結(jié) 289
習題 290
附錄A ASCII碼表 291
附錄B C語言運算符優(yōu)先級和結(jié)合方向 292
附錄C C語言常見的錯誤信息 293
附錄D C語言常用算法 297
附錄E C語言常用庫函數(shù) 310