出版時(shí)間:2012-7 出版社:機(jī)械工業(yè)出版社 作者:劉高軍,何麗 編著 頁數(shù):226
前言
隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)已應(yīng)用到社會(huì)的各個(gè)領(lǐng)域,對(duì)我們生活、生產(chǎn)、科技等各個(gè)方面都產(chǎn)生了很大影響。計(jì)算機(jī)教育也已成為大學(xué)教育的一個(gè)重要組成部分,C語言程序設(shè)計(jì)作為計(jì)算機(jī)專業(yè)的基礎(chǔ)課程,是學(xué)生必須要掌握的,也是進(jìn)行思維方法、問題抽象和解決等方面訓(xùn)練的有效工具。在C語言程序設(shè)計(jì)的教學(xué)中,基本上是以語句、語法和程序基本結(jié)構(gòu)為重點(diǎn),以語言自身體系內(nèi)容開展教學(xué),對(duì)于如何從問題本身入手進(jìn)行分析、抽象和解決等方面涉及不深,雖然語言中的各種語法現(xiàn)象和程序結(jié)構(gòu)都已基本掌握,但在實(shí)際應(yīng)用中,特別是解決一些有一定難度的問題時(shí),還是感到無從入手。目前,各類學(xué)科競賽,特別是ACM國際大學(xué)生程序設(shè)計(jì)大賽在學(xué)生中有很大影響力,學(xué)生們?cè)趯W(xué)習(xí)了程序設(shè)計(jì)課程之后,都有參加各類競賽的愿望,希望自己能在競賽中有所表現(xiàn),但僅從程序設(shè)計(jì)課程中掌握的知識(shí)來看,是明顯不夠的。怎樣才能快速提高學(xué)生的語言應(yīng)用能力,提高對(duì)實(shí)際問題的分析和抽象能力,使學(xué)生們?cè)谡莆樟嘶菊Z言后,能夠進(jìn)一步深入了解和掌握語言特性,并能在各種程序設(shè)計(jì)競賽中,展示自己在問題抽象和程序設(shè)計(jì)方面的能力呢?我們通過多年的教學(xué)實(shí)踐,對(duì)學(xué)生們進(jìn)一步學(xué)習(xí)的需求和愿望有較清楚的了解。學(xué)生們想通過進(jìn)一步的學(xué)習(xí)和實(shí)踐,更加深刻地了解語言本身的細(xì)節(jié)特點(diǎn),循序漸進(jìn)地學(xué)習(xí)一些基礎(chǔ)算法知識(shí),以達(dá)到運(yùn)用基礎(chǔ)算法解決一些實(shí)際問題的目的。 本書就是在這種背景下編寫的,主要對(duì)象是基本掌握了C語言語法知識(shí)的讀者。書中總結(jié)了多年的教學(xué)經(jīng)驗(yàn),在內(nèi)容編排上從易到難,學(xué)習(xí)過程從簡單到復(fù)雜、再到常用算法的應(yīng)用,逐步引導(dǎo)學(xué)生在實(shí)踐中掌握科學(xué)的思維方式,實(shí)現(xiàn)真正的從語言到程序設(shè)計(jì)的跨越。本書的一部分內(nèi)容是對(duì)C語言的深入解析,這里我們不再講解基本語法和程序結(jié)構(gòu),而是對(duì)C語言中經(jīng)常容易混淆和不易理解的知識(shí)點(diǎn)進(jìn)行深入分析,使讀者真正掌握C語言的精髓;另一部分內(nèi)容是程序設(shè)計(jì)的基本方法,這里總結(jié)了程序設(shè)計(jì)中的常用方法,采用以問題為中心的講授方式,重點(diǎn)介紹問題的分析和抽象方法,力求理論與實(shí)際相結(jié)合、算法與程序相統(tǒng)一,突出方法在解決實(shí)際問題中的應(yīng)用。所有問題及方法的敘述均采用統(tǒng)一格式,對(duì)每個(gè)題目從問題描述、問題分析到程序?qū)崿F(xiàn)連貫而自成一體,方便讀者理解和掌握。 本書結(jié)構(gòu)簡明清晰,內(nèi)容深入淺出,全書共分11章。 第1章:語言解析,主要對(duì)C語言中的難點(diǎn)問題進(jìn)行分析,從更深層次解讀C語言中不易理解的知識(shí)點(diǎn)。 第2章:輸入輸出格式,按ACM大學(xué)生程序設(shè)計(jì)競賽以及一些學(xué)科競賽中常用的數(shù)據(jù)輸入輸出格式進(jìn)行分類,討論了不同輸入輸出格式的實(shí)現(xiàn)方法。 第3章:簡單數(shù)據(jù)處理問題,主要包括一些常見的簡單問題,涉及的理論一般為初等數(shù)學(xué),或者是一些現(xiàn)實(shí)生活中的常識(shí),通過對(duì)問題進(jìn)行分析和抽象,得到解決問題的方法。 第4章:遞推,在介紹常用遞推方法的基礎(chǔ)上,重點(diǎn)討論了具有遞推關(guān)系問題的抽象方法,通過對(duì)典型問題求解方法的分析,講述遞推方法在實(shí)際問題中的應(yīng)用。 第5章:進(jìn)制轉(zhuǎn)換問題,介紹了程序設(shè)計(jì)中常用的進(jìn)制轉(zhuǎn)換問題的實(shí)現(xiàn)方法,并討論了各種不同進(jìn)制之間進(jìn)行轉(zhuǎn)換的一般方法。 第6章:字符串處理問題,介紹了字符串處理的相關(guān)函數(shù),通過實(shí)例介紹字符串處理的方法和需要注意的一些問題。 第7章:大數(shù)問題,重點(diǎn)講述了大數(shù)的存儲(chǔ)和處理方法,通過實(shí)例介紹大數(shù)進(jìn)行算術(shù)運(yùn)算時(shí)所采用的一般方法。 第8章:枚舉,介紹了枚舉方法的基本思想和適合采用枚舉方法求解的典型問題,重點(diǎn)討論了在減少枚舉量、提高程序效率方面的一般方法。 第9章:模擬,重點(diǎn)講述了運(yùn)算模擬和過程模擬,討論了實(shí)際問題中非數(shù)值數(shù)據(jù)的抽象和表示,介紹了模擬方法在一些典型問題求解中的應(yīng)用。 第10章:回溯與遞歸,詳細(xì)介紹回溯與遞歸的基本思想以及程序?qū)崿F(xiàn)的基本框架,通過實(shí)例介紹回溯與遞歸在實(shí)際問題中的應(yīng)用。 第11章:搜索,介紹了采用搜索法解決問題的基本思路,重點(diǎn)討論了深度優(yōu)先搜索和廣度優(yōu)先搜索的基本方法和程序?qū)崿F(xiàn)框架,通過實(shí)際問題講述兩種方法的應(yīng)用。 書中所有程序均通過上機(jī)調(diào)試,部分章節(jié)配有例題,方便讀者的學(xué)習(xí)和練習(xí)。 由于編者水平有限,書中所述難免有不當(dāng)之處,懇請(qǐng)廣大讀者批評(píng)指正。 編 者 2012.06
內(nèi)容概要
《C程序設(shè)計(jì)競賽實(shí)訓(xùn)教程》是以大學(xué)生程序設(shè)計(jì)競賽為應(yīng)用背景的程序設(shè)計(jì)綜合訓(xùn)練教程,以具有初級(jí)C語言基礎(chǔ)的讀者為對(duì)象,從C語言的深度解析和程序設(shè)計(jì)基本方法兩方面進(jìn)行分析介紹,使讀者達(dá)到深入理解C語言和全面掌握程序設(shè)計(jì)基本方法的目的。全書內(nèi)容按常用程序設(shè)計(jì)方法劃分為不同專題,理論聯(lián)系實(shí)際,強(qiáng)調(diào)動(dòng)手實(shí)踐,深入淺出,便于讀者學(xué)習(xí)和理解。
本書適合具有一定C語言基礎(chǔ)的初、中級(jí)讀者使用,可作為大學(xué)程序設(shè)計(jì)課程或參加ACM競賽的培訓(xùn)教材,也可作為相關(guān)專業(yè)師生的參考用書。
書籍目錄
第1章 語言解析
1.1 關(guān)于變量的存儲(chǔ)類別
1.2 關(guān)于數(shù)值在內(nèi)存中的表示
1.2.1 字符類型和整數(shù)類型
1.2.2 浮點(diǎn)數(shù)類型
1.3 容易用錯(cuò)的保留字
1.4 自增、自減運(yùn)算符
1.5 關(guān)于指針
1.5.1 指針變量的概念
1.5.2 指針變量的引用
1.5.3 指針和數(shù)組
1.5.4 指針的算術(shù)運(yùn)算和關(guān)系運(yùn)算
1.5.5 指針數(shù)組和數(shù)組指針
1.5.6 數(shù)組的首地址和數(shù)組首元素的地址
1.6 關(guān)于存儲(chǔ)模式
1.7 結(jié)構(gòu)體和共用體
1.7.1 結(jié)構(gòu)體
1.7.2 共用體
1.8 常見的內(nèi)存錯(cuò)誤
1.8.1 對(duì)未初始化的指針?biāo)缚臻g賦值
1.8.2 空間分配太小
1.8.3 數(shù)組使用超界
1.8.4 使用已釋放的空間
1.8.5 內(nèi)存泄漏
第2章 輸入輸出格式
2.1 A+B 問題
2.2 字母轉(zhuǎn)換問題
第3章 簡單數(shù)據(jù)處理問題
3.1 最大公約數(shù)
3.2 數(shù)根
3.3 雞兔同籠
3.4 電梯
3.5 路邊的樹
3.6 大數(shù)的位數(shù)
3.7 會(huì)繞圈的數(shù)
3.8 尾數(shù)相等
3.9 競賽排名
3.10 找數(shù)
第4章 遞 推
4.1 兔子繁殖
4.2 捕魚
4.3 賣西瓜
4.4 平面分隔
4.5 走臺(tái)階
4.6 棋盤完美覆蓋
4.7 漢諾塔
4.8 數(shù)字序列
4.9 Fibonacci 數(shù)列
4.10 分?jǐn)?shù)數(shù)列
4.11 過河卒
第5章 進(jìn)制轉(zhuǎn)換問題
5.1 進(jìn)制轉(zhuǎn)換
5.2 確定進(jìn)制
5.3 負(fù)進(jìn)制轉(zhuǎn)換
第6章 字符串處理問題
6.1 字符類型函數(shù)和字符串操作函數(shù)
6.2 字符串操作時(shí)容易出現(xiàn)的問題
6.3 最長子串
6.4 字符串相等
6.5 統(tǒng)計(jì)字符數(shù)
6.6 密碼
第7章 大數(shù)問題
7.1 大數(shù)加法
7.2 大數(shù)乘法
7.3 大數(shù)除法
7.4 高精度計(jì)算
第8章 枚 舉
8.1 枚舉法的基本程序框架
8.2 簡化算法模型
8.3 優(yōu)選枚舉對(duì)象
8.4 精簡循環(huán)次數(shù)
8.5 改變枚舉方式
8.6 轉(zhuǎn)換約束檢查
第9章 模 擬
9.1 運(yùn)算模擬
9.1.1 除法模擬
9.1.2 乘法模擬
9.2 過程模擬
9.2.1 操作步驟模擬
9.2.2 顯示模擬
第10章 回溯與遞歸
10.1 回溯
10.1.1 回溯法描述及程序框架
10.1.2 找組合數(shù)
10.1.3 填數(shù)
10.1.4 串的劃分
10.2 遞 歸
10.2.1 訪問二叉樹的根結(jié)點(diǎn)
10.2.2 串的進(jìn)一步劃分
10.2.3 分解質(zhì)因數(shù)
10.2.4 求二叉樹的后序序列
10.2.5 8皇后問題
10.2.6 素?cái)?shù)環(huán)
10.2.7 旋轉(zhuǎn)方陣
第11章 搜 索
11.1 石油探測
11.2 迷宮問題
11.3 馬的走法
11.4 變換字符串
11.5 整倍數(shù)
附錄 ACM國際大學(xué)生程序設(shè)計(jì)競賽介紹
參考文獻(xiàn)
章節(jié)摘錄
語言解析C語言作為一種應(yīng)用廣泛的語言,目前在各高校計(jì)算機(jī)專業(yè)課程體系中,都將其列為重要的專業(yè)基礎(chǔ)課。當(dāng)我們學(xué)習(xí)了C語言以后,對(duì)C語言的語法以及程序設(shè)計(jì)方法有了一定的了解,并且也用C語言編寫過一些程序,但是對(duì)于C語言中的一些特點(diǎn)是否能真正把握,是否能夠運(yùn)用自如地利用語言特性來解決問題,寫出精練清晰的程序,特別是C語言中有一些容易混淆的地方,這些都需要在不斷地編程練習(xí)過程中逐步掌握和提高。在這里我們不再講解C語言中的基本語法和結(jié)構(gòu),而是對(duì)語言中一些難于理解和容易出錯(cuò)的內(nèi)容進(jìn)行討論。當(dāng)然在編寫程序時(shí),用法上可以采用其他方法,以避免問題的混淆,但從對(duì)C語言的深層理解角度,必須把這些問題搞清楚,特別是從概念上一定要清楚。這對(duì)于我們用C語言來處理復(fù)雜的數(shù)據(jù)結(jié)構(gòu)、編寫高效程序?qū)⑵鸬街陵P(guān)重要的作用。
編輯推薦
《C程序設(shè)計(jì)競賽實(shí)訓(xùn)教程》適合具有一定C語言基礎(chǔ)的初、中級(jí)讀者使用,可作為大學(xué)程序設(shè)計(jì)課程或參加ACM競賽的培訓(xùn)教材,也可作為相關(guān)專業(yè)師生的參考用書。
圖書封面
評(píng)論、評(píng)分、閱讀與下載
C程序設(shè)計(jì)競賽實(shí)訓(xùn)教程 PDF格式下載