內容簡介
//不只考檢測、更鍛鍊未來程式力//
本書是專為有志往資訊科系發展的讀者所設計,具有以下幾項特色:
□ 【紮實基礎教學】:全面涵蓋 C 語言各項主題,沒學過程式設計也可從本書開始入門。主題涵蓋基本語法、函式、陣列、遞迴、指標與多維陣列、動態記憶體配置、前置處理器、結構體與自訂資料型態、到檔案輸出入等,不限於 APCS 檢測範圍,更為未來鋪路。
□ 【超圖解觀念解說】:程式設計抽象概念往往是初學者卡關主因,本書作者親手繪製數百張圖解以及流程圖具像呈現程式設計抽象觀念,易讀又好理解。
□ 【線上開發環境】:學習程式設計就是要動手練習,本書採用線上開發環境,不需安裝軟體,只要打開瀏覽器,就可以開始動手寫程式,甚至在手機、平板上都沒問題。
在 APCS 檢定的準備上,則是採取以下策略:
□ 【從思維邏輯解題】:著重解決問題的思維邏輯,帶你用紙筆解析問題,思考解法。
□ 【單一程式語言】:APCS 的觀念題以 C 語言出題,學 C 語言無可避免,本書實作題也採用 C 語言,只要專心學習單一語言,不需要同時學習兩種語言,以免耗時又容易混淆觀念。
□ 【資料結構與演算法】:帶你思考如何善用資料儲存方法或是執行步驟,讓程式更簡潔、更有效率。涵蓋堆疊、佇列、鏈節串列、樹狀結構、圖形等基本資料結構,以及排序、動態規劃、回溯、雜湊等關鍵演算法。
本書不限定在 APCS 的範疇,也為未來往軟體工程師做準備,包含以下延伸內容:
□ 【業界軟體工具】:gcc 編譯指令、make 專案建置、gdb 除錯程式等實務軟體工作現場必備的工具,為未來進入職場做好準備。
□ 【進階程式主題】:檔案輸出入、動態記憶體配置、模組化程式設計、文字編碼等。另外,本書也提供有 C++ 附錄,對於想要進一步瞭解 C++ 的讀者,快速介紹 C++ 與 C 的差異,並且針對最核心的物件導向概念,做了深入淺出的介紹。
本書特色
□ 從基本語法、函式、陣列、遞迴、指標與多維陣列、動態記憶體配置、前置處理器、結構體與自訂資料型態、到檔案輸出入,完整打好基礎
□ 線上編譯環境,開瀏覽器就可立即練習
□ APCS 觀念題實戰演練,驗證學習成效
□ APCS 實作模擬題解析,熟練思考邏輯
□ ○/✗對照示範,建立程式正確觀念
□ 用流程圖輔助,具像理解程式邏輯
□ 涵蓋鏈結串列、樹狀結構、圖形、堆疊、佇列等基本資料結構
□ 涵蓋搜尋、排序、動態規劃、回溯法、雜湊等關鍵演算法
□ 包含 C++ 簡介附錄,提供進一步探索 C++ 的敲門磚
□ gcc、make、gdb 等開發工具簡介,跨入軟體開發專業領域
作者簡介
目錄
第 1 章 認識 C 語言、資料結構和演算法
1-1 認識 C 程式語言
1-2 C 語言的基本結構和執行流程
1-3 電腦語言翻譯機:編譯器和直譯器
1-4 資料結構和演算法
| APCS 觀念題練習
第 2 章 數學運算子、變數與資料型態
2-1 運算子、變數和常數
2-2 運算式
| APCS 觀念題練習
2-3 整數和浮點數資料型態
| APCS 觀念題練習
2-4 printf():合併字串和資料
2-5 整理程式演算思緒的好幫手:虛擬碼和流程圖
| APCS 觀念題練習
第 3 章 字串、字元編碼與自訂函式
3-1 確認資料型態大小以及注意事項
3-2 字元與字串資料型態
| APCS 觀念題練習
3-3 建立自訂函式
3-4 變數的儲存等級、有效範圍和生命週期
| APCS 觀念題練習
第 4 章 流程控制:選擇 (selection) 與迴圈 (iteration) 敘述
4-1 讀取鍵盤輸入資料的 scanf() 函式
4-2 改變程式流程的 if 條件式
4-3 條件運算子
| APCS 觀念題練習
4-4 switch…case 控制結構
4-5 努力不懈的迴圈
4-6 使用輾轉相除法求最大公因數
4-7 continue 和 break 指令
| APCS 觀念題練習
| APCS 實作題 購物車(堆積木)
第 5 章 排列與隨機
5-1 內容不可改變的「常數」
5-2 產生隨機數字
5-3 排列圖案
5-4 常用的數學函式
5-5 判斷某數字是否為「阿姆斯壯數」
| APCS 觀念題練習
| APCS 實作題 辨別三角形
第 6 章 陣列與字串
6-1 基本資料結構:陣列
6-2 處理字串資料
6-3 文字位移加密(shift cipher)
6-4 刪除字串裡的空白字元
6-5 運用 string.h 函式庫處理字串
6-6 使用 strtok() 函式切割、擷取子字串
6-7 檢測迴文句子以及變數的有效範圍
6-8 計算大數據
| APCS 觀念題練習
| APCS 實作題 修補圍籬 (壽司拼盤)
| APCS 實作題 猜拳遊戲(甲蟲爭霸戰)
第 7 章 遞迴和堆疊
7-1 遞迴:函式呼叫自己
7-2 認識「堆疊」記憶體區域和資料結構
7-3 利用 pythontutor.com 觀察程式運作狀況
7-4 河內塔問題
| APCS 觀念題練習...