1 of 23

C語言程式設計

教學簡報

TIPCI臺灣國際專業認證學會 製作

2 of 23

第一章:C語言概述

  • C語言的起源:1972年由Dennis Ritchie在貝爾實驗室開發
  • 發展歷程:從UNIX系統到嵌入式系統的廣泛應用
  • C語言的特性:簡潔、高效、接近硬體

3 of 23

第一章:C語言概述

  • 優點:執行效率高、可移植性強、結構化設計
  • 缺點:語法較為嚴格、開發過程需注意記憶體管理
  • 在軟體開發中的地位:底層系統開發、驅動程式、嵌入式應用等

4 of 23

第二章:環境搭建與開發工具

  • 選擇C語言編譯器:GCC、Clang、MSVC等
  • 常見IDE介紹:Code::Blocks、Dev-C++、Visual Studio、CLion
  • 安裝與設定開發環境的步驟(以GCC + VS Code為例)

5 of 23

第二章:環境搭建與開發工具

  • 編譯與執行C語言程式的基本流程
  • 常用開發工具:靜態分析工具、版本控制(Git)、除錯工具(GDB)
  • 提高開發效率的方法與技巧:使用Makefile、撰寫模組化程式碼

6 of 23

第三章:基礎語法與數據類型

  • C語言語法結構:語句以分號結尾、區塊使用大括號
  • 變量宣告與初始化:int a = 10;
  • 基本數據類型:int, float, double, char 等

7 of 23

第三章:基礎語法與數據類型

  • 變量的作用域與生命周期
  • 運算符:算術、比較、邏輯、位運算符
  • 表達式與運算優先級

8 of 23

第三章:基礎語法與數據類型

  • 常見輸入輸出函數:printf(), scanf()

9 of 23

第四章:流程控制

  • 條件語句:if、if...else、巢狀if語句
  • 多選分支語句:switch語句的語法與使用
  • 迴圈語句:for、while、do...while

10 of 23

第四章:流程控制

  • 跳出與繼續:break與continue語句
  • 流程控制範例:計算總和、找最大值、九九乘法表

11 of 23

第五章:函數與模組化編程

  • 函數定義與呼叫:return_type function_name(parameters)
  • 函數聲明與實作分離
  • 值傳遞與指標傳參

12 of 23

第五章:函數與模組化編程

  • 遞迴呼叫:定義與實作
  • 模組化設計:拆分功能與多檔案開發
  • 使用標準庫與自定義函數

13 of 23

第五章:函數與模組化編程

  • 應用實例:最大公因數、費波那契數列

14 of 23

第六章:數組與指針

  • 數組定義與初始化:int arr[5] = {1, 2, 3, 4, 5};
  • 一維與多維陣列操作
  • 指針宣告與使用:int *ptr;

15 of 23

第六章:數組與指針

  • 指針與陣列的關係
  • 指針運算:加減、間接訪問
  • 應用:函數參數、動態記憶體存取

16 of 23

第七章:字串處理

  • 字串定義與初始化:char str[] = "Hello";
  • 常用字串函數:strlen(), strcpy(), strcat(), strcmp()
  • 字串輸入輸出:gets(), fgets(), puts(), printf()

17 of 23

第七章:字串處理

  • 指標與字串陣列的差異
  • 應用實例:反轉、搜尋、統計字元

18 of 23

第八章:結構與共用體

  • 結構定義與使用:struct Student { char name[20]; int age; };
  • 成員初始化與存取
  • 結構陣列與巢狀結構

19 of 23

第八章:結構與共用體

  • 結構指標與 -> 操作
  • 共用體定義與特點
  • 應用:資料模型、通訊協議封裝

20 of 23

第九章:檔操作

  • 檔案操作流程:開啟、讀寫、關閉
  • FILE 結構與指標
  • 檔案函數:fopen(), fclose(), fread(), fwrite()

21 of 23

第九章:檔操作

  • 文字與二進位檔案差異
  • 檔案指標移動:fseek(), ftell(), rewind()
  • 錯誤處理與除錯技巧

22 of 23

第十章:動態內存管理

  • 動態內存與靜態記憶體的差異
  • malloc(), calloc():分配內存
  • realloc():調整內存大小

23 of 23

第十章:動態內存管理

  • free():釋放內存
  • 避免記憶體洩漏與野指針
  • 實例:動態陣列、鏈結串列