本書主要面向零基礎(chǔ)讀者,用實(shí)例引導(dǎo)讀者學(xué)習(xí),深入淺出地介紹C語言的相關(guān)知識(shí)和實(shí)戰(zhàn)技能。
本書第Ⅰ篇“基礎(chǔ)入門”主要講解C語言概述、C程序開發(fā)環(huán)境和開發(fā)步驟等;第Ⅱ篇“基礎(chǔ)知識(shí)”主要講解C語言基本語法、良好的編程習(xí)慣、數(shù)據(jù)的輸入和輸出、結(jié)構(gòu)化程序設(shè)計(jì)、數(shù)組、模塊化設(shè)計(jì)——函數(shù)等;第Ⅲ篇“進(jìn)階提高”主要介紹內(nèi)存的快捷方式——指針、結(jié)構(gòu)體與聯(lián)合體、鏈表、編譯預(yù)處理、文件、常見錯(cuò)誤及調(diào)試等;第Ⅳ篇“高級(jí)應(yīng)用”主要介紹數(shù)據(jù)結(jié)構(gòu)、常用算法、高級(jí)編程技術(shù)、網(wǎng)絡(luò)編程等;第Ⅴ篇“項(xiàng)目實(shí)戰(zhàn)”主要介紹停車場(chǎng)收費(fèi)管理系統(tǒng)、小型超市進(jìn)銷存管理系統(tǒng)等項(xiàng)目的設(shè)計(jì)開發(fā)。
本書所提供的電子資源中包含了與圖書內(nèi)容全程同步的教學(xué)視頻。此外,還贈(zèng)送了大量相關(guān)學(xué)習(xí)資料,以便讀者擴(kuò)展學(xué)習(xí)。
本書適合任何想學(xué)習(xí)C語言的讀者,無論讀者是否從事計(jì)算機(jī)相關(guān)行業(yè),是否接觸過C語言,均可通過學(xué)習(xí)本書快速掌握C語言的開發(fā)方法和技巧。
*零基礎(chǔ)、入門級(jí)的講解
無論讀者是否從事計(jì)算機(jī)相關(guān)行業(yè),是否接觸過C語言,是否使用C語言開發(fā)過項(xiàng)目,都能從本書中獲益。
*超多、實(shí)用、專業(yè)的范例和項(xiàng)目
本書結(jié)合實(shí)際工作中的范例,逐一講解C語言的各種知識(shí)和技術(shù)。之后以實(shí)際開發(fā)項(xiàng)目來總結(jié)本書所學(xué)內(nèi)容,幫助讀者在實(shí)戰(zhàn)中掌握知識(shí),輕松擁有項(xiàng)目經(jīng)驗(yàn)。
*隨時(shí)檢測(cè)自己的學(xué)習(xí)成果
每章首頁給出了“本章要點(diǎn)”,以便讀者明確學(xué)習(xí)方向,讀者可以隨時(shí)自我檢測(cè),鞏固所學(xué)知識(shí)。
*細(xì)致入微、貼心提示
本書在講解過程中使用了“提示”“注意”“技巧”等小欄目,幫助讀者在學(xué)習(xí)過程中更清楚地理解基本概念、
掌握相關(guān)操作,并輕松獲取實(shí)戰(zhàn)技巧。
*全程同步教學(xué)視頻
涵蓋本書所有知識(shí)點(diǎn),詳細(xì)講解每個(gè)范例及項(xiàng)目的開發(fā)過程及關(guān)鍵點(diǎn),幫助讀者更輕松地掌握書中所有的C語言程序設(shè)計(jì)知識(shí)。
*超多電子資源大放送
贈(zèng)送大量電子資源,包括本書范例的素材文件和結(jié)果文件、本書教學(xué) PPT、C語言標(biāo)準(zhǔn)庫函數(shù)查詢手冊(cè)、C語言常用查詢手冊(cè)、10套完整源代碼、全國計(jì)算機(jī)等級(jí)考試二級(jí)C語言考試大綱及應(yīng)試技巧、C語言常見面試題、C語言常見錯(cuò)誤及解決方案、C語言開發(fā)經(jīng)驗(yàn)及技巧大匯總、C語言程序員職業(yè)規(guī)劃、C語言程序員面試技巧。
*多平臺(tái)學(xué)習(xí)方式
可實(shí)現(xiàn)手機(jī)端、電腦端同步學(xué)習(xí)
張春燕,鄧淼磊,趙晨陽,龍馬高新教育團(tuán)隊(duì)的作者,龍馬高新教育,專業(yè)的計(jì)算機(jī)研究、教育機(jī)構(gòu),擁有近20年的圖書出版經(jīng)歷,與39所高校、8個(gè)行業(yè)協(xié)會(huì)、5家知名網(wǎng)站保持關(guān)系,屢獲全國優(yōu)秀暢銷書大獎(jiǎng),其推出的“從入門到精通”“完全自學(xué)手冊(cè)”“編程寶典”“完全自學(xué)手冊(cè)”“精通100%”“非常網(wǎng)絡(luò)6+1”等均成為業(yè)界知名圖書,受到百萬讀者的認(rèn)可和推薦。
第 Ⅰ 篇 基礎(chǔ)入門
第 1 章 C 語言概述
1.1 初學(xué)編程首選 C 語言 003
1.1.1 程序設(shè)計(jì)語言 003
1.1.2 C 語言在計(jì)算機(jī)領(lǐng)域的地位 003
1.1.3 C 語言的特點(diǎn)和應(yīng)用領(lǐng)域 004
1.1.4 C 語言學(xué)習(xí)路線 004
1.2 快速學(xué)會(huì)看懂 C 程序 005
1.2.1 一個(gè)簡(jiǎn)單的 C 程序 005
1.2.2 C 程序的基本結(jié)構(gòu) 006
1.2.3 C 程序從編寫到運(yùn)行的過程 008
第 2 章 C 程序開發(fā)環(huán)境和開發(fā)步驟
2.1 Windows 下開發(fā) C 程序 010
2.1.1 安裝配置運(yùn)行環(huán)境 010
2.1.2 使用 Visual Studio 2015 編寫、運(yùn)行 C 程序 016
2.1.3 使用 Code::Blocks 編寫和運(yùn)行 C 程序 018
2.2 Linux 下開發(fā) C 程序 019
2.2.1 GCC 使用介紹 019
2.2.2 GCC 編譯 C 程序 019
2.3 制作我的第 一個(gè) C 程序 021
第 Ⅱ 篇 基礎(chǔ)知識(shí)
第 3 章 C 語言基本語法
3.1 標(biāo)識(shí)符和關(guān)鍵字 025
3.1.1 標(biāo)識(shí)符 025
3.1.2 關(guān)鍵字 025
3.2 數(shù)據(jù)類型 025
3.2.1 常量 026
3.2.2 變量 029
3.2.3 整型數(shù)據(jù) 031
3.2.4 實(shí)型數(shù)據(jù) 033
3.2.5 字符型數(shù)據(jù) 034
3.2.6 數(shù)據(jù)類型轉(zhuǎn)換 035
3.3 運(yùn)算符與表達(dá)式 038
3.3.1 運(yùn)算符 038
3.3.2 表達(dá)式 039
3.3.3 算術(shù)運(yùn)算符和表達(dá)式 039
3.3.4 關(guān)系運(yùn)算符和表達(dá)式 040
3.3.5 邏輯運(yùn)算符和表達(dá)式 041
3.3.6 賦值運(yùn)算符 043
3.3.7 自增、自減運(yùn)算符 044
3.3.8 逗號(hào)運(yùn)算符 045
3.3.9 條件運(yùn)算符 046
3.3.10 位運(yùn)算符 047
3.4 運(yùn)算符的優(yōu)先級(jí)與結(jié)合方向 052
3.4.1 算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 052
3.4.2 關(guān)系運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 052
3.4.3 邏輯運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 053
3.4.4 賦值運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 053
3.5 綜合案例——四則運(yùn)算計(jì)算器 053
3.6 疑難解答 054
第 4 章 養(yǎng)成良好的編程習(xí)慣
4.1 C 程序的格式 056
4.2 良好的編程風(fēng)格 057
4.2.1 命名規(guī)則 057
4.2.2 程序的版式 059
4.2.3 表達(dá)式和基本語句 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 綜合案例——學(xué)生基本信息的輸入和輸出 083
5.5 疑難解答 084
第 6 章 結(jié)構(gòu)化程序設(shè)計(jì)
6.1 結(jié)構(gòu)化程序開發(fā)的過程 086
6.1.1 核心思想 086
6.1.2 流程圖 086
6.2 順序結(jié)構(gòu)程序設(shè)計(jì) 088
6.3 選擇結(jié)構(gòu)程序設(shè)計(jì) 090
6.3.1 單分支結(jié)構(gòu)語句 090
6.3.2 雙分支結(jié)構(gòu)語句 092
6.3.3 多分支結(jié)構(gòu)語句 093
6.3.4 分支語句的嵌套 095
6.3.5 switch 選擇語句 096
6.4 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 098
6.4.1 while 循環(huán)結(jié)構(gòu)與執(zhí)行流程 098
6.4.2 for 循環(huán)結(jié)構(gòu)與執(zhí)行流程 100
6.4.3 do-while 循環(huán)結(jié)構(gòu)與執(zhí)行流程 104
6.4.4 循環(huán)結(jié)構(gòu)嵌套 106
6.4.5 輔助語句 break 和 continue 107
6.5 綜合案例——改良版的計(jì)算器 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ù)組應(yīng)用舉例 122
7.3 二維數(shù)組 125
7.3.1 二維數(shù)組的定義 125
7.3.2 二維數(shù)組的初始化 127
7.3.3 二維數(shù)組元素的操作 127
7.3.4 二維數(shù)組應(yīng)用舉例 129
7.3.5 多維數(shù)組 131
7.4 字符數(shù)組 132
7.4.1 字符數(shù)組的定義與初始化 132
7.4.2 字符串和字符串結(jié)束標(biāo)志 134
7.4.3 字符數(shù)組的輸入與輸出 135
7.4.4 字符串處理函數(shù) 137
7.4.5 字符數(shù)組應(yīng)用舉例 141
7.5 綜合案例——加減運(yùn)算考試程序 142
7.6 疑難解答 144
第 8 章 模塊化設(shè)計(jì)—函數(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 實(shí)參與形參 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 變量的存儲(chǔ)類別 165
8.7.1 自動(dòng)變量 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
第 Ⅲ 篇 進(jìn)階提高
第 9 章 內(nèi)存的快捷方式—指針
9.1 指針和地址 177
9.1.1 指針的含義 177
9.1.2 目標(biāo)單元與間接存取 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 使用指針的注意事項(xiàng) 202
9.9 綜合案例—數(shù)值排序 202
9.10 疑難解答 204
第 10章 結(jié)構(gòu)體與聯(lián)合體
10.1 結(jié)構(gòu)體的使用場(chǎng)景 206
10.2 結(jié)構(gòu)體類型與結(jié)構(gòu)體變量 206
10.2.1 定義結(jié)構(gòu)體類型 207
10.2.2 結(jié)構(gòu)體變量的定義 208
10.2.3 結(jié)構(gòu)體變量的初始化 210
10.2.4 結(jié)構(gòu)體變量的引用 211
10.2.5 指向結(jié)構(gòu)體變量的指針 213
10.3 結(jié)構(gòu)體數(shù)組 215
10.3.1 結(jié)構(gòu)體數(shù)組的定義 215
10.3.2 結(jié)構(gòu)體數(shù)組的初始化和引用 217
10.3.3 指向結(jié)構(gòu)體數(shù)組的指針 219
10.4 結(jié)構(gòu)體與函數(shù) 221
10.4.1 結(jié)構(gòu)體作為函數(shù)的參數(shù) 221
10.4.2 結(jié)構(gòu)體作為函數(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 鏈表的特點(diǎn)和原理 234
11.1.1 為什么使用鏈表 234
11.1.2 動(dòng)態(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 綜合案例——學(xué)生信息管理系統(tǒng) 245
11.5 疑難解答 250
第 12章 編譯預(yù)處理
12.1 什么是預(yù)處理指令 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ù)月用電量計(jì)算用戶應(yīng)繳電費(fèi) 266
12.6 疑難解答 267
第 13章 文件
13.1 文件的概念 270
13.1.1 文本流與二進(jìn)制流 270
13.1.2 文件類型指針 271
13.2 文件的打開和關(guān)閉 271
13.3 文件的順序讀寫 273
13.3.1 文件讀寫字符 273
13.3.2 文件讀寫字符串 275
13.3.3 格式化方式讀寫文件 278
13.3.4 二進(jìn)制文件的讀寫 279
13.4 文件的隨機(jī)讀寫 283
13.5 綜合案例——對(duì)文件進(jìn)行加解密 285
13.6 疑難解答 288
第 14章 常見錯(cuò)誤及調(diào)試
14.1 常見錯(cuò)誤的類型 290
14.1.1 語法錯(cuò)誤 290
14.1.2 語義錯(cuò)誤 293
14.1.3 內(nèi)存錯(cuò)誤 296
14.2 使用Visual Studio 2015調(diào)試C程序 299
14.3 使用Code::Blocks調(diào)試C程序 301
14.4 常用調(diào)試技巧及糾錯(cuò) 304
第、 篇 高級(jí)應(yīng)用
第 15章 簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)
15.1 數(shù)據(jù)結(jié)構(gòu)概述 309
15.2 !310
15.2.1 棧的基本運(yùn)算 310
15.2.2 順序!310
15.2.3 鏈!311
15.2.4 棧的應(yīng)用 311
15.3 隊(duì)列 316
15.3.1 隊(duì)列的基本運(yùn)算 316
15.3.2 順序隊(duì)列 316
15.3.3 鏈隊(duì)列 317
15.3.4 隊(duì)列的應(yīng)用 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 綜合案例——利用棧進(jìn)行數(shù)據(jù)的遍歷、排序等操作 335
15.8 疑難解答 338
第 16章 常用算法
16.1 算法的概念 340
16.1.1 算法的特征 340
16.1.2 算法設(shè)計(jì)的基本方法 340
16.1.3 算法的描述 340
16.2 算法復(fù)雜度 342
16.2.1 時(shí)間復(fù)雜度 342
16.2.2 空間復(fù)雜度 343
16.3 遞歸算法及示例 344
16.4 窮舉算法及示例 345
16.5 分治算法及示例 346
16.6 貪心算法及示例 348
16.7 動(dòng)態(tài)規(guī)劃算法及示例 352
第 17章 高級(jí)編程技術(shù)
17.1 屏幕文本輸出 356
17.1.1 文本方式的控制 356
17.1.2 窗口設(shè)置和文本輸出 356
17.1.3 清屏和光標(biāo)控制 359
17.1.4 文本移動(dòng)和存取 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 編寫中斷服務(wù)程序 376
17.3.2 安裝中斷服務(wù)程序 377
17.3.3 中斷服務(wù)程序的激活 377
第 18章 網(wǎng)絡(luò)編程
18.1 網(wǎng)絡(luò)基礎(chǔ)知識(shí) 380
18.1.1 計(jì)算機(jī)網(wǎng)絡(luò) 380
18.1.2 TCP/IP協(xié)議 380
18.1.3 端口 382
18.1.4 套接字 382
18.2 基于TCP的網(wǎng)絡(luò)編程 383
18.2.1 服務(wù)器端實(shí)現(xiàn) 384
18.2.2 客戶端實(shí)現(xiàn) 384
18.3 基于UDP的網(wǎng)絡(luò)編程 386
18.3.1 服務(wù)器端實(shí)現(xiàn) 387
18.3.2 客戶端實(shí)現(xiàn) 387
第、 篇項(xiàng)目實(shí)戰(zhàn)
第 19章 停車場(chǎng)收費(fèi)管理系統(tǒng)
19.1 需求分析 393
19.2 概要設(shè)計(jì) 393
19.2.1 系統(tǒng)目標(biāo) 393
19.2.2 功能結(jié)構(gòu) 393
19.2.3 數(shù)據(jù)結(jié)構(gòu) 394
19.3 詳細(xì)設(shè)計(jì) 394
19.3.1 主函數(shù)模塊 395
19.3.2 停車管理模塊 397
19.3.3 取車管理模塊 399
19.3.4 收費(fèi)標(biāo)準(zhǔn)管理模塊 401
19.3.5 查詢統(tǒng)計(jì)模塊 402
19.4 程序調(diào)試及系統(tǒng)測(cè)試 407
第 20章 小型超市進(jìn)銷存管理系統(tǒng)
20.1 需求分析 410
20.2 概要設(shè)計(jì) 410
20.2.1 系統(tǒng)目標(biāo) 410
20.2.2 功能結(jié)構(gòu) 410
20.2.3 數(shù)據(jù)結(jié)構(gòu) 410
20.3 詳細(xì)設(shè)計(jì) 412
20.3.1 主函數(shù)模塊 413
20.3.2 用戶管理模塊 417
20.3.3 進(jìn)貨管理模塊 422
20.3.4 銷售管理模塊 425
20.3.5 庫存管理模塊 429
20.3.6 查詢統(tǒng)計(jì)模塊 430
20.4 程序調(diào)試及系統(tǒng)測(cè)試 433