出版時(shí)間:2009-4 出版社:張小東、 鄭宏珍 人民郵電出版社 (2009-04出版) 作者:張小東,鄭宏珍 編 頁數(shù):324
前言
目前市面上有關(guān)C語言方面的圖書,內(nèi)容大都按傳統(tǒng)思路組織,從C語言的歷史講起,然后是數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、常量、變量、控制結(jié)構(gòu)、數(shù)組、指針、函數(shù)、結(jié)構(gòu)體與共用體、文件等,由最基本、最本質(zhì)并較為抽象的內(nèi)容開始,如單詞、句法、語法、程序段等,逐漸復(fù)雜化,逐步進(jìn)行講解。表面上看,這樣對(duì)抽象知識(shí)學(xué)習(xí)過程,并不適合于C語言的教學(xué),學(xué)生對(duì)知識(shí)點(diǎn)的理解不充分,不全面,甚至是不懂,只是靠著死記硬背而獲得一個(gè)不錯(cuò)的分?jǐn)?shù),學(xué)完之后不會(huì)使用,就連簡(jiǎn)單的命題也可能解決不了!不可否認(rèn),這跟我國的傳統(tǒng)應(yīng)試教育模式有很大的關(guān)系,但就事論事地講,跟我們的教材編寫也有一定的關(guān)系。本著學(xué)以致用的原則,本書從第1章開始就教學(xué)生學(xué)習(xí)寫簡(jiǎn)單應(yīng)用程序,每一個(gè)知識(shí)點(diǎn)都糅進(jìn)應(yīng)用當(dāng)中去,不做單純的知識(shí)點(diǎn)堆積,不但把前幾章那些“簡(jiǎn)單的”知識(shí)點(diǎn)分散到各個(gè)章節(jié),避免機(jī)械式的記憶,而且把難點(diǎn)也分散了。全書以應(yīng)用為主線,用到了才講:講,就是為了能更好地用!為了培養(yǎng)學(xué)生規(guī)范地使用語言,先從問題的規(guī)范描述開始,然后分析問題,建立模型,實(shí)現(xiàn)求解,最后測(cè)試通過。從嚴(yán)格的科學(xué)研究與工程應(yīng)用的角度出發(fā),進(jìn)行c語言的學(xué)習(xí)與研究,并將這種思想滲透到每個(gè)實(shí)例中!明確的學(xué)習(xí)目的與目標(biāo)也是學(xué)習(xí)的主要?jiǎng)恿?,本書要幫助學(xué)生建立的學(xué)習(xí)目的就是能夠?qū)崿F(xiàn)算法設(shè)計(jì)解決相關(guān)命題,目標(biāo)是提高自己的學(xué)習(xí)能力與動(dòng)手能力。全書在提供豐富而有趣的經(jīng)典實(shí)例時(shí),還精心設(shè)計(jì)了兩個(gè)相對(duì)完整的應(yīng)用:計(jì)算器與學(xué)生成績(jī)檔案管理。計(jì)算器屬于算法研究4大類問題之一——計(jì)算類問題,其中包括很多經(jīng)典的數(shù)值運(yùn)算算法,如應(yīng)用泰勒(Taylor)公式去求解三角函數(shù)等。學(xué)生成績(jī)檔案管理屬于非數(shù)值運(yùn)算處理,而計(jì)算機(jī)處理的信息中絕大部分是非數(shù)值信息,因此本例在實(shí)際應(yīng)用中具有代表性。學(xué)生成績(jī)檔案管理系統(tǒng)從最簡(jiǎn)單的單個(gè)學(xué)生成績(jī)分類開始到用多維數(shù)組存儲(chǔ)學(xué)生基本信息與成績(jī)信息,利用冒泡排序與選擇排序按不同科目、不同成績(jī)進(jìn)行排序,再到更有聚合力的組織方式——結(jié)構(gòu)體、鏈表,最終能夠?qū)⑦@些數(shù)據(jù)永久性存儲(chǔ)到文件中為止,完全貫徹實(shí)用、實(shí)踐和工程應(yīng)用的理念。通過這兩個(gè)實(shí)例的學(xué)習(xí)讓學(xué)生對(duì)C語言程序設(shè)計(jì)有一個(gè)更全面的認(rèn)知,能夠綜合運(yùn)用所學(xué)知識(shí)去解決較為實(shí)際的問題。
內(nèi)容概要
《C語言程序設(shè)計(jì)與應(yīng)用》是以最基本的工程實(shí)踐為基礎(chǔ),以教育部考試中心最新公布的全國計(jì)算機(jī)等級(jí)考試大綱(二級(jí)C語言)為依據(jù)編寫的教材。全書共分9章,包括簡(jiǎn)單C程序設(shè)計(jì)、簡(jiǎn)單判定性問題求解、循環(huán)結(jié)構(gòu)及應(yīng)用、模塊化設(shè)計(jì)與應(yīng)用、相同類型數(shù)據(jù)集合、深入模塊化設(shè)計(jì)與應(yīng)用、構(gòu)造數(shù)據(jù)類型、綜合設(shè)計(jì)與應(yīng)用、數(shù)據(jù)永久性存儲(chǔ)等內(nèi)容?! 禖語言程序設(shè)計(jì)與應(yīng)用》注重教材的可讀性和實(shí)用性,從計(jì)算機(jī)工程角度展開講解、探索和論述。每章開頭都有關(guān)鍵字和難點(diǎn)提示,每章結(jié)尾安排本章小結(jié),并從知識(shí)層面和方法層面對(duì)本章進(jìn)行總結(jié);從日常生活或?qū)嶋H工程中所遇到的問題著手,典型例題一題多解,由淺入深,循序漸進(jìn),強(qiáng)化知識(shí)點(diǎn)、算法、編程方法與技巧;還將程序測(cè)試、程序調(diào)試、軟件的健壯性和代碼風(fēng)格、結(jié)構(gòu)化設(shè)計(jì)與模塊化程序設(shè)計(jì)方法等軟件工程知識(shí)融入其中?! 禖語言程序設(shè)計(jì)與應(yīng)用》可作為高等學(xué)校公共課教材,也可作為全國計(jì)算機(jī)等級(jí)考試參考書及C語言自學(xué)教材。
書籍目錄
第1章 簡(jiǎn)單C程序設(shè)計(jì)1.1 C程序的構(gòu)成1.1.1 簡(jiǎn)單的C程序?qū)嵗?.1.2 閱讀C程序1.1.3 C程序結(jié)構(gòu)1.2 簡(jiǎn)單程序擴(kuò)展1.2.1 計(jì)算器基本功能1.2.2 計(jì)算器解決方案1.2.3 計(jì)算過程實(shí)現(xiàn)及分析1.2.4 深入解讀1.3 Visual C++ 6.0編譯環(huán)境簡(jiǎn)介1.3.1 Visual C++ 6.0的啟動(dòng)1.3.2 源程序錄入1.3.3 編譯、鏈接和運(yùn)行1.3.4 調(diào)試1.3.5 退出編譯環(huán)境1.4 本章小結(jié)練習(xí)與思考 1第2章 簡(jiǎn)單判定性問題求解2.1 判定性問題及判定條件的描述2.1.1 關(guān)系型判定條件2.1.2 邏輯型判定條件2.1.3 按位進(jìn)行的邏輯運(yùn)算2.2 if-else判定性結(jié)構(gòu)2.2.1 if判定結(jié)構(gòu)2.2.2 if語句的嵌套問題2.2.3 條件運(yùn)算符和條件表達(dá)式2.3 switch判定結(jié)構(gòu)2.4 應(yīng)用實(shí)例2.4.1 計(jì)算器2.4.2 學(xué)生成績(jī)管理2.5 本章小結(jié)練習(xí)與思考2第3章 循環(huán)結(jié)構(gòu)及應(yīng)用3.1 概述3.2 for循環(huán)3.2.1 for循環(huán)的一般結(jié)構(gòu)3.2.2 for循環(huán)的深入探討3.3 while循環(huán)3.4 do while循環(huán)3.5 關(guān)于循環(huán)的一些問題3.5.1 循環(huán)的嵌套3.5.2 無限循環(huán)3.5.3 循環(huán)語句的選擇3.6 如何從循環(huán)中跳出3.6.1 break語句3.6.2 continue語句3.6.3 goto語句3.7 應(yīng)用實(shí)例3.7.1 計(jì)算器3.7.2 學(xué)生成績(jī)檔案管理系統(tǒng)3.8 本章小結(jié)練習(xí)與思考3第4章 模塊化設(shè)計(jì)與應(yīng)用4.1 模塊化程序設(shè)計(jì)方法4.1.1 模塊化程序設(shè)計(jì)思想4.1.2 模塊規(guī)劃實(shí)例4.2 函數(shù)4.2.1 函數(shù)的定義4.2.2 函數(shù)的調(diào)用4.3 預(yù)處理4.3.1 文件包含4.3.2 宏定義4.4 應(yīng)用實(shí)例4.5 本章小結(jié)練習(xí)與思考4第5章 相同類型數(shù)據(jù)集合5.1 數(shù)組與數(shù)組元素的概念5.2 相同類型數(shù)據(jù)的一維線性存儲(chǔ)5.2.1 一維數(shù)組的定義5.2.2 一維數(shù)組的初始化5.2.3 一維數(shù)組的引用5.2.4 一維數(shù)組程序舉例5.3 相同類型數(shù)據(jù)的二維及多維存儲(chǔ)5.3.1 二維數(shù)組的定義5.3.2 二維數(shù)組的初始化5.3.3 二維數(shù)組的引用5.3.4 多維數(shù)組的初始化和引用5.3.5 數(shù)組程序舉例5.4 字符類型數(shù)據(jù)集合的存儲(chǔ)5.5 字符串處理函數(shù)5.6 字符串指針變量與字符數(shù)組5.7 應(yīng)用實(shí)例5.8 本章小結(jié)練習(xí)與思考5第6章 深入模塊化設(shè)計(jì)與應(yīng)用6.1 算法基本概念6.1.1 概念6.1.2 引例6.2 簡(jiǎn)單的排序算法6.2.1 冒泡排序算法6.2.2 選擇排序算法6.3 嵌套與遞歸設(shè)計(jì)及應(yīng)用6.3.1 函數(shù)的嵌套調(diào)用6.3.2 函數(shù)的遞歸調(diào)用6.4 模塊間的批量數(shù)據(jù)傳遞6.4.1 指針作為函數(shù)參數(shù)6.4.2 一維數(shù)組作為函數(shù)參數(shù)6.4.3 二維數(shù)組作為函數(shù)參數(shù)6.5 模塊化設(shè)計(jì)中程序代碼的訪問6.6 應(yīng)用實(shí)例6.6.1 計(jì)算器6.6.2 學(xué)生成績(jī)管理6.7 本章小結(jié)練習(xí)與思考6第7章 構(gòu)造數(shù)據(jù)類型7.1 結(jié)構(gòu)體7.1.1 結(jié)構(gòu)體類型的定義7.1.2 結(jié)構(gòu)體變量7.1.3 結(jié)構(gòu)體數(shù)組7.1.4 結(jié)構(gòu)體指針7.1.5 結(jié)構(gòu)體與函數(shù)7.1.6 位段7.2 共用體7.2.1 共用體類型的定義7.2.2 共用體變量的定義7.2.3 共用體變量的賦值和引用7.3 枚舉7.4 自定義類型7.5 應(yīng)用實(shí)例7.6 本章小結(jié)練習(xí)與思考7第8章 綜合設(shè)計(jì)與應(yīng)用8.1 變量的作用域與存儲(chǔ)類別8.1.1 變量的作用域8.1.2 變量的存儲(chǔ)類別8.2 指針與數(shù)組8.2.1 一維數(shù)組與指針8.2.2 多維數(shù)組與指針8.2.3 指針數(shù)組8.3 函數(shù)main()中的參數(shù)8.4 指針型函數(shù)8.5 動(dòng)態(tài)存儲(chǔ)空間分配8.6 鏈表8.6.1 鏈表的概念8.6.2 鏈表的基本操作8.6.3 帶頭結(jié)點(diǎn)鏈表簡(jiǎn)介8.7 本章小結(jié)練習(xí)與思考8第9章 數(shù)據(jù)永久性存儲(chǔ)9.1 數(shù)據(jù)的永久性存儲(chǔ)9.2 文件組織方式9.3 文件操作9.3.1 標(biāo)準(zhǔn)輸入/輸出頭文件stdio.h9.3.2 文件打開與關(guān)閉9.3.3 文件讀/寫函數(shù)9.3.4 文件定位函數(shù)9.4 應(yīng)用實(shí)例9.5 本章小結(jié)練習(xí)與思考9附錄 C語言參考附1 C語言發(fā)展史及版本歷程附1.1 C語言的發(fā)展史附1.2 C語言的版本歷程附2 C語言關(guān)鍵字附3 ASCII表附4 Visual C++各數(shù)據(jù)類型所占字節(jié)數(shù)和取值范圍附5 C運(yùn)算符及優(yōu)先級(jí)附6 格式化輸入/輸出控制字符列表附6.1 函數(shù)printf()附6.2 函數(shù)scanf()附7 ANSI C常用標(biāo)準(zhǔn)庫函數(shù)附7.1 數(shù)學(xué)函數(shù)附7.2 字符處理函數(shù)附7.3 字符串處理函數(shù)附7.4 緩沖文件系統(tǒng)的輸入/輸出函數(shù)附7.5 動(dòng)態(tài)內(nèi)存分配函數(shù)附7.6 非緩沖文件系統(tǒng)的輸入/輸出函數(shù)參考文獻(xiàn)
章節(jié)摘錄
插圖:解決問題的關(guān)鍵是把問題分析清楚,然后給出解決的方法和步驟,接著按照設(shè)計(jì)的方法用程序設(shè)計(jì)語言實(shí)現(xiàn),最后通過驗(yàn)證,證明給出的方法與實(shí)現(xiàn)是否滿足了最初的問題要求。下面結(jié)合前面簡(jiǎn)易計(jì)算器程序的實(shí)現(xiàn)過程來進(jìn)行簡(jiǎn)要介紹。第一步,分析問題。分析的目的就是搞清楚問題本身要求解決什么,使用哪些數(shù)據(jù),獲得哪些結(jié)果,只有最終的結(jié)果符合問題的需要,程序才是滿足要求的,否則,再多的努力也是徒勞。在簡(jiǎn)易計(jì)算器的程序中,要求實(shí)現(xiàn)的功能是:使用整型的操作數(shù),進(jìn)行+、.、*、/和%運(yùn)算,并將運(yùn)算結(jié)果顯示出來。進(jìn)行算術(shù)計(jì)算并得到正確結(jié)果,這就是問題的本質(zhì)。第二步,給出解決問題的方法和步驟。這是一個(gè)關(guān)鍵的階段,它要給出解決問題的根本性方法和具體的方案。簡(jiǎn)單地說就是如何將一個(gè)整體性的問題進(jìn)行抽象和分析,分解成若干子問題,各個(gè)擊破。在這個(gè)階段對(duì)所要解決的問題進(jìn)行逐步分解,按照不同的邏輯關(guān)系,把一個(gè)大的問題分解成幾個(gè)小型的、相對(duì)獨(dú)立的個(gè)體,然后對(duì)每個(gè)相對(duì)獨(dú)立的個(gè)體再次進(jìn)行分析,最后把它們一一實(shí)現(xiàn),這樣整個(gè)軟件也就得以實(shí)現(xiàn),從而滿足需求,即前面所提的“自頂向下,逐步求精”的方式。在簡(jiǎn)易計(jì)算器程序設(shè)計(jì)過程中,首先要確定操作數(shù)的表示:選擇數(shù)據(jù)類型,引入變量,并進(jìn)行初始化;然后根據(jù)算術(shù)運(yùn)算符進(jìn)行計(jì)算;最后輸出結(jié)果。設(shè)計(jì)時(shí),將問題的處理過程用流程圖的方式表示,明確地讓編程人員知道,每個(gè)部分該如何去做。第三步,代碼編寫。它是一個(gè)把停留在紙面上的軟件,轉(zhuǎn)化為真正可以運(yùn)行起來的程序?qū)嶓w。在這個(gè)階段,編程人員按照分析階段給定的實(shí)現(xiàn)要求,用計(jì)算機(jī)語言來完成具體的需求,即程序的功能。同時(shí),良好的編程風(fēng)格,對(duì)完成一個(gè)軟件也是必要的,如代碼格式安排合理、有適當(dāng)?shù)淖⑨尩?,這樣便于程序的閱讀、理解以及后期的維護(hù)。在簡(jiǎn)易計(jì)算器的實(shí)現(xiàn)過程中,根據(jù)設(shè)計(jì)方案,聲明變量,選用合適的運(yùn)算符完成對(duì)應(yīng)的計(jì)算,最后使用primfo函數(shù)把結(jié)果呈現(xiàn)給用戶。第四步,正確性驗(yàn)證。這一步就是對(duì)編寫好的程序進(jìn)行測(cè)試,從而驗(yàn)證完成的程序是否正確地完成了最初的需求,測(cè)試可以幫助我們發(fā)現(xiàn)程序中的錯(cuò)誤,完善軟件功能。測(cè)試要輸入測(cè)試數(shù)據(jù),也就是我們精心設(shè)計(jì)的一些數(shù)據(jù),然后看程序執(zhí)行完畢后得到的結(jié)果是否滿足我們的正確需要。當(dāng)然,測(cè)試不僅僅要驗(yàn)證實(shí)現(xiàn)的正確性,還包括可靠性、健壯性、完整性等。
編輯推薦
《C語言程序設(shè)計(jì)與應(yīng)用》特點(diǎn):全面的基礎(chǔ)圈點(diǎn),輕松構(gòu)筑程序框架,精要的解析方法,平滑實(shí)現(xiàn)基礎(chǔ)轉(zhuǎn)換,生動(dòng)的案例分析,提高探索創(chuàng)新技能。
圖書封面
評(píng)論、評(píng)分、閱讀與下載
C語言程序設(shè)計(jì)與應(yīng)用 PDF格式下載