C語言編程思維(第2版)
定 價:59 元
叢書名:高等院校計算機(jī)任務(wù)驅(qū)動教改教材
本書的寫作結(jié)合了作者多年C程序設(shè)計的授課經(jīng)驗,從知識點的講述方法、例題設(shè)計,以及示例代碼的排版風(fēng)格上都充分體現(xiàn)出便于學(xué)習(xí)和適合講授的特點。通過本書的學(xué)習(xí),不僅僅能夠掌握C語言程序設(shè)計知識,更能了解到如何運用C語言編程解決一些實際問題。
書中每一個例題在示例代碼之前都有分析,之后都有解釋,這兩處包含了編寫程序的一些思想分析和總結(jié),其中不乏一些編程經(jīng)驗和技巧,希望讀者不要僅僅將注意力集中在源代碼的閱讀上,更應(yīng)該對例題的這兩個部分進(jìn)行細(xì)致的閱讀。
編者走進(jìn)精彩紛呈的計算機(jī)世界至今正好20年,從來沒有想過要寫一本C語言程序設(shè)計教程,因為從我學(xué)習(xí)C語言起,再到后來教授C語言課程,一直都在使用譚浩強(qiáng)先生的C語言教材。那不僅僅是一本經(jīng)典的C語言教材,更是對自己大學(xué)時代的一種記憶與懷念。然而,自從為非計算機(jī)專業(yè)的學(xué)生講授C語言課程以后,慢慢發(fā)現(xiàn),一些經(jīng)典的計算機(jī)專業(yè)教材由于講授內(nèi)容較全面、深入,反而不一定很適合他們。作為公共計算機(jī)課程的一種,面向非計算機(jī)專業(yè)開設(shè)的C語言程序設(shè)計課程,不需要追求掌握了多少語法知識,掌握了多少編程技巧,而應(yīng)該更多地關(guān)注是否通過一門語言工具,使學(xué)生們了解計算機(jī)程序的運行原理,以及是否掌握了一定的邏輯思維能力,能否以計算機(jī)的思維方式去考慮、分析實際問題。即通過這門課程的學(xué)習(xí),使各專業(yè)的大學(xué)生具備基本的計算思維能力,本書正是基于這樣的指導(dǎo)思想而寫作的。閱讀本書時請注意以下問題。首先,我希望讀者能夠?qū)屑哟、加點的文字內(nèi)容引起足夠的注意,那往往是一些容易被忽視、引發(fā)錯誤的內(nèi)容。其次,書中每一個例題在示例代碼之前都有分析,之后都有解釋,這兩處包含了編寫程序的一些思想分析和總結(jié),其中不乏一些編程經(jīng)驗和技巧,希望讀者不要僅僅將注意力集中在源代碼的閱讀上,更應(yīng)該對例題的這兩個部分進(jìn)行細(xì)致的閱讀。再次,本書雖然為每一個例題都提供了完整的源代碼,卻不準(zhǔn)備以任何形式向讀者提供這些源代碼的電子版。實際上,在互聯(lián)網(wǎng)高度發(fā)達(dá)的今天,要做源程序的發(fā)布非常容易。但是,本人堅持認(rèn)為,作為一名程序設(shè)計的初學(xué)者,將每一個例題的源代碼自己輸入到計算機(jī)中本身就是一項重要的練習(xí)。你會發(fā)現(xiàn),剛開始的時候,即使對照書本小心地輸入,在編譯時還是會出現(xiàn)很多錯誤警告;而讀者是在排除這些錯誤的過程中實現(xiàn)了編程能力的提高。最后,本書第2版雖然提供了每一章練習(xí)題的參考答案,但是仍然不建議讀者使用這些參考答案,因為對于看程序?qū)懗鼋Y(jié)果這類習(xí)題,讀者只需輸入題目中的源代碼并運行程序就能獲得正確的答案。自己運行程序,還可以練習(xí)使用斷點等方式觀察程序運行時變量的變化過程,可以更深入地了解程序的運行。對于編程題,參考答案反而會限制讀者計算思想的培養(yǎng)和C語言編程思維(第2版)形成。正所謂兵無常勢,水無常形,實現(xiàn)相同功能的源程序也可以多種多樣,發(fā)散性的思維對于學(xué)生尤為重要。請記住,只要能讓你編寫的程序順利運行,并輸出期望的結(jié)果,那它就是答案!當(dāng)然,如果讀者對于部分習(xí)題的解決的確毫無頭緒時,也可以登錄清華大學(xué)出版社的官方網(wǎng)站下載本書提供的參考答案。如果讀者有任何好的意見、建議或求助,我將十分樂意通過郵件(nbchen75@sina.com)隨時為你提供幫助!本書第2版得到了寧波工程學(xué)院電子與信息工程學(xué)院各位領(lǐng)導(dǎo)及同事的大力協(xié)助,特別是在本書修訂過程中,理學(xué)院的陳明、楊帆、林勇,機(jī)械學(xué)院的袁云龍、王明軍等老師提出了大量寶貴意見,在此向幫助過我的各位同仁表示衷心的感謝!由于編者水平有限,書中一定存在著各種疏漏與不足之處,懇請各位專家、讀者批評、指正,謝謝!
編者2019年5月
陳萌,男,碩士,1975年出生,中國計算機(jī)協(xié)會會員,長期從事普通高校計算機(jī)基礎(chǔ)課程教學(xué)工作,目前已積累獨著、參編各類計算機(jī)教材7本。
第1章編程十問11.1何謂編程21.2為何編程21.3怎樣編程31.4計算機(jī)的世界有何不同41.5程序是怎樣工作的51.6為什么選擇C語言61.7C語言從何而來71.8C語言去向何方81.9數(shù)學(xué)與編程的關(guān)系101.10編程難嗎11【技能訓(xùn)練題】12第2章編程環(huán)境與風(fēng)格132.1搭建C語言開發(fā)環(huán)境132.2工程與程序242.3C語言程序的一般結(jié)構(gòu)382.4標(biāo)識符的命名與規(guī)則392.5程序的書寫風(fēng)格41【技能訓(xùn)練題】43【應(yīng)試訓(xùn)練題】43第3章機(jī)器思維453.1機(jī)器解題的過程453.2用圖形描述的解題過程(流程圖)483.3用語言描述的解題過程(偽代碼)51【技能訓(xùn)練題】54第4章順序結(jié)構(gòu)的程序554.1程序的組成554.1.1常量554.1.2變量聲明與使用594.1.3C語言的運算符號614.1.4表達(dá)式與語句664.2程序與外界的交流694.2.1輸入到程序704.2.2輸出處理784.3程序的排錯與調(diào)試864.3.1軟件Bug與調(diào)試864.3.2常用調(diào)試工具884.3.3Visual Studio調(diào)試源程序的方法894.4典型的順序問題984.4.1單位及貨幣的轉(zhuǎn)換984.4.2面積的計算1014.4.3整數(shù)分解問題103【技能訓(xùn)練題】104【應(yīng)試訓(xùn)練題】105第5章會思考的程序1115.1智能的實質(zhì)1115.2選擇結(jié)構(gòu)的實現(xiàn)1125.2.1條件表達(dá)式1125.2.2if語句1145.2.3switch語句1235.2.4if和switch的選擇1315.3典型的分支問題1325.3.1為什么密碼都要輸入兩次1325.3.2成績轉(zhuǎn)換問題(百分制轉(zhuǎn)優(yōu)、良、中、差)1335.3.3排序問題136【技能訓(xùn)練題】138【應(yīng)試訓(xùn)練題】139第6章循環(huán)往復(fù),周而復(fù)始1456.1C語言的三種循環(huán)結(jié)構(gòu)1456.1.1先判斷,后循環(huán)(while)1466.1.2先循環(huán),后判斷(dowhile)1486.1.3for語句1516.2無限循環(huán)與中途退出1536.2.1無限循環(huán)1536.2.2break和continue1556.2.3被遺忘的goto1596.3典型的循環(huán)問題1606.3.1循環(huán)輸入1606.3.2多項式的求解1636.3.3循環(huán)的嵌套164【技能訓(xùn)練題】166【應(yīng)試訓(xùn)練題】167第7章模塊化與協(xié)作開發(fā)1747.1任務(wù)分解與協(xié)作1747.1.1任務(wù)分解的意義1747.1.2團(tuán)隊合作1757.2函數(shù)的定義與使用1767.2.1自定義函數(shù)1767.2.2函數(shù)的聲明與調(diào)用1837.2.3全局變量與局部變量1857.2.4變量的生存周期1887.3庫函數(shù)與API1907.3.1庫函數(shù)1917.3.2系統(tǒng)API1927.3.3第三方API1937.4遞歸194【技能訓(xùn)練題】198【應(yīng)試訓(xùn)練題】199第8章批量數(shù)據(jù)的處理2098.1一維數(shù)組與線性結(jié)構(gòu)2098.1.1一維數(shù)組的定義與初始化2118.1.2一維數(shù)組的應(yīng)用2148.2二維數(shù)組2238.2.1二維數(shù)組的定義2238.2.2二維數(shù)組的初始化2248.2.3二維數(shù)組的應(yīng)用2268.3字符串2318.3.1字符數(shù)組與字符串的關(guān)系2318.3.2字符串的輸入與輸出2348.3.3常見字符串處理函數(shù)2358.3.4字符串的應(yīng)用238【技能訓(xùn)練題】244【應(yīng)試訓(xùn)練題】245第9章指針與內(nèi)存2539.1指針是什么2539.1.1Windows的內(nèi)存管理2539.1.2指針的定義2559.1.3指針的使用2579.1.4指針的右左法則2599.2指針的常用方法2619.2.1指針在數(shù)組中的運用2619.2.2指針在函數(shù)中的運用270【技能訓(xùn)練題】279【應(yīng)試訓(xùn)練題】280第10章Windows文件系統(tǒng)及操作28810.1Windows文件系統(tǒng)28810.1.1Windows文件系統(tǒng)簡介28810.1.2文件、文件夾和路徑28910.1.3C語言中對路徑的描述29010.1.4字符文件與二進(jìn)制文件29110.1.5文件操作的一般流程29110.2文本文件的基本操作29310.2.1文本文件讀寫函數(shù)29310.2.2文本文件讀寫示例29610.3二進(jìn)制文件的基本操作30110.3.1二進(jìn)制文件讀寫函數(shù)30110.3.2二進(jìn)制文件讀寫示例304【技能訓(xùn)練題】309【應(yīng)試訓(xùn)練題】310第11章自定義數(shù)據(jù)類型31311.1結(jié)構(gòu)體31311.1.1結(jié)構(gòu)體數(shù)據(jù)類型簡介31311.1.2結(jié)構(gòu)體定義與引用31411.1.3結(jié)構(gòu)體應(yīng)用示例31711.2共用體31911.2.1共用體類型簡介31911.2.2共用體定義與引用32011.2.3共用體應(yīng)用示例321【技能訓(xùn)練題】323【應(yīng)試訓(xùn)練題】324參考文獻(xiàn)328附錄AASCII碼表329附錄BVC常見錯誤提示331附錄C常用庫函數(shù)索引表334