出版時(shí)間:2008-9 出版社:清華大學(xué)出版社 作者:梁立,解敏 主編 頁數(shù):242
前言
《C程序設(shè)計(jì)實(shí)例教程》編寫的目的是期望幫助程序設(shè)計(jì)初學(xué)者快速入門,并迅速提高。多年來,編者一直思考、研究并付諸教學(xué)實(shí)踐的問題就是幫助學(xué)生解決程序設(shè)計(jì)快速入門的難題;最終,在二十余年程序設(shè)計(jì)教學(xué)經(jīng)驗(yàn)、軟件開發(fā)心得的基礎(chǔ)上,花費(fèi)了近五年的時(shí)間寫成了這本教材。學(xué)習(xí)程序設(shè)計(jì)的基本條件是具有較強(qiáng)的邏輯思維能力和一定的數(shù)學(xué)基礎(chǔ)。程序設(shè)計(jì)是學(xué)習(xí)計(jì)算機(jī)應(yīng)用與開發(fā)的基礎(chǔ),因此,程序設(shè)計(jì)課程的重要地位不言而喻。C語言是學(xué)習(xí)系統(tǒng)開發(fā)、應(yīng)用開發(fā)的最基礎(chǔ)語言,其靈活而簡潔的表達(dá)方式已被多種程序設(shè)計(jì)語言所借用(如C++、C#、Java、PHP、FPGA開發(fā)語言等),現(xiàn)在所有計(jì)算機(jī)及相關(guān)專業(yè)都將C語言作為基礎(chǔ)課程,學(xué)好了C語言再學(xué)其他程序設(shè)計(jì)語言就駕輕就熟了。程序設(shè)計(jì)用來解決實(shí)際問題,是軟件開發(fā)的基礎(chǔ),而程序設(shè)計(jì)語言就是一份產(chǎn)品的使用說明書??墒呛芏嘟滩膶φZ法糾纏不休,使讀者陷入了語法規(guī)則的泥潭中,卻難以解決根本問題。經(jīng)驗(yàn)表明,初學(xué)者通常會(huì)遇到以下幾個(gè)困難問題: 不清楚計(jì)算機(jī)是如何工作的,不知如何設(shè)計(jì)解決問題的步驟;不清楚C語言到底能做什么事,感覺無從下手;不清楚應(yīng)該先學(xué)什么后學(xué)什么,即使記住了語法規(guī)則也不知用在何處;解決問題的邏輯關(guān)系混亂。經(jīng)典的教科書都強(qiáng)調(diào)解決問題的方法和步驟,即算法,這很重要。倘若初學(xué)者還不知道計(jì)算機(jī)如何工作,又何談算法呢?我們認(rèn)為,對計(jì)算機(jī)語言的學(xué)習(xí)是沒有先后順序的,從解決小問題入手,通過模仿再熟悉語法規(guī)則,在此基礎(chǔ)上也可閱讀語法規(guī)則以解決更難的問題?!禖程序設(shè)計(jì)實(shí)例教程》把語法規(guī)則放到附錄中就是這個(gè)道理,建議初學(xué)者經(jīng)常查閱。本教材有以下幾點(diǎn)特色?! ⊥ㄟ^固定模式引導(dǎo)入門:用“輸入?處理?輸出”模式強(qiáng)化入門訓(xùn)練?! ∈褂萌蝿?wù)教學(xué)驅(qū)動(dòng)語法學(xué)習(xí):用實(shí)例講解語法,同一個(gè)問題用不同的知識(shí)點(diǎn)分別實(shí)現(xiàn)?! ±煤线m的分析圖幫助理解算法:重點(diǎn)應(yīng)用PAD框圖?! 》稚㈦y點(diǎn)、由淺入深、實(shí)戰(zhàn)提高:把函數(shù)、指針分散講解,再系統(tǒng)歸納總結(jié)。 綜合訓(xùn)練,提高設(shè)計(jì)能力:專門用一章講授綜合應(yīng)用,實(shí)現(xiàn)軟件工程的初步訓(xùn)練。本教材通過大量實(shí)例,在解決實(shí)際問題的過程中覆蓋主要的語法知識(shí)點(diǎn)。每個(gè)例子由5部分構(gòu)成:問題、分析、程序、運(yùn)行、說明。其中“分析”部分包括對解決問題的方法、原理以及用C語言如何實(shí)現(xiàn)的具體分析;“說明”部分講解語法知識(shí)、注意事項(xiàng)、書寫習(xí)慣、程序改進(jìn)等。通過這種方式,教材將從以下9個(gè)方面解決程序設(shè)計(jì)入門和提高的問題?! 。?)C程序的基本結(jié)構(gòu)。編寫程序時(shí),初學(xué)者都應(yīng)該先寫出基本結(jié)構(gòu),既可以解決初學(xué)者對程序設(shè)計(jì)的畏難情緒,又使初學(xué)者能理解計(jì)算機(jī)工作的流程?! 。?)熟練默寫并理解幾個(gè)小程序。比如求兩個(gè)數(shù)的最大值、交換兩個(gè)變量的值,這樣的小問題理解上并不難,但已經(jīng)涉及到基本程序設(shè)計(jì)的語法點(diǎn)?! 。?)從固定的思維模式入手。輸入、處理、輸出是程序的3個(gè)部分。對一個(gè)問題可以分解為輸入什么、如何實(shí)現(xiàn);輸出什么,如何實(shí)現(xiàn);在輸出之前必須為輸出做哪些準(zhǔn)備,即處理?!拜斎?處理?輸出”的順序不能顛倒。輸入是為處理做準(zhǔn)備、處理是為輸出做準(zhǔn)備的,沒有上一步的準(zhǔn)備就無法轉(zhuǎn)向下一步繼續(xù)執(zhí)行。 ?。?)學(xué)習(xí)控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。學(xué)習(xí)控制結(jié)構(gòu),即順序、選擇和循環(huán)結(jié)構(gòu);學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),則主要從數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)在內(nèi)存中的變化等方面展開,初步掌握結(jié)構(gòu)體、共用體及鏈表的使用,從而提高程序設(shè)計(jì)的能力。前言C程序設(shè)計(jì)實(shí)例教程 ?。?)多記多理解經(jīng)典算法,著重講解解決問題的方法?! 。?)學(xué)習(xí)過程契合認(rèn)識(shí)過程,先背,再模仿,最后自主設(shè)計(jì)?! 。?)從實(shí)際問題入手。將每一個(gè)問題解決的過程中涉及的新語法知識(shí)點(diǎn)或新方法在程序后面給予說明,在解決實(shí)際問題的同時(shí),講解語法、熟悉語法、靈活運(yùn)用語法?! 。?)對初學(xué)者強(qiáng)調(diào)書寫習(xí)慣。提倡利用PAD圖幫助學(xué)生理解程序的層次關(guān)系,培養(yǎng)書寫習(xí)慣,掌握層次(鋸齒型)書寫以及適當(dāng)添加注釋以增加程序的可讀性等?! 。?)通過課程綜合設(shè)計(jì),提供軟件工程方法和步驟的初步訓(xùn)練,以及綜合應(yīng)用C語言設(shè)計(jì)較大的應(yīng)用程序??傊?,《C程序設(shè)計(jì)實(shí)例教程》的教學(xué)思想是:輕語法、重應(yīng)用、摒棄“想當(dāng)然”。所謂想當(dāng)然,一是教師想當(dāng)然,例如,程序是一行一行地串行執(zhí)行,而有的學(xué)生恰好有一點(diǎn)不成熟的“多CPU”和“CPU時(shí)間片”的概念,就誤認(rèn)為程序在并行執(zhí)行,尤其是在函數(shù)調(diào)用的時(shí)候,想當(dāng)然地認(rèn)為主調(diào)函數(shù)和被調(diào)函數(shù)同時(shí)都在執(zhí)行,這是錯(cuò)誤的,而教師想當(dāng)然認(rèn)為學(xué)生應(yīng)該明白;二是學(xué)生想當(dāng)然,例如,加、減、乘、除的運(yùn)算符與數(shù)學(xué)上的符號(hào)幾乎一樣,于是想當(dāng)然地認(rèn)為“相等”的符號(hào)也應(yīng)該一樣,殊不知這個(gè)“=”被用作賦值了,而C語言又多了一個(gè)賦值表達(dá)式的概念,于是就把“==”錯(cuò)誤地寫成“=”了。程序設(shè)計(jì)是實(shí)踐性很強(qiáng)的課程,建議一般學(xué)校至少用72學(xué)時(shí)的課堂講授,并另外安排盡量多的上機(jī)課時(shí),特別是課程項(xiàng)目訓(xùn)練和工程實(shí)踐。編者也建議把課時(shí)分散到兩個(gè)學(xué)期使用,讓學(xué)生有更多的時(shí)間理解、適應(yīng)程序設(shè)計(jì)的思維方式,可以閱讀更多的程序、解決更多的基本問題以提高程序設(shè)計(jì)的能力。本教材以MicrosoftVisualC++6.0為開發(fā)平臺(tái)講解程序,在與標(biāo)準(zhǔn)C有差異之處都有說明,因此,程序可以在任何上機(jī)環(huán)境中調(diào)試通過。第1-3章,由梁立編寫;第4章和第5章由肖斕楠、徐天偉共同編寫;第6章和第7章由楊德強(qiáng)、肖飛共同編寫;第8章、第9章、附錄及全書的算法框圖由解敏完成。全書由梁立、解敏統(tǒng)籌。感謝許多研究生及本科生對教材的編寫提出的寶貴意見;感謝高麗金為書稿的整理付出的辛勤勞動(dòng);特別感謝胡國梁教授的鼓勵(lì)與關(guān)懷。感謝清華大學(xué)出版社對教材編寫工作的建議及全程支持。感謝全國高等師范學(xué)校計(jì)算機(jī)教育研究會(huì)的專家給予的建議。感謝《C程序設(shè)計(jì)實(shí)例教程》所引用參考文獻(xiàn)的作者和出版社。由于水平所限,縱使編者想努力做到完美,《C程序設(shè)計(jì)實(shí)例教程》的不足之處也在所難免,敬請讀者不吝賜教。
內(nèi)容概要
本書主要完成兩個(gè)任務(wù):一是快速入門,二是迅速提高。全書以“輸入-處理-輸出”的固定模式進(jìn)行程序設(shè)計(jì)的入門訓(xùn)練;從小問題人手,由淺入深,并注重邏輯性、實(shí)用性、趣昧性和可讀性;從第3章開始逐步引入有應(yīng)用背景的綜合應(yīng)用例題和習(xí)題;第8章以提高程序設(shè)計(jì)能力為目的,進(jìn)行課程綜合訓(xùn)練。 本書以大量的實(shí)例講解C語言的語法規(guī)則,采用案例式教學(xué),以應(yīng)用帶動(dòng)語言學(xué)習(xí),覆蓋了ANSI C的全部知識(shí),并以軟件工程的基本方法實(shí)現(xiàn)軟件設(shè)計(jì)與開發(fā)的初步訓(xùn)練。 本書是程序設(shè)計(jì)的入門教材,適用于計(jì)算機(jī)及相關(guān)專業(yè)學(xué)生,工程開發(fā)人員,也可作為等級(jí)考試參考書及自學(xué)教材使用。
書籍目錄
第1章 概述 本章導(dǎo)讀 1.1 計(jì)算機(jī)完成任務(wù)——程序化 1.2 解決問題的方法和步驟——算法 1.3 用計(jì)算機(jī)語言表達(dá)算法——程序 1.4 C程序設(shè)計(jì)的基本思路 1.5 調(diào)試程序的基本操作步驟 本章小結(jié) 習(xí)題1第2章 用C語言表達(dá)程序 本章導(dǎo)讀 2.1 C程序的結(jié)構(gòu) 2.1.1 簡單結(jié)構(gòu) 2.1.2 簡單函數(shù)構(gòu)造與調(diào)用 2.2 常量、變量與賦值 2.2.1 預(yù)處理命令 2.2.2 變量與內(nèi)存 2.3 表達(dá)式 2.3.1 運(yùn)算符 2.3.2 使用庫函數(shù) 2.3.3 賦值表達(dá)式與變量的自增自減 2.4 基本輸入輸出 2.4.1 格式輸入輸出 2.4.2 字符輸入輸出 2.5 基本數(shù)據(jù)類型 2.5.1 數(shù)據(jù)在內(nèi)存中的存儲(chǔ) 2.5.2 變量的地址及用指針存取數(shù)據(jù) 2.5.3 表達(dá)式混合運(yùn)算的數(shù)據(jù)類型轉(zhuǎn)換 本章小結(jié) 習(xí)題2第3章 控制結(jié)構(gòu) 本章導(dǎo)讀 3.1 分支結(jié)構(gòu) 3.1.1 條件語句 3.1.2 多分支結(jié)構(gòu) 3.2 循環(huán)結(jié)構(gòu) 3.2.1 while循環(huán) 3.2.2 dowhile循環(huán) 3.2.3 for循環(huán) 3.3 控制結(jié)構(gòu)綜合應(yīng)用 本章小結(jié) 習(xí)題3第4章 數(shù)據(jù)組織 本章導(dǎo)讀 4.1 數(shù)組 4.1.1 一維數(shù)組 4.1.2 二維數(shù)組 4.2 字符串 4.3 結(jié)構(gòu)體與共用體 4.3.1 結(jié)構(gòu)體 4.3.2 結(jié)構(gòu)體與指針 4.3.3 共用體 本章小結(jié) 習(xí)題4第5章 文件 本章導(dǎo)讀 5.1 文本文件 5.2 二進(jìn)制文件 本章小結(jié) 習(xí)題5第6章 函數(shù)與指針 本章導(dǎo)讀 6.1 函數(shù)的定義和調(diào)用 6.1.1 函數(shù)的定義、聲明與調(diào)用 6.1.2 函數(shù)的嵌套調(diào)用與遞歸 6.2 函數(shù)的參數(shù)傳遞 6.2.1 變量的作用域 6.2.2 值傳遞與地址傳遞 6.3 指針作為函數(shù)參數(shù) 6.3.1 指針作為參數(shù) 6.3.2 函數(shù)作為參數(shù) 6.3.3 主函數(shù)的參數(shù) 6.4 函數(shù)的綜合應(yīng)用 本章小結(jié) 習(xí)題6第7章 動(dòng)態(tài)組織數(shù)據(jù) 本章導(dǎo)讀 7.1 建立鏈表的過程 7.2 鏈表結(jié)點(diǎn)的查找一 7.3 鏈表結(jié)點(diǎn)的插入 7.4 鏈表結(jié)點(diǎn)的刪除 7.5 循環(huán)鏈表 本章小結(jié) 習(xí)題7第8章 綜合應(yīng)用 本章導(dǎo)讀 8.1 窮舉法:打開問題的缺口 8.1.1 窮舉法的基本思想 8.1.2 減少窮舉量,提高窮舉效率 8.1.3 局部窮舉 8.2 回溯法:系統(tǒng)地搜索問題的解 8.3 綜合程序設(shè)計(jì):簡單通訊錄管理 8.3.1 需求分析 8.3.2 總體設(shè)計(jì) 8.3.3 詳細(xì)設(shè)計(jì) 8.3.4 編碼實(shí)現(xiàn) 8.3.5 系統(tǒng)測試 本章小結(jié) 習(xí)題8第9章 課程綜合設(shè)計(jì)參考題目附錄A Microsoft Visual C++6.0上機(jī)操作與調(diào)試附錄B 十進(jìn)制表示的ASCII碼表附錄C C語言語法參考附錄D 常用庫函數(shù)附錄E 程序的圖形描述參考文獻(xiàn)
章節(jié)摘錄
第1章 概述 本章導(dǎo)讀 如果一個(gè)人做事沒有條理,相信他也沒能力安排別人順利完成任務(wù),更不用說安排計(jì)算去完成任務(wù)。安排計(jì)算機(jī)完成任務(wù)就是程序設(shè)計(jì)?! ”菊聫摹皺C(jī)械”地完成任務(wù)開始,認(rèn)識(shí)計(jì)算機(jī)完成任務(wù)的程序化;解決問題的方法和步驟(即算法)是程序設(shè)計(jì)的核心內(nèi)容;本書以C語言為開發(fā)平臺(tái),用C語言實(shí)現(xiàn)算法來解決實(shí)際問題,從而達(dá)到程序設(shè)計(jì)基礎(chǔ)訓(xùn)練的目的。
編輯推薦
《21世紀(jì)普通高校計(jì)算機(jī)公共課程規(guī)劃教材:C程序設(shè)計(jì)實(shí)例教程》是程序設(shè)計(jì)的入門教材,適用于計(jì)算機(jī)及相關(guān)專業(yè)學(xué)生,工程開發(fā)人員,也可作為等級(jí)考試參考書及自學(xué)教材使用。
圖書封面
評論、評分、閱讀與下載
C程序設(shè)計(jì)實(shí)例教程 PDF格式下載