定 價(jià):128 元
叢書名:國外計(jì)算機(jī)科學(xué)教材系列
- 作者:(美)Paul Deitel(保羅. 戴特爾),Harvey Deitel(哈維. 戴特爾)
- 出版時(shí)間:2017/6/1
- ISBN:9787121316814
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312C
- 頁碼:764
- 紙張:膠版紙
- 版次:8
- 開本:16開
本書是全球暢銷的C語言教程之一。全書系統(tǒng)地介紹了4種當(dāng)今流行的程序設(shè)計(jì)方法面向過程、基于對象、面向?qū)ο笠约胺盒途幊蹋瑑?nèi)容全面、生動(dòng)、易懂,作者由淺入深地介紹了結(jié)構(gòu)化編程及軟件工程的基本概念,從簡單的概念到*終的完整的語言描述,清晰、準(zhǔn)確、透徹、詳細(xì)地講解了C語言,尤其注重程序設(shè)計(jì)思想和方法的介紹。相對于上一版,這一版在內(nèi)容方面新增加了C安全程序設(shè)計(jì)、"更上一層樓練習(xí)集,更新了C 和面向?qū)ο蟪绦蛟O(shè)計(jì)、基于Allegro的游戲編程、C99標(biāo)準(zhǔn)介紹等內(nèi)容。
學(xué)習(xí)C語言的經(jīng)典教材之一:
*提供了很多的基礎(chǔ)的、覆蓋面很廣的實(shí)例。
*綜合了C99和C11兩個(gè)標(biāo)準(zhǔn)的功能。
*增加安全的C程序設(shè)計(jì)章節(jié)。
*所有代碼都通過GNU gcc、Visual C 或者Xcode LLVM的測試
*所有代碼都采用GNU gdb、Visual C 或者Xcode來調(diào)試。
*緊扣時(shí)代發(fā)展的更上一層樓課后練習(xí)。
*介紹多線程和多核程序設(shè)計(jì)
Paul Deitel和Harvey Deitel是全球暢銷的編程語言教材和專業(yè)圖書作家,How to Program系列是其最負(fù)盛名的一套計(jì)算機(jī)編程教材,已經(jīng)銷售近40年,并被翻譯成中文在內(nèi)的十幾種語言。他們成立的Deitel & Associates公司是一家國際知名的企業(yè)培訓(xùn)和寫作公司, 專門進(jìn)行計(jì)算機(jī)編程語言、對象技術(shù)、移動(dòng)應(yīng)用開發(fā)及Internet和Web軟件技術(shù)方面的培訓(xùn)和寫作,出版了一流的編程專業(yè)的大學(xué)教材、 專業(yè)圖書以及LiveLessons視頻課程。
蘇小紅,哈爾濱工業(yè)大學(xué)計(jì)算機(jī)學(xué)院博士生導(dǎo)師,計(jì)算機(jī)應(yīng)用技術(shù)專家,研究領(lǐng)域主要是色彩匹配,信息融合,空間計(jì)算,人工神經(jīng)網(wǎng)絡(luò),進(jìn)化算法,計(jì)算機(jī)圖形學(xué),灰色預(yù)測,彩色圖像處理等。
目 錄
第1章 計(jì)算機(jī)、因特網(wǎng)和萬維網(wǎng)導(dǎo)論1
1.1 引言2
1.2 計(jì)算機(jī)硬件和軟件2
1.2.1 摩爾定律2
1.2.2 計(jì)算機(jī)組成3
1.3 數(shù)據(jù)的層次結(jié)構(gòu)3
1.4 機(jī)器語言、匯編語言和高級語言5
1.5 C程序設(shè)計(jì)語言6
1.6 C標(biāo)準(zhǔn)庫7
1.7 C 和其他基于C的程序設(shè)計(jì)語言8
1.8 對象技術(shù)8
1.8.1 對象以汽車為例9
1.8.2 方法與類9
1.8.3 實(shí)例化9
1.8.4 軟件重用9
1.8.5 消息與方法調(diào)用9
1.8.6 屬性與實(shí)例變量9
1.8.7 封裝與信息隱藏10
1.8.8 繼承10
1.9 典型的C程序開發(fā)環(huán)境10
1.9.1 第1步:創(chuàng)建一個(gè)C程序11
1.9.2 第2步和第3步:預(yù)處理及編譯一個(gè)C程序11
1.9.3 第4步:鏈接11
1.9.4 第5步:裝載11
1.9.5 第6步:執(zhí)行12
1.9.6 程序運(yùn)行時(shí)可能會出現(xiàn)的問題12
1.9.7 標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤流12
1.10 在Windows、Linux和Mac OS X上測試并運(yùn)行一個(gè)C應(yīng)用程序12
1.10.1 在Windows命令提示符下運(yùn)行一個(gè)C應(yīng)用程序13
1.10.2 使用Linux中的GNU C來運(yùn)行一個(gè)C應(yīng)用程序15
1.10.3 使用Mac OS X終端來運(yùn)行一個(gè)C應(yīng)用程序17
1.11 操作系統(tǒng)19
1.11.1 Windows 一個(gè)專有的操作系統(tǒng)19
1.11.2 Linux 一個(gè)開源的操作系統(tǒng)19
1.11.3 蘋果公司的Mac OS X;面向iPhone、iPad 和iPod Touch的iOS操作系統(tǒng)20
1.11.4 谷歌公司的Android操作系統(tǒng)20
1.12 因特網(wǎng)和萬維網(wǎng)20
1.12.1 因特網(wǎng):計(jì)算機(jī)網(wǎng)絡(luò)的網(wǎng)絡(luò)21
1.12.2 萬維網(wǎng):讓因特網(wǎng)對用戶更友好21
1.12.3 萬維網(wǎng)服務(wù)21
1.12.4 Ajax23
1.12.5 物聯(lián)網(wǎng)23
1.13 一些重要的軟件技術(shù)23
1.14 跟上信息技術(shù)的發(fā)展24
第2章 C語言程序設(shè)計(jì)入門28
2.1 引言28
2.2 一個(gè)簡單的C程序:打印一行文字28
2.3 另一個(gè)簡單的C程序:兩個(gè)整數(shù)求和31
2.4 存儲單元的基本概念35
2.5 C語言中的算術(shù)運(yùn)算35
2.6 做出決策:相等和關(guān)系運(yùn)算符38
2.7 安全的C程序設(shè)計(jì)41
第3章 結(jié)構(gòu)化的C程序設(shè)計(jì)51
3.1 引言51
3.2 算法51
3.3 偽代碼52
3.4 控制結(jié)構(gòu)52
3.5 if條件語句54
3.6 if…else條件語句54
3.7 while循環(huán)語句57
3.8 算法設(shè)計(jì)案例1:計(jì)數(shù)控制的循環(huán)58
3.9 自頂向下、逐步求精的算法設(shè)計(jì)案例2:標(biāo)記控制的循環(huán)60
3.10 自頂向下、逐步求精的算法設(shè)計(jì)案例3:嵌套控制結(jié)構(gòu)65
3.11 賦值運(yùn)算符67
3.12 增1和減1運(yùn)算符68
3.13 安全的C程序設(shè)計(jì)70
第4章 C程序控制84
4.1 引言84
4.2 循環(huán)的基本原理84
4.3 計(jì)數(shù)控制的循環(huán)85
4.4 for循環(huán)語句86
4.5 for語句:注意事項(xiàng)88
4.6 使用 for語句的例子89
4.7 switch多重選擇語句91
4.8 do…while循環(huán)語句96
4.9 break和continue語句97
4.10 邏輯運(yùn)算符98
4.11 區(qū)分相等運(yùn)算符(= =)和賦值運(yùn)算符(=)100
4.12 結(jié)構(gòu)化程序設(shè)計(jì)小結(jié)101
4.13 安全的C程序設(shè)計(jì)105
第5章 C函數(shù)117
5.1 引言117
5.2 C語言中的程序模塊117
5.3 數(shù)學(xué)庫函數(shù)118
5.4 函數(shù)119
5.5 函數(shù)定義120
5.5.1 square函數(shù)120
5.5.2 maximum函數(shù)123
5.6 函數(shù)原型:一個(gè)深入的剖析123
5.7 函數(shù)調(diào)用堆棧及活動(dòng)記錄堆棧幀125
5.8 頭文件128
5.9 按值或按引用傳遞參數(shù)129
5.10 隨機(jī)數(shù)的生成129
5.11 案例分析:運(yùn)氣游戲;引入enum133
5.12 存儲類型135
5.13 作用域的規(guī)定137
5.14 遞歸139
5.15 遞歸應(yīng)用案例:斐波那契數(shù)列142
5.16 遞歸與迭代144
5.17 安全的C程序設(shè)計(jì)146
第6章 C數(shù)組161
6.1 引言162
6.2 數(shù)組162
6.3 數(shù)組定義163
6.4 數(shù)組實(shí)例163
6.4.1 定義一個(gè)數(shù)組并用循環(huán)結(jié)構(gòu)來設(shè)置數(shù)組元素值163
6.4.2 在定義語句中用一個(gè)初始值列表來初始化一個(gè)數(shù)組164
6.4.3 用符號常量來定義數(shù)組的大小并通過計(jì)算來初始化數(shù)組元素165
6.4.4 數(shù)組元素值求和166
6.4.5 用數(shù)組來統(tǒng)計(jì)民意調(diào)查的結(jié)果166
6.4.6 用直方圖來展示數(shù)組元素值168
6.4.7 用數(shù)組來統(tǒng)計(jì)投擲骰子60 000 000次的結(jié)果169
6.5 用字符數(shù)組來存儲和處理字符串170
6.5.1 定義一個(gè)字符串來初始化一個(gè)字符數(shù)組170
6.5.2 用一個(gè)字符初始化列表來初始化一個(gè)字符數(shù)組170
6.5.3 訪問一個(gè)字符串中的字符170
6.5.4 針對一個(gè)字符數(shù)組的輸入170
6.5.5 將一個(gè)代表字符串的字符數(shù)組輸出171
6.5.6 字符數(shù)組的演示171
6.6 靜態(tài)局部數(shù)組和自動(dòng)局部數(shù)組171
6.7 將數(shù)組傳遞給函數(shù)173
6.8 數(shù)組排序176
6.9 案例分析:用數(shù)組來計(jì)算平均值、中值和眾數(shù)178
6.10 數(shù)組查找181
6.10.1 線性查找數(shù)組元素181
6.10.2 折半查找數(shù)組元素182
6.11 多下標(biāo)數(shù)組185
6.11.1 雙下標(biāo)數(shù)組概述185
6.11.2 雙下標(biāo)數(shù)組的初始化186
6.11.3 設(shè)置某行元素的元素值187
6.11.4 計(jì)算雙下標(biāo)數(shù)組中所有元素值的總和187
6.11.5 對雙下標(biāo)數(shù)組的處理188
6.12 可變長數(shù)組190
6.13 安全的C程序設(shè)計(jì)192
第7章 C指針207
7.1 引言207
7.2 指針變量的定義和初始化208
7.3 指針運(yùn)算符208
7.4 按引用向函數(shù)傳遞實(shí)參210
7.5 對指針使用const限定符213
7.5.1 用指向可變數(shù)據(jù)的可變指針將字符串中的字符改成大寫214
7.5.2 用指向常量數(shù)據(jù)的可變指針逐個(gè)打印字符串中的字符215
7.5.3 試圖修改指向可變數(shù)據(jù)的常量指針217
7.5.4 試圖修改指向常量數(shù)據(jù)的常量指針217
7.6 采用按引用傳遞的冒泡排序218
7.7 sizeof運(yùn)算符220
7.8 指針表達(dá)式和指針?biāo)阈g(shù)運(yùn)算222
7.8.1 指針?biāo)阈g(shù)運(yùn)算中可使用的運(yùn)算符222
7.8.2 將指針對準(zhǔn)一個(gè)數(shù)組222
7.8.3 給指針加上一個(gè)整數(shù)222
7.8.4 給指針減去一個(gè)整數(shù)223
7.8.5 指針增1或減1223
7.8.6 從一個(gè)指針中減去另一個(gè)指針223
7.8.7 將一個(gè)指針賦予另一個(gè)指針223
7.8.8 指向void的指針224
7.8.9 指針的比較224
7.9 指針和數(shù)組的關(guān)系224
7.9.1 指針/偏移量表示法224
7.9.2 指針/下標(biāo)表示法225
7.9.3 不能用指針?biāo)阈g(shù)運(yùn)算來修改數(shù)組名225
7.9.4 指針下標(biāo)和指針偏移量的使用演示225
7.9.5 用數(shù)組和指針實(shí)現(xiàn)字符串的復(fù)制226
7.10 指針數(shù)組227
7.11 案例研究:模擬撲克牌的洗牌和發(fā)牌228
7.12 指向函數(shù)的指針232
7.12.1 按升序或降序進(jìn)行排序232
7.12.2 使用函數(shù)指針來創(chuàng)建一個(gè)菜單驅(qū)動(dòng)的系統(tǒng)234
7.13 安全的C程序設(shè)計(jì)236
第8章 C字符和字符串252
8.1 引言252
8.2 字符串和字符基礎(chǔ)253
8.3 字符處理函數(shù)庫254
8.3.1 函數(shù)isdigit,isalpha,isalnum和isxdigit255
8.3.2 函數(shù)islower,isupper,tolower和toupper256
8.3.3 函數(shù)isspace,iscntrl,ispunct,isprint和isgraph257
8.4 字符串轉(zhuǎn)換函數(shù)258
8.4.1 函數(shù)strtod258
8.4.2 函數(shù)strtol259
8.4.3 函數(shù)strtoul260
8.5 標(biāo)準(zhǔn)輸入/輸出庫函數(shù)260
8.5.1 函數(shù)fgets和putchar261
8.5.2 函數(shù)getchar261
8.5.3 函數(shù)sprintf262
8.5.4 函數(shù)sscanf263
8.6 字符串處理函數(shù)庫中的字符串處理函數(shù)263
8.6.1 函數(shù)strcpy和 strncpy264
8.6.2 函數(shù)strcat和 strncat264
8.7 字符串處理函數(shù)庫中的比較函數(shù)265
8.8 字符串處理函數(shù)庫中的查找函數(shù)266
8.8.1 函數(shù)strchr267
8.8.2 函數(shù)strcspn268
8.8.3 函數(shù)strpbrk268
8.8.4 函數(shù)strrchr268
8.8.5 函數(shù)strspn269
8.8.6 函數(shù)strstr269
8.8.7 函數(shù)strtok270
8.9 字符串處理函數(shù)庫中的內(nèi)存處理函數(shù)271
8.9.1 函數(shù)memcpy271
8.9.2 函數(shù)memmove272
8.9.3 函數(shù)memcmp272
8.9.4 函數(shù)memchr273
8.9.5 函數(shù)memset273
8.10 字符串處理函數(shù)庫中的其他函數(shù)274
8.10.1 函數(shù)strerror274
8.10.2 函數(shù)strlen274
8.11 安全的C程序設(shè)計(jì)275
第9章 C格式化輸入/輸出285
9.1 引言285
9.2 流286
9.3 用printf函數(shù)實(shí)現(xiàn)格式化輸出286
9.4 打印整數(shù)286
9.5 打印浮點(diǎn)數(shù)287
9.5.1 轉(zhuǎn)換說明符e,E或f288
9.5.2 轉(zhuǎn)換說明符g或G288
9.5.3 浮點(diǎn)數(shù)轉(zhuǎn)換說明符的使用演示288
9.6 打印字符串或字符289
9.7 其他的轉(zhuǎn)換說明符289
9.8 帶域?qū)捄途鹊拇蛴?90
9.8.1 在打印整數(shù)時(shí)指定域?qū)?90
9.8.2 在打印整數(shù)、浮點(diǎn)數(shù)和字符串時(shí)指定精度291
9.8.3 同時(shí)指定域?qū)捄途?92
9.9 在printf函數(shù)的格式控制字符串中使用標(biāo)記292
9.9.1 右對齊和左對齊292
9.9.2 用與不用 標(biāo)記來打印正數(shù)和負(fù)數(shù)293
9.9.3 使用空格標(biāo)記293
9.9.4 使用#標(biāo)記293
9.9.5 使用0標(biāo)記294
9.10 打印文本和轉(zhuǎn)義序列294
9.11 用scanf函數(shù)讀取格式化的輸入294
9.11.1 scanf的語法295
9.11.2 scanf的轉(zhuǎn)換說明符295
9.11.3 用scanf來讀入整數(shù)295
9.11.4 用scanf來讀入浮點(diǎn)數(shù)296
9.11.5 用scanf來讀入字符和字符串296
9.11.6 在scanf中使用掃描集297
9.11.7 在scanf中指定域?qū)?98
9.11.8 在輸入流中忽略掉特定字符298
9.12 安全的C程序設(shè)計(jì)299
第10章 結(jié)構(gòu)體、共用體、位操作和枚舉類型305
10.1 引言306
10.2 結(jié)構(gòu)體的定義306
10.2.1 自引用結(jié)構(gòu)體306
10.2.2 定義結(jié)構(gòu)體類型的變量307
10.2.3 結(jié)構(gòu)體標(biāo)記名307
10.2.4 可對結(jié)構(gòu)體實(shí)施的操作307
10.3 結(jié)構(gòu)體的初始化308
10.4 用.和?>訪問結(jié)構(gòu)體成員308
10.5 在函數(shù)中使用結(jié)構(gòu)體310
10.6 typ