C 語言是國內外廣泛使用的編程語言,已被大多數高等學校作為典型的計算機教學語言。本書分10 章,內容包括:C 語言概述,數制和基本數據類型,運算符和表達式、輸入輸出,控制結構,數組,函數,指針,結構體與共用體,文件,綜合應用案例,以及4 個附錄。
本書深入淺出,例題豐富,側重程序設計思維的構建和程序算法的分析與設計。本書采用“提出問題→算法分析→程序實現→說明歸納”的步驟組織教材內容,符合讀者的認知規律,強化了算法的分析和設計,有助于幫助讀者建立良好的思維模式,培養讀者分析問題和解決問題的能力,掌握軟件開發的工作原理和系統方法。本書中的典型程序一題多解,有助于新舊知識對比學習,融會貫通,啟迪思維,拓展讀者的程序設計能力和靈活運用的能力。
本書可作為高等學校各相關專業“程序設計基礎”、“C 語言程序設計”課程的教材,也可作為程序開發人員的培訓教程,還可作為全國計算機等級考試、編程愛好者學習參考用書。
前 言
程序設計基礎的入門課程——C語言是目前廣泛應用的程序設計語言之一。它具有功能強大、使用靈活、可移植性好的特點,同時兼備低級語言和高級語言的優點,可用于編寫系統軟件和應用軟件。另外,C語言的語法規則清晰,便于掌握和記憶,因此適合作為大多數人學習計算機程序設計的入門語言。通過本書的學習,可以加深學生對計算機系統的認識;建立良好的計算機思維模式;培養學生模塊化、結構化編程方法與技巧;訓練學生運用計算機分析問題和解決問題的實踐能力;熟練使用Visual C++ 6.0開發環境進行C語言編程、調試、運行等各個環節的基本操作,為今后進一步學習打下堅實的基礎。
本書是作者在多年C語言教學、研究和實踐積累的基礎上,吸收國內外C語言程序設計課程的教學理念和方法,依據C語言程序設計課程教學大綱的要求編寫而成的。
本書每一章都配備了大量的例題講解,所有程序例題均在Visual C++ 6.0平臺中調試通過。程序例題采用了“問題提出→問題分析→算法分析→程序實現→說明歸納”的步驟來講解,符合讀者的認知規律,對例題的重點難點位置強化算法的分析和設計,有助于建立讀者良好的思維模式,培養讀者分析問題和解決問題的能力。本書最后通過一個綜合應用案例——學生學籍管理系統,按照軟件工程的思想,沿著“需求分析→總體設計→詳細設計→編碼實現”的軟件開發流程,完整地開展系統的分析設計與實現,有助于讀者掌握軟件開發的工作原理和系統方法。
全書共分為10章,具體內容如下:
第1章 講述計算機編程語言的發展過程、在Visual C++ 6.0集成開發環境中編寫和調試控制臺程序的步驟和方法。
第2~3章 講解數據類型、運算符和表達式的使用方法、基本輸入輸出函數的應用。
第4章 講述運用三種基本的控制結構(順序、選擇和循環)進行編程的方法。
第5~6章 講解數組和字符串的運用、函數的使用、變量的作用域與生存期、編譯預處理命令。
第7~8章 講解指針、結構體、共用體的使用方法和鏈表的相關操作。
第9章 講解文件操作的標準庫函數的應用。
第10章 完整講解一個綜合應用案例——學生學籍管理系統的分析設計與實現的全過程。
本書具有以下特色:
1. 實例豐富。本書不僅理論完備,還通過100多個實例夯實基礎,100多個課后習題鞏固練習,并通過分布在本書第6、8和10章的3個綜合應用案例——學生成績統計程序、學生成績查詢系統、學生學籍管理系統全面提升實戰開發能力。
2. 一題多解。典型實例可采用多種算法來設計和實現,有助于新舊知識對比學習,融會貫通,啟迪思維,拓展讀者的程序設計能力和靈活運用能力。
3. 貼心提示。為了便于讀者閱讀,書中還穿插了一些說明、注意和思考等小貼士,體例約定如下:
“說明”:進一步闡述相關知識點的應用,力求規范、全面。
“注意”:指出學習過程中需要特別注意的一些知識點和內容,讓讀者加深印象。同時,還為讀者提供建議及解決問題的方法。
“思考”:讀者可利用課余時間獨立思考、解決提出的問題,進一步深入學習訓練。
4. 習題豐富。本書每章最后提供了大量習題,涵蓋了每章知識的重難點內容。題型靈活多樣,包括選擇題、填空題、閱讀程序填空題及編程題,方便讀者課后鞏固練習。
本書可作為高等學校各相關專業“程序設計基礎”、“C語言程序設計”課程的教材,也可作為程序開發人員的培訓教程,還可作為全國計算機等級考試、編程愛好者的學習參考用書。
本書還特別為任課教師免費提供整套教學資源(電子課件、全部程序源代碼和習題參考答案等)。本書還配有相關上機環節指導書《程序設計基礎上機指導——C語言》(ISBN 978-7-302-42445-1),建議與本書配套使用。
本書的統稿工作由金蘭負責,第1、2、3、4、5、7、10章及附錄由金蘭編寫,第6、8章由梁潔編寫,第9章由姚煒編寫。在本書編寫過程中,王育勤教授給予了諸多的鼓勵和關心。書稿中例題和習題程序的調試過程,楊景瑩和楊明等做了大量工作。本書在編寫過程中得到了許多同行的幫助,還參閱了許多相關資料,在此衷心的感謝。因編者水平有限,書中難免會有疏漏和錯誤之處,懇請廣大讀者給予指正。
編 者
第1章 C語言概述 1
1.1 計算機編程語言 1
1.1.1 機器語言 1
1.1.2 匯編語言 2
1.1.3 高級語言 3
1.2 第一個C程序 5
1.3 C程序的上機步驟 7
1.3.1 單文件的C程序的上機步驟 8
*1.3.2 多文件的C程序的上機步驟 11
1.4 C程序的調試 17
課后習題1 21
第2章 數制、基本數據類型 23
2.1 整數數制 23
2.1.1 十進制數 23
2.1.2 二進制數 23
2.1.3 八進制數 25
2.1.4 十六進制數 26
2.2 C程序常見符號分類 27
2.3 數據類型 29
2.3.1 為什么引入數據類型 29
2.3.2 類型修飾符 30
*2.3.3 C99標準中的新增類型 31
2.4 常量 32
2.4.1 整型常量 32
2.4.2 實型常量 33
2.4.3 字符常量 33
2.4.4 字符串常量 35
2.4.5 符號常量 35
2.4.6 枚舉常量 36
2.5 變量 37
2.5.1 變量的聲明與初始化 37
2.5.2 const類型修飾符 38
2.5.3 變量的類型 39
課后習題2 42
第3章 運算符和表達式、輸入輸出 45
3.1 算術運算符 45
3.2 賦值運算符 47
3.3 增1、減1運算符 48
3.4 關系運算符 49
3.5 邏輯運算符 50
3.6 條件運算符 52
3.7 強制類型轉換運算符 52
3.8 逗號運算符 53
3.9 位運算符 54
3.10 sizeof運算符 56
3.11 類型轉換 57
3.12 運算符的優先級和結合性 59
3.13 基本輸入輸出函數 60
3.13.1 字符輸入輸出函數 61
3.13.2 格式化輸入輸出函數 63
課后習題3 74
第4章 控制結構 78
4.1 算法及其描述方法 78
4.1.1 算法的概念 78
4.1.2 算法的描述方法 79
4.2 順序結構 81
4.3 選擇結構 83
4.3.1 if語句 84
4.3.2 switch語句 93
4.4 循環結構 102
4.4.1 while語句 103
4.4.2 do…while語句 105
4.4.3 for語句 108
4.4.4 三種循環控制語句的應用舉例 111
4.4.5 循環的嵌套 116
4.4.6 提前結束循環 120
4.5 綜合應用舉例 123
課后習題4 130
第5章 數組 136
5.1 一維數組 136
5.1.1 一維數組的定義 136
5.1.2 一維數組的引用 137
5.1.3 一維數組的初始化 137
5.1.4 一維數組程序舉例 139
5.2 二維數組 148
5.2.1 二維數組的定義 148
5.2.2 二維數組的引用 149
5.2.3 二維數組的初始化 150
5.2.4 二維數組程序舉例 151
5.3 字符數組與字符串 155
5.3.1 字符數組的初始化 155
5.3.2 字符數組的輸入/輸出 157
5.3.3 字符串處理函數 158
5.3.4 字符數組和字符串程序舉例 162
課后習題5 168
第6章 函數 172
課后習題6 219
第7章 指針 225
課后習題7 270
第8章 結構體與共用體 277
課后習題8 324
第9章 文件 333
第10章 綜合應用案例——學生學籍管理系統 360
課后習題10 379
附錄A C關鍵字 382
附錄B C運算符的優先級和結合性 383
附錄C ASCII碼字符表 384
附錄D 常用的ANSI C標準庫函數 388
參考文獻 395