C語言入門精要

Page 1

C

M

Y

CM

MY

CY

CMY

K



書名頁.pdf 1 2019/1/9 下午 10:13:36

C

M

Y

CM

MY

CY

CMY

K


Blue Ocean BO18201

C 語言入門精要

C 語言入門精要 / 康廷數位著. -- 初版.-新北市 : 藍海文化, 2019.02 面 ; 公分 ISBN 978-986-6432-92-7(平裝)

康廷數位

1.C(電腦程式語言) 312.32C

C

M

2019

107020810

2

Y

余旻禎

CM

MY

CY

CMY

K

2019

vi C 語言入門精要

a0.indd vi

2016/8/31 下午 11:11:04


/31 下午 11:11:04

前言

◎ 前言 C 是近代程式語言的基礎,相較於新世代的語言(例如 Java),學習曲線較為陡

峭,由於早期軟體技術未臻成熟,語言本身的設計不夠直觀,因此程式設計師 必須花費更大的心力才能具備駕馭這門語言的能力。 不過 C 語言具備其它程式語言無法企及的優點,高效能、操作記憶體的指標設 計與硬體控制能力,更是被用來實作包含了 Windows 以及 Linux 等主流作業系 統的程式語言,也因此儘管新的程式語言不斷出現, C 語言依然還是所有資訊 科系必修的入門課程之一。 本書透過精巧的範例搭配簡單易懂的說明圖示,闡述各項語法元素以及初學者 必須瞭解的程式敘述建構技巧。 除了變數、流程控制等基礎課程,更針對最難以理解的指標課程進行切割,分 成入門與應用等兩個獨立的章節,循序漸進,提供老師與學生最美好的 C 語言 教學與學習體驗。

◎ 閱讀建議 本書假設讀者沒有程式設計的背景知識,內容以入門讀者需要瞭解的進度編排 設計,因此請依照順序逐章研讀。 每一章結束的摘要截取章節重點,可以協助快速掌握重點。 課後練習請逐題練習,以取得最佳的學習效果。

◎ 勘誤與問題回應 若是您在本書閱讀學習的過程中有任何問題,歡迎至本書專屬資訊頁,留下您 的寶貴意見與想法,網址如下:

http://www.kangting.tw/2019/01/c-programming-language.html

C 語言入門精要 vii


前言

任何與本書有關的資訊,包含範例檔案下載、勘誤發布以及未來的延伸與教學 內容,甚至改版資訊,都將公布在這個網頁中。

◎ 誌謝 本書得以問市,要感謝「藍海文化」團隊於書籍排版編輯製作的支援,出版部 主編沈志翰、編輯林瑜璇這段時間的書籍製作統籌與聯繫工作,以及協助本書 封面設計的余旻禎小姐與內文排版的徐慶鐘先生,感謝你們。 另外,負責本書問市之後,市場行銷作業的業務團隊,對於未來你們即將為本 書銷售所付出的努力,「康廷數位」在這裡同時表達感謝之意。

viii C 語言入門精要


目錄總表

目錄總表

01 02 03 04 05 06 07 08 09 10 11 12 13 14 A B

C 語言概觀 變數與資料型態 運算子 輸出與輸入 決策流程控制 迴圈 函數 前置處理器與標準函數 陣列 指標 指標與陣列 結構與列舉型態 檔案資料讀寫 模組設計與應用程式發展

Dev-C++ 安裝與設定 ASCII 字元表

C 語言入門精要 ix


目錄

目錄

01 C 語言概觀 1.1 1.2 1.3 1.4 1.5 1.6

關於 C 語言

1-2

撰寫、編譯與執行

1-4

簡單的實作

1- 6

關於錯誤處理

1-10

C 程式語法

1-11

函數與 C 程式架構

1-16

1.6.1 程式區塊與巢狀架構

1-16

1.6.2 標頭檔與 #include

1-18

1.6.3 運算式以及程式敘述

1-20

1.6.4 變數與宣告

1-22

1.6.5 關鍵字

1-23

1.7 輸出與輸入 學習評量

02 變數與資料型態 2.1 變數

1-24 1-28

2-1 2-2

2.1.1 關於變數

2-2

2.1.2 關於 printf() 與資料輸出

2-4

2.1.3 變數宣告與資料存取

2-5

2.1.4 同時宣告多個變數

2-7

2.1.5 修改變數值

2-8

2.2 常數

x C 語言入門精要

1-1

2-9


目錄

2.3 資料型態

2-11

2.3.1 關於資料型態

2-12

2.3.2 使用整數

2-13

2.3.3 無號整數

2-14

2.3.4 不當設值溢位

2-15

2.3.5 浮點數型態

2-17

2.3.6 字元

2-19

2.3.7 跳脫字元

2-22

2.3.8 關於布林型態

2-25

2.4 型態轉換

2-26

學習評量

2-30

03 運算子 3.1 程式敘述與運算式 3.2 運算子

3.3 3.4 3.5 3.6 3.7

3-1 3-2 3-3

3.2.1 運算元與運算子

3-3

3.2.2 設值運算子

3-5

3.2.3 算數運算子

3- 6

3.2.4 變數自身的運算

3-12

3.2.5 單一運算元運算子

3-13

3.2.6 算數與設值複合運算

3-14

關係運算子

3-15

邏輯運算子

3-18

條件式運算子

3-20

運算子優先順序

3-21

運算過程的型態轉換

3-23

學習評量

3-28

C 語言入門精要 xi


目錄

04 輸出與輸入 4.1 printf() 與格式化輸出

4-2

4.1.1 使用 printf()

4-2

4.1.2 printf() 與格式化輸出

4-3

4.1.3 型態轉換

4-7

4.1.4 八進位與十六進位格式

4-7

4.1.5 格式化輸出的排版

4 -8

4.2 使用 scanf() 與輸入

4-12

4.2.1 使用 scanf() 建立輸入功能

4-12

4.2.2 多參數輸入

4-14

4.2.3 scanf() 與數值資料輸入

4-15

4.2.4 scanf() 與字元資料輸入

4-17

4.2.5 連續讀取資料

4-20

4.2.6 fflush() 函數與緩衝區資料清除

4-23

4.2.7 整數與字串的混合擷取

4-24

4.3 其它字元讀取功能函數 學習評量

05 決策流程控制 5.1 關於流程控制 5.2 if-else 敘述

xii C 語言入門精要

4-1

4-25 4-30

5-1 5-2 5- 4

5.2.1 使用 if

5-5

5.2.2 包含運算式的 if 判斷式

5-9

5.2.3 結合邏輯運算子

5-10

5.2.4 if 的簡易寫法

5-12

5.2.5 巢狀式 if 區塊

5-15

5.2.6 if-else 判斷式

5-16


目錄

5.2.7 if-else if 判斷式

5-19

5.2.8 else 與 else if 的合併使用

5-21

5.2.9 if-else 巢狀迴圈

5-22

5.3 switch 敘述

5-23

5.3.1 使用 switch 實作多重判斷式

5-24

5.3.2 break 與 case 中斷

5-26

5.3.3 default

5-28

學習評量

5-32

06 迴圈

6-1

6.1 關於迴圈 6.2 固定次數的迴圈 ‒ for 敘述

6-2 6-3

6.2.1 使用 for 迴圈

6-4

6.2.2 for 無窮迴圈

6-6

6.2.3 迴圈計數的進一步設定

6 -8

6.2.4 巢狀式 for 迴圈

6-10

6.3 while 迴圈

6-11

6.3.1 使用 while 迴圈

6-12

6.3.2 do - while

6-14

6.3.3 巢狀式 while

6-16

6.3.4 while 無窮迴圈

6-17

6.4 迴圈中斷

6-18

6.4.1 break

6-18

6.4.2 continue

6-20

6.5 goto 6.6 區塊變數的有效範圍

6-22

學習評量

6-24 6-27

C 語言入門精要 xiii


目錄

07 函數

7-1

7.1 關於函數 7.2 使用函數

7-2 7-4

7.2.1 宣告、定義與呼叫

7-4

7.2.2 函數的參數

7-7

7.2.3 函數回傳值

7-10

7.3 函數與有效區域

7-13

7.3.1 變數與宣告範圍

7-13

7.3.2 全域變數

7-16

7.3.3 靜態變數

7-19

7.4 函數的參數傳遞方式 7.5 遞迴

7-20

學習評量

08 前置處理器與標準函數 8.1 前置處理器

7-30

8-1 8-2

8.1.1 關於前置處理器

8-2

8.1.2 #define

8-3

8.1.3 #define 的問題

8-5

8.1.4 #include

8-7

8.2 使用標準函數庫-數學函數

xiv C 語言入門精要

7-22

8-11

8.2.1 數學函數與 math.h

8-11

8.2.2 指數與對數函數

8-12

8.2.3 次方與開根號

8-14

8.2.4 取得近似整數

8-15

8.2.5 亂數

8-16


目錄

8.3 使用標準函數庫-時間日期函數

8-19

8.3.1 取得目前的系統時間

8-19

8.3.2 取得程式執行時間

8-21

8.3.3 計算時間差

8-22

學習評量

8-25

09 陣列

9-1

9.1 陣列 9.1.1

9-2 關於陣列

9-2

9.1.2 陣列的變數存取

9-5

9.1.3 陣列長度

9-7

9.1.4 使用陣列的錯誤

9 -8

9.1.5 初始化陣列

9-10

9.1.6 陣列元素的列舉

9-11

9.1.7 空陣列

9-12

9.2 多維陣列

9-13

9.2.1 二維陣列

9-13

9.2.2 利用巢狀式迴圈列舉二維陣列

9-17

9.2.3 二維陣列的初始化

9-18

9.2.4 三維陣列

9-19

9.3 陣列與函數參數的傳址呼叫 9.4 字串資料

9-20 9-23

9.4.1 關於字串

9-23

9.4.2 宣告固定長度字元陣列

9-24

9.4.3 字串與字元

9-25

9.4.4 gets() 與 puts()

9-26

9.5 字串陣列 9.6 字串函數

9-28 9-29 C 語言入門精要 xv


目錄

9.6.1 取得字串長度

9-29

9.6.2 轉換大小寫

9-30

9.6.3 搜尋子字串

9-31

9.6.4 複製與串接字串

9-32

學習評量

9-36

10 指標

10-1

10.1 變數與儲存位址 10.2 使用指標

10 -2 10 -4

10.2.1 變數與指標變數

10 -4

10.2.2 「*」 與「指標變數」宣告

10 -8

10.2.3 「指標變數」的重設與變數位址

10 -9

10.2.4 「指標變數」與變數內容變更

10 -11

10.2.5 「指標變數」的型態

10 -12

10.2.6 指標的位址架構與運算

10 -13

10.3 指標與函數

10 -17

10.3.1 指標與函數引數

10 -17

10.3.2 「指標變數」的傳址行為

10 -18

10.3.3 回傳指標

10 -21

10.4 雙重指標

10 -23

學習評量

10 -28

11 指標與陣列 11.1 陣列的位址 11.2 陣列指標與元素存取

xvi C 語言入門精要

11-1 11-2 11-5

11.2.1 透過指標存取陣列元素

11-5

11.2.2 變更陣列位址值的錯誤

11-9


目錄

11.3 以指標為儲存元素的陣列 11.4 指標與二維陣列

11-11

11.4.1 二維陣列位址

11-14

11.4.2 二維陣列的指標運算

11-16

11-14

11.5 字串與陣列指標

11-18

學習評量

11-21

12 結構與列舉型態

12-1

12.1 建立與使用結構

12-2

12.1.1 建立結構

12-2

12.1.2 初始化結構成員

12-4

12.1.3 結構陣列

12-7

12.1.4 全域結構

12-9

12.2 結構型態與函數 12.3 定義型態名稱 12.4 巢狀式結構 12.5 指標與結構

12-9 12-12 12-14 12-16

12.5.1 結構指標

12-16

12.5.2 結構陣列與指標

12-18

12.6 列舉

12-19

12.6.1 建立列舉

12-19

12.6.2 列舉常數的設定

12-22

學習評量

12-26

13 檔案資料讀寫 13.1 檔案與資料

13-1 13-2

C 語言入門精要 xvii


目錄

13.2 檔案處理函數 13.3 檔案操作

13-4 13-4

13.3.1 開啟檔案

13-5

13.3.2 關閉檔案

13-7

13.4 檔案讀取

13-8

13.4.1 讀取單一字元

13-8

13.4.2 讀取字串

13-11

13.5 檔案寫入

13-12

13.5.1 寫入單一字元

13-12

13.5.2 寫入字串

13-15

13.6 複製檔案 13.7 檔案緩衝區 13.8 無緩衝區資料讀寫

13-17 13-18 13-19

13.8.1 無緩衝區檔案讀寫函數

13-19

13.8.2 開啟與關閉檔案

13-19

13.8.3 讀寫檔案

13-22

13.9 二進位格式檔案讀寫

13-24

13.9.1 fread() 與 fwrite()

13-24

13.9.2 無緩衝區的檔案讀寫

13-27

學習評量

13-31

14 模組設計與應用程式發展

14-1

14.1 多函數呼叫 14.2 檔案模組設計

14-2

14.2.1 切割檔案

14-4

14.2.2 函數功能檔案實作與編譯

14-5

14.2.3 建立程式專案

14-7

xviii C 語言入門精要

14-4


目錄

14.2.4 引用外部檔案函數

14-10

14.2.5 專案檔

14-14

14.3 條件式編譯 學習評量

14-15 14-20

A Dev-C++ 安裝與設定

A-1

B ASCII 字元表

B-1

C 語言入門精要 xix


C

M

Y

CM

MY

CY

CMY

K


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.