C語(yǔ)言程序設(shè)計(jì)(第2版)
定 價(jià):69 元
- 作者:邱曉紅
- 出版時(shí)間:2022/7/1
- ISBN:9787121436635
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312.8
- 頁(yè)碼:340
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書是工業(yè)和信息化部“十四五”規(guī)劃教材,新工科建設(shè)·計(jì)算機(jī)系列教材。本書針對(duì)教學(xué)研究型和教學(xué)應(yīng)用型大學(xué)的學(xué)生綜合素質(zhì)特點(diǎn),基于CDIO的工程教育理念,結(jié)合讀者需要掌握的程序設(shè)計(jì)知識(shí)點(diǎn)和人工智能時(shí)代知識(shí)體系需求以及國(guó)內(nèi)外C語(yǔ)言程序設(shè)計(jì)的最新教材和經(jīng)典應(yīng)用實(shí)例編寫。本書針對(duì)每章主要知識(shí)點(diǎn)選取了應(yīng)用范例,并通過(guò)五子棋人機(jī)對(duì)戰(zhàn)和ATM自動(dòng)取款機(jī)綜合應(yīng)用實(shí)例貫穿C語(yǔ)言主要知識(shí)點(diǎn),培養(yǎng)讀者計(jì)算思維能力,同時(shí)分析比較計(jì)算機(jī)程序語(yǔ)言與自然語(yǔ)言的相互對(duì)應(yīng)關(guān)系,形象化解釋程序語(yǔ)言的相關(guān)概念,幫助讀者更深層次地理解程序語(yǔ)言的特性,進(jìn)一步增強(qiáng)計(jì)算機(jī)相關(guān)領(lǐng)域應(yīng)用知識(shí)點(diǎn)和程序設(shè)計(jì)語(yǔ)言間的對(duì)應(yīng)關(guān)系。本書內(nèi)容與后續(xù)專業(yè)課程知識(shí)點(diǎn)相互呼應(yīng),并通過(guò)形象化范例加以解釋,增強(qiáng)了可讀性,降低了概念的抽象性,有助于讀者掌握計(jì)算機(jī)程序設(shè)計(jì)的專業(yè)術(shù)語(yǔ)和概念,促進(jìn)C語(yǔ)言程序設(shè)計(jì)水平的提高,學(xué)會(huì)智能程序化的基本方法和思想。本書既可作為高等院校開(kāi)設(shè)的C語(yǔ)言程序設(shè)計(jì)課程的教科書,也可作為計(jì)算機(jī)程序設(shè)計(jì)培訓(xùn)班的教材或計(jì)算機(jī)程序設(shè)計(jì)人員的參考書。
邱曉紅,江西理工大學(xué)軟件工程學(xué)院教授,副院長(zhǎng)。長(zhǎng)期從事計(jì)算機(jī)教育、智能控制系統(tǒng)的仿真、控制優(yōu)化、故障測(cè)試、智能計(jì)算等方面研究工作。獲省部級(jí)二等獎(jiǎng)2項(xiàng)。 2010年聘為江西省第一屆學(xué)科評(píng)議組專家(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)),2012年江西省計(jì)算機(jī)學(xué)會(huì)常務(wù)理事,2015年江西省軟件工程專業(yè)教指委成員,2018年江西省虛擬現(xiàn)實(shí)(VR)專委會(huì)成員。1999年榮獲"第十屆北京優(yōu)秀青年工程師”稱號(hào)。2001年獲國(guó)防科工委國(guó)防科學(xué)技術(shù)二等獎(jiǎng),并榮立二等功。2008年獲江西省教育廳教育科學(xué)優(yōu)秀成果二等獎(jiǎng)。2004-2006年度江西省高校中青年學(xué)科帶頭人、2011年江西省高等學(xué)校第七批中青年學(xué)科帶頭人,2011年中國(guó)信息協(xié)會(huì)評(píng)為"中國(guó)信息化百名優(yōu)秀帶頭人”。
第1章 C語(yǔ)言及程序設(shè)計(jì)概述 1
1.1 C語(yǔ)言簡(jiǎn)介 1
1.1.1 計(jì)算機(jī)語(yǔ)言的發(fā)展過(guò)程 1
1.1.2 C語(yǔ)言的發(fā)展過(guò)程 1
1.1.3 C語(yǔ)言的主要特點(diǎn) 2
1.2 C語(yǔ)言程序結(jié)構(gòu) 3
1.2.1 C語(yǔ)言程序的結(jié)構(gòu)及其特點(diǎn) 3
1.2.2 標(biāo)識(shí)符與關(guān)鍵字 6
1.3 C語(yǔ)言編譯工具簡(jiǎn)介 7
1.3.1 C語(yǔ)言程序?qū)崿F(xiàn)的步驟 7
1.3.2 Dev-C++編譯工具 7
1.3.3 Visual C++ 6.0編譯工具簡(jiǎn)介 12
1.4 如何學(xué)習(xí)C語(yǔ)言 15
1.4.1 學(xué)習(xí)C語(yǔ)言的理由 15
1.4.2 學(xué)好C語(yǔ)言的步驟 16
1.5 編程實(shí)踐 18
1.5.1 任務(wù):輸出金字塔圖案 18
1.5.2 任務(wù):輸出華氏溫度和攝氏溫度對(duì)照表 18
1.6 知識(shí)擴(kuò)展材料 19
1.6.1 C語(yǔ)言的標(biāo)準(zhǔn)化過(guò)程 19
1.6.2 數(shù)字產(chǎn)業(yè)基礎(chǔ) 20
習(xí)題1 20
第2章 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 22
2.1 常量和變量 22
2.1.1 常量 22
2.1.2 變量 25
2.2 基本數(shù)據(jù)類型 26
2.2.1 整型 27
2.2.2 字符型 28
2.2.3 實(shí)型 28
2.3 數(shù)據(jù)類型的轉(zhuǎn)換 29
2.3.1 自動(dòng)轉(zhuǎn)換 29
2.3.2 強(qiáng)制轉(zhuǎn)換 31
2.4 運(yùn)算符和表達(dá)式 32
2.4.1 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 32
2.4.2 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 37
2.4.3 邏輯運(yùn)算符和邏輯表達(dá)式 39
2.4.4 賦值運(yùn)算符和賦值表達(dá)式 40
2.4.5 位運(yùn)算符和位運(yùn)算 42
2.4.6 條件運(yùn)算符和條件表達(dá)式 44
2.4.7 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 45
2.4.8 求字節(jié)數(shù)運(yùn)算符 46
2.4.9 特殊運(yùn)算符 47
2.5 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 47
2.5.1 運(yùn)算符的優(yōu)先級(jí) 47
2.5.2 運(yùn)算符的結(jié)合性 48
2.6 編程實(shí)踐 49
任務(wù):分析MD5散列算法的基本運(yùn)算 49
2.7 知識(shí)擴(kuò)展材料 50
2.7.1 C語(yǔ)言代碼規(guī)范(編程規(guī)范) 50
2.7.2 代碼規(guī)范的7個(gè)原則 51
習(xí)題2 53
第3章 算法概念與順序結(jié)構(gòu)的程序設(shè)計(jì) 59
3.1 算法簡(jiǎn)介 59
3.1.1 算法的概念 59
3.1.2 算法的常用描述方法 60
3.2 C語(yǔ)句概述 62
3.3 C語(yǔ)言的基本輸入/輸出 64
3.3.1 字符的輸入/輸出函數(shù) 64
3.3.2 格式的輸入/輸出函數(shù) 65
3.4 順序結(jié)構(gòu)的程序設(shè)計(jì) 72
3.4.1 順序結(jié)構(gòu)的程序設(shè)計(jì)思想 72
3.4.2 順序結(jié)構(gòu)的程序設(shè)計(jì)舉例 73
3.5 編程實(shí)踐 74
任務(wù):計(jì)算正弦函數(shù)的面積 74
3.6 知識(shí)擴(kuò)展材料 75
3.6.1 程序員的責(zé)任事故 75
3.6.2 程序員的違法犯罪行為 75
習(xí)題3 76
第4章 選擇結(jié)構(gòu)的程序設(shè)計(jì) 80
4.1 if語(yǔ)句 80
4.1.1 單分支if語(yǔ)句 80
4.1.2 雙分支if語(yǔ)句 81
4.1.3 多分支if語(yǔ)句 82
4.1.4 if語(yǔ)句的嵌套 83
4.1.5 條件運(yùn)算符和條件表達(dá)式 84
4.2 switch語(yǔ)句 85
4.2.1 switch語(yǔ)句 85
4.2.2 switch語(yǔ)句的嵌套 87
4.3 選擇結(jié)構(gòu)程序設(shè)計(jì)舉例 88
4.4 編程實(shí)踐 90
任務(wù):計(jì)算個(gè)人所得稅 90
4.5 知識(shí)擴(kuò)展材料 91
4.5.1 個(gè)人所得稅的概念 91
4.5.2 我國(guó)個(gè)人所得稅的特點(diǎn) 91
習(xí)題4 92
第5章 循環(huán)結(jié)構(gòu)的程序設(shè)計(jì) 102
5.1 while語(yǔ)句和do-while語(yǔ)句 102
5.1.1 while語(yǔ)句的一般形式 102
5.1.2 while語(yǔ)句的使用說(shuō)明 103
5.1.3 do-while語(yǔ)句的一般形式 104
5.1.4 do-while語(yǔ)句的使用說(shuō)明 104
5.2 循環(huán)結(jié)構(gòu)和循環(huán)嵌套 105
5.2.1 for語(yǔ)句的一般形式 105
5.2.2 for語(yǔ)句使用說(shuō)明 106
5.2.3 循環(huán)嵌套的形式 107
5.2.4 循環(huán)嵌套的說(shuō)明 108
5.3 流程轉(zhuǎn)向語(yǔ)句 108
5.3.1 goto語(yǔ)句 108
5.3.2 break語(yǔ)句 109
5.3.3 continue語(yǔ)句 110
5.4 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)舉例 110
5.4.1 確定循環(huán)次數(shù)與不確定循環(huán)次數(shù) 111
5.4.2 選擇循環(huán)語(yǔ)句 112
5.4.3 提前結(jié)束循環(huán) 114
5.4.4 其他應(yīng)用舉例 114
5.5 編程實(shí)踐 115
任務(wù):驗(yàn)證哥德巴赫猜想 115
5.6 知識(shí)擴(kuò)展材料 115
5.6.1 計(jì)算思維 116
5.6.2 計(jì)算思維養(yǎng)成 116
習(xí)題5 117
第6章 數(shù)組 122
6.1 一維數(shù)組 122
6.1.1 一維數(shù)組的定義 122
6.1.2 一維數(shù)組元素的引用 122
6.1.3 一維數(shù)組的初始化 123
6.1.4 一維數(shù)組應(yīng)用舉例 124
6.2 多維數(shù)組 125
6.2.1 二維數(shù)組的定義 125
6.2.2 二維數(shù)組元素的引用 126
6.2.3 二維數(shù)組的初始化 126
6.2.4 二維數(shù)組應(yīng)用舉例 127
6.3 字符數(shù)組 129
6.3.1 字符數(shù)組的定義 129
6.3.2 字符數(shù)組的初始化 130
6.3.3 字符串與字符串結(jié)束標(biāo)志 131
6.3.4 字符數(shù)組的引用與輸入/輸出 131
6.3.5 字符串處理函數(shù) 132
6.3.6 字符數(shù)組應(yīng)用舉例 135
6.4 數(shù)組應(yīng)用舉例 137
6.5 編程實(shí)踐 139
任務(wù):多規(guī)格打印萬(wàn)年歷 139
6.6 知識(shí)擴(kuò)展材料 141
6.6.1 聚類分析 141
6.6.2 相似性度量 141
習(xí)題6 142
第7章 函數(shù) 145
7.1 函數(shù)的定義 145
7.1.1 函數(shù)概述 145
7.1.2 函數(shù)類型 145
7.1.3 函數(shù)定義和使用 147
7.2 函數(shù)參數(shù)和返回值 149
7.2.1 形式參數(shù)和實(shí)際參數(shù) 149
7.2.2 函數(shù)的返回值 152
7.3 函數(shù)調(diào)用和聲明 153
7.3.1 函數(shù)調(diào)用 153
7.3.2 函數(shù)聲明 154
7.4 函數(shù)的嵌套調(diào)用和遞歸調(diào)用 155
7.4.1 函數(shù)的嵌套調(diào)用 155
7.4.2 函數(shù)的遞歸調(diào)用 156
7.5 變量的作用域 159
7.6 變量的存儲(chǔ)類別 161
7.7 編程實(shí)踐 163
7.7.1 任務(wù):正(余)弦曲線演示 163
7.7.2 任務(wù):輸出楊輝三角 165
7.8 知識(shí)擴(kuò)展材料 166
7.8.1 分而治之 166
7.8.2 模塊化設(shè)計(jì) 167
習(xí)題7 167
第8章 指針 172
8.1 指針和地址 172
8.2 指針變量 173
8.2.1 指針變量的定義 173
8.2.2 指針變量的賦值 174
8.2.3 指針運(yùn)算符與指針表達(dá)式 175
8.2.4 指針變量引用 177
8.2.5 指針變量作為函數(shù)的參數(shù) 177
8.3 指針和數(shù)組 180
8.3.1 指向數(shù)組的指針 180
8.3.2 通過(guò)指針引用數(shù)組元素 181
8.3.3 數(shù)組名作為函數(shù)參數(shù) 183
8.3.4 指向多維數(shù)組的指針和指針變量 185
8.4 指針和字符串 188
8.4.1 字符串的表示 188
8.4.2 字符串指針作為函數(shù)參數(shù) 190
8.4.3 字符數(shù)組與字符串指針的區(qū)別 191
8.5 指針和函數(shù) 192
8.5.1 函數(shù)的指針 192
8.5.2 用指向函數(shù)的指針作為函數(shù)參數(shù) 193
8.5.3 返回指針值的函數(shù) 195
8.6 指向指針的指針 196
8.6.1 指向指針的指針的定義 196
8.6.2 指針數(shù)組 197
8.6.3 指針數(shù)組作為main函數(shù)參數(shù) 198
8.7 編程實(shí)踐 199
8.7.1 任務(wù):黑白棋子交換 199
8.7.2 任務(wù):班干部值日安排 202
8.8 知識(shí)擴(kuò)展材料 204
8.8.1 指針的優(yōu)點(diǎn)和缺點(diǎn) 204
8.8.2 指針的本質(zhì) 204
習(xí)題8 205
第9章 結(jié)構(gòu)體和共用體 209
9.1 結(jié)構(gòu)體 209
9.1.1 結(jié)構(gòu)體類型的定義 209
9.1.2 結(jié)構(gòu)體變量的定義 211
9.1.3 結(jié)構(gòu)體變量的引用 212
9.1.4 結(jié)構(gòu)體變量的賦值 213
9.2 結(jié)構(gòu)體數(shù)組與結(jié)構(gòu)體指針 215
9.2.1 結(jié)構(gòu)體數(shù)組 215
9.2.2 指向結(jié)構(gòu)體的指針 217
9.2.3 用結(jié)構(gòu)體作為函數(shù)的參數(shù) 219
9.2.4 結(jié)構(gòu)體舉例 222
9.3 鏈表 224
9.3.1 鏈表概述 224
9.3.2 處理動(dòng)態(tài)鏈表所需的函數(shù) 225
9.3.3 鏈表的基本操作 227
9.4 共用體 231
9.4.1 共用體類型的定義 231
9.4.2 共用體類型變量的定義 232
9.4.3 共用體變量的引用 232
9.4.4 共用體變量的初始化 232
9.5 枚舉類型和自定義類型 234
9.5.1 枚舉類型的定義 234
9.5.2 枚舉變量的定義和初始化 235
9.5.3 枚舉數(shù)據(jù)的運(yùn)算 236
9.5.4 枚舉數(shù)據(jù)的輸入/輸出 236
9.5.5 枚舉變量舉例 237
9.5.6 用typedef定義類型 238
9.6 編程實(shí)踐 241
9.6.1 任務(wù):三天打魚兩天曬網(wǎng) 241
9.6.2 任務(wù):航班訂票系統(tǒng) 242
9.7 知識(shí)擴(kuò)展材料 249
9.7.1 結(jié)構(gòu)體所占內(nèi)存 249
9.7.2 內(nèi)存對(duì)齊 250
習(xí)題9 250
第10章 文件 254
10.1 文件概述 254
10.1.1 文件分類 254
10.1.2 文件的編碼形式 254
10.1.3 文件的讀/寫方式 255
10.2 文件的基本操作 255
10.2.1 文件的打開(kāi)與關(guān)閉 255
10.2.2 文件的讀/寫 257
10.3 文件操作舉例 261
10.4 編程實(shí)踐 267
任務(wù):精挑細(xì)選 267
10.5 知識(shí)擴(kuò)展材料 268
10.5.1 嵌入式C語(yǔ)言與標(biāo)準(zhǔn)C語(yǔ)言的區(qū)別 268
10.5.2 嵌入式C語(yǔ)言數(shù)據(jù)類型的特點(diǎn) 269
習(xí)題10 270
第11章 預(yù)處理命令 271
11.1 宏定義 271
11.1.1 無(wú)參數(shù)的宏定義 271
11.1.2 有參數(shù)的宏定義 274
11.2 文件包含 277
11.3 條件編譯 278
11.4 編程實(shí)踐 280
任務(wù):串化運(yùn)算 280
11.5 知識(shí)擴(kuò)展材料 281
11.5.1 算法復(fù)雜度 281
11.5.2 算法復(fù)雜度示例 281
習(xí)題11 282
第12章 綜合案例實(shí)訓(xùn) 286
12.1 五子棋項(xiàng)目實(shí)訓(xùn) 286
12.1.1 功能模塊設(shè)計(jì) 286
12.1.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 287
12.1.3 函數(shù)功能描述 287
12.1.4 系統(tǒng)數(shù)據(jù)流程 289
12.1.5 程序?qū)崿F(xiàn) 289
12.1.6 運(yùn)行結(jié)果 306
12.2 ATM(自動(dòng)取款機(jī))案例實(shí)訓(xùn) 306
12.2.1 功能模塊設(shè)計(jì) 306
12.2.2 數(shù)據(jù)結(jié)構(gòu)分析 307
12.2.3 函數(shù)功能描述 307
12.2.4 系統(tǒng)數(shù)據(jù)流程 307
12.2.5 程序?qū)崿F(xiàn) 307
12.2.6 運(yùn)行結(jié)果 321
附錄A 常用字符與ASCII對(duì)照表 322
附錄B C語(yǔ)言常用語(yǔ)法提要 323
B.1 標(biāo)識(shí)符 323
B.2 常量 323
B.3 表達(dá)式 323
B.4 數(shù)據(jù)定義 324
B.5 函數(shù)定義 324
B.6 變量的初始化 325
B.7 語(yǔ)句 325
B.8 預(yù)處理命令 325
附錄C C語(yǔ)言的常用庫(kù)函數(shù) 326
C.1 輸入/輸出函數(shù) 326
C.2 數(shù)學(xué)函數(shù) 327
C.3 字符函數(shù)和字符串函數(shù) 328
C.4 動(dòng)態(tài)存儲(chǔ)分配函數(shù) 328
參考文獻(xiàn) 329