
0人評分過此書
本書主要針對高中與大學開始接觸程式設計的初學者,及想學好程式設計的讀者所設計。書中文字敘述力求淺顯簡潔,並以大量範例、片語、學習要點、風格要點等方式,逐步引導初學者進入程式設計的領域。
二版新增C99語法,如bool類別、顯示位元數整數類別、放寬變數宣告位置、stddef的offsetof及stdlib的二分搜尋bsearch等重點介紹。以更多完整範例、相關圖示說明複雜的觀念與方法,同時強化各範例間的關聯性,讓讀者能從中反覆練習、更瞭解所學之實際應用。
本書特色
1.以片語為主,依據慣用寫法來引導初學者進入C語言程式設計。
2.透過「學習要點」、「風格要點」、「特殊字元」等設計,隨時提醒讀者各項學習重點,以提升學習效率。
3.本書搭配專屬網站(https://sites.google.com/view/c-programming-with-idioms-2ed/home),提供各章練習題、作業、教學投影片,並隨時更新相關補充資料、程式碼等資訊。
二版新增C99語法,如bool類別、顯示位元數整數類別、放寬變數宣告位置、stddef的offsetof及stdlib的二分搜尋bsearch等重點介紹。以更多完整範例、相關圖示說明複雜的觀念與方法,同時強化各範例間的關聯性,讓讀者能從中反覆練習、更瞭解所學之實際應用。
本書特色
1.以片語為主,依據慣用寫法來引導初學者進入C語言程式設計。
2.透過「學習要點」、「風格要點」、「特殊字元」等設計,隨時提醒讀者各項學習重點,以提升學習效率。
3.本書搭配專屬網站(https://sites.google.com/view/c-programming-with-idioms-2ed/home),提供各章練習題、作業、教學投影片,並隨時更新相關補充資料、程式碼等資訊。
- 前言
- 二版前言
- 關於「批改娘」
-
1 程式設計
-
1.1 程式
-
1.1.1 高階語言
-
1.1.2 編譯器
-
-
1.2 設計
-
1.2.1 流程圖
-
1.2.2 編輯
-
1.2.3 編譯
-
1.2.4 執行
-
-
1.3 程式批改系統
-
1.3.1 台大資訊系批改娘系統
-
1.3.2 批改娘的誕生
-
-
-
2 基本程式架構
-
2.1 程式骨架
-
2.2 變數
-
2.2.1 變數宣告(variable declaration)
-
2.2.2 變數設初始值
-
2.2.3 多變數宣告
-
-
2.3 輸出
-
2.3.1 輸出一整數
-
2.3.2 輸出換行
-
-
2.4 輸入
-
-
3 運算
-
3.1 指定
-
3.1.1 交換變數值
-
3.1.2 指定敘述算式
-
-
3.2 算術運算
-
3.2.1 加減運算
-
3.2.2 乘除運算
-
3.2.3 負數運算
-
3.2.4 調整變數值
-
3.2.5 算數運算順序
-
-
3.3 整數的範圍
-
3.4 比較運算
-
3.4.1 bool類別
-
3.4.2 重根
-
-
3.5 邏輯運算
-
3.5.1 運算順序及結果
-
3.5.2 整數當邏輯運算結果
-
3.5.3 閏年判斷
-
3.5.4 三角形邊長判斷
-
3.5.5 快捷運算
-
-
-
4 判斷
-
4.1 if 判斷
-
4.1.1 if then
-
4.1.2 if then else
-
4.1.3 if then else if
-
-
4.2 判斷式值
-
4.2.1 絕對值
-
4.2.2 三者最大值
-
4.2.3 面積周長
-
-
4.3 switch判斷
-
4.3.1 計算次方
-
4.3.2 計算天數
-
4.3.3 算數運算
-
4.3.4 比較運算
-
-
-
5 迴圈
-
5.1 while迴圈
-
5.1.1 複合敘述的while迴圈
-
-
5.2 for迴圈
-
5.2.1 固定次數的for迴圈
-
5.2.2 質數判斷
-
5.2.3 複合敘述的for迴圈
-
-
5.3 do while迴圈
-
5.3.1 使用複合敘述的do while迴圈
-
-
5.4 使用break結束迴圈
-
5.5 使用continue繼續迴圈
-
5.6 多重迴圈
-
5.7 迴圈範例
-
5.7.1 長除法模擬
-
5.7.2 檢查11的倍數
-
-
-
6 陣列
-
6.1 屬性
-
6.2 一維陣列
-
6.2.1 用法
-
6.2.2 記憶體配置
-
6.2.3 初始化
-
-
6.3 多維陣列
-
6.3.1 用法
-
6.3.2 記憶體配置
-
6.3.3 初始化
-
6.3.4 初始化範例
-
-
-
7 浮點數
-
7.1 宣告
-
7.2 輸出與輸入
-
7.3 類別轉換
-
7.3.1 轉型
-
-
7.4 計算
-
7.4.1 float計算級數
-
7.4.2 double計算級數
-
7.4.3 不直接算階乘
-
-
-
8 函式
-
8.1 呼叫函式
-
8.1.1 標頭檔
-
8.1.2 函式原型
-
8.1.3 檢查函式回傳值
-
8.1.4 程式庫
-
-
8.2 定義有回傳值的函式
-
8.2.1 return
-
8.2.2 main
-
8.2.3 決定閏年函式
-
-
8.3 定義無回傳值的函式
-
8.3.1 將各位數印在不同行
-
-
8.4 多個參數的函式
-
8.4.1 計算天數
-
8.4.2 印出連續整數
-
8.4.3 算式判斷
-
8.4.4 比較判斷
-
-
8.5 不定個數參數
-
8.5.1 多變數輸出入
-
8.5.2 printf
-
8.5.3 scanf
-
-
8.6 參數傳遞
-
8.6.1 變數參數傳遞
-
8.6.2 陣列參數傳遞
-
8.6.3 多維陣列參數
-
-
8.7 函式的優點
-
-
9 指標
-
9.1 用法
-
9.1.1 宣告
-
9.1.2 指定
-
9.1.3 取值
-
9.1.4 NULL
-
9.1.5 綜合說明
-
9.1.6 取位址
-
-
9.2 指標參數傳遞
-
9.2.1 藉由指標交換變數值
-
9.2.2 藉由指標改變變數值
-
-
9.3 指標與陣列
-
9.3.1 陣列語法
-
9.3.2 指標算術
-
9.3.3 多維陣列指標
-
-
9.4 回傳值
-
9.5 用途與限制
-
9.5.1 用途
-
9.5.2 限制
-
-
-
10 字元
-
10.1 宣告
-
10.2 輸出
-
10.2.1 印出ASCII碼
-
-
10.3 字元常數
-
10.3.1 字元常數操作
-
10.3.2 ASCII值操作
-
10.3.3 整數值操作
-
-
10.4 輸入
-
10.5 常用函式
-
10.5.1 字元分類函式
-
10.5.2 字元轉換函式
-
-
-
11 字串
-
11.1 宣告
-
11.2 輸出
-
11.3 字串常數
-
11.3.1 用字串常數初始化
-
11.3.2 空字串
-
-
11.4 輸入
-
11.5 字元指標
-
11.5.1 記憶體大小
-
-
11.6 字串函式
-
11.6.1 strlen
-
11.6.2 strcpy、strcat
-
11.6.3 strncpy、strncat
-
11.6.4 strcmp、strncmp
-
11.6.5 strchr、strrchr、strstr
-
11.6.6 strspn、strcspn
-
11.6.7 strtok
-
-
11.7 簡易BASIC直譯器
-
11.7.1 BASIC
-
11.7.2 函式說明
-
11.7.3 readVariable
-
11.7.4 processCode
-
11.7.5 runCode
-
11.7.6 用BASIC求質數的程式
-
-
-
12 宣告修飾
-
12.1 short、long及longlong
-
12.1.1 位元組數
-
12.1.2 輸出格式
-
12.1.3 溢位
-
-
12.2 signed及unsigned
-
12.3 C99
-
12.3.1 C99有號整數
-
12.3.2 C99無號整數
-
12.3.3 溢位
-
-
12.4 const
-
12.4.1 const參數
-
12.4.2 const陣列
-
12.4.3 const指標
-
-
12.5 static
-
-
13 位元運算
-
13.1 位元且
-
13.1.1 用位元且檢查位元
-
-
13.2 位元或
-
13.2.1 用位元或設定位元
-
-
13.3 位元互補
-
13.3.1 用位元互補取消位元
-
-
13.4 位元互斥或
-
13.4.1 用位元互斥或交換值
-
-
13.5 移位
-
13.5.1 數字移位
-
13.5.2 測試位元
-
13.5.3 1位元數目排序
-
-
-
14 結構
-
14.1 定義
-
14.1.1 宣告類別
-
14.1.2 結構大小
-
-
14.2 初始化
-
14.3 欄位
-
14.3.1 存取
-
14.3.2 記憶體位址
-
14.3.3 指定
-
-
14.4 結構指標
-
14.4.1 ->取欄位
-
-
14.5 參數傳遞
-
14.5.1 複數範例
-
14.5.2 指標傳遞
-
-
14.6 typedef
-
14.7 結構標頭檔
-
14.7.1 複數
-
14.7.2 日期
-
14.7.3 學生
-
14.7.4 1的個數
-
-
14.8 簡易BASIC直譯器
-
14.8.1 使用struct整合資料
-
14.8.2 readVariable
-
14.8.3 processCode
-
14.8.4 runCode
-
14.8.5 BASIC直譯器
-
-
-
15 遞迴
-
15.1 定義
-
15.1.1 自然數判定
-
-
15.2 應用
-
15.2.1 費伯納西數
-
15.2.2 最大公因數
-
15.2.3 字串長度
-
15.2.4 河內塔
-
15.2.5 八后問題
-
15.2.6 placeQueen流程
-
15.2.7 老鼠走迷宮
-
15.2.8 數獨
-
15.2.9 疊紙片
-
-
15.3 效能考量
-
-
16 檔案處理
-
16.1 開啟與關閉檔案
-
16.1.1 fopen
-
16.1.2 fclose
-
16.1.3 標準檔案指標
-
-
16.2 文字檔案處理
-
16.2.1 以字元為單位
-
16.2.2 以行為單位
-
16.2.3 以格式處理
-
-
16.3 二進制檔案處理
-
16.3.1 緩衝區為主的輸出入
-
16.3.2 結構陣列
-
16.3.3 移動讀寫位置
-
-
16.4 EOF測試
-
16.4.1 feof
-
-
-
17 資料結構
-
17.1 動態記憶體配置
-
17.1.1 malloc
-
17.1.2 free
-
-
17.2 assert
-
17.3 鏈結序列
-
17.3.1 鏈結序列節點
-
17.3.2 迴圈處理
-
17.3.3 遞迴處理
-
17.3.4 記憶體管理
-
17.3.5 合併鏈結序列
-
-
17.4 二元樹
-
17.4.1 節點
-
17.4.2 二元搜尋樹定義
-
17.4.3 建立二元搜尋樹
-
17.4.4 二元樹遍歷
-
17.4.5 二元樹重建
-
17.4.6 二元樹交集及聯集
-
-
-
18 物件
-
18.1 堆疊
-
18.2 堆疊的陣列實作
-
18.2.1 堆疊結構
-
18.2.2 堆疊函式宣告
-
18.2.3 堆疊標頭檔
-
18.2.4 堆疊函式實作
-
18.2.5 分別編譯
-
-
18.3 括號平衡
-
18.3.1 括號平衡字串判別
-
18.3.2 判別程式
-
18.3.3 編譯方法
-
-
18.4 對稱字串
-
18.4.1 編譯方法
-
-
18.5 堆疊的鏈結序列實作
-
18.5.1 鏈結序列標頭檔
-
18.5.2 鏈結序列實作
-
18.5.3 編譯方法
-
-
18.6 物件的優點
-
-
19 前置處理
-
19.1 #include
-
19.2 #define
-
19.2.1 #define常數
-
19.2.2 #define類別
-
19.2.3 #define函式
-
-
19.3 #if,#ifdef,#ifndef
-
19.3.1 程式碼條件編譯
-
19.3.2 命令列條件編譯
-
19.3.3 開關式條件編譯
-
-
19.4 #
-
19.4.1 # 模擬assert
-
-
19.5 _LINE_ _FILE_
-
19.6 ##
-
19.6.1 stat
-
19.6.2 權限常數
-
19.6.3 系統生成權限常數
-
-
-
20 C標準程式庫
-
20.1 qsort
-
20.1.1 比較整數
-
20.1.2 比較日期
-
20.1.3 比較字串
-
20.1.4 比較1位元
-
-
20.2 二分搜尋
-
20.2.1 stdlib bsearch
-
20.2.2 日期二分搜尋
-
20.2.3 字串二分搜尋
-
-
20.3 轉換函式
-
20.4 隨機數
-
20.4.1 算π
-
20.4.2 模擬骰子
-
-
20.5 exit
-
-
21 高等技術
-
21.1 命令列參數
-
21.1.1 印出檔案
-
21.1.2 將命令列參數加總
-
-
21.2 導向
-
21.3 全域變數
-
21.3.1 跨檔案全域變數
-
21.3.2 static全域變數
-
21.3.3 名稱衝突
-
-
-
22 不想教的東西
-
22.1 goto
-
22.1.1 問題
-
-
22.2 全域變數
-
22.2.1 問題
-
-
22.3 格式字串
-
22.4 指標技巧
-
22.5 修改記憶體
-
22.6 征服銀河系
-
- 徵引書目
- 出版地 : 臺灣
- 語言 : 繁體中文
- DOI : 10.978.986350/3576
評分與評論
請登入後再留言與評分