第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語言的字串是以字元陣列的方式呈現,但兩者仍然有些微的不同,字串必定會以『 』結束,而字元陣列則沒有這種限制,本章介紹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++物件導向程式設計入門