本書共分4篇,即基礎編程、面向過程編程、面向對象編程和泛型編程,內容逐步深入。其中,基礎編程篇介紹了選擇和循環結構、數據和表達式的基本知識、數組結構和簡單的指針使用; 面向過程編程篇介紹了函數的使用、標識符的作用域和變量的存儲類型、指針的高級用法和預處理; 面向對象編程篇介紹了類與對象的封裝性、繼承性和多態性,以及對象的構造、運算符的重載、文件的使用、異常處理等; 泛型編程篇則介紹了模板和簡單的STL編程。
本書可作為高等院校低年級學生的教材,也可作為其他相關人員根據不同層次要求學習C 語言的參考書。
1、本書程序例子進行了分類,分成A、B、C三類,A類基本用法,B類演示程序,C類典型程序。2、本書對一些計算的細節作了細致的分析,如實數計算會有誤差,階乘使用雙精度保存可以適當避免算術溢出錯誤。3、練習題圍繞提高編程能力,以編程為主,也有綜合練習題提供了考試的各類題型。4、附錄B有VisualC 編寫控制臺應用程序的簡單操作,易于自學入門。5、附錄C有使用標準名空間std的程序(本書采用)與早期不用std的程序之間的差異,以應對不用std的程序的重要考試,如江蘇省C 等級考試。6、對輸入輸出流的格式操縱符的實現原理簡單作了介紹。
前言
一、
本書的主要特點
本書的編寫基于作者在多年的C 教學中改進教學形式的嘗試。作為C 課程教材,作者除了將C 的主要內容寫入本書外,還進行了一些教材上的補充和嘗試,包括以下方面。
本書的C 內容兼顧C 國際標準和目前還在使用的C 舊版本,與大量C 舊版本的書籍和某些C 考試大綱相通,又顧及C 的使用趨勢。
本書的結構是從非常基本的C 知識到泛型編程知識,共分4篇,第一篇是最基本的編寫C 程序的知識,用于C 編程的快速入門,但也有足夠豐富的內容;
第二篇可以使讀者編寫較為復雜的C 程序;
第三篇可以使讀者利用面向對象的方法編寫大規模的程序;
第四篇則提供了C 國際標準提倡的泛型編程方法。
本書在附錄部分介紹了計算機基礎知識、Visual C 軟件的基本操作和基本調試功能、C 舊版本與新標準的比較。
本書的程序示例分為A、B、C三類,A類程序是最基本的C 的用法,B類程序是用于說明某個原理和用法的演示程序,C類程序是比較經典具有實用性的C 程序。當讀者通過B類程序了解了程序的運行原理后,B類程序幾乎可以棄之不用。C類程序是值得熟記的程序。
本書以提高讀者編寫程序的能力為主要目的,練習基本上是大量的編程題。全書4篇中的前3篇,每一篇的末尾都提供了綜合練習題,以類似試卷的形式給讀者提供熟悉課程考試和計算機等級考試的題型。
對于本書可以有層次地進行學習,當讀者時間有限時可以只學習第一篇,能夠基本掌握C 編程知識并能編寫各種不太復雜的程序,再學一下第6章就可以掌握大量以編程為工具的各種計算機知識。如果不考慮編寫大規模程序,學到第二篇就可以了。第三篇是用于設計大規模程序的知識,使用了面向對象的編程方法。第四篇是C 發展后期面向對象方法的新的發展泛型編程方法,利用類型作為參數,可以編寫更加精致、高效的程序。
書中有少量加*的內容,是選講或選做的內容。
二、
第2版的改進
本書第1版經過3年的教學使用,發現了一些內容上的不足,針對這些不足,本書做了改進,主要有以下幾個方面。
考慮到自學的需要,本書增加了書上部分題解和相關程序編寫中容易出現的錯誤作為附錄A,在沒有教師指導的情況下,附錄A的內容可以作為讀者做題的參考,可使讀者了解到編程常見的錯誤,從而提高自己的編程能力。附錄A中選擇的題目都是編程時容易犯錯的題目,或者是常見算法的題目,或者是特別難的題目。前三篇末尾的綜合練習題答案和附錄B的練習答案也放在附錄A的后面。
本書將第1版的Visual C 6.0程序全部改成了第2版的Visual Studio 2008程序,剔除了少量多余或重復的程序示例。本書中的內容也針對不同版本做了相應改動,第15章內容改動相對較多。
本書在第8章指針的高級用法中增加了一小節內容,專門講容易混淆誤用的指針表達式以及指針的各種復雜關系。
本書在第10章到第14章的程序中,對象成員函數如show()、get()等均用const說明為常成員函數,以順應目前C 的編程特點。第12章之后程序使用到的字符串都改為C 的string類字符串。
本書中的練習做了少量改動或次序調整,難一些的題目給出了提示。
針對第1版內容有些地方不夠詳細,而且全書知識重點不夠突出的情況,第2版增加了很多注解,并以粗體楷體字的形式突出顯示,這些注解集中在C 最主要的知識點、易錯的知識點、拓展的知識點方面。
三、
致謝
在本書再版的過程中得到了張強老師、黃達明老師的熱心幫助,他們的知識和經驗融入到了本書第2版的內容中,作者在此向他們及其他直接、間接對本書出版提供過幫助的人表示衷心的感謝。
作者2017年10月