本書根據應用型本科高校計算機類、信息類等相關工科專業開設的C語言程序設計課程的教學要求和特點編寫,內容共分為10章,包括C語言概述、數據類型與運算、數據輸入與輸出、程序結構設計與應用、數組、函數、指針、結構體、文件、結構化程序設計與實訓。全書以C語言的基本概念與基本知識為引領,從實際問題出發,以應用為基礎,本著理論適度,突出實訓,增強職業素養的原則,通過實訓任務,由淺入深、循序漸進地引導讀者學習與掌握C語言程序設計方法,激發學生學習興趣,提高動手實踐能力。
本書內容通俗易懂,理論適度,實踐性強,適用面廣。每章*后配有習題,作為對本章學習知識點的鞏固,以方便學生復習與自學。
本書適合作為應用型本科高校、高職高專院校計算機及其相關專業的課程教材,也可以作為軟件企業的職業培訓類書籍以及各類軟件技術人員的參考書。
本書作為應用型本科計算機及相關專業的C語言程序設計課程教材,面向程序設計零基礎的讀者。由淺入深,深入淺出,集知識傳播和編程能力訓練為一體。本書理論適度,注重實訓和實踐能力培養。使用通俗易懂的文字講解C語言中的主要知識內容,采用初學者易于理解的方式,并輔以形象類比的方法,對一些復雜或抽象的概念進行清晰的描述。書中每一章都安排了相應的實訓任務,用于對所學內容知識的強化與鞏固,真正做到知識講授與能力訓練并重。本書強調語法,淡化算法。以程序功能實現為*終目標,書中的每一個程序都采用相對簡單的方法來實現,強調對C語言語法知識的掌握。淡化程序中涉及的復雜而抽象的數學算法,使初學者更容易理解程序語句的組織結構與功能。本書結合實際,突出應用。以實際應用為目的,從培養分析與解決問題的能力入手,注重知識學習與實訓內容的關聯性,注重實訓內容的層次性與實用性,使初學者能夠在有限時間內學以致用,真正掌握C語言程序設計的方法及內涵。本書配套資源,讀者可登錄清華大學出版社網站下載使用。
前言C語言是目前廣泛使用的一種高級程序設計語言,也是國內外高校講述程序設計方法的首選語言。C語言程序設計已成為計算機類課程體系中的第一門重要的基礎課程。該課程實踐性較強,需要進行大量的上機操作與實訓。在實踐中發現問題、分析問題、解決問題,才能更好地掌握C語言,并最終學會利用C語言解決實際問題。目前市面上出版的C語言程序設計類教材比較多,所介紹的理論知識及其應用案例也很全面。很多教材提倡項目(案例)教學思路,把一個或多個真實的軟件項目(案例)及其運作流程從頭至尾融入C語言課程教學中,通過項目驅動逐一介紹C語言的基本知識內容,以培養學生的工程實踐能力,提高學生的動手技能。這種教學思路具有新穎性,但前提是要對所教授學生的實際認知狀況進行一個合理的評估。對于一些地方性的應用型本科高;蚋呗氃盒哟蔚膶W生而言,學習C語言之前大都缺乏一定深度的計算機與軟件方面的專業基礎知識,加之數學知識較薄弱,又沒有實際項目開發經驗,因此會覺得課程內容空洞乏味,理解起來有一定難度。編者長期在應用型本科高校一線從事C語言課程的教學及指導實踐工作,所在高校的學生在大一階段學習C語言課程之前,絕大多數都是程序設計零基礎學習,更不用說具備軟件項目實踐經歷。以各種實際軟件項目(案例)為驅動,去講解C語言的各種語法知識,反而使大多數學生感到課程知識枯燥無味,因為課后還要專門查閱一系列后續計算機類專業課程的資料輔助學習,從而加重了學習負擔。在多年的教學實踐中,編者能親身感受到零基礎學生在學習C語言過程中產生的困惑。很多學生學習時會出現課堂上老師一講就懂,上機調試程序總是一調就錯,自己又找不出原因的窘況,反而降低了學習積極性。例如,上機調試程序時,很多學生分不清C語言中=與==、1/3與1/30的區別,會把C語言表達式if(x>2&&x<3)錯寫成if(2編者2016年8月
目錄
第1章C語言概述1
1.1計算機程序設計1
1.1.1計算機程序1
1.1.2計算機程序設計語言及其分類1
1.1.3程序設計過程3
1.2為什么要學習C語言5
1.2.1C語言發展歷程簡介5
1.2.2C語言語法結構的特點5
1.3簡單的C程序6
1.4C程序的結構8
1.4.1C程序的結構及特點8
1.4.2養成良好的代碼書寫規范9
1.5在Visual C 6.0環境下運行C程序10
1.5.1C程序的執行流程11
1.5.2Visual C 6.0簡介11
1.5.3Visual C 6.0環境下運行C程序的方法11
實訓1熟悉Visual C 6.0環境18
1.6本章小結19
習題119第2章數據類型與運算21
2.1C語言基本數據類型21
2.1.1數據類型的概念21
2.1.2數據類型的分類21
2.1.3基本數據類型22
2.2數據的表現形式23
2.2.1關鍵字24
2.2.2標識符24
2.2.3常量24
2.2.4變量27
2.3運算符與表達式32
2.3.1算術運算符34
2.3.2賦值運算符37
2.3.3關系運算符38
2.3.4邏輯運算符39
2.3.5條件運算符42
2.3.6逗號運算符42
2.3.7其他運算符43
2.4數據類型自動轉換45
2.4.1算術運算中的數據類型轉換45
2.4.2賦值中的數據類型轉換45
實訓2運算符與表達式的綜合應用47
2.5本章小結50
習題250第3章數據輸入與輸出52
3.1單個字符輸入與輸出52
3.1.1單個字符輸出函數putchar函數52
3.1.2單個字符輸入函數getchar函數53
實訓3putchar函數與getchar函數的應用54
3.2格式化輸入與輸出函數56
3.2.1用printf函數輸出數據56
3.2.2用scanf函數輸入數據62
實訓4scanf函數與printf函數的綜合應用68
3.3本章小結71
習題371第4章程序結構設計與應用75
4.1算法簡介75
4.1.1算法的特性75
4.1.2算法的描述工具76
4.1.3程序的基本流程結構78
4.2順序結構程序設計80
4.2.1順序結構程序設計概念80
4.2.2順序結構程序設計舉例80
實訓5順序結構程序設計實訓83
4.3選擇結構程序設計85
4.3.1if語句85
4.3.2switch語句95
4.3.3選擇結構程序設計舉例98
實訓6選擇結構程序設計實訓104
4.4循環結構程序設計111
4.4.1while語句和for語句112
4.4.2dowhile語句120
4.4.3循環的嵌套121
4.4.4循環跳轉語句123
4.4.5循環結構程序設計舉例127
實訓7循環結構程序設計實訓131
4.5本章小結135
習題4136第5章數組138
5.1一維數組138
5.1.1一維數組的定義139
5.1.2一維數組元素的引用140
5.1.3一維數組元素的初始化142
5.1.4一維數組應用舉例143
實訓8一維數組應用實訓145
5.2二維數組148
5.2.1二維數組的定義149
5.2.2二維數組元素的引用150
5.2.3二維數組元素的初始化151
5.2.4二維數組應用舉例154
實訓9二維數組應用實訓158
5.3字符數組與字符串162
5.3.1字符數組的定義162
5.3.2字符數組與字符串163
5.3.3字符數組的初始化164
5.3.4字符數組的引用166
5.3.5常用的字符串處理函數169
5.3.6字符數組應用舉例173
實訓10字符數組應用實訓175
5.4本章小結179
習題5179第6章函數181
6.1模塊化程序設計方法181
6.2函數的定義與調用182
6.2.1函數概述183
6.2.2函數的定義184
6.2.3函數的調用185
實訓11函數的定義與調用實訓191
6.3函數的嵌套調用與遞歸調用193
6.3.1嵌套調用193
6.3.2遞歸調用195
實訓12嵌套調用與遞歸調用應用實訓197
6.4數組與函數參數200
6.4.1數組元素作為函數實參200
6.4.2數組名作為函數參數201
實訓13數組作為函數參數應用實訓204
6.5變量的作用域206
6.6變量的存儲類型211
實訓14變量的存儲類別及其應用實訓215
6.7本章小結218
習題6219第7章指針221
7.1指針與指針變量221
7.1.1地址與指針221
7.1.2指針變量的定義223
7.1.3指針變量的初始化223
7.1.4指針變量的引用與運算225
實訓15指針變量的引用及其運算實訓230
7.2指針與數組231
7.2.1指針與一維數組231
7.2.2指向二維數組的指針變量234
7.2.3指向字符串的指針變量236
實訓16指向一維數組的指針變量及其應用實訓240
7.3指針與函數243
7.3.1使用指向函數的指針變量調用函數243
7.3.2指針變量作為函數參數244
7.3.3指針型函數簡介249
實訓17指針與函數及其應用實訓251
7.4本章小結255
習題7256第8章結構體258
8.1結構體類型的數據258
8.1.1結構體類型258
8.1.2結構體類型變量260
8.1.3結構體類型變量的引用與初始化262
8.2結構體數組266
8.2.1結構體數組的定義267
8.2.2結構體數組的初始化267
實訓18結構體數組應用實訓269
8.3指向結構體類型數據的指針272
8.3.1指向結構體變量的指針272
8.3.2指向結構體數組的指針275
實訓19指向結構體的指針變量及其應用實訓277
8.4本章小結280
習題8281第9章文件282
9.1文件概述282
9.2文件的打開與關閉283
9.2.1打開文件函數(fopen函數)283
9.2.2關閉文件函數(fclose函數)284
9.3文件讀/寫函數285
9.3.1單個字符讀/寫函數285
9.3.2字符串讀/寫函數285
9.3.3數據塊讀/寫函數286
9.3.4格式化讀/寫函數287
實訓20文件操作及其應用實訓288
9.4本章小結291
習題9292第10章結構化程序設計與實訓293
10.1結構化程序設計293
10.2萬年歷程序的設計與實訓295
10.2.1需求分析295
10.2.2程序設計296
10.2.3編碼296
10.2.4測試300
10.2.5維護302
10.3本章小結303
習題10303附錄AC語言關鍵字(32個)304附錄BC語言常用字符ASCII代碼對照表306附錄CC語言運算符的優先級與結合性307
參考文獻309