《C語言程序設計/高等學校計算機基礎教育教材》是一本理論與實踐相結合、實用性很強的C語言程序設計教材,內(nèi)容組織注重基礎,突出應用,兼顧提高,強化主干知識,弱化細枝末節(jié),注重培養(yǎng)學生分析問題和解決問題的能力。
《C語言程序設計/高等學校計算機基礎教育教材》共12章,內(nèi)容包括C語言概述、C語言基礎知識、順序結構程序設計、選擇結構程序設計、循環(huán)結構程序設計、編譯預處理、數(shù)組、函數(shù)、指針、用戶自定義數(shù)據(jù)類型、位運算和文件。
《C語言程序設計/高等學校計算機基礎教育教材》配有教學課件、例題及習題程序源代碼等教學資源。
《C語言程序設計/高等學校計算機基礎教育教材》適合作為高等院校理工類專業(yè)“程序設計”課程的教材,也可作為程序設計從業(yè)人員與愛好者以及參加計算機等級考試人員的自學參考書。
《C語言程序設計/高等學校計算機基礎教育教材》以培養(yǎng)學生的邏輯思維能力和實踐應用能力為出發(fā)點,從大量實例入手,采用通俗易懂的語言由淺入深地對C語言程序設計內(nèi)容進行全面講述,包括C語言的基礎知識、結構化程序設計的三種結構、數(shù)組、函數(shù)、指針、用戶自定義數(shù)據(jù)類型、位運算、文件等。
精選115道有普遍性和代表性的案例,先分析問題、講解解題思路,然后再編寫程序,最后對程序中關鍵內(nèi)容、注意事項進行解釋,讓讀者在潛移默化中掌握解題技巧、編程方法,提高分析問題、解決問題的能力。
結構新穎。每節(jié)先通過“學一學”介紹知識點,然后引入案例“試一試”鞏固知識點,最后借助“練一練”來驗證知識點掌握情況。通過這種結構,讓讀者更容易掌握章節(jié)內(nèi)容,并進行熟練應用。
配有教學課件、例題及習題程序源代碼等教學資源。
前 言
C語言是現(xiàn)代最流行的通用程序設計語言之一。它既具有高級程序設計語言的優(yōu)點,又具有低級程序設計語言的特點;既可以用來編寫系統(tǒng)程序,又可以用來編寫應用程序。
本書以培養(yǎng)學生的邏輯思維能力和實踐應用能力為出發(fā)點,從大量實例入手,采用通俗易懂的語言由淺入深地對C語言程序設計的內(nèi)容進行全面講述,包括C語言的基礎知識、結構化程序設計的三種結構、數(shù)組、函數(shù)、指針、用戶自定義數(shù)據(jù)類型、位運算、文件等。
全書在內(nèi)容組織上具有以下特色:
●結構新穎。每節(jié)先通過“學一學”介紹知識點,然后引入案例“試一試”鞏固知識點,最后借助“練一練”驗證知識點掌握情況。通過這種結構,讓讀者更容易掌握章節(jié)內(nèi)容并進行熟練應用。
●思路清晰。針對“試一試”部分精選的例題,先分析問題,講解解題思路,然后再編寫程序,最后對程序中的關鍵內(nèi)容、注意事項進行注解,讓讀者在潛移默化中掌握解題技巧和編程方法。
●案例豐富。主要章最后精選了大量有普遍性和代表性的案例,并且詳細介紹了每個案例程序的分析和設計過程。通過對這些案例程序的講解,讀者能夠綜合應用所學知識解決實際問題,不斷提高分析問題和解決問題的能力。
本書例題都是經(jīng)過編者精心篩選的,所有例題程序都已在Visual C++ 2010環(huán)境下運行通過。另外,本書配有電子教案并提供例題源程序及課后習題參考答案,以方便讀者自學。
本書由馬鞍山學院王英明擔任主編并統(tǒng)稿,張露露、蔣林、吳志堅擔任副主編。在本書編寫的過程中,得到了學院同事、家人的支持與理解,以及清華大學出版社的幫助,在此對他們表示衷心的感謝!
由于編者水平有限,本書難免存在疏漏和不妥之處,敬請讀者批評指正。
編者2021年5月
目 錄
第1章C語言概述1
1.1程序與程序設計語言1
1.1.1程序1
1.1.2程序設計語言1
1.2C語言簡介2
1.2.1C語言的產(chǎn)生與發(fā)展2
1.2.2C語言的特點2
1.3C語言程序的結構3
1.3.1最簡單的C語言程序舉例3
1.3.2C語言程序的基本結構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本章小結18
習題118
第2章C語言基礎知識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算術運算符32
C語言程序設計目錄2.3.4關系運算符34
2.3.5邏輯運算符35
2.3.6逗號運算符38
2.3.7條件運算符39
2.4類型轉換39
2.4.1自動類型轉換40
2.4.2強制類型轉換41
2.5典型題解42
2.6本章小結42
習題243
第3章順序結構程序設計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順序結構程序設計56
3.5典型題解58
3.6本章小結58
習題358
第4章選擇結構程序設計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本章小結77
習題477
第5章循環(huán)結構程序設計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本章小結100
習題5101
第6章編譯預處理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本章小結121
習題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ù)組的應用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ù)組的應用141
7.2.6典型題解147
7.3字符數(shù)組149
7.3.1字符數(shù)組的定義及初始化149
7.3.2字符串和字符串結束標志150
7.3.3字符數(shù)組的引用151
7.3.4字符數(shù)組的輸入輸出152
7.3.5字符串處理函數(shù)153
7.3.6字符數(shù)組的應用157
7.3.7典型題解159
7.4本章小結161
習題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本章小結195
習題8196
第9章指針203
9.1指針概述203
9.2指針變量203
9.2.1指針變量的定義204
9.2.2與指針運算相關的兩個運算符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本章小結240
習題9242
第10章用戶自定義數(shù)據(jù)類型251
10.1結構體251
10.1.1結構體類型的定義251
10.1.2結構體類型變量的定義252
10.1.3類型別名254
10.1.4結構體類型變量的成員訪問255
10.1.5結構體類型變量的初始化257
10.1.6結構體與函數(shù)257
10.2共用體261
10.2.1共用體類型的定義261
10.2.2共用體類型變量的定義和成員訪問262
10.2.3共用體類型的應用264
10.3枚舉265
10.3.1枚舉類型的定義266
10.3.2枚舉類型變量的定義與賦值266
10.3.3枚舉類型的應用267
10.4單鏈表269
10.4.1單鏈表的定義269
10.4.2單鏈表結構的定義270
10.4.3單鏈表的基本操作270
10.5典型題解276
10.6本章小結278
習題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本章小結295
習題11296
第12章文件300
12.1文件概述300
12.2文件指針301
12.3文件的打開與關閉301
12.3.1文件打開函數(shù)fopen301
12.3.2文件關閉函數(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本章小結318
習題12318
附錄AC語言運算符的優(yōu)先級323
附錄BC語言的保留字與關鍵字324
附錄CC語言常用庫函數(shù)325
附錄D標準ASCII碼331
參考文獻333