圖書信息
學通C語言的24堂課 明日科技 劉彬彬、孫秀梅 編著
ISBN 9787302257288
2011年6月出版
定價:79.80元含(含光碟1張)
16開
內容簡介
本書以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