《C語言程序設(shè)計/高等學(xué)校計算機基礎(chǔ)教育教材》是一本理論與實踐相結(jié)合、實用性很強的C語言程序設(shè)計教材,內(nèi)容組織注重基礎(chǔ),突出應(yīng)用,兼顧提高,強化主干知識,弱化細枝末節(jié),注重培養(yǎng)學(xué)生分析問題和解決問題的能力。
《C語言程序設(shè)計/高等學(xué)校計算機基礎(chǔ)教育教材》共12章,內(nèi)容包括C語言概述、C語言基礎(chǔ)知識、順序結(jié)構(gòu)程序設(shè)計、選擇結(jié)構(gòu)程序設(shè)計、循環(huán)結(jié)構(gòu)程序設(shè)計、編譯預(yù)處理、數(shù)組、函數(shù)、指針、用戶自定義數(shù)據(jù)類型、位運算和文件。
《C語言程序設(shè)計/高等學(xué)校計算機基礎(chǔ)教育教材》配有教學(xué)課件、例題及習(xí)題程序源代碼等教學(xué)資源。
《C語言程序設(shè)計/高等學(xué)校計算機基礎(chǔ)教育教材》適合作為高等院校理工類專業(yè)“程序設(shè)計”課程的教材,也可作為程序設(shè)計從業(yè)人員與愛好者以及參加計算機等級考試人員的自學(xué)參考書。
《C語言程序設(shè)計/高等學(xué)校計算機基礎(chǔ)教育教材》以培養(yǎng)學(xué)生的邏輯思維能力和實踐應(yīng)用能力為出發(fā)點,從大量實例入手,采用通俗易懂的語言由淺入深地對C語言程序設(shè)計內(nèi)容進行全面講述,包括C語言的基礎(chǔ)知識、結(jié)構(gòu)化程序設(shè)計的三種結(jié)構(gòu)、數(shù)組、函數(shù)、指針、用戶自定義數(shù)據(jù)類型、位運算、文件等。
精選115道有普遍性和代表性的案例,先分析問題、講解解題思路,然后再編寫程序,最后對程序中關(guān)鍵內(nèi)容、注意事項進行解釋,讓讀者在潛移默化中掌握解題技巧、編程方法,提高分析問題、解決問題的能力。
結(jié)構(gòu)新穎。每節(jié)先通過“學(xué)一學(xué)”介紹知識點,然后引入案例“試一試”鞏固知識點,最后借助“練一練”來驗證知識點掌握情況。通過這種結(jié)構(gòu),讓讀者更容易掌握章節(jié)內(nèi)容,并進行熟練應(yīng)用。
配有教學(xué)課件、例題及習(xí)題程序源代碼等教學(xué)資源。
前 言
C語言是現(xiàn)代最流行的通用程序設(shè)計語言之一。它既具有高級程序設(shè)計語言的優(yōu)點,又具有低級程序設(shè)計語言的特點;既可以用來編寫系統(tǒng)程序,又可以用來編寫應(yīng)用程序。
本書以培養(yǎng)學(xué)生的邏輯思維能力和實踐應(yīng)用能力為出發(fā)點,從大量實例入手,采用通俗易懂的語言由淺入深地對C語言程序設(shè)計的內(nèi)容進行全面講述,包括C語言的基礎(chǔ)知識、結(jié)構(gòu)化程序設(shè)計的三種結(jié)構(gòu)、數(shù)組、函數(shù)、指針、用戶自定義數(shù)據(jù)類型、位運算、文件等。
全書在內(nèi)容組織上具有以下特色:
●結(jié)構(gòu)新穎。每節(jié)先通過“學(xué)一學(xué)”介紹知識點,然后引入案例“試一試”鞏固知識點,最后借助“練一練”驗證知識點掌握情況。通過這種結(jié)構(gòu),讓讀者更容易掌握章節(jié)內(nèi)容并進行熟練應(yīng)用。
●思路清晰。針對“試一試”部分精選的例題,先分析問題,講解解題思路,然后再編寫程序,最后對程序中的關(guān)鍵內(nèi)容、注意事項進行注解,讓讀者在潛移默化中掌握解題技巧和編程方法。
●案例豐富。主要章最后精選了大量有普遍性和代表性的案例,并且詳細介紹了每個案例程序的分析和設(shè)計過程。通過對這些案例程序的講解,讀者能夠綜合應(yīng)用所學(xué)知識解決實際問題,不斷提高分析問題和解決問題的能力。
本書例題都是經(jīng)過編者精心篩選的,所有例題程序都已在Visual C++ 2010環(huán)境下運行通過。另外,本書配有電子教案并提供例題源程序及課后習(xí)題參考答案,以方便讀者自學(xué)。
本書由馬鞍山學(xué)院王英明擔任主編并統(tǒng)稿,張露露、蔣林、吳志堅擔任副主編。在本書編寫的過程中,得到了學(xué)院同事、家人的支持與理解,以及清華大學(xué)出版社的幫助,在此對他們表示衷心的感謝!
由于編者水平有限,本書難免存在疏漏和不妥之處,敬請讀者批評指正。
編者2021年5月
目 錄
第1章C語言概述1
1.1程序與程序設(shè)計語言1
1.1.1程序1
1.1.2程序設(shè)計語言1
1.2C語言簡介2
1.2.1C語言的產(chǎn)生與發(fā)展2
1.2.2C語言的特點2
1.3C語言程序的結(jié)構(gòu)3
1.3.1最簡單的C語言程序舉例3
1.3.2C語言程序的基本結(jié)構(gòu)3
1.4C語言編程環(huán)境4
1.4.1運行C程序的步驟4
1.4.2Visual C++6.0集成開發(fā)環(huán)境介紹5
1.4.3Visual C++2010 Express集成開發(fā)環(huán)境介紹9
1.5算法14
1.5.1什么是算法14
1.5.2算法的特征14
1.5.3算法的描述方法15
1.6典型題解17
1.7本章小結(jié)18
習(xí)題118
第2章C語言基礎(chǔ)知識20
2.1數(shù)據(jù)類型21
2.1.1整型數(shù)據(jù)21
2.1.2字符型數(shù)據(jù)22
2.1.3浮點型數(shù)據(jù)22
2.2常量和變量24
2.2.1常量24
2.2.2變量27
2.3運算符和表達式29
2.3.1C運算符29
2.3.2賦值運算符30
2.3.3算術(shù)運算符32
C語言程序設(shè)計目錄2.3.4關(guān)系運算符34
2.3.5邏輯運算符35
2.3.6逗號運算符38
2.3.7條件運算符39
2.4類型轉(zhuǎn)換39
2.4.1自動類型轉(zhuǎn)換40
2.4.2強制類型轉(zhuǎn)換41
2.5典型題解42
2.6本章小結(jié)42
習(xí)題243
第3章順序結(jié)構(gòu)程序設(shè)計47
3.1C語句概述47
3.2格式化輸入輸出函數(shù)48
3.2.1格式化輸出函數(shù)printf48
3.2.2格式化輸入函數(shù)scanf51
3.3字符數(shù)據(jù)的輸入輸出54
3.3.1putchar函數(shù)55
3.3.2getchar函數(shù)55
3.4順序結(jié)構(gòu)程序設(shè)計56
3.5典型題解58
3.6本章小結(jié)58
習(xí)題358
第4章選擇結(jié)構(gòu)程序設(shè)計63
4.1if語句63
4.1.1簡單if語句63
4.1.2雙分支if語句65
4.1.3多分支if語句66
4.1.4if語句的嵌套68
4.2switch語句70
4.3典型題解74
4.4本章小結(jié)77
習(xí)題477
第5章循環(huán)結(jié)構(gòu)程序設(shè)計83
5.1for循環(huán)83
5.2while循環(huán)86
5.3do…while循環(huán)88
5.4循環(huán)的嵌套90
5.5break語句和continue語句92
5.5.1用break語句提前終止循環(huán)92
5.5.2用continue語句提前終止循環(huán)94
5.6典型題解96
5.7本章小結(jié)100
習(xí)題5101
第6章編譯預(yù)處理113
6.1宏定義113
6.1.1不帶參數(shù)的宏定義113
6.1.2帶參數(shù)的宏定義115
6.2文件包含117
6.3條件編譯119
6.4典型題解120
6.5本章小結(jié)121
習(xí)題6121
第7章數(shù)組125
7.1一維數(shù)組126
7.1.1一維數(shù)組的定義126
7.1.2一維數(shù)組元素的引用127
7.1.3一維數(shù)組的遍歷127
7.1.4一維數(shù)組的初始化129
7.1.5一維數(shù)組的應(yīng)用130
7.1.6典型題解134
7.2二維數(shù)組136
7.2.1二維數(shù)組的定義137
7.2.2二維數(shù)組元素的引用138
7.2.3二維數(shù)組的遍歷138
7.2.4二維數(shù)組的初始化140
7.2.5二維數(shù)組的應(yīng)用141
7.2.6典型題解147
7.3字符數(shù)組149
7.3.1字符數(shù)組的定義及初始化149
7.3.2字符串和字符串結(jié)束標志150
7.3.3字符數(shù)組的引用151
7.3.4字符數(shù)組的輸入輸出152
7.3.5字符串處理函數(shù)153
7.3.6字符數(shù)組的應(yīng)用157
7.3.7典型題解159
7.4本章小結(jié)161
習(xí)題7162
第8章函數(shù)169
8.1函數(shù)概述169
8.1.1庫函數(shù)的使用169
8.1.2函數(shù)的定義170
8.2調(diào)用函數(shù)171
8.2.1函數(shù)調(diào)用的形式171
8.2.2函數(shù)的返回值172
8.2.3函數(shù)調(diào)用時的數(shù)據(jù)傳遞172
8.3函數(shù)的聲明175
8.4數(shù)組作為函數(shù)參數(shù)177
8.4.1數(shù)組元素作為函數(shù)參數(shù)177
8.4.2數(shù)組名作為函數(shù)參數(shù)179
8.5函數(shù)的嵌套調(diào)用與遞歸調(diào)用182
8.6變量的作用域185
8.6.1局部變量185
8.6.2全局變量186
8.7變量的存儲方式和生存期187
8.7.1動態(tài)存儲方式與靜態(tài)存儲方式187
8.7.2局部變量的存儲類別188
8.7.3全局變量的存儲類別189
8.8內(nèi)部函數(shù)和外部函數(shù)190
8.8.1內(nèi)部函數(shù)190
8.8.2外部函數(shù)190
8.9典型題解191
8.10本章小結(jié)195
習(xí)題8196
第9章指針203
9.1指針概述203
9.2指針變量203
9.2.1指針變量的定義204
9.2.2與指針運算相關(guān)的兩個運算符205
9.2.3指針變量作為函數(shù)參數(shù)206
9.3指針與數(shù)組208
9.3.1指針與一維數(shù)組208
9.3.2指針與二維數(shù)組213
9.3.3指針數(shù)組218
9.4指針與字符串220
9.4.1字符串引用方式220
9.4.2使用字符指針處理字符串222
9.5指針與函數(shù)224
9.5.1函數(shù)指針224
9.5.2指針函數(shù)226
9.5.3指針數(shù)組作為main()函數(shù)的形參229
9.6指向指針的指針232
9.7void指針與動態(tài)內(nèi)存分配234
9.8典型題解237
9.9本章小結(jié)240
習(xí)題9242
第10章用戶自定義數(shù)據(jù)類型251
10.1結(jié)構(gòu)體251
10.1.1結(jié)構(gòu)體類型的定義251
10.1.2結(jié)構(gòu)體類型變量的定義252
10.1.3類型別名254
10.1.4結(jié)構(gòu)體類型變量的成員訪問255
10.1.5結(jié)構(gòu)體類型變量的初始化257
10.1.6結(jié)構(gòu)體與函數(shù)257
10.2共用體261
10.2.1共用體類型的定義261
10.2.2共用體類型變量的定義和成員訪問262
10.2.3共用體類型的應(yīng)用264
10.3枚舉265
10.3.1枚舉類型的定義266
10.3.2枚舉類型變量的定義與賦值266
10.3.3枚舉類型的應(yīng)用267
10.4單鏈表269
10.4.1單鏈表的定義269
10.4.2單鏈表結(jié)構(gòu)的定義270
10.4.3單鏈表的基本操作270
10.5典型題解276
10.6本章小結(jié)278
習(xí)題10279
第11章位運算287
11.1位運算與位運算符287
11.1.1按位與運算288
11.1.2按位或運算289
11.1.3按位異或運算289
11.1.4按位取反運算290
11.1.5左移運算291
11.1.6右移運算291
11.1.7位賦值運算符292
11.2典型題解292
11.3本章小結(jié)295
習(xí)題11296
第12章文件300
12.1文件概述300
12.2文件指針301
12.3文件的打開與關(guān)閉301
12.3.1文件打開函數(shù)fopen301
12.3.2文件關(guān)閉函數(shù)fclose303
12.4文件的讀寫304
12.4.1字符讀寫函數(shù)fgetc和fputc304
12.4.2字符串讀寫函數(shù)fgets和fputs307
12.4.3格式化讀寫函數(shù)fscanf和fprintf310
12.4.4數(shù)據(jù)塊讀寫函數(shù)fread和fwrite312
12.5文件的定位314
12.5.1文件位置指針及其定位314
12.5.2文件的隨機讀寫315
12.6文件讀寫的出錯檢測316
12.7典型題解316
12.8本章小結(jié)318
習(xí)題12318
附錄AC語言運算符的優(yōu)先級323
附錄BC語言的保留字與關(guān)鍵字324
附錄CC語言常用庫函數(shù)325
附錄D標準ASCII碼331
參考文獻333