本書(shū)主要講授C語(yǔ)言程序設(shè)計(jì)的基本思想、方法和解決實(shí)際問(wèn)題的技巧,力求把概念、知識(shí)點(diǎn)與案例相結(jié)合,進(jìn)行案例教學(xué);精心設(shè)計(jì)了習(xí)題與上機(jī)實(shí)驗(yàn),突出實(shí)用性、可操作性;做到從簡(jiǎn)單到復(fù)雜,結(jié)合任務(wù)驅(qū)動(dòng)法和建構(gòu)主義理論教學(xué)法組織各個(gè)知識(shí)點(diǎn)。全書(shū)共13章,主要內(nèi)容包括C語(yǔ)言程序設(shè)計(jì)概述,數(shù)據(jù)類型、運(yùn)算符和表達(dá)式,順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu),數(shù)組,函數(shù),指針,復(fù)合數(shù)據(jù)類型,文件,位運(yùn)算,編譯預(yù)處理,以及C語(yǔ)言的實(shí)際應(yīng)用等。本書(shū)可作為高等學(xué)校各專業(yè)C語(yǔ)言程序設(shè)計(jì)課程的教材,也可以作為計(jì)算機(jī)等級(jí)考試的輔導(dǎo)教材,還可以作為計(jì)算機(jī)愛(ài)好者的自學(xué)用書(shū)和各類工程技術(shù)人員的參考書(shū)。
本書(shū)講授C語(yǔ)言程序設(shè)計(jì)的基本思想、方法和解決實(shí)際問(wèn)題的技巧,特點(diǎn)是盡可能把概念、知識(shí)點(diǎn)與案例相結(jié)合,進(jìn)行案例教學(xué),并且每章都精心設(shè)計(jì)了習(xí)題與上機(jī)實(shí)驗(yàn),突出實(shí)用性、操作性,每章的安排盡量做到從簡(jiǎn)單到復(fù)雜,在編著教材時(shí)盡量結(jié)合任務(wù)驅(qū)動(dòng)法和建構(gòu)主義理論教學(xué)法組織各個(gè)知識(shí)點(diǎn)。
前言
C語(yǔ)言是一種的程序設(shè)計(jì)語(yǔ)言,在世界范圍內(nèi)被普遍使用,是現(xiàn)代最流行的通用程序設(shè)計(jì)語(yǔ)言之一。它功能豐富,使用靈活,可移植性好,深受廣大用戶歡迎。C語(yǔ)言的數(shù)據(jù)類型豐富,既具有高級(jí)程序設(shè)計(jì)語(yǔ)言的優(yōu)點(diǎn),又具有低級(jí)程序設(shè)計(jì)語(yǔ)言的特點(diǎn);既可以用來(lái)編寫(xiě)系統(tǒng)程序,又可以用來(lái)編寫(xiě)應(yīng)用程序。
本書(shū)通過(guò)大量實(shí)例系統(tǒng)地介紹了C語(yǔ)言的語(yǔ)法結(jié)構(gòu)。全書(shū)共13章。第1章為C語(yǔ)言程序設(shè)計(jì)概述,主要內(nèi)容包括C語(yǔ)言的發(fā)展歷程、C語(yǔ)言的特點(diǎn)、C語(yǔ)言程序的結(jié)構(gòu)及在Visual C++集成環(huán)境下運(yùn)行C程序的步驟與方法。第2章為數(shù)據(jù)類型、運(yùn)算符和表達(dá)式,主要內(nèi)容包括C語(yǔ)言的基本數(shù)據(jù)類型的表示形式、存儲(chǔ)格式、相關(guān)的運(yùn)算以及各種表達(dá)式。第3章為順序結(jié)構(gòu),主要內(nèi)容包括C語(yǔ)句、數(shù)據(jù)的輸入輸出及順序程序設(shè)計(jì)。第4章為選擇結(jié)構(gòu),主要內(nèi)容包括選擇結(jié)構(gòu)語(yǔ)句及選擇結(jié)構(gòu)程序設(shè)計(jì)舉例。第5章為循環(huán)結(jié)構(gòu),主要內(nèi)容包括while循環(huán)、do…while循環(huán)、for循環(huán)、循環(huán)的嵌套、其他控制語(yǔ)句及循環(huán)結(jié)構(gòu)綜合實(shí)例。第6章為數(shù)組,主要內(nèi)容包括一維數(shù)組、二維數(shù)組、多維數(shù)組介紹、字符數(shù)組及數(shù)組綜合實(shí)例。第7章為函數(shù),主要內(nèi)容包括函數(shù)的定義、函數(shù)參數(shù)和函數(shù)的返回值、函數(shù)的調(diào)用、函數(shù)的嵌套調(diào)用、函數(shù)的遞歸調(diào)用、數(shù)組作為函數(shù)參數(shù)、變量的作用域、變量的存儲(chǔ)類別、內(nèi)部函數(shù)和外部函數(shù)。第8章為指針,主要內(nèi)容包括指針的定義、指針變量、指針與函數(shù)、指針與數(shù)組、指針與字符串、指針數(shù)組與多重指針、指針的內(nèi)存動(dòng)態(tài)分配,以及指針綜合實(shí)例。第9章為復(fù)合數(shù)據(jù)類型,主要內(nèi)容包括結(jié)構(gòu)體、用結(jié)構(gòu)指針操作鏈表、共用體、枚舉類型及類型定義。第10章為文件,主要內(nèi)容包括C文件的概述、文件的打開(kāi)與關(guān)閉、文件的讀寫(xiě)及文件的定位與出錯(cuò)檢測(cè)。第11章為位運(yùn)算,主要內(nèi)容包括二進(jìn)制位運(yùn)算概述、位運(yùn)算符及位段。第12章為編譯預(yù)處理,主要內(nèi)容包括宏聲明、文件包含及條件編譯。第13章為C語(yǔ)言的實(shí)際應(yīng)用,主要講解C語(yǔ)言的程序設(shè)計(jì)步驟、實(shí)際應(yīng)用中常見(jiàn)模塊設(shè)計(jì)和綜合實(shí)踐實(shí)例。
本書(shū)文字精練,例題簡(jiǎn)單,容易理解,配備了各種類型的練習(xí),部分章節(jié)結(jié)合了任務(wù)驅(qū)動(dòng)教學(xué)法和建構(gòu)主義理論組織各知識(shí)點(diǎn),便于學(xué)習(xí)掌握。對(duì)于C語(yǔ)言中重要和較難理解、容易出錯(cuò)的內(nèi)容,書(shū)中均特別加以強(qiáng)調(diào)和說(shuō)明。此外,在介紹C語(yǔ)言的語(yǔ)法結(jié)構(gòu)的同時(shí),也強(qiáng)調(diào)了計(jì)算機(jī)算法和結(jié)構(gòu)化設(shè)計(jì)方法的概念和作用。本書(shū)可作為高等學(xué)校C語(yǔ)言程序設(shè)計(jì)課程的教材,也可作為計(jì)算機(jī)等級(jí)考試的輔導(dǎo)教材。
本書(shū)以ANSI標(biāo)準(zhǔn)C語(yǔ)言為背景,有關(guān)內(nèi)容不依賴任何具體的C系統(tǒng)。本書(shū)所有的程序?qū)嵗荚赩isual C++6.0中調(diào)試過(guò),讀者也可以自由選用其他符合ANSI標(biāo)準(zhǔn)的C系統(tǒng)編程環(huán)境作為學(xué)習(xí)工具。
本書(shū)由易云飛擔(dān)任主編,萬(wàn)勵(lì)、唐鵬和唐鳳仙任副主編。全書(shū)由易云飛策劃、確定框架結(jié)構(gòu),并統(tǒng)編定稿。本書(shū)第1章和第7章由唐鳳仙編寫(xiě),第2章由姜林和馬楚奇編寫(xiě),第3章由黃華、何傳波和張彥博編寫(xiě),第4章和第12章由萬(wàn)勵(lì)和龔平編寫(xiě),第5章和第6章由羅富貴、唐鵬和易云飛編寫(xiě),第8章由楊鳳和李海英編寫(xiě),第9章由黃華和馬楚奇編寫(xiě),第10章由喻飛和唐鵬編寫(xiě),第11章、第13章由喻飛、何傳波和張彥博編寫(xiě)。另外,本書(shū)在編寫(xiě)過(guò)程中,得到兄弟高校從事計(jì)算機(jī)教育的老師的關(guān)心和幫助,教研室的同事也提出了許多寶貴意見(jiàn),并得到廣西高等教育本科教學(xué)改革工程項(xiàng)目(編號(hào)2024JGB335)的支持,在此一并表示衷心的感謝。
本書(shū)配有電子教案,并提供程序源代碼,以方便讀者自學(xué),請(qǐng)掃描下載。
限于作者水平,書(shū)中難免存在不當(dāng)之處,懇請(qǐng)廣大讀者批評(píng)指正。
編者2025年7月
目錄
第1章C語(yǔ)言程序設(shè)計(jì)概述1
1.1程序設(shè)計(jì)的基本概念1
1.1.1程序1
1.1.2程序設(shè)計(jì)1
1.1.3程序設(shè)計(jì)語(yǔ)言2
1.2C語(yǔ)言的發(fā)展及其特點(diǎn)3
1.2.1C語(yǔ)言的發(fā)展歷程3
1.2.2C語(yǔ)言的特點(diǎn)4
1.2.3C語(yǔ)言與C++語(yǔ)言交融發(fā)展5
1.3C程序的組成與結(jié)構(gòu)5
1.4C程序的上機(jī)步驟與方法8
1.4.1有關(guān)概念9
1.4.2運(yùn)行C程序的一般步驟9
1.4.3Visual C++6.0環(huán)境運(yùn)行C程序的步驟10
1.5如何學(xué)好C語(yǔ)言13
本章小結(jié)14
習(xí)題114
第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式16
2.1C語(yǔ)言字符集與標(biāo)識(shí)符17
2.1.1C語(yǔ)言字符集17
2.1.2標(biāo)識(shí)符18
2.2變量和常量19
2.2.1變量19
2.2.2常量19
2.3基本數(shù)據(jù)類型20
2.3.1C語(yǔ)言的數(shù)據(jù)類型20
2.3.2整型數(shù)據(jù)21
2.3.3實(shí)型數(shù)據(jù)24
2.3.4字符型數(shù)據(jù)25
2.3.5變量賦初值27
2.4運(yùn)算符和表達(dá)式28
2.4.1運(yùn)算符和表達(dá)式概述28
2.4.2算術(shù)運(yùn)算符及算術(shù)表達(dá)式30
2.4.3關(guān)系運(yùn)算符及關(guān)系表達(dá)式33
2.4.4邏輯運(yùn)算符及邏輯表達(dá)式34
2.4.5條件運(yùn)算符及條件表達(dá)式36
2.4.6賦值運(yùn)算符及賦值表達(dá)式38
2.4.7逗號(hào)運(yùn)算符及逗號(hào)表達(dá)式40
2.4.8位運(yùn)算符41
2.4.9求字節(jié)運(yùn)算符42
2.4.10類型轉(zhuǎn)換43
本章小結(jié)44
習(xí)題244
第3章順序結(jié)構(gòu)47
3.1簡(jiǎn)單順序語(yǔ)句47
3.1.1表達(dá)式語(yǔ)句47
3.1.2空語(yǔ)句48
3.1.3復(fù)合語(yǔ)句48
3.2C語(yǔ)言數(shù)據(jù)的輸入輸出48
3.2.1字符輸入輸出函數(shù)49
3.2.2格式輸入輸出51
3.3綜合實(shí)例59
本章小結(jié)62
習(xí)題362
第4章選擇結(jié)構(gòu)65
4.1if語(yǔ)句65
4.1.1if語(yǔ)句的基本形式66
4.1.2if語(yǔ)句嵌套70
4.2switch語(yǔ)句72
4.3程序應(yīng)用75
本章小結(jié)81
習(xí)題482
第5章循環(huán)結(jié)構(gòu)84
5.1while循環(huán)結(jié)構(gòu)85
5.1.1while語(yǔ)句的基本形式85
5.1.2while語(yǔ)句的應(yīng)用86
5.2do…while循環(huán)結(jié)構(gòu)89
5.2.1do…while語(yǔ)句的基本形式89
5.2.2do…while語(yǔ)句的應(yīng)用89
5.3for循環(huán)結(jié)構(gòu)91
5.3.1for語(yǔ)句的基本形式91
5.3.2for語(yǔ)句的應(yīng)用92
5.4循環(huán)的嵌套96
5.5轉(zhuǎn)向語(yǔ)句100
5.5.1break語(yǔ)句100
5.5.2continue語(yǔ)句102
5.5.3goto語(yǔ)句103
5.6程序應(yīng)用104
本章小結(jié)107
習(xí)題5107
第6章數(shù)組109
6.1數(shù)組的基本概念110
6.2一維數(shù)組110
6.2.1一維數(shù)組的聲明110
6.2.2一維數(shù)組的引用111
6.2.3一維數(shù)組的初始化112
6.2.4一維數(shù)組的應(yīng)用113
6.3二維數(shù)組118
6.3.1二維數(shù)組的聲明118
6.3.2二維數(shù)組的引用119
6.3.3二維數(shù)組的初始化120
6.3.4多維數(shù)組122
6.3.5二維數(shù)組的應(yīng)用122
6.4字符數(shù)組127
6.4.1字符數(shù)組的聲明127
6.4.2字符數(shù)組的引用127
6.4.3字符數(shù)組的初始化127
6.4.4字符串變量128
6.4.5字符串變量的輸入輸出129
6.4.6字符串函數(shù)131
6.4.7字符數(shù)組的應(yīng)用133
本章小結(jié)136
習(xí)題6136
第7章函數(shù)139
7.1函數(shù)的定義140
7.1.1有參函數(shù)的定義140
7.1.2無(wú)參函數(shù)的定義140
7.1.3空函數(shù)的定義141
7.2函數(shù)參數(shù)和函數(shù)的返回值141
7.2.1形式參數(shù)和實(shí)際參數(shù)141
7.2.2函數(shù)的返回值143
7.3函數(shù)的調(diào)用144
7.3.1函數(shù)調(diào)用的一般形式144
7.3.2函數(shù)調(diào)用的方式145
7.3.3對(duì)被調(diào)函數(shù)的聲明和函數(shù)原型145
7.4函數(shù)的嵌套調(diào)用147
7.5函數(shù)的遞歸調(diào)用149
7.6數(shù)組作為函數(shù)參數(shù)152
7.6.1數(shù)組元素作為函數(shù)實(shí)參152
7.6.2一維數(shù)組名作為函數(shù)參數(shù)152
7.6.3二維數(shù)組名作為函數(shù)參數(shù)154
7.7變量的作用域155
7.7.1局部變量155
7.7.2全局變量156
7.7.3變量的優(yōu)先級(jí)158
7.8變量的存儲(chǔ)類別159
7.8.1auto變量160
7.8.2用static聲明局部變量160
7.8.3register變量162
7.8.4用extern聲明外部變量163
7.8.5用static聲明外部變量165
7.9內(nèi)部函數(shù)和外部函數(shù)166
7.9.1內(nèi)部函數(shù)166
7.9.2外部函數(shù)167
本章小結(jié)168
習(xí)題7169
第8章指針171
8.1指針是什么171
8.2指針變量173
8.2.1指針變量的聲明173
8.2.2指針變量的賦值174
8.2.3通過(guò)指針訪問(wèn)變量175
8.3指針與函數(shù)177
8.3.1指針變量作為函數(shù)的參數(shù)177
8.3.2指針函數(shù)178
8.3.3函數(shù)指針179
8.4指針與數(shù)組181
8.4.1數(shù)組名與數(shù)組首地址181
8.4.2指針的運(yùn)算182
8.4.3通過(guò)指針訪問(wèn)一維數(shù)組184
8.4.4通過(guò)指針訪問(wèn)多維數(shù)組187
8.5指針與字符串190
8.5.1通過(guò)指針訪問(wèn)字符數(shù)組190
8.5.2字符指針作為函數(shù)參數(shù)傳遞192
8.6指針數(shù)組和多重指針194
8.6.1指針數(shù)組194
8.6.2多級(jí)指針196
8.6.3帶參數(shù)的主函數(shù)198
8.7指針的內(nèi)存動(dòng)態(tài)分配200
8.7.1內(nèi)存的動(dòng)態(tài)分配200
8.7.2void指針類型202
8.8指針的應(yīng)用舉例204
本章小結(jié)207
習(xí)題8207
第9章復(fù)合數(shù)據(jù)類型212
9.1結(jié)構(gòu)體數(shù)據(jù)類型213
9.1.1結(jié)構(gòu)體類型的定義213
9.1.2結(jié)構(gòu)體變量的使用214
9.1.3結(jié)構(gòu)體數(shù)組220
9.1.4結(jié)構(gòu)體指針223
9.1.5結(jié)構(gòu)體及指向結(jié)構(gòu)體的指針作為函數(shù)的參數(shù)225
9.1.6結(jié)構(gòu)體綜合舉例226
9.2C語(yǔ)言動(dòng)態(tài)存儲(chǔ)分配228
9.3鏈表230
9.3.1鏈表與數(shù)組的主要區(qū)別230
9.3.2鏈表的操作231
9.3.3鏈表應(yīng)用舉例233
9.4共用體的定義和共用體變量的聲明234
9.4.1共用體的定義234
9.4.2共用體類型變量234
9.4.3共用體類型變量的引用235
9.5枚舉數(shù)據(jù)類型236
9.5.1枚舉類型的定義和枚舉變量的聲明237
9.5.2枚舉類型變量的賦值和使用237
9.6位域239
9.7類型聲明240
本章小結(jié)241
習(xí)題9242
第10章文件247
10.1FILE結(jié)構(gòu)類型248
10.2文件的操作248
10.2.1文件的打開(kāi)249
10.2.2文件的關(guān)閉250
10.2.3文件的讀寫(xiě)251
10.2.4文件緩沖區(qū)操作258
10.2.5文件的隨機(jī)讀寫(xiě)260
10.2.6文件的檢測(cè)264
10.3庫(kù)文件265
本章小結(jié)266
習(xí)題10266
第11章位運(yùn)算268
11.1整數(shù)的計(jì)算機(jī)表示268
11.2位運(yùn)算符270
11.2.1取反運(yùn)算符~270
11.2.2按位與運(yùn)算符&271
11.2.3按位或運(yùn)算符|272
11.2.4按位異或運(yùn)算符∧272
11.2.5左移運(yùn)算符<<273
11.2.6右移運(yùn)算符>>274
11.2.7位運(yùn)算與賦值運(yùn)算的結(jié)合274
11.2.8位運(yùn)算舉例274
本章小結(jié)275
習(xí)題11275
第12章編譯預(yù)處理277
12.1宏聲明277
12.1.1不帶參數(shù)的宏聲明277
12.1.2帶參數(shù)的宏聲明280
12.2文件包含286
12.3條件編譯289
本章小結(jié)293
習(xí)題12293
第13章C語(yǔ)言的實(shí)際應(yīng)用296
13.1C語(yǔ)言的程序設(shè)計(jì)步驟296
13.2實(shí)際應(yīng)用中常見(jiàn)的模塊設(shè)計(jì)297
13.2.1數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)297
13.2.2選擇菜單的設(shè)計(jì)298
13.2.3數(shù)據(jù)輸入模塊的設(shè)計(jì)300
13.2.4功能模塊的設(shè)計(jì)303
13.3綜合實(shí)踐實(shí)例: 企業(yè)員工工資管理系統(tǒng)306
本章小結(jié)326
附錄AASCII編碼表327
附錄Bctype.h文件中包含的字符函數(shù)329
附錄Cmath.h文件中包含的數(shù)學(xué)函數(shù)330
附錄DC語(yǔ)言運(yùn)算符優(yōu)先級(jí)詳細(xì)列表332