學通C語言的24堂課

《學通C語言的24堂課》是2011年清華大學出版社出版的一本圖書,作者是劉彬彬、孫秀梅。

圖書信息

學通C語言的24堂課 明日科技 劉彬彬、孫秀梅 編著

ISBN 9787302257288

2011年6月出版

定價:79.80元含(含光碟1張)

16開

學通C語言的24堂課

內容簡介

本書以24堂課的形式,從國中級用戶的角度出發,進行合理的內容安排,突出學、練、用結合。本書主要內容包括:初識C語言、掌握C語言數據類型、表達式與運算符、數據輸入/輸出函式、設計選擇/分支結構程式、循環控制、數組的套用、字元數組、函式的套用、變數的存儲類別、C語言中的指針、結構體的使用、共用體的綜合套用、使用預處理命令、存儲管理、鍊表在C語言中的套用、棧和佇列、C語言中的位運算、檔案操作技術、圖形圖像處理、猜數字遊戲、五子棋遊戲、學生成績管理系統和圖書管理系統(MySQL)。

本書適合有志於從事軟體開發的初學者、高校計算機相關專業學生和畢業生,也可作為軟體開發人員的參考手冊或者高校的教學參考書。

本書通過教學視頻、實例訓練、綜合套用、項目實踐、自我測試、行動指南逐步深入和強化訓練等方式,並輔之以心理勵志,來持續激發讀者主動學習、自發學習。

本書給出了375個小型實例,184個綜合套用,7個項目案例(部分在光碟中),各類技巧、試驗200餘個,測試題目210個,以方便讀者訓練、測試和快速提升。

本書DVD光碟給出了72集(308段)多媒體教學視頻講解,每個實例都給出了相應的源程式,可直接複製源碼學習或套用。

前言

前 言

1973年,美國貝爾實驗室的Dennis Ritchie在B語言的基礎上設計出了一種新的語言,也就是C語言,1989年ANSI C標準被完全採用,隨著不斷改進,1999年推出了新的C語言標準,兩個標準之間的差別並不是很大,本書就是在這兩個標準的基礎上進行撰寫的。

20世紀末,隨著計算機技術的飛速發展,湧現出了許多高級程式設計語言,但是C語言並沒有退出歷史的舞台。C語言是Combined Language(組合語言)的簡稱,作為一種計算機設計語言,其所具有的高級語言和彙編語言的特點,使其受到了廣大編程人員的喜愛。C語言的套用很廣泛,它可以編寫系統應用程式,可以作為編寫應用程式的設計語言,並且還可以具體套用到單片機以及嵌入式系統的開發。

本書內容

學、練、用到精通只需24堂課。本書從國中級用戶的角度,科學合理的設計,通過24堂課全面講述了使用C語言進行程式開發必備的知識和技能。本書的結構如下圖所示。

第1部分 基礎篇(第1~8堂課):講述了C語言開發環境、C語言數據類型、表達式與運算符、數據輸入/輸出函式、選擇/分支結構、循環控制結構、數組和字元數組等知識,這些都是程式語言的基礎。

第2部分 提高篇(第9~14堂課):講述了函式的套用、變數的存儲類別、C語言中的指針、結構體的使用、共用體的綜合套用、預處理命令的使用。通過該篇的學習,讀者能夠使用C語言開發一些小程式。

第3部分 高級篇(第15~20課):講述了存儲管理、鍊表、棧和佇列、位運算、檔案操作技術及圖形圖像處理。通過該篇的學習,讀者可以掌握C語言程式開發中的一些高級技術,為開發較大型的項目打下基礎。

第4部分 實戰篇(第21~24堂課):講述了猜數字遊戲、五子棋遊戲、學生成績管理系統和圖書管理系統(MySQL)4個完整的項目實例設計全過程。通過該篇的學習,讀者可以積累項目開發經驗。

本書特點

* 配備72集(308段)多媒體教學視頻講解。

本書DVD光碟提供了復蓋全書的語音視頻講解,讀者可以通過視頻快速、直觀、輕鬆地學習。

* 每一堂課都結合“照貓畫虎”、“情景套用”。

為了增強讀者動手能力,激發學習興趣,本書提供了“照貓畫虎”和“情景套用”欄目,根據實例模仿著去做是學習編程的最快方式。

* 每一堂課都結合勵志故事和“行動指南”,時刻激勵和鼓舞讀者。

我們認為學習中尤其是最初的一段時間,非常有必要不斷地對學習者以激勵和鼓舞,讓他們堅持下來是至關重要的,因此書中不間斷地用一些勵志故事和行動指南去鼓舞其信心。

* 光碟提供了本書的所有代碼,即使只有一行。

本書光碟不僅提供了所有實例的源程式,還提供了書中所有示例的原始碼,哪怕只有一行。讀者可以直接複製,以提高學習效率。

* 本書所有習題和實戰都給出了答案,部分習題還有解析,讀者可以對照查閱。

讀者對象

(1) 有志於從事軟體開發的初學者 (2)高等院校計算機相關專業的老師和學生

(3)準備從事軟體開發的求職者 (4)參與畢業設計的學生

(5)國中級程式開發人員 (6) 程式測試及維護人員

本書作者

本書由明日科技組織編寫,參加編寫的程式設計師有劉彬彬、孫秀梅、王國輝、賽奎春、潘凱華、劉欣、李慧、陳丹丹、高春艷、李偉、楊麗、劉玲玲、朱曉、劉燕、陳英、李鑫、李賀、肖鑫、張麗娜、沈博、劉冠男、曹飛飛、李麗、聶喜婷、王明昭、張英豪、王小科、趙會東、白偉明等。

由於水平有限,書中疏漏和不足之處在所難免,懇請廣大讀者朋友批評指正。

技術支持與服務

最後,感謝您選擇本書,希望本書能成為您編程路上的領航者。

祝讀書快樂!

編 者

圖書目錄

目 錄

第1部分 基礎篇

第1堂課 初識C語言 3

視頻講解:45分鐘

1.1 C語言發展史 4

1.1.1 程式語言簡述 4

1.1.2 C語言歷史 4

1.2 C語言的特點 5

1.3 一個簡單C程式 5

1.4 一個完整的C程式 7

1.5 C語言程式的格式 10

1.6 開發環境 11

1.6.1 Turbo C 2.0 11

1.6.2 Visual C++ 6.0 14

1.7 照貓畫虎——基本功訓練 19

1.7.1 基本功訓練1——使用TC創建C檔案 19

1.7.2 基本功訓練2——使用Visual C++ 6.0

創建.c檔案 20

1.7.3 基本功訓練3——打開一個C檔案 21

1.7.4 基本功訓練4——設定工具列 21

1.8 情景套用——拓展與實踐 22

1.8.1 情景套用1——求和程式 22

1.8.2 情景套用2——求10! 23

1.8.3 情景套用3——猴子吃桃 24

1.8.4 情景套用4——陽陽買蘋果 25

1.9 自我測試 26

1.10 行動指南 27

1.11 成功可以複製——迅雷創始人鄒勝龍 27

第2堂課 掌握C語言數據類型 29

視頻講解:56分鐘

2.1 C語言的編程規範 30

2.1.1 注釋的合理使用 30

2.1.2 程式中的“{}”要對齊 30

2.1.3 合理使用空格使代碼更規範 31

2.1.4 換行使代碼更清晰 31

2.2 關鍵字 32

2.3 標識符 32

2.4 數據類型 33

2.5 常量 34

2.5.1 整型常量 34

2.5.2 實型常量 36

2.5.3 字元型常量 36

2.5.4 轉義字元 39

2.5.5 符號常量 40

2.6 變數 41

2.6.1 整型變數 41

2.6.2 實型變數 43

2.6.3 字元型變數 45

2.7 照貓畫虎——基本功訓練 46

2.7.1 基本功訓練1——定義正確的數據類型

求圓周長 46

2.7.2 基本功訓練2——數值型常量的使用 47

2.7.3 基本功訓練3——字元變數的使用 48

2.7.4 基本功訓練4——實型變數的使用 48

2.8 情景套用——拓展與實踐 49

2.8.1 情景套用1——十進制轉換為二進制 49

2.8.2 情景套用2——利用“#”輸出圖形 51

2.8.3 情景套用3——列印楊輝三角 51

2.8.4 情景套用4——利用“*”輸出矩形 52

2.9 自我測試 53

2.10 行動指南 54

2.11 成功可以複製——蓋茨第二

馬克·扎克伯格 55

第3堂課 表達式與運算符 57

視頻講解:59分鐘

3.1 表達式 58

3.2 賦值運算符與賦值表達式 59

3.2.1 變數賦初值 60

3.2.2 自動類型轉換 61

3.2.3 強制類型轉換 61

3.3 算術運算符與表達式 62

3.3.1 算術運算符 62

3.3.2 算術表達式 63

3.3.3 優先權與結合性 64

3.3.4 自增自減運算符 66

3.4 關係運算符與表達式 68

3.4.1 關係運算符 68

3.4.2 關係表達式 68

3.4.3 優先權與結合性 69

3.5 邏輯運算符與表達式 70

3.5.1 邏輯運算符 70

3.5.2 邏輯表達式 71

3.5.3 優先權與結合性 71

3.6 位邏輯運算符與表達式 72

3.6.1 位邏輯運算符 72

3.6.2 位邏輯表達式 72

3.7 逗號運算符與表達式 73

3.8 複合賦值運算符 74

3.9 照貓畫虎——基本功訓練 75

3.9.1 基本功訓練1——使用基本的算術

運算符 75

3.9.2 基本功訓練2——賦值表達式類型的

轉換 76

3.9.3 基本功訓練3——複合賦值運算符的

套用 77

3.9.4 基本功訓練4——逗號運算符的套用 77

3.9.5 基本功訓練5——關係表達式進行算術

運算 78

3.10 情景套用——拓展與實踐 78

3.10.1 情景套用1——求1~10的累加和 78

3.10.2 情景套用2——計算學生平均身高 79

3.10.3 情景套用3——求一元二次方程

ax2+bx+c=0的根 79

3.10.4 情景套用4——求字元串中字元的

個數 80

3.10.5 情景套用5——計算a+=a*=a/=a-6 81

3.11 自我測試 82

3.12 行動指南 83

3.13 成功可以複製——善於抓住時機的人

徐少春 84

第4堂課 數據輸入/輸出函式 87

視頻講解:69分鐘

4.1 語句 88

4.2 字元數據輸入/輸出 88

4.2.1 字元數據輸出 88

4.2.2 字元數據輸入 89

4.3 字元串輸入/輸出 91

4.3.1 字元串輸出函式 91

4.3.2 字元串輸入函式 92

4.4 格式輸出函式 93

4.5 格式輸入函式 95

4.6 順序程式設計套用 99

4.7 照貓畫虎——基本功訓練 100

4.7.1 基本功訓練1——使用字元函式輸入/

輸出字元 100

4.7.2 基本功訓練2——使用字元輸出函式

輸出“mrsoft” 101

4.7.3 基本功訓練3——輸出相對的最小

整數 102

4.7.4 基本功訓練4——輸出乘法口訣表 102

4.7.5 基本功訓練5——輸出兩個數的最大

公約數 103

4.8 情景套用——拓展與實踐 104

4.8.1 情景套用1——將輸入的小寫字元

轉換為大寫字元 104

4.8.2 情景套用2——用“*”號輸出圖案 105

4.8.3 情景套用3——輸出3×3的矩陣 106

4.8.4 情景套用4——輸出一個字元的前

驅字元 106

4.8.5 情景套用5——根據輸入判斷能否

組成三角形 107

4.9 自我測試 108

4.10 行動指南 110

4.11 成功可以複製——暴雪公司的領航者

邁克·莫漢 110

第5堂課 設計選擇/分支結構程式 113

視頻講解:81分鐘

5.1 if語句 114

5.2 if語句的基本形式 114

5.2.1 if語句形式 114

5.2.2 if…else語句形式 117

5.2.3 else if語句形式 121

5.3 if的嵌套形式 124

5.4 條件運算符 126

5.5 switch語句 127

5.5.1 switch語句的基本形式 127

5.5.2 多路開關模式的switch語句 131

5.6 if else語句和switch語句的區別 132

5.7 選擇結構程式套用 134

5.8 照貓畫虎——基本功訓練 136

5.8.1 基本功訓練1——單條件單分支

選擇語句 136

5.8.2 基本功訓練2——單條件雙分支

選擇語句 136

5.8.3 基本功訓練3——條件運算符的使用 137

5.8.4 基本功訓練4——計算工人工資 138

5.8.5 基本功訓練5——判斷閏年 139

5.9 情景套用——拓展與實踐 140

5.9.1 情景套用1——從小到大輸出3個數 140

5.9.2 情景套用2——求學生的最低分和

最高分 141

5.9.3 情景套用3——模擬自動售貨機 142

5.9.4 情景套用4——模擬ATM機界面

程式 143

5.9.5 情景套用5——計算某日是該年的第

幾天 146

5.10 自我測試 147

5.11 行動指南 150

5.12 成功可以複製——網際網路的點火人

馬克·安德森 151

第6堂課 循環控制 153

視頻講解:82分鐘

6.1 循環語句 154

6.2 while語句 154

6.3 do…while語句 157

6.4 for語句 158

6.4.1 for語句使用 158

6.4.2 for循環的變體 161

6.4.3 for語句中的逗號套用 163

6.5 3種循環語句的比較 164

6.6 循環嵌套 164

6.6.1 循環嵌套的結構 164

6.6.2 循環嵌套實例 166

6.7 轉移語句 166

6.7.1 goto語句 167

6.7.2 break語句 168

6.7.3 continue語句 169

6.8 照貓畫虎——基本功訓練 170

6.8.1 基本功訓練1——求某個數的階乘 170

6.8.2 基本功訓練2——一元錢的兌換方案 171

6.8.3 基本功訓練3——特殊等式 172

6.8.4 基本功訓練4——計算12+22+…+102 173

6.8.5 基本功訓練5——輸出10~100之間的

素數 173

6.9 情景套用——拓展與實踐 175

6.9.1 情景套用1——愛因斯坦階梯問題 175

6.9.2 情景套用2——斐波那契數列 176

6.9.3 情景套用3——銀行存款問題 177

6.9.4 情景套用4——計算學生的最高分 177

6.9.5 情景套用5——統計不及格的人數 178

6.10 自我測試 179

6.11 行動指南 182

6.12 成功可以複製——微型部落格Twitter

創始人埃文·威廉士 183

第7堂課 數組的套用 185

視頻講解:58分鐘

7.1 一維數組 186

7.1.1 一維數組的定義和引用 186

7.1.2 一維數組初始化 187

7.1.3 一維數組套用 189

7.2 二維數組 190

7.2.1 二維數組的定義和引用 190

7.2.2 二維數組初始化 191

7.2.3 二維數組套用 192

7.3 多維數組 193

7.4 數組的排序算法 194

7.4.1 選擇法排序 194

7.4.2 冒泡法排序 196

7.4.3 交換法排序 197

7.4.4 插入法排序 199

7.4.5 折半法排序 201

7.4.6 排序算法的比較 204

7.5 照貓畫虎——基本功訓練 205

7.5.1 基本功訓練1——逆序存放數據 205

7.5.2 基本功訓練2——查找數組中的

最值 206

7.5.3 基本功訓練3——判斷一個數是否存在

數組中 207

7.5.4 基本功訓練4——相鄰元素之和 208

7.5.5 基本功訓練5——求二維數組對角線

之和 208

7.6 情景套用——拓展與實踐 209

7.6.1 情景套用1——選票統計 209

7.6.2 情景套用2——模擬比賽打分 211

7.6.3 情景套用3——統計學生成績 212

7.6.4 情景套用4——矩陣的轉置 213

7.6.5 情景套用5——設計魔方陣 215

7.7 自我測試 216

7.8 行動指南 218

7.9 成功可以複製——射擊遊戲之父

John Carmack 218

第8堂課 字元數組 221

視頻講解:60分鐘

8.1 字元數組的套用 222

8.1.1 字元數組定義和引用 222

8.1.2 字元數組初始化 222

8.1.3 字元數組的結束標誌 224

8.1.4 字元數組的輸入/輸出 224

8.1.5 字元數組套用 226

8.2 字元串處理函式 227

8.2.1 字元串複製 227

8.2.2 字元串連線 228

8.2.3 字元串比較 229

8.2.4 字元串大小寫轉換 230

8.2.5 獲得字元串長度 232

8.3 照貓畫虎——基本功訓練 233

8.3.1 基本功訓練1——不使用strcpy函式

實現字元串複製功能 233

8.3.2 基本功訓練2——用字元數組存儲

學生姓名並輸出 234

8.3.3 基本功訓練3——字元升序排列 234

8.3.4 基本功訓練4——在指定位置插入

字元 236

8.3.5 基本功訓練5——刪除字元串中的

連續字元 237

8.4 情景套用——拓展與實踐 238

8.4.1 情景套用1——統計各種字元個數 238

8.4.2 情景套用2——字元串倒置 239

8.4.3 情景套用3——字元串替換 240

8.4.4 情景套用4——回文字元串 241

8.4.5 情景套用5——字元串加密和解密 242

8.5 自我測試 244

8.6 行動指南 245

8.7 成功可以複製——圖文世界的締造者

約翰·沃洛克 246

第2部分 提高篇

第9堂課 函式的套用 251

視頻講解:98分鐘

9.1 函式概述 252

9.2 函式的定義 253

9.2.1 函式定義的形式 254

9.2.2 定義與聲明 255

9.3 返回語句 257

9.3.1 從函式返回 257

9.3.2 返回值 258

9.4 函式參數 259

9.4.1 形式參數與實際參數 260

9.4.2 數組作函式參數 261

9.4.3 main的參數 266

9.5 函式的調用 267

9.5.1 函式調用方式 267

9.5.2 嵌套調用 269

9.5.3 遞歸調用 271

9.6 內部函式和外部函式 273

9.6.1 內部函式 274

9.6.2 外部函式 275

9.7 局部變數和全局變數 276

9.7.1 局部變數 276

9.7.2 全局變數 278

9.8 函式套用 280

9.9 照貓畫虎——基本功訓練 285

9.9.1 基本功訓練1——設計函式輸出兩個數

中的最大值 285

9.9.2 基本功訓練2——設計函式計算學生的

平均成績 286

9.9.3 基本功訓練3——判斷素數 287

9.9.4 基本功訓練4——求數組元素中的

最小值 287

9.9.5 基本功訓練5——列印1到5的階乘 288

9.10 情景套用——拓展與實踐 289

9.10.1 情景套用1——遞歸解決年齡問題 289

9.10.2 情景套用2——百錢百雞問題 290

9.10.3 情景套用3——求最大公約數和最小

公倍數 292

9.10.4 情景套用4——求直角三角形斜邊 293

9.10.5 情景套用5——小數分離 294

9.11 自我測試 294

9.12 行動指南 296

9.13 成功可以複製——征途巨人史玉柱 297

第10堂課 變數的存儲類別 299

視頻講解:42分鐘

10.1 了解變數的存儲類型 300

10.2 使用auto關鍵字聲明自動變數 300

10.3 使用static關鍵字聲明靜態變數 301

10.4 使用register關鍵字聲明暫存器

變數 303

10.5 使用extern關鍵字聲明外部變數 304

10.5.1 聲明在一個檔案中使用的外部變數 304

10.5.2 聲明在多個檔案中使用的外部變數 305

10.6 使用static關鍵字聲明靜態外部

變數 306

10.7 照貓畫虎——基本功訓練 307

10.7.1 基本功訓練1——聲明自動變數 307

10.7.2 基本功訓練2——比較兩個數的大小 308

10.7.3 基本功訓練3——求兩個數的和 309

10.7.4 基本功訓練4——計算用戶輸入整數的

乘積 309

10.7.5 基本功訓練5——使用register定義局部

變數 310

10.8 情景套用——拓展與實踐 311

10.8.1 情景套用1——婚禮上的謊言 311

10.8.2 情景套用2——求新同學的年齡 312

10.8.3 情景套用3——捕魚和分魚 313

10.8.4 情景套用4——求郵票總數 314

10.8.5 情景套用5——巧分蘋果 315

10.9 自我測試 316

10.10 行動指南 318

10.11 成功可以複製——締造華人的

矽谷傳奇楊致遠 319

第11堂課 C語言中的指針 321

視頻講解:107分鐘

11.1 指針相關概念 322

11.1.1 地址與指針 322

11.1.2 變數與指針 323

11.1.3 指針變數 323

11.1.4 指針自加自減運算 326

11.2 數組與指針 327

11.2.1 一維數組與指針 328

11.2.2 二維數組與指針 331

11.2.3 字元串與指針 333

11.2.4 字元串數組 334

11.3 指向指針的指針 336

11.4 指針變數作函式參數 338

11.5 返回指針值的函式 343

11.6 指針數組作main函式的參數 345

11.7 照貓畫虎——基本功訓練 346

11.7.1 基本功訓練1——利用指針查找數列中

最大值和最小值 346

11.7.2 基本功訓練2——利用指針實現字元串

複製 347

11.7.3 基本功訓練3——實現數組元素值逆序

存放 348

11.7.4 基本功訓練4——使用指針連線兩個

字元串 349

11.7.5 基本功訓練5——利用指針輸出數組

元素 350

11.8 情景套用——拓展與實踐 351

11.8.1 情景套用1——查找成績不及格的學生 351

11.8.2 情景套用2——使用指針實現冒泡排序 352

11.8.3 情景套用3——輸入月份號輸出英文

月份名 353

11.8.4 情景套用4——使用指針插入元素 354

11.8.5 情景套用5——使用指針交換兩個數組

中的最大值 355

11.9 自我測試 357

11.10 行動指南 359

11.11 成功可以複製——防毒王王江民 360

第12堂課 結構體的使用 363

視頻講解:62分鐘

12.1 結構體 364

12.1.1 結構體類型的概念 364

12.1.2 結構體變數的定義 365

12.1.3 結構體變數的引用 366

12.1.4 結構體類型的初始化 368

12.2 結構體數組 370

12.2.1 定義結構體數組 370

12.2.2 初始化結構體數組 371

12.3 結構體指針 373

12.3.1 指向結構體變數的指針 373

12.3.2 指向結構體數組的指針 376

12.3.3 結構體作函式參數 377

12.4 包含結構的結構 380

12.5 照貓畫虎——基本功訓練 381

12.5.1 基本功訓練1——結構體變數的

初始化 381

12.5.2 基本功訓練2——使用結構體存放學生

信息 382

12.5.3 基本功訓練3——整數排序 383

12.5.4 基本功訓練4——指向數組元素的結構

指針運算 384

12.5.5 基本功訓練5——計算學生的平均成績 385

12.6 情景套用——拓展與實踐 386

12.6.1 情景套用1——找出最高分 386

12.6.2 情景套用2——候選人選票程式 387

12.6.3 情景套用3——求平面上兩點的距離 388

12.6.4 情景套用4——設計通訊錄 389

12.6.5 情景套用5——輸出火車票價 390

12.7 自我測試 392

12.8 行動指南 394

12.9 成功可以複製——中國第一程式設計師

求伯君 395

第13堂課 共用體的綜合套用 397

視頻講解:24分鐘

13.1 共用體 398

13.1.1 共用體的概念 398

13.1.2 共用體變數的引用 398

13.1.3 共用體變數的初始化 399

13.1.4 共用體類型的數據特點 400

13.2 枚舉類型 400

13.3 照貓畫虎——基本功訓練 401

13.3.1 基本功訓練1——共用體變數的套用 401

13.3.2 基本功訓練2——共用體處理任意類型

數據 402

13.3.3 基本功訓練3——取出整型數據的高

位元組數據 403

13.4 情景套用——拓展與實踐 404

13.4.1 情景套用1——使用共用體存放學生和

老師信息 404

13.4.2 情景套用2——輸出今天星期幾 405

13.4.3 情景套用3——製作花束 406

13.5 自我測試 408

13.6 行動指南 409

13.7 成功可以複製——80後新貴、

泡泡網CEO李想 409

第14堂課 使用預處理命令 411

視頻講解:62分鐘

14.1 宏定義 412

14.1.1 不帶參數的宏定義 412

14.1.2 帶參數的宏定義 413

14.2 #include指令 414

14.3 條件編譯 416

14.3.1 #if命令 416

14.3.2 #ifdef及#ifndef命令 418

14.3.3 #undef命令 419

14.3.4 #line命令 419

14.3.5 #pragma命令 420

14.4 照貓畫虎——基本功訓練 420

14.4.1 基本功訓練1——不帶參數的宏定義求

平行四邊形面積 420

14.4.2 基本功訓練2——定義帶參數的宏實現

求兩個整數的乘積 421

14.4.3 基本功訓練3——編寫頭檔案包含圓

面積的計算公式 422

14.4.4 基本功訓練4——使用條件編譯將字元

轉換為大寫 423

14.4.5 基本功訓練5——使用宏定義實現數組

值的互換 424

14.5 情景套用——拓展與實踐 425

14.5.1 情景套用1——使用帶參數的宏求圓

面積 425

14.5.2 情景套用2——利用宏定義求偶數和 426

14.5.3 情景套用3——從3個數中找出最小數 427

14.5.4 情景套用4——利用檔案包含設計輸出

模式 428

14.5.5 情景套用5——使用條件編譯隱藏密碼 428

14.6 自我測試 429

14.7 行動指南 431

14.8 成功可以複製——使計算機成為

生活的必需品比爾·蓋茨 432

第3部分 高級篇

第15堂課 存儲管理 435

視頻講解:33分鐘

15.1 記憶體組織方式 436

15.1.1 記憶體組織方式 436

15.1.2 堆管理 436

15.2 動態管理 437

15.2.1 malloc函式 437

15.2.2 calloc函式 438

15.2.3 realloc函式 439

15.2.4 free函式 439

15.3 記憶體丟失 440

15.4 照貓畫虎——基本功訓練 441

15.4.1 基本功訓練1——sizeof關鍵字的

套用 441

15.4.2 基本功訓練2——為具有3個數組元素

的數組分配記憶體 442

15.4.3 基本功訓練3——為二維數組動態分配

記憶體 442

15.5 情景套用——拓展與實踐 444

15.5.1 情景套用1——使用malloc()函式分配

記憶體 444

15.5.2 情景套用2——調用calloc()函式動態

分配記憶體 444

15.5.3 情景套用3——商品信息的動態存放 445

15.6 自我測試 446

15.7 行動指南 447

15.8 成功可以複製——知識改變命運、

科技改變生活李彥宏 448

第16堂課 鍊表在C語言中的套用 451

視頻講解:76分鐘

16.1 鍊表 452

16.1.1 鍊表概述 452

16.1.2 靜態鍊表 453

16.1.3 處理動態鍊表所需的函式 454

16.2 鍊表相關操作 454

16.2.1 創建動態鍊表 454

16.2.2 輸出鍊表 456

16.2.3 鍊表的插入操作 458

16.2.4 鍊表的刪除操作 459

16.3 鍊表的表現形式 463

16.3.1 單向鍊表 463

16.3.2 循環鍊表 464

16.3.3 雙向鍊表 464

16.4 照貓畫虎——基本功訓練 465

16.4.1 基本功訓練1——創建單向鍊表 465

16.4.2 基本功訓練2——向單向鍊表中插入

元素 467

16.4.3 基本功訓練3——刪除結點元素 469

16.4.4 基本功訓練4——創建雙向鍊表 471

16.4.5 基本功訓練5——創建循環鍊表 474

16.5 情景套用——拓展與實踐 475

16.5.1 情景套用1——單向鍊表逆置 475

16.5.2 情景套用2——雙向鍊表逆序輸出 477

16.5.3 情景套用3——連線兩個鍊表 479

16.5.4 情景套用4——使用鍊表實現約瑟

夫環 480

16.5.5 情景套用5——查找兩個鍊表中的

相同元素 482

16.6 自我測試 484

16.7 行動指南 486

16.8 成功可以複製——中國通信設備

行業的領跑者任正非 486

第17堂課 棧和佇列 489

視頻講解:73分鐘

17.1 棧的定義和幾種基本操作 490

17.1.1 棧的定義 490

17.1.2 棧常見的幾種基本操作 491

17.2 棧的存儲和實現 492

17.2.1 順序棧 492

17.2.2 鏈棧 494

17.3 佇列的定義和基本操作 497

17.3.1 佇列的定義 497

17.3.2 佇列常見的幾種基本操作 497

17.4 佇列的存儲及運算 497

17.4.1 順序佇列 497

17.4.2 鏈佇列 500

17.4.3 循環佇列 501

17.5 照貓畫虎——基本功訓練 501

17.5.1 基本功訓練1——套用棧實現進制

轉換 501

17.5.2 基本功訓練2——括弧匹配檢測 504

17.5.3 基本功訓練3——利用棧實現遞歸計算

多項式 507

17.5.4 基本功訓練4——循環佇列的基本

操作 508

17.6 情景套用——拓展與實踐 511

17.6.1 情景套用1——漢諾塔問題 511

17.6.2 情景套用2——機票預售系統 513

17.6.3 情景套用3——鏈佇列的使用 515

17.7 自我測試 519

17.8 行動指南 520

17.9 成功可以複製——軟體業的華人

教父王嘉廉 521

第18堂課 C語言中的位運算 523

視頻講解:62分鐘

18.1 位與位元組 524

18.2 位運算操作符 524

18.2.1 與運算符 524

18.2.2 或運算符 525

18.2.3 取反運算符 527

18.2.4 異或運算符 528

18.2.5 左移運算符 529

18.2.6 右移運算符 530

18.3 循環移位 532

18.4 位段 533

18.4.1 位段的概念與定義 533

18.4.2 位段相關說明 534

18.5 照貓畫虎——基本功訓練 535

18.5.1 基本功訓練1——輸入兩個整數實現按

位與和按位或 535

18.5.2 基本功訓練2——使二進制數特定位

翻轉 536

18.5.3 基本功訓練3——整數與0異或 537

18.5.4 基本功訓練4——將輸入的數左移兩位

並輸出 538

18.5.5 基本功訓練5——編程實現循環右移 538

18.6 情景套用——拓展與實踐 539

18.6.1 情景套用1——交換兩個值不用臨時

變數 539

18.6.2 情景套用2——取一個整數的後4位 540

18.6.3 情景套用3——編寫循環移位函式 541

18.6.4 情景套用4——取出給定16位二進制數的

奇數位 541

18.6.5 情景套用5——求一個數的補碼 542

18.7 自我測試 543

18.8 行動指南 544

18.9 成功可以複製——創造網際網路搜尋

時代謝爾蓋·布林 545

第19堂課 檔案操作技術 547

視頻講解:87分鐘

19.1 檔案概述 548

19.2 檔案基本操作 548

19.2.1 檔案指針 548

19.2.2 檔案的打開 549

19.2.3 檔案的關閉 549

19.3 檔案的讀寫 550

19.3.1 fputc函式 550

19.3.2 fgetc函式 551

19.3.3 fputs函式 551

19.3.4 fgets函式 552

19.3.5 fprintf函式 553

19.3.6 fscanf函式 554

19.3.7 fread函式和fwrite函式 555

19.4 檔案的定位 557

19.4.1 fseek函式 557

19.4.2 rewind函式 558

19.4.3 ftell函式 559

19.5 照貓畫虎——基本功訓練 561

19.5.1 基本功訓練1——關閉打開的所有

檔案 561

19.5.2 基本功訓練2——讀取指定檔案的內容 563

19.5.3 基本功訓練3——同時顯示兩個檔案的

內容 564

19.5.4 基本功訓練4——隨機讀寫檔案 565

19.5.5 基本功訓練5——檔案的錯誤處理 567

19.6 情景套用——拓展與實踐 569

19.6.1 情景套用1——創建檔案 569

19.6.2 情景套用2——檔案的複製 570

19.6.3 情景套用3——刪除檔案 572

19.6.4 情景套用4——重命名檔案 573

19.6.5 情景套用5——檔案加密 575

19.7 自我測試 577

19.8 行動指南 579

19.9 成功可以複製——IT風雲人物

鮑岳橋 579

第20堂課 圖形圖像處理 581

視頻講解:129分鐘

20.1 字元螢幕 582

20.1.1 定義文本視窗 582

20.1.2 顏色設定 582

20.1.3 文本的輸入和輸出 583

20.1.4 螢幕操作函式 584

20.2 圖形顯示 586

20.2.1 圖形模式初始化 586

20.2.2 螢幕顏色設定 588

20.2.3 基本圖形函式 590

20.2.4 封閉圖形的填充 597

20.3 圖形螢幕 599

20.4 圖形模式下文本輸出 600

20.4.1 文本輸出函式 600

20.4.2 文本屬性設定 601

20.5 照貓畫虎——基本功訓練 603

20.5.1 基本功訓練1——閃爍的文字 603

20.5.2 基本功訓練2——實現背景顏色切換 604

20.5.3 基本功訓練3——繪製圓形 605

20.5.4 基本功訓練4——在螢幕中繪製兩個

相同的小球 605

20.5.5 基本功訓練5——繪製五角星 607

20.6 情景套用——拓展與實踐 609

20.6.1 情景套用1——繪製折線圖 609

20.6.2 情景套用2——輸出餅狀圖 611

20.6.3 情景套用3——畫條形圖 612

20.6.4 情景套用4——畫玫瑰花 615

20.6.5 情景套用5——選單界面設計 619

20.7 自我測試 625

20.8 行動指南 627

20.9 成功可以複製——IT大王王志東 627

第4部分 實戰篇

第21堂課 猜數字遊戲 631

視頻講解:23分鐘

21.1 概述 632

21.2 需求分析 632

21.3 系統設計 632

21.3.1 設計目標 632

21.3.2 開發及運行環境 632

21.4 程式預覽 632

21.5 設計思路 634

21.6 檔案引用 634

21.7 主要功能實現 634

21.7.1 主函式 634

21.7.2 猜數字 635

21.7.3 游標定位 637

第22堂課 五子棋遊戲 639

視頻講解:27分鐘

22.1 概述 640

22.2 需求分析 640

22.3 系統設計 640

22.3.1 設計目標 640

22.3.2 開發及運行環境 640

22.4 程式預覽 640

22.5 graphics.h檔案 641

22.6 設計思路 644

22.7 預處理 644

22.7.1 檔案引用 644

22.7.2 宏定義 645

22.8 聲明變數 645

22.9 函式聲明 645

22.10 主要功能實現 645

22.10.1 主函式 645

22.10.2 開始遊戲 647

22.10.3 繪製棋盤 647

22.10.4 繪製棋子 648

22.10.5 清除棋子 648

22.10.6 遊戲過程 648

22.10.7 判斷勝負 653

第23堂課 學生成績管理系統 657

視頻講解:40分鐘

23.1 需求分析 658

23.2 系統設計 658

23.3 功能設計 658

23.3.1 功能選擇界面 659

23.3.2 錄入學生成績信息 660

23.3.3 查詢學生成績信息 662

23.3.4 刪除學生成績信息 663

23.3.5 修改學生成績信息 664

23.3.6 插入學生成績信息 666

23.3.7 統計學生人數 668

第24堂課 圖書管理系統(MySQL) 669

視頻講解:32分鐘

24.1 概述 670

24.1.1 需求分析 670

24.1.2 開發工具選擇 670

24.2 系統設計 670

24.2.1 系統目標 670

24.2.2 系統功能結構 670

24.2.3 系統預覽 670

24.2.4 開發及運行環境 672

24.3 資料庫設計 673

24.3.1 安裝MySQL資料庫 673

24.3.2 啟動MySQL資料庫 676

24.3.3 創建資料庫 677

24.3.4 數據表結構 678

24.4 C語言開發資料庫程式的流程 678

24.5 C語言操作MySQL資料庫 680

24.5.1 MySQL常用資料庫操作函式 680

24.5.2 連線MySQL數據 682

24.5.3 查詢圖書表記錄 683

24.5.4 插入圖書表記錄 685

24.5.5 修改圖書表記錄 686

24.5.6 刪除圖書表記錄 687

24.6 檔案引用 687

24.7 變數和函式定義 688

24.8 主要功能模組設計 688

24.8.1 顯示主選單信息 688

24.8.2 顯示所有圖書信息 690

24.8.3 添加圖書信息 692

24.8.4 修改圖書信息 698

24.8.5 刪除圖書信息 704

24.8.6 查詢圖書信息 710

24.9 程式調試及錯誤處理 712

24.9.1 解決創建數據表為一個檔案的

問題 712

24.9.2 在創建數據表時,最後一句結尾沒有

標點 713

24.9.3 無法啟動MySQL服務 714

相關詞條

熱門詞條

聯絡我們