本書共分為9章, 主要介紹C語言的數據類型、運算符和表達式, 程序控制結構, 數組, 函數, 指針, 文件, 編譯預處理等內容。在進行知識點講解時, 結合大量的案例進行分析, 每章節后增加習題, 幫助讀者鞏固知識點; 書后增加了附錄幫助讀者進行歸納總結。最后, 精心設計了模擬練習, 幫助讀者進行系統復習。
本書從初學者的角度出發,結合編者多年的教學工作經驗,理論聯系實際,結合大量案例對各知識點進行講解。既介紹基本的語法知識,又傳授編程思想。編寫過程中利用“小貼士”對在學習過程中容易出現錯誤的知識點進行了強化介紹,能使初學者更好地掌握C語言程序設計。全書語言簡潔,通俗易懂,實例豐富,內容詳盡、難易適中、重點突出,符合初學者的閱讀習慣。為了幫助學生更有目的性地參加等級考試,增設了模擬試題模塊。本書可作為應用型本科高校、高職高專院校各相關專業學習C語言程序設計的教材,也可作為自學C語言程序設計的參考書。
隨著計算機的普及,以及信息技術和計算機技術的飛速發展,計算機在人類日常生活中扮演著越來越重要的角色,利用計算機解決實際生活問題也逐漸成為現代人的一項重要技能。C語言是一門通用計算機編程語言,它兼有高級語言和低級語言的優勢,既可以用于編寫系統程序,又可以用于編寫應用程序。C語言已經成為國內外應用較廣泛的高級程序設計語言之一,其靈活性與實用性受到廣大用戶的喜愛。當今流行的Windows、UNIX、Linux等各種操作系統都支持用C語言進行軟件開發。
學習C語言有助于學生更好地掌握程序設計的基本方法并逐步形成正確的程序設計思想。然而,C語言對一般初學者來說,規則較多,不易掌握,伴隨著越來越廣的應用范圍,其所涉及的知識也在不斷增多;同時,目前我國大多數高校的理工科專業把C語言程序設計課程作為必修課,并參加等級考試。基于此,我們認真總結已出版教材的編寫經驗,組織具有豐富教學經驗和實踐經驗的作者編寫本書,主要是為了滿足初學者及考證學生的需要。
全書共分9章,第1章介紹C語言的基礎知識、基本概念、基本結構以及運行環境MicrosoftVisualC++6.0;第2章介紹C語言的數據類型、標識符、常量、變量、運算符和表達式等;第3章介紹程序結構的基本語句、程序的三種基本結構及其應用等;第4章介紹數組的定義、初始化,數組元素的引用以及數組的應用等;第5章介紹庫函數的調用、自定義函數的定義和調用、函數的嵌套調用和遞歸調用等;第6章介紹指針的使用方法等;第7章介紹用戶自定義數據類型及其應用等;第8章介紹文件的各種操作;第9章介紹三種預處理命令:宏定義(#define)、文件包含(#include)、條件編譯命令。
本書由葉福蘭、謝人強、傅龍天主編,喻麗春、姚潔、郭安副主編。其中,第1章、第2章由福州外語外貿學院喻麗春老師編寫;第3章、第4章由福州外語外貿學院葉福蘭老師編寫;第5章、第6章由福州外語外貿學院謝人強老師編寫;第7章、第8章由福州外語外貿學院傅龍天老師編寫;第9章、模擬試卷由福州外語外貿學院姚潔老師編寫;附錄的整理及統稿工作由福州外語外貿學院葉福蘭老師完成;整本書的審閱工作由閩江師范高等專科學校郭安老師負責。
本書第一主編葉福蘭老師為福州外語外貿學院專職教師。撰寫過程中借鑒和參閱了大量文獻,在此對相應作者一并表示感謝。限于編者的能力,書中難免有不足之處,請大家不吝賜教。
編者2017年2月
第1章程序設計與C語言概述1
1.1程序設計語言1
1.1.1計算機程序1
1.1.2計算機語言1
1.2C語言的發展歷史與特點2
1.2.1C語言的發展歷史2
1.2.2C語言的特點3
1.3C語言程序設計的結構4
1.3.1C語言程序的基本結構4
1.3.2C語言程序的書寫規則6
1.4C語言程序的編譯和運行6
1.4.1實現C語言程序執行的步驟6
1.4.2在Microsoft Visual C++ 6.0下運行C程序8
本章小結12
習題12
第2章數據類型、運算符和表達式14
2.1C語言的數據類型14
2.1.1整型數據15
2.1.2浮點型數據16
2.1.3字符型數據16
2.2標識符、常量與變量17
2.2.1標識符17
2.2.2常量18
2.2.3變量22
2.3運算符和表達式23
2.3.1C語言運算符概述23
2.3.2算術運算符與算術表達式25
2.3.3賦值運算符與賦值表達式27
2.3.4自增自減運算符與表達式30
2.3.5關系運算符與關系表達式32
2.3.6邏輯運算符與邏輯表達式33
2.3.7位運算符35
2.3.8條件運算符與條件表達式37
2.3.9逗號運算符和逗號表達式38
2.3.10sizeof運算符38
本章小結39
習題40
C語言程序設計目錄第3章程序控制結構42
3.1C語言執行語句42
3.1.1表達式語句43
3.1.2函數調用語句43
3.1.3空語句47
3.1.4復合語句47
3.1.5控制語句47
3.2順序結構48
3.3選擇結構50
3.3.1if語句50
3.3.2switch語句58
3.4循環結構61
3.4.1while語句61
3.4.2do...while語句64
3.4.3for語句65
3.4.4break語句和continue語句68
3.4.5循環嵌套70
3.5綜合案例72
本章小結74
習題74
第4章數組80
4.1一維數組80
4.1.1一維數組的定義80
4.1.2一維數組的初始化81
4.1.3一維數組元素的引用82
4.1.4一維數組舉例82
4.2二維數組92
4.2.1二維數組的定義92
4.2.2二維數組的初始化93
4.2.3二維數組元素的引用94
4.2.4二維數組舉例95
4.3字符數組98
4.3.1一維字符數組的定義98
4.3.2一維字符數組的初始化99
4.3.3一維字符數組的引用100
4.3.4二維字符數組101
4.3.5字符數組舉例102
本章小結104
習題104
第5章函數108
5.1概述108
5.2庫函數109
5.2.1庫函數的使用方式109
5.2.2常用的庫函數110
5.3自定義函數114
5.3.1函數的定義114
5.3.2函數的調用115
5.4數組作為函數參數123
5.4.1數組元素作為函數實參123
5.4.2數組名作為函數實參125
5.5函數的嵌套調用和遞歸調用130
5.5.1函數的嵌套調用130
5.5.2函數的遞歸調用131
5.6變量的作用域與存儲類別134
5.6.1局部變量和全局變量134
5.6.2變量的存儲方法138
5.7內部函數和外部函數141
本章小結142
習題143
第6章指針149
6.1指針與指針變量149
6.1.1指針與指針變量的含義149
6.1.2指針變量的定義150
6.2指針的運算151
6.2.1指針變量的初始化和賦值151
6.2.2指針的運算153
6.3指針與數組155
6.3.1指向一維數組的指針155
6.3.2指向二維數組的指針157
6.4字符串與指針161
6.5指針與函數164
6.6指向指針的指針167
本章小結168
習題169
第7章用戶自定義數據類型174
7.1結構類型及其變量的定義174
7.1.1結構類型定義174
7.1.2結構類型變量及其初始化176
7.1.3結構類型成員引用178
7.2結構數組180
7.2.1結構數組定義180
7.2.2結構數組的基本操作181
7.3結構和指針183
7.3.1指向結構類型變量的指針183
7.3.2指向結構數組的指針186
7.3.3結構指針與函數187
7.4聯合類型190
7.4.1聯合類型定義190
7.4.2聯合類型基本操作191
7.5枚舉類型192
7.5.1枚舉類型定義192
7.5.2枚舉類型基本操作193
7.6用typedef定義類型別名193
本章小結194
習題194
第8章文件200
8.1文件與文件指針類型200
8.1.1流與文件200
8.1.2文件類型指針201
8.2文件的打開和關閉202
8.3讀寫函數203
8.4文件的定位和隨機讀寫210
8.4.1文件定位210
8.4.2文件隨機讀寫211
8.5文件的出錯檢測215
本章小結216
習題216
第9章編譯預處理221
9.1宏定義221
9.1.1無參宏的定義221
9.1.2有參宏的定義222
9.2文件包含223
9.3條件編譯224
本章小結226
習題226
模擬試卷一229
模擬試卷一參考答案235
模擬試卷二236
模擬試卷二參考答案242
模擬試卷三244
模擬試卷三參考答案250
附錄A常用字符與ASCII代碼對照表251
附錄BC語言關鍵字252
附錄C運算符和結合性253
附錄DC語言常用語法提要255
附錄E庫函數259
參考文獻265