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