本書主要面向零基礎讀者,用實例引導讀者學習,深入淺出地介紹C語言的相關知識和實戰(zhàn)技能。
本書第Ⅰ篇“基礎入門”主要講解C語言概述、C程序開發(fā)環(huán)境和開發(fā)步驟等;第Ⅱ篇“基礎知識”主要講解C語言基本語法、良好的編程習慣、數(shù)據(jù)的輸入和輸出、結構化程序設計、數(shù)組、模塊化設計——函數(shù)等;第Ⅲ篇“進階提高”主要介紹內(nèi)存的快捷方式——指針、結構體與聯(lián)合體、鏈表、編譯預處理、文件、常見錯誤及調(diào)試等;第Ⅳ篇“高級應用”主要介紹數(shù)據(jù)結構、常用算法、高級編程技術、網(wǎng)絡編程等;第Ⅴ篇“項目實戰(zhàn)”主要介紹停車場收費管理系統(tǒng)、小型超市進銷存管理系統(tǒng)等項目的設計開發(fā)。
本書所提供的電子資源中包含了與圖書內(nèi)容全程同步的教學視頻。此外,還贈送了大量相關學習資料,以便讀者擴展學習。
本書適合任何想學習C語言的讀者,無論讀者是否從事計算機相關行業(yè),是否接觸過C語言,均可通過學習本書快速掌握C語言的開發(fā)方法和技巧。
*零基礎、入門級的講解
無論讀者是否從事計算機相關行業(yè),是否接觸過C語言,是否使用C語言開發(fā)過項目,都能從本書中獲益。
*超多、實用、專業(yè)的范例和項目
本書結合實際工作中的范例,逐一講解C語言的各種知識和技術。之后以實際開發(fā)項目來總結本書所學內(nèi)容,幫助讀者在實戰(zhàn)中掌握知識,輕松擁有項目經(jīng)驗。
*隨時檢測自己的學習成果
每章首頁給出了“本章要點”,以便讀者明確學習方向,讀者可以隨時自我檢測,鞏固所學知識。
*細致入微、貼心提示
本書在講解過程中使用了“提示”“注意”“技巧”等小欄目,幫助讀者在學習過程中更清楚地理解基本概念、
掌握相關操作,并輕松獲取實戰(zhàn)技巧。
*全程同步教學視頻
涵蓋本書所有知識點,詳細講解每個范例及項目的開發(fā)過程及關鍵點,幫助讀者更輕松地掌握書中所有的C語言程序設計知識。
*超多電子資源大放送
贈送大量電子資源,包括本書范例的素材文件和結果文件、本書教學 PPT、C語言標準庫函數(shù)查詢手冊、C語言常用查詢手冊、10套完整源代碼、全國計算機等級考試二級C語言考試大綱及應試技巧、C語言常見面試題、C語言常見錯誤及解決方案、C語言開發(fā)經(jīng)驗及技巧大匯總、C語言程序員職業(yè)規(guī)劃、C語言程序員面試技巧。
*多平臺學習方式
可實現(xiàn)手機端、電腦端同步學習
張春燕,鄧淼磊,趙晨陽,龍馬高新教育團隊的作者,龍馬高新教育,專業(yè)的計算機研究、教育機構,擁有近20年的圖書出版經(jīng)歷,與39所高校、8個行業(yè)協(xié)會、5家知名網(wǎng)站保持關系,屢獲全國優(yōu)秀暢銷書大獎,其推出的“從入門到精通”“完全自學手冊”“編程寶典”“完全自學手冊”“精通100%”“非常網(wǎng)絡6+1”等均成為業(yè)界知名圖書,受到百萬讀者的認可和推薦。
第 Ⅰ 篇 基礎入門
第 1 章 C 語言概述
1.1 初學編程首選 C 語言 003
1.1.1 程序設計語言 003
1.1.2 C 語言在計算機領域的地位 003
1.1.3 C 語言的特點和應用領域 004
1.1.4 C 語言學習路線 004
1.2 快速學會看懂 C 程序 005
1.2.1 一個簡單的 C 程序 005
1.2.2 C 程序的基本結構 006
1.2.3 C 程序從編寫到運行的過程 008
第 2 章 C 程序開發(fā)環(huán)境和開發(fā)步驟
2.1 Windows 下開發(fā) C 程序 010
2.1.1 安裝配置運行環(huán)境 010
2.1.2 使用 Visual Studio 2015 編寫、運行 C 程序 016
2.1.3 使用 Code::Blocks 編寫和運行 C 程序 018
2.2 Linux 下開發(fā) C 程序 019
2.2.1 GCC 使用介紹 019
2.2.2 GCC 編譯 C 程序 019
2.3 制作我的第 一個 C 程序 021
第、 篇 基礎知識
第 3 章 C 語言基本語法
3.1 標識符和關鍵字 025
3.1.1 標識符 025
3.1.2 關鍵字 025
3.2 數(shù)據(jù)類型 025
3.2.1 常量 026
3.2.2 變量 029
3.2.3 整型數(shù)據(jù) 031
3.2.4 實型數(shù)據(jù) 033
3.2.5 字符型數(shù)據(jù) 034
3.2.6 數(shù)據(jù)類型轉(zhuǎn)換 035
3.3 運算符與表達式 038
3.3.1 運算符 038
3.3.2 表達式 039
3.3.3 算術運算符和表達式 039
3.3.4 關系運算符和表達式 040
3.3.5 邏輯運算符和表達式 041
3.3.6 賦值運算符 043
3.3.7 自增、自減運算符 044
3.3.8 逗號運算符 045
3.3.9 條件運算符 046
3.3.10 位運算符 047
3.4 運算符的優(yōu)先級與結合方向 052
3.4.1 算術運算符的優(yōu)先級和結合性 052
3.4.2 關系運算符的優(yōu)先級和結合性 052
3.4.3 邏輯運算符的優(yōu)先級和結合性 053
3.4.4 賦值運算符的優(yōu)先級和結合性 053
3.5 綜合案例——四則運算計算器 053
3.6 疑難解答 054
第 4 章 養(yǎng)成良好的編程習慣
4.1 C 程序的格式 056
4.2 良好的編程風格 057
4.2.1 命名規(guī)則 057
4.2.2 程序的版式 059
4.2.3 表達式和基本語句 061
4.2.4 函數(shù) 065
4.2.5 內(nèi)存管理 066
4.2.6 注釋 067
第 5 章 數(shù)據(jù)的輸入和輸出
5.1 C 語句介紹 070
5.2 賦值語句 071
5.3 輸入和輸出 073
5.3.1 字符輸入和輸出函數(shù) 073
5.3.2 格式輸入和輸出函數(shù) 075
5.4 綜合案例——學生基本信息的輸入和輸出 083
5.5 疑難解答 084
第 6 章 結構化程序設計
6.1 結構化程序開發(fā)的過程 086
6.1.1 核心思想 086
6.1.2 流程圖 086
6.2 順序結構程序設計 088
6.3 選擇結構程序設計 090
6.3.1 單分支結構語句 090
6.3.2 雙分支結構語句 092
6.3.3 多分支結構語句 093
6.3.4 分支語句的嵌套 095
6.3.5 switch 選擇語句 096
6.4 循環(huán)結構程序設計 098
6.4.1 while 循環(huán)結構與執(zhí)行流程 098
6.4.2 for 循環(huán)結構與執(zhí)行流程 100
6.4.3 do-while 循環(huán)結構與執(zhí)行流程 104
6.4.4 循環(huán)結構嵌套 106
6.4.5 輔助語句 break 和 continue 107
6.5 綜合案例——改良版的計算器 110
6.6 疑難解答 113
第 7 章 數(shù)組
7.1 數(shù)組概述 116
7.2 一維數(shù)組 116
7.2.1 一維數(shù)組的定義 116
7.2.2 一維數(shù)組的初始化 118
7.2.3 一維數(shù)組元素的操作 118
7.2.4 一維數(shù)組應用舉例 122
7.3 二維數(shù)組 125
7.3.1 二維數(shù)組的定義 125
7.3.2 二維數(shù)組的初始化 127
7.3.3 二維數(shù)組元素的操作 127
7.3.4 二維數(shù)組應用舉例 129
7.3.5 多維數(shù)組 131
7.4 字符數(shù)組 132
7.4.1 字符數(shù)組的定義與初始化 132
7.4.2 字符串和字符串結束標志 134
7.4.3 字符數(shù)組的輸入與輸出 135
7.4.4 字符串處理函數(shù) 137
7.4.5 字符數(shù)組應用舉例 141
7.5 綜合案例——加減運算考試程序 142
7.6 疑難解答 144
第 8 章 模塊化設計—函數(shù)
8.1 為什么使用函數(shù) 146
8.2 函數(shù)的定義與分類 146
8.2.1 函數(shù)的定義 146
8.2.2 函數(shù)的分類 147
8.2.3 無參函數(shù) 148
8.2.4 有參函數(shù) 148
8.3 函數(shù)的參數(shù)和返回值 149
8.3.1 實參與形參 149
8.3.2 函數(shù)的返回值 152
8.4 函數(shù)的調(diào)用 153
8.4.1 函數(shù)原型 154
8.4.2 函數(shù)的一般調(diào)用 155
8.4.3 函數(shù)的嵌套調(diào)用 156
8.4.4 函數(shù)的遞歸調(diào)用 158
8.5 數(shù)組作為函數(shù)參數(shù) 161
8.5.1 數(shù)組元素作為函數(shù)參數(shù) 161
8.5.2 數(shù)組名作為函數(shù)參數(shù) 162
8.6 變量的作用域 163
8.6.1 局部變量 164
8.6.2 全局變量 164
8.7 變量的存儲類別 165
8.7.1 自動變量 165
8.7.2 靜態(tài)變量 166
8.7.3 寄存器變量 168
8.7.4 外部變量 168
8.8 內(nèi)部函數(shù)和外部函數(shù) 169
8.9 綜合案例——在給定區(qū)間內(nèi)解方程 171
8.10 疑難解答 172
第、 篇 進階提高
第 9 章 內(nèi)存的快捷方式—指針
9.1 指針和地址 177
9.1.1 指針的含義 177
9.1.2 目標單元與間接存取 177
9.2 指針變量 178
9.2.1 定義指針變量 179
9.2.2 引用指針變量 181
9.2.3 指針變量作為函數(shù)參數(shù) 183
9.3 指針與數(shù)組 184
9.3.1 指向數(shù)組元素的指針 184
9.3.2 指向數(shù)組的指針 185
9.3.3 通過指針引用多維數(shù)組 186
9.3.4 指向數(shù)組的指針作為函數(shù)參數(shù) 187
9.4 指針與字符串 188
9.4.1 字符串指針 188
9.4.2 指針訪問字符串 190
9.4.3 字符串指針作為函數(shù)參數(shù) 193
9.5 指針與函數(shù) 194
9.5.1 函數(shù)指針 194
9.5.2 指針型函數(shù) 196
9.5.3 函數(shù)指針作為函數(shù)參數(shù) 197
9.5.4 void 指針 199
9.6 指針的指針 200
9.7 使用 const 修飾指針變量 201
9.8 使用指針的注意事項 202
9.9 綜合案例—數(shù)值排序 202
9.10 疑難解答 204
第 10章 結構體與聯(lián)合體
10.1 結構體的使用場景 206
10.2 結構體類型與結構體變量 206
10.2.1 定義結構體類型 207
10.2.2 結構體變量的定義 208
10.2.3 結構體變量的初始化 210
10.2.4 結構體變量的引用 211
10.2.5 指向結構體變量的指針 213
10.3 結構體數(shù)組 215
10.3.1 結構體數(shù)組的定義 215
10.3.2 結構體數(shù)組的初始化和引用 217
10.3.3 指向結構體數(shù)組的指針 219
10.4 結構體與函數(shù) 221
10.4.1 結構體作為函數(shù)的參數(shù) 221
10.4.2 結構體作為函數(shù)的返回值 223
10.5 聯(lián)合體 224
10.5.1 聯(lián)合體類型 224
10.5.2 聯(lián)合體變量的定義 225
10.5.3 聯(lián)合體變量的引用 226
10.6 枚舉類型的定義和使用 228
10.7 綜合案例——教師基本信息的組織與管理 230
10.8 疑難解答 232
第 11章 鏈表
11.1 鏈表的特點和原理 234
11.1.1 為什么使用鏈表 234
11.1.2 動態(tài)內(nèi)存分配 235
11.2 鏈表的定義 238
11.3 單鏈表的操作 239
11.3.1 創(chuàng)建鏈表 240
11.3.2 輸出鏈表 242
11.3.3 查找操作 242
11.3.4 插入操作 243
11.3.5 刪除操作 245
11.4 綜合案例——學生信息管理系統(tǒng) 245
11.5 疑難解答 250
第 12章 編譯預處理
12.1 什么是預處理指令 252
12.2 宏定義 252
12.2.1 變量式宏定義 252
12.2.2 宏定義嵌套 256
12.2.3 宏定義范圍 257
12.2.4 函數(shù)式宏定義 258
12.2.5 多行宏定義 259
12.3 文件包含 260
12.3.1 什么是文件包含 260
12.3.2 使用文件包含 261
12.3.3 文件包含說明 262
12.4 條件編譯 262
12.4.1 條件編譯形式 263
12.4.2 調(diào)試中使用條件編譯 266
12.4.3 文件嵌套包含和條件編譯 266
12.5 綜合案例——根據(jù)月用電量計算用戶應繳電費 266
12.6 疑難解答 267
第 13章 文件
13.1 文件的概念 270
13.1.1 文本流與二進制流 270
13.1.2 文件類型指針 271
13.2 文件的打開和關閉 271
13.3 文件的順序讀寫 273
13.3.1 文件讀寫字符 273
13.3.2 文件讀寫字符串 275
13.3.3 格式化方式讀寫文件 278
13.3.4 二進制文件的讀寫 279
13.4 文件的隨機讀寫 283
13.5 綜合案例——對文件進行加解密 285
13.6 疑難解答 288
第 14章 常見錯誤及調(diào)試
14.1 常見錯誤的類型 290
14.1.1 語法錯誤 290
14.1.2 語義錯誤 293
14.1.3 內(nèi)存錯誤 296
14.2 使用Visual Studio 2015調(diào)試C程序 299
14.3 使用Code::Blocks調(diào)試C程序 301
14.4 常用調(diào)試技巧及糾錯 304
第、 篇 高級應用
第 15章 簡單的數(shù)據(jù)結構
15.1 數(shù)據(jù)結構概述 309
15.2 !310
15.2.1 棧的基本運算 310
15.2.2 順序!310
15.2.3 鏈棧 311
15.2.4 棧的應用 311
15.3 隊列 316
15.3.1 隊列的基本運算 316
15.3.2 順序隊列 316
15.3.3 鏈隊列 317
15.3.4 隊列的應用 317
15.4 樹 321
15.4.1 樹的基本概念 321
15.4.2 二叉樹及其基本性質(zhì) 322
15.4.3 二叉樹的遍歷 322
15.5 查找 324
15.5.1 順序查找 324
15.5.2 折半查找 326
15.5.3 二叉查找樹 328
15.6 排序 330
15.6.1 冒泡排序 330
15.6.2 快速排序 331
15.6.3 堆排序 333
15.7 綜合案例——利用棧進行數(shù)據(jù)的遍歷、排序等操作 335
15.8 疑難解答 338
第 16章 常用算法
16.1 算法的概念 340
16.1.1 算法的特征 340
16.1.2 算法設計的基本方法 340
16.1.3 算法的描述 340
16.2 算法復雜度 342
16.2.1 時間復雜度 342
16.2.2 空間復雜度 343
16.3 遞歸算法及示例 344
16.4 窮舉算法及示例 345
16.5 分治算法及示例 346
16.6 貪心算法及示例 348
16.7 動態(tài)規(guī)劃算法及示例 352
第 17章 高級編程技術
17.1 屏幕文本輸出 356
17.1.1 文本方式的控制 356
17.1.2 窗口設置和文本輸出 356
17.1.3 清屏和光標控制 359
17.1.4 文本移動和存取 359
17.2 圖形編程 361
17.2.1 圖形系統(tǒng)初始化 361
17.2.2 基本圖形函數(shù) 364
17.2.3 顏色函數(shù) 370
17.2.4 填充函數(shù) 373
17.3 中斷 376
17.3.1 編寫中斷服務程序 376
17.3.2 安裝中斷服務程序 377
17.3.3 中斷服務程序的激活 377
第 18章 網(wǎng)絡編程
18.1 網(wǎng)絡基礎知識 380
18.1.1 計算機網(wǎng)絡 380
18.1.2 TCP/IP協(xié)議 380
18.1.3 端口 382
18.1.4 套接字 382
18.2 基于TCP的網(wǎng)絡編程 383
18.2.1 服務器端實現(xiàn) 384
18.2.2 客戶端實現(xiàn) 384
18.3 基于UDP的網(wǎng)絡編程 386
18.3.1 服務器端實現(xiàn) 387
18.3.2 客戶端實現(xiàn) 387
第、 篇項目實戰(zhàn)
第 19章 停車場收費管理系統(tǒng)
19.1 需求分析 393
19.2 概要設計 393
19.2.1 系統(tǒng)目標 393
19.2.2 功能結構 393
19.2.3 數(shù)據(jù)結構 394
19.3 詳細設計 394
19.3.1 主函數(shù)模塊 395
19.3.2 停車管理模塊 397
19.3.3 取車管理模塊 399
19.3.4 收費標準管理模塊 401
19.3.5 查詢統(tǒng)計模塊 402
19.4 程序調(diào)試及系統(tǒng)測試 407
第 20章 小型超市進銷存管理系統(tǒng)
20.1 需求分析 410
20.2 概要設計 410
20.2.1 系統(tǒng)目標 410
20.2.2 功能結構 410
20.2.3 數(shù)據(jù)結構 410
20.3 詳細設計 412
20.3.1 主函數(shù)模塊 413
20.3.2 用戶管理模塊 417
20.3.3 進貨管理模塊 422
20.3.4 銷售管理模塊 425
20.3.5 庫存管理模塊 429
20.3.6 查詢統(tǒng)計模塊 430
20.4 程序調(diào)試及系統(tǒng)測試 433