C語言課程是我國許多高校為學生開設的*一門程序設計語言課程。C語言具有很強的實用性,它既可用來編寫系統軟件,也可用來編寫各種應用軟件。
本書主要內容包括:C語言概述,數據類型、運算符與表達式,程序設計初步,選擇結構程序的設計,循環結構程序的設計,數組,函數,預處理命令,指針,結構體與其他數據類型,位運算,文件等。書中涵蓋了大量的程序設計實例,通過對實例的學習,讀者能夠更好地掌握運用C語言進行程序設計的方法和技巧。
本書既可作為高等院校應用型本科專業學生的教材,也可供自學者以及參加C語言計算機等級考試者閱讀參考。
為了使讀者更好地掌握C語言,清華大學出版社還出版了與本教材配套的學習指導與實驗輔導教材:《C語言程序設計學習指導與實驗教程(第三版)》。
C語言是被人們廣泛使用的一種計算機語言。由于它功能豐富,靈活性強,可移植性好,語言簡潔,應用面廣,因此深受廣大用戶的喜愛。C語言具有較強的實用性,它既可以用來編寫系統軟件,也可以用來編寫各種應用軟件。
C語言程序設計既是計算機專業的必修課程,也是國內許多高校為非計算機專業學生開設的一門程序設計語言課程。對于從未接觸過程序設計語言的學生來說,在規定的有限學時內,掌握好C語言具有一定的難度。作者在編寫本書時,根據多年從事C語言教學的經驗,充分地考慮到了以上實際情況。
本書的編寫具有如下主要特點。
(1) 本書的內容編排充分考慮到高等院校培養應用型本科專業學生和初學者的要求。
(2) 本書內容的組織遵循深入淺出、通俗易懂的原則。首先采用精練的語言介紹每章的知識點,然后選擇學生容易理解的問題作為實例,并結合該章知識講解程序設計的方法和技巧。
(3) 本書本著實用的原則,重點放在如何使用C語言來解決實際問題。在豐富的例題中包含了各種常見問題,對于例題中出現的各種算法都有較詳細的解釋。
(4) 與本書相配套,我們還編寫了《C語言程序設計學習指導與實驗教程(第三版)》,對各章知識的要點和難點進行整理歸納和深入分析,為讀者準備了各種類型的習題,并且給出了習題的參考答案。還為讀者設計了各種上機實驗項目并詳細說明了每個實驗的目的和內容。
(5) 本書內容覆蓋了“C語言計算機等級考試”的內容。
全書共分12章:第1章介紹了C語言的發展歷史、特點及源程序結構;第2章介紹了C語言的基本數據類型、運算符和表達式;第3章介紹了C語言基本的輸入輸出操作和順序結構程序設計;第4章介紹了C語言的選擇結構程序設計;第5章介紹了C語言的循環結構程序設計;第6章介紹了C語言的數組;第7章介紹了C語言函數的調用、變量的存儲類別;第8章介紹了C語言的預處理命令;第9章介紹了C語言指針的使用;第10章介紹了C語言的結構體和其他數據類型;第11章介紹了C語言的位運算;第12章介紹了C語言文件的概念及操作。
本書條理清晰、語言流暢、通俗易懂,實用性強。本書既可以作為高等院校應用型本科專業學生的教材,也可以供自學者以及參加C語言計算機等級考試者閱讀參考。
除主編和副主編外,參加本書編寫工作的還有王廣偉、樂天、江有福、葉其宏、李鑫、朱本浩、畢振波、鄭蕓、陳榮品、張建科、張威、吳遠紅、侯志凌、高禹、崔振東、黃海峰、管林挺、譚小球等。
由于編者水平有限,書中難免存在錯誤與不足,誠懇歡迎讀者批評指正。
編 者
2015年12月
第1章 C語言概述 1
1.1 C語言的發展歷史簡介 1
1.2 C語言的特點 1
1.3 C語言源程序舉例 2
1.4 C程序的編輯、編譯、連接和運行 4
1.5 習題 5
第2章 數據類型、運算符與表達式 6
2.1 C語言的數據類型 6
2.2 常量和變量 6
2.2.1 常量 6
2.2.2 變量 7
2.3 整型數據 7
2.3.1 整型常量 7
2.3.2 整型變量 8
2.3.3 整型數據的輸入輸出 9
2.4 實型數據 10
2.4.1 實型常量 10
2.4.2 實型變量 10
2.4.3 實型數據的輸入輸出 10
2.5 字符型數據 11
2.5.1 字符型常量 11
2.5.2 字符串常量 12
2.5.3 字符型變量 12
2.5.4 字符數據的輸入輸出 12
2.6 算術運算符和算術表達式 14
2.6.1 算術運算符 14
2.6.2 算術表達式 14
2.6.3 不同數據類型間的混合運算 15
2.7 賦值運算符和賦值表達式 16
2.7.1 賦值運算符 16
2.7.2 賦值表達式 16
2.7.3 賦值表達式的類型轉換 17
2.8 其他運算符和表達式 19
2.8.1 自增、自減運算符 19
2.8.2 逗號運算符和逗號表達式 20
2.8.3 求字節數運算符 21
2.9 習題 21
第3章 程序設計初步 23
3.1 C語句概述 23
3.1.1 C語句的種類 23
3.1.2 C程序的賦值語句 24
3.2 順序結構程序設計 25
3.3 數據的輸入與輸出 26
3.3.1 printf函數 26
3.3.2 scanf函數 30
3.3.3 getchar、putchar及getch函數 32
3.4 程序設計舉例 34
3.5 習題 34
第4章 選擇結構程序的設計 37
4.1 關系運算符和關系表達式 37
4.1.1 關系運算符及其優先次序 37
4.1.2 關系表達式 37
4.2 邏輯運算符和邏輯表達式 38
4.2.l 邏輯運算符及其優先次序 38
4.2.2 邏輯表達式 38
4.3 if 語句 40
4.3.1 if語句的3種形式 40
4.3.2 條件運算符 42
4.4 switch 語句 44
4.5 if語句和switch語句的嵌套形式 45
4.5.1 if語句的嵌套 45
4.5.2 switch語句的嵌套 46
4.6 程序設計舉例 47
4.7 習題 50
第5章 循環結構程序的設計 53
5.1 while語句和do-while語句構成的循環 53
5.1.1 while語句 53
5.1.2 do-while語句 54
5.2 for語句構成的循環 55
5.3 嵌套循環結構的概念和實現 57
5.4 break語句和continue語句 59
5.4.1 break語句 59
5.4.2 continue語句 60
5.5 goto語句和用goto語句構成循環 61
5.6 程序設計舉例 61
5.7 習題 64
第6章 數組 67
6.1 一維數組 67
6.1.1 一維數組的定義 67
6.1.2 一維數組元素的引用和初始化 68
6.1.3 一維數組程序設計舉例 69
6.2 二維數組 73
6.2.1 二維數組的定義 73
6.2.2 二維數組元素的引用和初始化 74
6.2.3 二維數組程序設計舉例 76
6.3 字符數組與字符串 78
6.3.1 字符數組的定義 78
6.3.2 字符數組元素的引用和初始化 78
6.3.3 字符串 79
6.3.4 字符數組元素的輸入輸出 79
6.3.5 處理字符串的函數 81
6.3.6 字符數組程序設計舉例 85
6.4 習題 89
第7章 函數 92
第8章 預處理命令 118
第9章 指針 128
第10章 結構體與其他數據類型 158
第11章 位運算 182
第12章 文件 193
附錄A Visual C++ 6.0使用方法簡介 213
附錄B C語言關鍵字 217
附錄C 運算符的優先級及其結合性 217
附錄D C的常用函數庫 219
附錄E ASCII碼表 226
參考文獻 230