《C語言程序設(shè)計(jì)教程(第二版)》分為理論、項(xiàng)目實(shí)戰(zhàn)兩部分。理論部分介紹了C語言的基礎(chǔ)語法知識(shí),包括C語言的基本概念、數(shù)據(jù)類型及其運(yùn)算、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組、函數(shù)、編譯預(yù)處理、指針、結(jié)構(gòu)體和共用體、文件等10章內(nèi)容。每章配有程序?qū)嵗统R婂e(cuò)誤分析,有利于讀者掌握程序設(shè)計(jì)的基本方法和編程技巧。項(xiàng)目實(shí)戰(zhàn)部分詳細(xì)展示了項(xiàng)目開發(fā)的全過程,從實(shí)訓(xùn)分析、算法設(shè)計(jì)到程序編寫和過程調(diào)試,以項(xiàng)目實(shí)戰(zhàn)的形式引導(dǎo)和幫助學(xué)生解決實(shí)際問題,提高學(xué)生解決具體問題的能力。
相關(guān)的實(shí)驗(yàn)內(nèi)容、綜合實(shí)訓(xùn)、學(xué)科競(jìng)賽訓(xùn)練在與本書配套的《C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題解答》中詳細(xì)闡述。
1.《C語言程序設(shè)計(jì)教程(第二版)》深入淺出地講授了C語言程序設(shè)計(jì)的技術(shù)與技巧。
2.《C語言程序設(shè)計(jì)教程(第二版)》適合不同學(xué)時(shí)需要;
3.《C語言程序設(shè)計(jì)教程(第二版)》配套電子課件和學(xué)習(xí)指導(dǎo)及項(xiàng)目實(shí)訓(xùn)(《C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題解答》,馬睿、孫麗云主編)。
第1部分 基礎(chǔ)知識(shí)
第1章 引言2
1.1 C語言的發(fā)展2
1.2 C語言的特點(diǎn)2
1.3 C程序結(jié)構(gòu)3
1.3.1 C程序的基本結(jié)構(gòu)3
1.3.2 C語言的算法5
1.3.3 C程序的三種基本結(jié)構(gòu)6
1.4 C程序的實(shí)現(xiàn)6
1.4.1 C程序的開發(fā)步驟6
1.4.2 C程序的編輯8
1.4.3 C程序的編譯及執(zhí)行10
1.5 常見錯(cuò)誤分析13
本章小結(jié)15
習(xí)題15
第2章 數(shù)據(jù)類型及其運(yùn)算17
2.1 基本字符和標(biāo)識(shí)符17
2.1.1 標(biāo)識(shí)符17
2.1.2 關(guān)鍵字17
2.2 常量與變量18
2.2.1 常量與符號(hào)常量18
2.2.2 變量18
2.3 數(shù)據(jù)類型18
2.3.1 整型數(shù)據(jù)19
2.3.2 實(shí)型數(shù)據(jù)21
2.3.3 字符型數(shù)據(jù)22
2.4 數(shù)據(jù)類型的轉(zhuǎn)換23
2.4.1 隱式類型轉(zhuǎn)換24
2.4.2 強(qiáng)制類型轉(zhuǎn)換24
2.5 運(yùn)算符和表達(dá)式25
2.5.1 算術(shù)運(yùn)算符和算術(shù)表達(dá)式25
2.5.2 賦值運(yùn)算符和賦值表達(dá)式26
2.5.3 自增自減運(yùn)算符27
2.5.4 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式29
2.6 數(shù)據(jù)的輸入和輸出29
2.6.1 格式輸入函數(shù)scanf29
2.6.2 格式輸出函數(shù)printf31
2.6.3 字符輸入函數(shù)getchar33
2.6.4 字符輸出函數(shù)putchar33
2.7 賦值語句和順序結(jié)構(gòu)程序設(shè)計(jì)33
2.7.1 賦值語句33
2.7.2 順序結(jié)構(gòu)程序設(shè)計(jì)34
2.8 數(shù)學(xué)函數(shù)35
2.9 應(yīng)用舉例36
2.10 常見錯(cuò)誤分析39
本章小結(jié)45
習(xí)題45
第3章 選擇結(jié)構(gòu)及其應(yīng)用48
3.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式48
3.1.1 關(guān)系運(yùn)算符48
3.1.2 關(guān)系表達(dá)式48
3.2 邏輯運(yùn)算符和邏輯表達(dá)式49
3.2.1 邏輯運(yùn)算符49
3.2.2 邏輯表達(dá)式49
3.3 IF語句50
3.3.1 if分支50
3.3.2 if-else分支52
3.3.3 嵌套的if語句54
3.4 SWITCH語句57
3.5 條件運(yùn)算符和條件表達(dá)式60
3.6 應(yīng)用舉例61
3.7 常見錯(cuò)誤分析64
本章小結(jié)67
習(xí)題67
第4章 循環(huán)結(jié)構(gòu)及其應(yīng)用70
4.1 WHILE循環(huán)語句70
4.2 FOR循環(huán)語句74
4.3 DO-WHILE循環(huán)語句79
4.4 三種循環(huán)語句的比較81
4.5 BREAK語句和CONTINUE語句84
4.5.1 break語句84
4.5.2 continue語句86
4.6 循環(huán)嵌套88
4.7 GOTO語句和標(biāo)號(hào)92
4.8 應(yīng)用舉例93
4.9 常見錯(cuò)誤分析97
本章小結(jié)99
習(xí)題99
第5章 數(shù)組104
5.1 一維數(shù)組104
5.1.1 一維數(shù)組的定義和引用104
5.1.2 一維數(shù)組的初始化107
5.1.3 一維數(shù)組應(yīng)用舉例108
5.2 二維數(shù)組112
5.2.1 二維數(shù)組的定義和引用112
5.2.2 二維數(shù)組的初始化113
5.2.3 二維數(shù)組應(yīng)用舉例113
5.3 字符數(shù)組和字符串116
5.3.1 字符數(shù)組的定義和初始化116
5.3.2 字符串117
5.3.3 字符數(shù)組的輸入和輸出118
5.3.4 字符串處理函數(shù)120
5.3.5 字符數(shù)組應(yīng)用舉例123
5.4 常見錯(cuò)誤分析124
本章小結(jié)126
習(xí)題126
第6章 函數(shù)128
6.1 函數(shù)概述128
6.1.1 函數(shù)的概念128
6.1.2 庫函數(shù)129
6.2 用戶自定義函數(shù)129
6.2.1 函數(shù)定義的格式129
6.2.2 形式參數(shù)和實(shí)際參數(shù)131
6.2.3 函數(shù)的返回值133
6.3 函數(shù)的調(diào)用134
6.3.1 函數(shù)調(diào)用的一般形式134
6.3.2 函數(shù)的調(diào)用方式134
6.3.3 函數(shù)的原型聲明135
6.3.4 函數(shù)的參數(shù)傳遞137
6.4 函數(shù)的嵌套調(diào)用和遞歸調(diào)用138
6.4.1 函數(shù)的嵌套調(diào)用138
6.4.2 函數(shù)的遞歸調(diào)用139
6.5 數(shù)組作為函數(shù)的參數(shù)141
6.5.1 數(shù)組元素作為函數(shù)的參數(shù)141
6.5.2 數(shù)組名作為函數(shù)的參數(shù)142
6.6 局部變量和全局變量144
6.6.1 局部變量144
6.6.2 全局變量145
6.7 變量的存儲(chǔ)類別148
6.7.1 局部變量的存儲(chǔ)類別148
6.7.2 全局變量的存儲(chǔ)類別151
6.8 內(nèi)部函數(shù)和外部函數(shù)152
6.8.1 內(nèi)部函數(shù)152
6.8.2 外部函數(shù)152
6.9 應(yīng)用舉例152
6.10 常見錯(cuò)誤分析156
本章小結(jié)158
習(xí)題158
第7章 預(yù)處理命令162
7.1 宏定義162
7.1.1 不帶參數(shù)的宏定義162
7.1.2 帶參數(shù)的宏定義164
7.1.3 撤銷宏定義命令165
7.2 文件包含命令166
7.3 條件編譯命令168
7.4 常見錯(cuò)誤分析170
本章小結(jié)171
習(xí)題171
第8章 指針172
8.1 變量的地址和指針172
8.2 指針變量的定義173
8.3 指針運(yùn)算174
8.3.1 取地址運(yùn)算符174
8.3.2 指針運(yùn)算符174
8.3.3 賦值運(yùn)算174
8.3.4 空指針與void指針176
8.4 指針與數(shù)組177
8.4.1 一維數(shù)組的指針表示177
8.4.2 二維數(shù)組的指針表示184
8.4.3 指針與字符串187
8.5 指針與函數(shù)189
8.5.1 指針作為函數(shù)參數(shù)190
8.5.2 指針作為函數(shù)的返回值193
8.5.3 函數(shù)的指針194
8.6 指針數(shù)組和指向指針的指針195
8.6.1 指針數(shù)組195
8.6.2 指向指針的指針197
8.7 應(yīng)用舉例199
8.8 常見錯(cuò)誤分析201
本章小結(jié)202
習(xí)題203
第9章 結(jié)構(gòu)體與共用體207
9.1 結(jié)構(gòu)體207
9.1.1 結(jié)構(gòu)體類型的定義208
9.1.2 結(jié)構(gòu)體變量的定義209
9.1.3 用typedef定義數(shù)據(jù)類型211
9.1.4 結(jié)構(gòu)體變量的引用211
9.1.5 結(jié)構(gòu)體變量的初始化212
9.2 結(jié)構(gòu)體數(shù)組213
9.2.1 結(jié)構(gòu)體數(shù)組的定義213
9.2.2 結(jié)構(gòu)體數(shù)組的初始化214
9.2.3 結(jié)構(gòu)體數(shù)組的引用214
9.3 結(jié)構(gòu)體指針變量215
9.3.1 指向結(jié)構(gòu)體變量的指針215
9.3.2 指向結(jié)構(gòu)體數(shù)組的指針216
9.3.3 結(jié)構(gòu)體變量和結(jié)構(gòu)體指針變量作為
函數(shù)參數(shù)216
9.4 鏈表218
9.4.1 鏈表的類型及定義219
9.4.2 處理動(dòng)態(tài)鏈表的函數(shù)220
9.4.3 動(dòng)態(tài)鏈表的基本操作221
9.4.4 棧和隊(duì)列228
9.5 共用體229
9.6 枚舉類型230
9.7 應(yīng)用舉例230
9.8 常見錯(cuò)誤分析234
本章小結(jié)236
習(xí)題237
第10章 文件240
10.1 文件概述240
10.2 文件類型指針241
10.3 文件的打開、讀寫和關(guān)閉241
10.3.1 文件的打開函數(shù)fopen241
10.3.2 文件的關(guān)閉函數(shù)fclose243
10.3.3 文件的讀寫243
10.3.4 文件讀寫函數(shù)的選擇249
10.4 文件的定位250
10.5 應(yīng)用舉例251
10.6 常見錯(cuò)誤分析253
本章小結(jié)253
習(xí)題254
第2部分 項(xiàng)目實(shí)戰(zhàn)
第11章 貪吃蛇游戲258
11.1 概述258
11.2 需求分析258
11.3 系統(tǒng)設(shè)計(jì)258
本章小結(jié)270
第12章 學(xué)生成績(jī)管理系統(tǒng)271
12.1 概述271
12.2 系統(tǒng)設(shè)計(jì)271
12.2.1 系統(tǒng)功能設(shè)計(jì)271
12.2.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)272
12.3 功能設(shè)計(jì)273
12.3.1 主控模塊273
12.3.2 輸入學(xué)生信息模塊276
12.3.3 顯示學(xué)生信息模塊279
12.3.4 刪除學(xué)生信息模塊281
12.3.5 查詢學(xué)生信息模塊283
12.3.6 修改學(xué)生信息模塊285
12.3.7 插入學(xué)生信息模塊287
12.3.8 統(tǒng)計(jì)學(xué)生成績(jī)模塊289
12.3.9 學(xué)生成績(jī)排序模塊291
12.3.10 保存學(xué)生信息模塊294
本章小結(jié)295
第13章 Ping程序設(shè)計(jì)296
13.1 設(shè)計(jì)原理296
13.2 功能描述297
13.3 總體設(shè)計(jì)297
13.3.1 功能模塊設(shè)計(jì)297
13.3.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)299
13.3.3 函數(shù)功能描述301
13.4 程序?qū)崿F(xiàn)302
13.4.1 源碼分析302
13.4.2 運(yùn)行結(jié)果313
本章小結(jié)317
附錄318
附錄1 常用字符與ASCII代碼對(duì)照表318
附錄2 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性表318
附錄3 C語言的關(guān)鍵字319
附錄4 常用標(biāo)準(zhǔn)庫函數(shù)319
參考文獻(xiàn)324