注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計C編程從入門到實踐

C編程從入門到實踐

C編程從入門到實踐

定 價:¥89.00

作 者: 王長青 著
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787115500687 出版時間: 2019-06-01 包裝: 平裝
開本: 16開 頁數(shù): 492 字?jǐn)?shù):  

內(nèi)容簡介

  本書循序漸進(jìn)、由淺入深地講解了C語言開發(fā)的技術(shù)。全書共25章。本書不僅介紹了C語言的基礎(chǔ)和核心知識(如開發(fā)工具、語法、運(yùn)算符、表達(dá)式、輸入/輸出、流程控制、數(shù)組、字符串、函數(shù)),還講解了C語言中的重點和難點(如指針、結(jié)構(gòu)體、共用體和枚舉、鏈表、位運(yùn)算、預(yù)編譯、文件操作、調(diào)試、內(nèi)存管理、高級編程技術(shù)、算法、數(shù)據(jù)結(jié)構(gòu)、網(wǎng)絡(luò)編程技術(shù)等)。此外,本書還通過4個綜合實例,介紹了C語言在綜合項目中的應(yīng)用。全書內(nèi)容以“技術(shù)解惑”和“范例演練”貫穿全書,引領(lǐng)讀者全面掌握C語言。本書不但適用C語言的初學(xué)者,也適合有一定C語言基礎(chǔ)的讀者學(xué)習(xí),還可以作為大專院校相關(guān)專業(yè)的師生用書和培訓(xùn)學(xué)校的教材。

作者簡介

  王長青,華為通信工程師,現(xiàn)負(fù)責(zé)電信BSS領(lǐng)域相關(guān)產(chǎn)品的詳細(xì)架構(gòu)設(shè)計和開發(fā)實施工作。熟悉面向?qū)ο蠹夹g(shù)及UML,15年C和C++開發(fā)經(jīng)驗,10年C#開發(fā)經(jīng)驗,熟悉相關(guān)的編譯原理、數(shù)據(jù)結(jié)構(gòu)、算法。精通Unix、Linux操作系統(tǒng),且能熟練使用常用操作命令,并且熟悉該環(huán)境下的C/C++開發(fā)。

圖書目錄

目  錄
第1章 C語言之定位 1
1.1 計算機(jī)應(yīng)用基礎(chǔ) 2
1.1.1 中央處理器 2
1.1.2 位和字節(jié) 2
1.1.3 二進(jìn)制 2
1.1.4 編碼格式 3
1.2 C語言的誕生 4
1.3 第一印象的建立 5
1.4 理解編譯系統(tǒng)—學(xué)習(xí)的第一步 6
1.5 技術(shù)解惑 7
1.5.1 學(xué)習(xí)C語言還有用嗎 7
1.5.2 怎樣學(xué)好C語言 8
1.5.3 學(xué)好C語言的建議 8
1.6 課后練習(xí) 8
第2章 C語言開發(fā)工具詳解 9
2.1 用DOS開發(fā)C程序 10
2.1.1 安裝Turbo C 3.0 10
2.1.2 使用Turbo C 3.0 10
2.2 在Windows環(huán)境下使用
Visual Studio 2017 11
2.2.1 安裝Visual Studio 2017 11
2.2.2 使用Visual Studio 2017開發(fā)一個C程序 15
2.3 使用輕量級開發(fā)工具DEV C++ 18
2.3.1 安裝DEV C++ 18
2.3.2 使用DEV C++運(yùn)行一個C程序 20
2.4 使用Vsiual C++ 6.0開發(fā)C程序 20
2.5 使用手機(jī)開發(fā)C程序 22
2.6 技術(shù)解惑 23
2.6.1 安裝Visual Studio 2017時遇到的常見問題 23
2.6.2 在Windows 7中安裝Visual Studio時遇到的常見問題 24
2.7 課后練習(xí) 24
第3章 程序員基本素質(zhì)的培養(yǎng) 25
3.1 養(yǎng)成好的命名習(xí)慣 26
3.2 C程序文件結(jié)構(gòu) 26
3.2.1 C程序的組成部分 26
3.2.2 C程序的格式總結(jié) 27
3.3 養(yǎng)成好的C語言編程風(fēng)格 28
3.3.1 隨時使用縮進(jìn)格式 28
3.3.2 注意大括號的位置 28
3.3.3 函數(shù)的規(guī)則 29
3.3.4 注意注釋 29
3.4 如何成為一名優(yōu)秀的程序員 29
3.5 技術(shù)解惑 31
3.6 課后練習(xí) 31
第4章 C語言語法 32
4.1 標(biāo)識符和關(guān)鍵字 33
4.2 最基本的數(shù)據(jù)類型 33
4.3 常量和變量 34
4.3.1 常量 35
4.3.2 變量 36
4.4 整型數(shù)據(jù) 37
4.4.1 整型常量 38
4.4.2 整型變量 39
4.5 實型數(shù)據(jù) 41
4.5.1 實型常量 41
4.5.2 實型變量 42
4.5.3 實型常量的類型 43
4.6 字符型數(shù)據(jù) 43
4.6.1 字符常量 43
4.6.2 字符串常量 45
4.6.3 字符變量 46
4.7 初始化變量 47
4.8 整型、實型和字符型數(shù)據(jù)間的運(yùn)算總結(jié) 47
4.8.1 自動轉(zhuǎn)換 47
4.8.2 強(qiáng)制轉(zhuǎn)換 49
4.9 技術(shù)解惑 49
4.9.1 在C語言中無符號整型變量和有符號整型變量
的定義 49
4.9.2 在C語言中字符變量的含義 50
4.9.3 如何理解字符型數(shù)據(jù)的取值范圍 50
4.9.4 怎樣將帶小數(shù)點的字符型數(shù)據(jù)轉(zhuǎn)換成浮點型 50
4.10 課后練習(xí) 51
第5章 運(yùn)算符和表達(dá)式 52
5.1 運(yùn)算符和表達(dá)式的概述 53
5.1.1 運(yùn)算符的種類 53
5.1.2 運(yùn)算符的優(yōu)先級 54
5.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 55
5.2.1 單目運(yùn)算符 55
5.2.2 雙目運(yùn)算符 56
5.3 賦值運(yùn)算符和賦值表達(dá)式 56
5.3.1 基本賦值運(yùn)算符 56
5.3.2 復(fù)合賦值運(yùn)算符 57
5.3.3 賦值表達(dá)式 58
5.4 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 59
5.4.1 關(guān)系運(yùn)算符 59
5.4.2 關(guān)系表達(dá)式 59
5.5 邏輯運(yùn)算符和邏輯表達(dá)式 60
5.5.1 邏輯運(yùn)算符 60
5.5.2 邏輯表達(dá)式 60
5.6 逗號運(yùn)算符和逗號表達(dá)式 62
5.6.1 逗號運(yùn)算符 62
5.6.2 逗號表達(dá)式 62
5.7 求字節(jié)數(shù)的運(yùn)算符 63
5.8 技術(shù)解惑 64
5.8.1 C語言運(yùn)算符優(yōu)先級的詳情 64
5.8.2 少數(shù)運(yùn)算符在規(guī)定表達(dá)式中的求值順序 65
5.8.3 在C語言中是否可以進(jìn)行混合運(yùn)算 66
5.8.4 在一個邏輯條件語句中常數(shù)項永遠(yuǎn)在左側(cè) 66
5.8.5 賦值處理的自動類型轉(zhuǎn)換 66
5.9 課后練習(xí) 67
第6章 輸入和輸出 68
6.1 C語句的初步知識 69
6.1.1 C語句簡介 69
6.1.2 賦值語句 70
6.2 打通任督二脈—數(shù)據(jù)輸入和輸出 71
6.2.1 putchar函數(shù) 71
6.2.2 getchar函數(shù) 72
6.2.3 printf函數(shù) 73
6.2.4 scanf函數(shù) 76
6.2.5 puts函數(shù) 79
6.2.6 C11標(biāo)準(zhǔn)函數(shù)gets_s 80
6.3 技術(shù)解惑 80
6.3.1 gets_s函數(shù)和scanf函數(shù)的區(qū)別 80
6.3.2 克服gets_s函數(shù)的缺陷 81
6.3.3 C語言的輸入和輸出問題 82
6.4 課后練習(xí) 83
第7章 流程控制 84
7.1 最常見的順序結(jié)構(gòu) 85
7.2 選擇結(jié)構(gòu) 85
7.2.1 單分支結(jié)構(gòu)語句 86
7.2.2 雙分支結(jié)構(gòu)語句 87
7.2.3 多分支結(jié)構(gòu)語句 90
7.2.4 條件運(yùn)算符和條件表達(dá)式 91
7.3 循環(huán)結(jié)構(gòu) 92
7.3.1 for語句 93
7.3.2 while語句 94
7.3.3 do…while語句 96
7.3.4 正確對待goto語句 97
7.3.5 break/continue跳躍 98
7.3.6 死循環(huán)/退出程序 99
7.4 技術(shù)解惑 100
7.4.1 循環(huán)中的低效問題 100
7.4.2 分析C語言循環(huán)語句的效率 101
7.4.3 使用for循環(huán)語句的注意事項 102
7.5 課后練習(xí) 102
第8章 數(shù)組和字符串—數(shù)據(jù)的存在形式 104
8.1 一維數(shù)組 105
8.1.1 定義一維數(shù)組 105
8.1.2 引用一維數(shù)組的元素 105
8.1.3 初始化一維數(shù)組 106
8.2 多維數(shù)組 107
8.2.1 二維數(shù)組的用法 107
8.2.2 多維數(shù)組的用法 110
8.3 字符數(shù)組與字符串 112
8.3.1 字符數(shù)組 112
8.3.2 字符串與字符數(shù)組 113
8.3.3 字符數(shù)組的輸入和輸出 113
8.4 字符串處理函數(shù) 115
8.4.1 測試字符串長度的函數(shù) 115
8.4.2 字符串大小寫轉(zhuǎn)換函數(shù) 115
8.4.3 字符串復(fù)制函數(shù) 116
8.4.4 字符串比較函數(shù) 117
8.4.5 字符串連接函數(shù) 119
8.4.6 其他的字符串函數(shù) 119
8.4.7 將字符串轉(zhuǎn)換成數(shù)值的函數(shù) 120
8.5 字符處理函數(shù) 121
8.5.1 字符檢測函數(shù) 121
8.5.2 字符大小寫轉(zhuǎn)換函數(shù) 122
8.6 技術(shù)解惑 123
8.6.1 數(shù)組的下標(biāo)總是從0開始嗎 123
8.6.2 C語言對數(shù)組的處理非常有效嗎 124
8.6.3 初始化一維數(shù)組的注意事項 124
8.6.4 冒泡排序 125
8.7 課后練習(xí) 125
第9章 函數(shù) 126
9.1 C函數(shù)的基礎(chǔ)知識 127
9.1.1 函數(shù)的分類 127
9.1.2 函數(shù)的定義 128
9.2 函數(shù)聲明和函數(shù)原型 129
9.3 函數(shù)的參數(shù) 131
9.3.1 形參和實參 131
9.3.2 以數(shù)組名作為函數(shù)的參數(shù) 132
9.3.3 以數(shù)組作為函數(shù)的參數(shù) 133
9.4 函數(shù)的返回值 135
9.5 函數(shù)的調(diào)用 136
9.5.1 函數(shù)調(diào)用的格式 136
9.5.2 函數(shù)的調(diào)用方式 137
9.5.3 被調(diào)函數(shù)的聲明方式 138
9.5.4 對調(diào)用函數(shù)的方式進(jìn)行深入分析 139
9.6 函數(shù)的嵌套調(diào)用和遞歸調(diào)用 140
9.6.1 函數(shù)的嵌套調(diào)用 140
9.6.2 函數(shù)的遞歸調(diào)用 142
9.7 變量的作用域和生存期 145
9.7.1 變量作用域 145
9.7.2 靜態(tài)存儲變量和動態(tài)存儲變量 147
9.8 C的內(nèi)部函數(shù)和外部函數(shù) 153
9.8.1 內(nèi)部函數(shù) 153
9.8.2 外部函數(shù) 153
9.9 庫函數(shù) 154
9.10 技術(shù)解惑 156
9.10.1 通過Turbo C深入分析 項目文件 156
9.10.2 要盡量避免不必要的函數(shù)調(diào)用 157
9.10.3 請確保函數(shù)的聲明和定義是靜態(tài)的 158
9.10.4 避免過長的main()函數(shù) 158
9.10.5 函數(shù)的地址也是數(shù)據(jù) 160
9.10.6 說明函數(shù)的時機(jī) 160
9.10.7 一個函數(shù)可以有多少個參數(shù) 161
9.10.8 如果一個函數(shù)沒有返回值,是否需要加入return
語句 162
9.10.9 在程序退出main函數(shù)之后還有可能執(zhí)行一部分代碼 162
9.10.10 exit()函數(shù)和return語句的差異 162
9.11 課后練習(xí) 162
第10章 指針 164
10.1 基本概念 165
10.2 變量的指針和指向變量的指針變量 165
10.2.1 聲明指針變量 166
10.2.2 指針變量的初始化 166
10.2.3 指針變量的引用 167
10.2.4 關(guān)于指針運(yùn)算符的說明 168
10.2.5 指針變量的運(yùn)算 169
10.2.6 以指針變量作為函數(shù)參數(shù) 170
10.2.7 void類型的指針 173
10.3 指針和數(shù)組 174
10.3.1 數(shù)組元素的指針 174
10.3.2 指向一維數(shù)組元素的指針變量 175
10.3.3 通過指針引用數(shù)組元素 176
10.3.4 以數(shù)組名作為函數(shù)參數(shù) 179
10.4 指針和多維數(shù)組 180
10.4.1 多維數(shù)組的地址 180
10.4.2 指向多維數(shù)組的指針變量 182
10.5 指針和字符串 185
10.5.1 指針訪問字符串 185
10.5.2 以字符串指針作為函數(shù)參數(shù) 186
10.5.3 字符串指針變量與字符數(shù)組的區(qū)別 187
10.6 指針數(shù)組和多級指針 188
10.6.1 指針數(shù)組 188
10.6.2 多級指針的定義和應(yīng)用 189
10.6.3 指向指針的指針 191
10.6.4 main函數(shù)的參數(shù) 191
10.7 指針函數(shù)和函數(shù)指針 192
10.7.1 指針函數(shù) 193
10.7.2 函數(shù)指針 193
10.8 技術(shù)解惑 195
10.8.1 初始化指針時的注意事項 195
10.8.2 為指針賦值時的注意事項 196
10.8.3 當(dāng)指針用于數(shù)組時的注意事項 197
10.8.4 在結(jié)構(gòu)中使用指針時的注意事項 197
10.8.5 避免不必要的內(nèi)存引用 198
10.8.6 避免懸空指針和野指針 198
10.8.7 數(shù)組下標(biāo)與指針的效率解析 199
10.8.8 使用指針時的常見錯誤 199
10.9 課后練習(xí) 200
第11章 數(shù)據(jù)的熔爐—結(jié)構(gòu)體、共用體和枚舉 202
11.1 結(jié)構(gòu)體 203
11.1.1 定義結(jié)構(gòu)體類型 203
11.1.2 定義結(jié)構(gòu)體類型變量 203
11.1.3 引用結(jié)構(gòu)體變量 205
11.1.4 初始化結(jié)構(gòu)體變量 206
11.2 結(jié)構(gòu)體數(shù)組 207
11.2.1 定義結(jié)構(gòu)體數(shù)組 208
11.2.2 初始化結(jié)構(gòu)體數(shù)組 209
11.2.3 引用結(jié)構(gòu)體數(shù)組 210
11.3 結(jié)構(gòu)體指針 211
11.3.1 定義結(jié)構(gòu)體指針變量 212
11.3.2 初始化結(jié)構(gòu)體指針變量 212
11.3.3 引用結(jié)構(gòu)體指針變量 212
11.3.4 指向結(jié)構(gòu)變量的指針 213
11.3.5 指向結(jié)構(gòu)體數(shù)組的指針 214
11.4 在函數(shù)中使用結(jié)構(gòu)體 214
11.4.1 結(jié)構(gòu)體變量和結(jié)構(gòu)體指針可以作為函數(shù)參數(shù) 215
11.4.2 函數(shù)可以返回結(jié)構(gòu)體類型的值 215
11.5 共用體(聯(lián)合) 217
11.5.1 定義共用體和共用體變量 217
11.5.2 引用和初始化共用體變量 218
11.6 枚舉 219
11.6.1 定義枚舉類型 219
11.6.2 定義枚舉變量 220
11.6.3 引用枚舉變量 220
11.7 typedef定義類型的作用 222
11.7.1 類型定義符typedef的基礎(chǔ) 222
11.7.2 使用typedef 223
11.8 技術(shù)解惑 224
11.8.1 可以省略結(jié)構(gòu)名嗎 224
11.8.2 是否可以定義一種通用數(shù)據(jù)類型以存儲任意類型的數(shù)據(jù) 224
11.8.3 結(jié)構(gòu)和共用體的區(qū)別 224
11.8.4 定義C結(jié)構(gòu)體的問題 225
11.9 課后練習(xí) 225
第12章 鏈表 226
12.1 動態(tài)內(nèi)存分配 227
12.1.1 動態(tài)內(nèi)存分配的作用 227
12.1.2 實現(xiàn)動態(tài)內(nèi)存分配及管理的方法 227
12.2 鏈表詳解 230
12.2.1 鏈表簡介 230
12.2.2 單向鏈表 231
12.2.3 創(chuàng)建一個鏈表 233
12.2.4 刪除整個鏈表 234
12.2.5 在鏈表中插入節(jié)點 234
12.2.6 在鏈表中刪除節(jié)點 235
12.2.7 雙向鏈表 236
12.2.8 循環(huán)鏈表 237
12.3 技術(shù)解惑 238
12.3.1 鏈表的總結(jié) 238
12.3.2 面試題—判斷單鏈表是否有環(huán) 242
12.3.3 面試題—實現(xiàn)單鏈表逆置 243
12.4 課后練習(xí) 244
第13章 位運(yùn)算 245
13.1 位運(yùn)算符和位運(yùn)算 246
13.1.1 按位與運(yùn)算 246
13.1.2 按位或運(yùn)算 247
13.1.3 按位異或運(yùn)算 247
13.1.4 取反運(yùn)算 248
13.1.5 左移運(yùn)算 248
13.1.6 右移運(yùn)算 249
13.1.7 位運(yùn)算的應(yīng)用實例 249
13.2 位域 251
13.2.1 位域的定義和位域變量的說明 251
13.2.2 位域的使用 252
13.3 技術(shù)解惑 252
13.3.1 二進(jìn)制補(bǔ)碼的運(yùn)算公式 252
13.3.2 面試題—從某個數(shù)中取出指定的某些位 252
13.3.3 位域的內(nèi)存對齊原則 253
13.4 課后練習(xí) 253
第14章 預(yù)編譯處理 255
14.1 預(yù)編譯的基礎(chǔ) 256
14.2 宏定義 256
14.2.1 不帶參數(shù)的宏定義 256
14.2.2 帶參數(shù)的宏定義 258
14.2.3 字符串化運(yùn)算符 260
14.2.4 并接運(yùn)算符 260
14.3 文件包含 260
14.4 條件編譯 262
14.4.1 #ifdef… #else…#endif命令 262
14.4.2 #if defined… #else…#endif 263
14.4.3 #ifndef… #else…#endif 263
14.4.4 #if !defined… #else…#endif 264
14.4.5 #ifdef…#elif… #elif…#else… #endif 264
14.5 技術(shù)解惑 265
14.5.1 還有其他預(yù)編譯指令嗎 265
14.5.2 帶參的宏定義和函數(shù)不同 266
14.5.3 C語言中預(yù)處理指令的總結(jié) 266
14.5.4 預(yù)編譯指令的本質(zhì) 267
14.5.5 sizeof(int)在預(yù)編譯階段是不會求值的 267
14.5.6 多行預(yù)處理指令的寫法 267
14.6 課后練習(xí) 267
第15章 文件操作 268
15.1 文件 269
15.1.1 文本文件 269
15.1.2 文件分類 270
15.2 文件指針 270
15.3 文件的打開與關(guān)閉 271
15.3.1 打開文件 271
15.3.2 關(guān)閉文件 273
15.4 文件讀寫 274
15.4.1 字符讀寫函數(shù) 274
15.4.2 字符串讀寫函數(shù) 276
15.4.3 格式化讀寫函數(shù) 278
15.4.4 數(shù)據(jù)塊讀寫函數(shù) 279
15.4.5 其他讀寫函數(shù) 280
15.5 文件的隨機(jī)讀寫 281
15.5.1 fseek函數(shù) 281
15.5.2 rewind函數(shù) 283
15.5.3 ftell函數(shù) 283
15.6 文件管理函數(shù) 284
15.6.1 刪除文件 284
15.6.2 重命名文件 285
15.6.3 復(fù)制文件 285
15.7 文件狀態(tài)檢測函數(shù) 286
15.7.1 feof函數(shù) 287
15.7.2 ferror函數(shù) 287
15.7.3 clearerr函數(shù) 287
15.8 Win32 API中的文件操作函數(shù) 288
15.8.1 創(chuàng)建和打開文件 288
15.8.2 讀取、寫入和刪除文件 289
15.9 技術(shù)解惑 289
15.9.1 文件指針是文件內(nèi)部的位置指針嗎 289
15.9.2 fseek函數(shù)的換行問題 290
15.9.3 怎樣解決gets函數(shù)的溢出問題 290
15.9.4 feof函數(shù)會多讀一個數(shù)據(jù)嗎 290
15.9.5 流和文件的關(guān)系 290
15.10 課后練習(xí) 291
第16章 錯誤和程序調(diào)試 292
16.1 常見錯誤分析 293
16.1.1 語法錯誤 293
16.1.2 邏輯錯誤(語義錯誤) 294
16.1.3 內(nèi)存錯誤 297
16.2 錯誤的檢出與分離 302
16.3 調(diào)試時的注意事項 303
16.3.1 上機(jī)前要先熟悉程序的運(yùn)行環(huán)境 303
16.3.2 在編程時要為調(diào)試做好準(zhǔn)備 304
16.4 技術(shù)解惑 304
16.4.1 編譯通過并不代表運(yùn)行正確 304
16.4.2 兩段代碼的編譯差別 305
16.4.3 調(diào)試程序的方法與技巧 305
16.5 課后練習(xí) 307
第17章 內(nèi)存管理 308
17.1 C語言中的內(nèi)存模型 309
17.2 棧和堆 309
17.2.1 棧操作 309
17.2.2 堆操作 310
17.3 動態(tài)管理 311
17.3.1 使用函數(shù)malloc動態(tài)分配內(nèi)存空間 311
17.3.2 使用函數(shù)calloc分配內(nèi)存空間并初始化 312
17.3.3 使用函數(shù)realloc重新分配內(nèi)存 313
17.3.4 使用函數(shù)free釋放內(nèi)存空間 314
17.4 課后練習(xí) 315
第18章 C語言高級編程技術(shù) 316
18.1 C語言的高級編程技術(shù) 317
18.2 分析文本的屏幕輸出和鍵盤輸入 317
18.2.1 實現(xiàn)文本的屏幕輸出 317
18.2.2 實現(xiàn)鍵盤輸入 322
18.2.3 應(yīng)用實例 323
18.3 分析圖形顯示方式和鼠標(biāo)輸入 324
18.3.1 初始化圖形模式 325
18.3.2 清屏和恢復(fù)顯示函數(shù) 326
18.3.3 建立獨立圖形程序 327
18.3.4 基本繪圖函數(shù) 327
18.3.5 線性函數(shù) 330
18.3.6 顏色控制函數(shù) 331
18.3.7 填色函數(shù)和畫圖函數(shù) 334
18.3.8 圖形窗口函數(shù) 336
18.3.9 分析圖形方式下的文本輸出函數(shù) 337
18.4 菜單設(shè)計 340
18.5 課后練習(xí) 343
第19章 算法—抓住程序的靈魂 344
19.1 我們對算法的理解 345
19.1.1 算法是程序的靈魂 345
19.1.2 何謂算法 345
19.1.3 算法的特性 346
19.2 算法表示法—流程圖 347
19.3 枚舉算法 348
19.3.1 枚舉算法的基礎(chǔ) 348
19.3.2 實戰(zhàn)演練—百錢買百雞 348
19.3.3 實戰(zhàn)演練—填寫運(yùn)算符 349
19.4 遞推算法 351
19.4.1 遞推算法的基礎(chǔ) 351
19.4.2 實戰(zhàn)演練—斐波那契數(shù)列 351
19.4.3 實戰(zhàn)演練—銀行存款 353
19.5 遞歸算法 354
19.5.1 遞歸算法的基礎(chǔ) 354
19.5.2 實戰(zhàn)演練—漢諾塔 355
19.5.3 實戰(zhàn)演練—階乘 357
19.6 分治算法 358
19.6.1 分治算法的基礎(chǔ) 358
19.6.2 實戰(zhàn)演練—大數(shù)相乘 358
19.6.3 實戰(zhàn)演練—歐洲冠軍杯
比賽日程安排 360
19.7 貪心算法 362
19.7.1 貪心算法的基礎(chǔ) 363
19.7.2 實戰(zhàn)演練—裝箱 363
19.7.3 實戰(zhàn)演練—找零方案 365
19.8 試探法算法 366
19.8.1 試探法算法的基礎(chǔ) 366
19.8.2 實戰(zhàn)演練—八皇后 367
19.8.3 實戰(zhàn)演練—體彩29選7的組合 368
19.9 迭代算法 370
19.9.1 迭代算法的基礎(chǔ) 370
19.9.2 實戰(zhàn)演練—求平方根 370
19.10 模擬算法 371
19.10.1 模擬算法的思路 371
19.10.2 實戰(zhàn)演練—猜數(shù)字游戲 372
19.10.3 實戰(zhàn)演練—擲骰子 游戲 372
19.11 技術(shù)解惑 374
19.11.1 衡量算法的標(biāo)準(zhǔn) 374
19.11.2 選擇使用枚舉法的時機(jī) 375
19.11.3 遞推和遞歸的差異 376
19.11.4 分治法解決問題的類型 376
19.11.5 分治算法的機(jī)理 376
19.11.6 貪婪算法并不是解決問題最優(yōu)方案的原因 376
19.11.7 回溯算法是否會影響算法效率 377
19.11.8 遞歸算法與迭代算法的區(qū)別 377
19.12 課后練習(xí) 377
第20章 數(shù)據(jù)結(jié)構(gòu) 379
20.1 使用線性表 380
20.1.1 線性表的特性 380
20.1.2 順序表操作 381
20.1.3 實戰(zhàn)演練—使用順序表操作函數(shù) 385
20.2 隊列 386
20.2.1 隊列的定義 386
20.2.2 實戰(zhàn)演練—實現(xiàn)一個排號程序 387
20.3 ?!?90
20.3.1 棧的定義 390
20.3.2 實戰(zhàn)演練—實現(xiàn)棧操作 390
20.4 技術(shù)解惑 392
20.4.1 線性表插入操作的時間復(fù)雜度 392
20.4.2 線性表刪除操作的時間復(fù)雜度 392
20.4.3 線性表按值查找操作的時間復(fù)雜度 392
20.4.4 線性表鏈接存儲操作的11種算法 393
20.4.5 堆和棧的區(qū)別 397
20.5 課后練習(xí) 397
第21章 網(wǎng)絡(luò)編程技術(shù) 398
21.1 OSI 7層網(wǎng)絡(luò)模型 399
21.2 TCP/IP 400
21.2.1 IP 401
21.2.2 TCP 402
21.2.3 UDP 403
21.2.4 ICMP 403
21.3 使用C語言開發(fā)網(wǎng)絡(luò)項目 404
21.3.1 網(wǎng)絡(luò)編程方式 404
21.3.2 網(wǎng)絡(luò)通信的基本流程 404
21.3.3 搭建開發(fā)環(huán)境 405
21.3.4 兩個常用的數(shù)據(jù)結(jié)構(gòu) 405
21.3.5 Windows套接字的基礎(chǔ) 406
21.4 常用的Winsock函數(shù) 406
21.4.1 WSAStartup函數(shù) 406
21.4.2 socket函數(shù) 407
21.4.3 inet_addr函數(shù) 407
21.4.4 gethostbyname函數(shù) 407
21.4.5 bind函數(shù) 407
21.4.6 connect函數(shù) 407
21.4.7 select函數(shù) 408
21.4.8 recv函數(shù) 408
21.4.9 sendto函數(shù) 408
21.5 MAC地址 408
21.6 NetBIOS編程 409
21.6.1 處理過程 409
21.6.2 NetBIOS命令 410
21.6.3 NetBIOS名字解析 410
21.6.4 NetBEUI 413
21.6.5 NetBIOS的范圍 413
21.6.6 NetBIOS控制塊 413
21.7 實戰(zhàn)演練—獲取當(dāng)前機(jī)器的MAC地址 413
21.7.1 選擇開發(fā)工具 413
21.7.2 設(shè)計MFC窗體 414
21.7.3 具體編碼 414
第22章 初入江湖—設(shè)計游戲項目 421
22.1 游戲功能描述 422
22.2 游戲總體設(shè)計 422
22.2.1 功能模塊設(shè)計 422
22.2.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計 424
22.2.3 構(gòu)成函數(shù)介紹 425
22.3 游戲的具體實現(xiàn) 426
22.3.1 預(yù)處理 426
22.3.2 主函數(shù) 429
22.3.3 初始化界面處理 430
22.3.4 時鐘中斷處理 431
22.3.5 成績、速度和幫助處理 431
22.3.6 滿行處理 432
22.3.7 方塊顯示和消除處理 434
22.3.8 方塊判斷處理 435
第23章 風(fēng)云再起—設(shè)計網(wǎng)絡(luò)項目 438
23.1 系統(tǒng)功能描述 439
23.2 系統(tǒng)總體設(shè)計 439
23.2.1 功能模塊設(shè)計 439
23.2.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計 441
23.2.3 構(gòu)成函數(shù)介紹 442
23.3 系統(tǒng)的具體實現(xiàn) 442
23.3.1 預(yù)處理 442
23.3.2 初始化處理 444
23.3.3 控制模塊 444
23.3.4 數(shù)據(jù)報解讀處理 446
23.3.5 Ping測試處理 447
23.3.6 主函數(shù) 449
第24章 爐火純青—學(xué)生成績管理系統(tǒng) 451
24.1 系統(tǒng)總體描述 452
24.1.1 項目開發(fā)的目標(biāo) 452
24.1.2 項目的意義 452
24.1.3 系統(tǒng)功能描述 452
24.2 系統(tǒng)總體設(shè)計 453
24.2.1 功能模塊設(shè)計 453
24.2.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計 454
24.2.3 構(gòu)成函數(shù)介紹 455
24.3 系統(tǒng)的具體實現(xiàn) 456
24.3.1 預(yù)處理 456
24.3.2 主函數(shù) 457
24.3.3 系統(tǒng)主菜單函數(shù) 458
24.3.4 表格顯示信息 458
24.3.5 信息查找定位 459
24.3.6 格式化輸入數(shù)據(jù) 459
24.3.7 增加學(xué)生記錄 460
24.3.8 查詢學(xué)生記錄 461
24.3.9 刪除學(xué)生記錄 462
24.3.10 修改學(xué)生記錄 463
24.3.11 插入學(xué)生記錄 463
24.3.12 統(tǒng)計學(xué)生記錄 464
24.3.13 排序處理 465
24.3.14 存儲學(xué)生信息 466
第25章 笑傲江湖—使用C51實現(xiàn)跑馬燈程序 471
25.1 單片機(jī)C語言基礎(chǔ) 472
25.1.1 單片機(jī)C語言的優(yōu)越性 472
25.1.2 C51的數(shù)據(jù)類型 472
25.1.3 C51數(shù)據(jù)的存儲結(jié)構(gòu) 473
25.1.4 C51運(yùn)算符和表達(dá)式 474
25.1.5 C51的中斷函數(shù) 475
25.2 跑馬燈設(shè)計實例 476
25.2.1 基本跑馬燈的實現(xiàn) 476
25.2.2 矩形波發(fā)生器 479
25.2.3 用定時器/計數(shù)器產(chǎn)生矩形波 480
25.3 一個完整的跑馬燈程序 481
25.3.1 電路設(shè)計 481
25.3.2 程序設(shè)計 484

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號