C語言程序設(shè)計與應(yīng)用(0105)
定 價:39.8 元
- 作者:張小東 鄭宏珍 主編
- 出版時間:2009/4/1
- ISBN:9787115193193
- 出 版 社:人民郵電出版社
- 中圖法分類:H31
- 頁碼:324
- 紙張:膠版紙
- 版次:1
- 開本:16K
《C語言程序設(shè)計與應(yīng)用》是以最基本的工程實踐為基礎(chǔ),以教育部考試中心最新公布的全國計算機(jī)等級考試大綱(二級C語言)為依據(jù)編寫的教材。全書共分9章,包括簡單C程序設(shè)計、簡單判定性問題求解、循環(huán)結(jié)構(gòu)及應(yīng)用、模塊化設(shè)計與應(yīng)用、相同類型數(shù)據(jù)集合、深入模塊化設(shè)計與應(yīng)用、構(gòu)造數(shù)據(jù)類型、綜合設(shè)計與應(yīng)用、數(shù)據(jù)永久性存儲等內(nèi)容。
《C語言程序設(shè)計與應(yīng)用》注重教材的可讀性和實用性,從計算機(jī)工程角度展開講解、探索和論述。每章開頭都有關(guān)鍵字和難點(diǎn)提示,每章結(jié)尾安排本章小結(jié),并從知識層面和方法層面對本章進(jìn)行總結(jié);從日常生活或?qū)嶋H工程中所遇到的問題著手,典型例題一題多解,由淺入深,循序漸進(jìn),強(qiáng)化知識點(diǎn)、算法、編程方法與技巧;還將程序測試、程序調(diào)試、軟件的健壯性和代碼風(fēng)格、結(jié)構(gòu)化設(shè)計與模塊化程序設(shè)計方法等軟件工程知識融入其中。
《C語言程序設(shè)計與應(yīng)用》可作為高等學(xué)校公共課教材,也可作為全國計算機(jī)等級考試參考書及C語言自學(xué)教材。
全面的基礎(chǔ)圈點(diǎn),輕松構(gòu)筑程序框架,精要的解析方法,平滑實現(xiàn)基礎(chǔ)轉(zhuǎn)換,生動的案例分析,提高探索創(chuàng)新技能。
目前市面上有關(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)行講解。表面上看,這樣對抽象知識學(xué)習(xí)過程,并不適合于C語言的教學(xué),學(xué)生對知識點(diǎn)的理解不充分,不全面,甚至是不懂,只是靠著死記硬背而獲得一個不錯的分?jǐn)?shù),學(xué)完之后不會使用,就連簡單的命題也可能解決不了!不可否認(rèn),這跟我國的傳統(tǒng)應(yīng)試教育模式有很大的關(guān)系,但就事論事地講,跟我們的教材編寫也有一定的關(guān)系。
本著學(xué)以致用的原則,本書從第1章開始就教學(xué)生學(xué)習(xí)寫簡單應(yīng)用程序,每一個知識點(diǎn)都糅進(jìn)應(yīng)用當(dāng)中去,不做單純的知識點(diǎn)堆積,不但把前幾章那些“簡單的”知識點(diǎn)分散到各個章節(jié),避免機(jī)械式的記憶,而且把難點(diǎn)也分散了。全書以應(yīng)用為主線,用到了才講:講,就是為了能更好地用!為了培養(yǎng)學(xué)生規(guī)范地使用語言,先從問題的規(guī)范描述開始,然后分析問題,建立模型,實現(xiàn)求解,最后測試通過。從嚴(yán)格的科學(xué)研究與工程應(yīng)用的角度出發(fā),進(jìn)行c語言的學(xué)習(xí)與研究,并將這種思想滲透到每個實例中!明確的學(xué)習(xí)目的與目標(biāo)也是學(xué)習(xí)的主要動力,本書要幫助學(xué)生建立的學(xué)習(xí)目的就是能夠?qū)崿F(xiàn)算法設(shè)計解決相關(guān)命題,目標(biāo)是提高自己的學(xué)習(xí)能力與動手能力。
全書在提供豐富而有趣的經(jīng)典實例時,還精心設(shè)計了兩個相對完整的應(yīng)用:計算器與學(xué)生成績檔案管理。計算器屬于算法
第1章 簡單C程序設(shè)計
1.1 C程序的構(gòu)成
1.1.1 簡單的C程序?qū)嵗?br />
1.1.2 閱讀C程序
1.1.3 C程序結(jié)構(gòu)
1.2 簡單程序擴(kuò)展
1.2.1 計算器基本功能
1.2.2 計算器解決方案
1.2.3 計算過程實現(xiàn)及分析
1.2.4 深入解讀
1.3 Visual C++ 6.0編譯環(huán)境簡介
1.3.1 Visual C++ 6.0的啟動
1.3.2 源程序錄入
1.3.3 編譯、鏈接和運(yùn)行
1.3.4 調(diào)試
1.3.5 退出編譯環(huán)境
1.4 本章小結(jié)
練習(xí)與思考 1
第2章 簡單判定性問題求解
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)用實例
2.4.1 計算器
2.4.2 學(xué)生成績管理
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)用實例
3.7.1 計算器
3.7.2 學(xué)生成績檔案管理系統(tǒng)
3.8 本章小結(jié)
練習(xí)與思考3
第4章 模塊化設(shè)計與應(yīng)用
4.1 模塊化程序設(shè)計方法
4.1.1 模塊化程序設(shè)計思想
4.1.2 模塊規(guī)劃實例
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)用實例
4.5 本章小結(jié)
練習(xí)與思考4
第5章 相同類型數(shù)據(jù)集合
5.1 數(shù)組與數(shù)組元素的概念
5.2 相同類型數(shù)據(jù)的一維線性存儲
5.2.1 一維數(shù)組的定義
5.2.2 一維數(shù)組的初始化
5.2.3 一維數(shù)組的引用
5.2.4 一維數(shù)組程序舉例
5.3 相同類型數(shù)據(jù)的二維及多維存儲
5.3.1 二維數(shù)組的定義
5.3.2 二維數(shù)組的初始化
5.3.3 二維數(shù)組的引用
5.3.4 多維數(shù)組的初始化和引用
5.3.5 數(shù)組程序舉例
5.4 字符類型數(shù)據(jù)集合的存儲
5.5 字符串處理函數(shù)
5.6 字符串指針變量與字符數(shù)組
5.7 應(yīng)用實例
5.8 本章小結(jié)
練習(xí)與思考5
第6章 深入模塊化設(shè)計與應(yīng)用
6.1 算法基本概念
6.1.1 概念
6.1.2 引例
6.2 簡單的排序算法
6.2.1 冒泡排序算法
6.2.2 選擇排序算法
6.3 嵌套與遞歸設(shè)計及應(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è)計中程序代碼的訪問
6.6 應(yīng)用實例
6.6.1 計算器
6.6.2 學(xué)生成績管理
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)用實例
7.6 本章小結(jié)
練習(xí)與思考7
第8章 綜合設(shè)計與應(yīng)用
8.1 變量的作用域與存儲類別
8.1.1 變量的作用域
8.1.2 變量的存儲類別
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 動態(tài)存儲空間分配
8.6 鏈表
8.6.1 鏈表的概念
8.6.2 鏈表的基本操作
8.6.3 帶頭結(jié)點(diǎn)鏈表簡介
8.7 本章小結(jié)
練習(xí)與思考8
第9章 數(shù)據(jù)永久性存儲
9.1 數(shù)據(jù)的永久性存儲
9.2 文件組織方式
9.3 文件操作
9.3.1 標(biāo)準(zhǔn)輸入/輸出頭文件stdio.h
9.3.2 文件打開與關(guān)閉
9.3.3 文件讀/寫函數(shù)
9.3.4 文件定位函數(shù)
9.4 應(yīng)用實例
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)先級
附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 動態(tài)內(nèi)存分配函數(shù)
附7.6 非緩沖文件系統(tǒng)的輸入/輸出函數(shù)
參考文獻(xiàn)
收起全部↑
解決問題的關(guān)鍵是把問題分析清楚,然后給出解決的方法和步驟,接著按照設(shè)計的方法用程序設(shè)計語言實現(xiàn),最后通過驗證,證明給出的方法與實現(xiàn)是否滿足了最初的問題要求。下面結(jié)合前面簡易計算器程序的實現(xiàn)過程來進(jìn)行簡要介紹。
第一步,分析問題。分析的目的就是搞清楚問題本身要求解決什么,使用哪些數(shù)據(jù),獲得哪些結(jié)果,只有最終的結(jié)果符合問題的需要,程序才是滿足要求的,否則,再多的努力也是徒勞。在簡易計算器的程序中,要求實現(xiàn)的功能是:使用整型的操作數(shù),進(jìn)行+、.、*、/和%運(yùn)算,并將運(yùn)算結(jié)果顯示出來。進(jìn)行算術(shù)計算并得到正確結(jié)果,這就是問題的本質(zhì)。
第二步,給出解決問題的方法和步驟。這是一個關(guān)鍵的階段,它要給出解決問題的根本性方法和具體的方案。簡單地說就是如何將一個整體性的問題進(jìn)行抽象和分析,分解成若干子問題,各個擊破。在這個階段對所要解決的問題進(jìn)行逐步分解,按照不同的邏輯關(guān)系,把一個大的問題分解成幾個小型的、相對獨(dú)立的個體,然后對每個相對獨(dú)立的個體再次進(jìn)行分析,最后把它們一一實現(xiàn),這樣整個軟件也就得以實現(xiàn),從而滿足需求,即前面所提的“自頂向下,逐步求精”的方式。
在簡易計算器程序設(shè)計過程中,首先要確定操作數(shù)的表示:選擇數(shù)據(jù)類型,引入變量,并進(jìn)行初始化;然后根據(jù)算術(shù)運(yùn)算符進(jìn)行計算;最后輸出結(jié)果。設(shè)計時,將問題的處理過程用流程圖的方式表示,明確地讓編程人員知道,每個部分該如何去做。
第三步,代碼編寫。它是一個把停留在紙面上的軟件,轉(zhuǎn)化為真正可以運(yùn)行起來的程序?qū)嶓w。在這個階段,編程人員按照分析階段給定的實現(xiàn)要求,用計算機(jī)語言來完成具體的需求,即程序的功能。同時,良好的編程風(fēng)格,對完成一個軟件也是必要的,如代碼格式安排合理、有適當(dāng)?shù)淖⑨尩,這樣便于程序的閱讀、理解以及后期的維護(hù)。在簡易計算器的實現(xiàn)過程中,根據(jù)設(shè)計方案,聲明變量,選用合適的運(yùn)算符完成對應(yīng)的計算,最后使用primfo函數(shù)把結(jié)果呈現(xiàn)給用戶。
第四步,正確性驗證。這一步就是對編寫好的程序進(jìn)行測試,從而驗證完成的程序是否正確地完成了最初的需求,測試可以幫助我們發(fā)現(xiàn)程序中的錯誤,完善軟件功能。測試要輸入測試數(shù)據(jù),也就是我們精心設(shè)計的一些數(shù)據(jù),然后看程序執(zhí)行完畢后得到的結(jié)果是否滿足我們的正確需要。當(dāng)然,測試不僅僅要驗證實現(xiàn)的正確性,還包括可靠性、健壯性、完整性等。