征服C語言程式設計 - 資料結構與程式設計競賽精解 第二版
商品編號:XP14067
作者:李啟龍 著
ISBN:9789572242308
頁數:448
開數:17x23公分
色彩:單色
光碟:CDx1
出版日期:2014 年 01 月 08 日
定價:460
購買本書:
教用資源:
投影片、習題解答電子檔

從做中學,提升程式設計解題思考能力

 

  • 本書一共分為18章,談論C語言與資料結構的重點,為求達到『從做中學』的目標,本書設計了超過百題的程式範例,幫助讀者學習C語言與基本資料結構。

 

  • 每個程式範例大致分為『程式設計目標』、『參考程式碼』和『程式碼解說』等三個部分,相當適合老師教學與學生自修。

 

  • 另外,本書蒐集了20題國內外資訊競賽題目,每題皆附有解題策略及程式碼,提供讀者了解實際的競賽題型,以進一步增加程式設計能力。

第1章 C的簡介與認識Dev-C++
本章介紹C程式語言的緣起,以及Dev-C++軟體的免費下載及安裝的程序。完成下載安裝後,進一步說明Dev-C++的程式設計環境,並練習撰寫第一個C語言程式。

 

第2章 資料型態與格式化輸出/入
變數(Variable)是程式語言最基本的元素之一,它可以存放各種不同型態的資料,我們可以依據程式設計的需求,宣告各種類型的變數,本章介紹C語言中的各種資料型態以及重要的輸出與輸入方法。

 

第3章 運算子、運算式與敘述
所謂的運算式(expression)就是由運算子(operator)和運算元(operand)來組成;而敘述(statement)就是一個完整的指令,由運算式加上必要的標點符號所組成,本章將會做詳細的介紹。
 
第4章 流程圖與選擇性敘述
本章將介紹C語言的判斷敘述,包括:「if敘述」、「if…else…敘述」、「if…else if…else…敘述」、「switch敘述」以及「巢狀If」…等。

 

第5章 迴圈
迴圈結構使得程式語言更具威力,且善用了電腦的好處,可以不厭其煩的重複執行特定程式敘述,以完成指定的動作。本章介紹了C語言所提供的for、while、do…while等迴圈結構。

 

第6章 函式
函式是結構化語言的一個重要元素,有了函式,一個複雜的程式難題,可以分解為數個較小、較簡單的問題,分別用函式表現出來。正確的使用函式,可以使程式的可讀性增加,也可以使程式在偵錯及修改上更為容易。

 

第7章 陣列
陣列是最基本的資料結構之一,宣告一個陣列,等同於宣告了多個同樣型態的變數。本章將會介紹如何使用陣列,以及使用陣列的好處。

 

第8章 指標
指標(pointer)是C語言中一項非常重要的資料型態,它的功能強大,可以用來模擬Call-by-Reference的函式引數傳遞方式,也可以用來製作堆疊、佇列、鏈結串列…等資料結構。

 

第9章 字串
C語言的字串是以字元陣列的方式呈現,但兩者仍然有些微的不同,字串必定會以『\0』結束,而字元陣列則沒有這種限制,本章介紹C語言所提供的字串處理函式,例如:strcat( )、strncat( )、strchr( )、strrchr( )、strcmp( )、strncmp( )…等。

 

第10章 前置處理器
當一個程式的原始碼完成後,需要經過編譯(compile)程序,才能成為可執行檔。在編譯前,C語言的前置處理器會對程式原始碼做一些處理,包括加入一些程式碼、取代特定字串或是選擇性的略過某些程式碼。前置處理器也可用來製造巨集,取代一些簡單函式的功能,對於C語言的模組化非常有幫助。

 

第11章 結構、聯合與列舉
好的資料型態可以增進程式的效率,也可以增加程式的可讀性。C語言有幾種自訂資料結構的方法,使程式設計師可以依據程式的需要,自訂所需要的資料結構,不同的問題用不同的資料結構處理,可以增進程式的處理效率。

 

第12章 輸出/入函式與檔案
這一章我們將繼續介紹C語言基本函式庫內的輸出入函式。

 

第13章 動態記憶體配置
有了動態記憶體配置,程式可在執行期間向作業系統,動態的指定需要多少記憶體,而這些記憶體在程式釋放空間前,並不會被其他程式所使用,C語言提供了數個函式以達成此功能。

 

第14章 排序和搜尋
排序(Sort)與搜尋(Search)是資料處理中兩個很基本的問題。以排序為例,當程式有一群資料時,我們可以透過排序,將資料整理成一個有順序的情況。而搜尋則是指,在一群資料中,去找到我們要找的資料。在本章都將會做仔細的介紹。

 

第15章 堆疊和佇列
堆疊(Stack)為一串在操作上有順序性之資料。將資料儲存進入一個堆疊後,在取出時會產生後進先出LIFO(Last-In-First-Out)的情況。佇列也為一串在操作上有順序性的資料,但所允許操作這種資料結構的方式與堆疊不同。在這章都將會做詳細的解說。

 

第16章 串列
當程式需要儲存一串同類型資料時,陣列是一個簡單的方法,串列的出現是為了解決一些陣列的缺陷,串列的觀念是根據執行時所需要的記憶體大小,動態配置一塊記憶體,稱為節點(node),節點之間包含了連結的機制,將所有節點串接在一起,因此稱之為串列。

 

第17章 二元樹
樹(Tree)為一種特殊的資料結構,以一個個節點為單位,但不同於之前的串列,樹的元素藉由分支而成長,串列則是線性的一個個節點連結,樹可以在同一個節點成長兩個以上的節點,形成階層式的架構。

 

第18章 資訊競賽題解
本章第1~10題擷取自台北市資訊能力競賽,第11~15題擷取自全國資訊能力競賽,第16~20為ACM所舉辦的ICPC歷年試題,每題附有參考解題策略及程式碼,供大家了解實際的競賽題型。

 

附錄A  ASCII 碼表
附錄B  邁向程式設計競賽之路:Online Judge簡介
附錄C  C++物件導向程式設計入門

  • 適量的教學分配

本書將C語言程式設計與資料結構的重要觀念,巧妙地分配在各個章節中,讓讀者可以循序漸進地輕鬆學習,尤其適合課堂教學與個人自學。

  • 免費的發展軟體

本書使用Dev-C++免費軟體,所有使用者都可以輕易地取得合法軟體,以開發功能強大的C語言程式。

  • 豐富的學習範例

本書秉持從做中學的創作觀念,提供超過百題實用的程式範例,將精彩的程式範例與程式設計知識,做一妥善的結合,提供最完整的學習方案。

學歷:

  • 國立台灣師範大學 資訊教育研究所碩士
  • 國立交通大學 經營管理研究所碩士
  • 國立台灣大學 資訊網路與多媒體研究所博士班研究
  • 國立台灣科技大學 資訊管理研究所博士候選人

 

特殊榮譽:

  • 擔任APEC亞太經合會 青年科學節 國家代表
  • 獲得台灣學術網路 TANET 傑出貢獻人員
  • 獲得旺宏科學獎 特殊貢獻指導老師獎
  • 獲得微軟 全球最有價值專家 MVP