定 價(jià):49 元
叢書(shū)名:高等學(xué)校計(jì)算機(jī)專業(yè)規(guī)劃教材
- 作者:周純潔 ... [等] 編著
- 出版時(shí)間:2016/5/1
- ISBN:9787111533863
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP312C
- 頁(yè)碼:368
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16K
本教材在作者20多年C/C++語(yǔ)言教學(xué),特別是項(xiàng)目開(kāi)發(fā)的基礎(chǔ)上,站在初學(xué)者的角度,在注重基礎(chǔ)知識(shí)學(xué)習(xí)的同時(shí),以培養(yǎng)學(xué)生良好的編程規(guī)范意識(shí)和編程思想為重點(diǎn)精心編寫(xiě),例程豐富,層次感強(qiáng),非常適合作為學(xué)習(xí)C/C++語(yǔ)言的課程教材,本書(shū)可作為高等學(xué)校電類(lèi)、信息類(lèi)以及相關(guān)專業(yè)的本科教材,也可作為C語(yǔ)言的參考手冊(cè),自學(xué)使用。
C語(yǔ)言已經(jīng)成為全球程序員的公共語(yǔ)言,具有功能豐富、表達(dá)力強(qiáng)、使用靈活方便、應(yīng)用面廣、目標(biāo)效率高及可移植性好等特點(diǎn);既具有高級(jí)語(yǔ)言的優(yōu)點(diǎn),又具有低級(jí)語(yǔ)言的許多特點(diǎn)。因此,C語(yǔ)言在系統(tǒng)軟件和應(yīng)用軟件的開(kāi)發(fā)中得到了廣泛的應(yīng)用。
現(xiàn)在,我國(guó)高等學(xué)校的理工科專業(yè)都開(kāi)設(shè)了C語(yǔ)言課程,并將之作為第一門(mén)計(jì)算機(jī)語(yǔ)言課程,有的甚至開(kāi)設(shè)了C++課程,因此,我們認(rèn)為作為高校的第一門(mén)計(jì)算機(jī)語(yǔ)言課程,由于其開(kāi)課時(shí)間大多在一年級(jí),在C語(yǔ)言的教學(xué)中應(yīng)注意教學(xué)內(nèi)容的循序漸進(jìn),特別要注意對(duì)學(xué)生編程思想和編程規(guī)范意識(shí)的培養(yǎng),走好第一步;在此基礎(chǔ)上,根據(jù)課時(shí)安排,適當(dāng)擴(kuò)充C語(yǔ)言的內(nèi)容,講授一些C++的基礎(chǔ)知識(shí)。2005年,我們出版了《標(biāo)準(zhǔn)C語(yǔ)言程序設(shè)計(jì)及應(yīng)用》,該書(shū)受到了廣大讀者的好評(píng),如視角新穎、概念清楚、貼近實(shí)際應(yīng)用、注意規(guī)范等,被國(guó)內(nèi)多所高校相繼在教學(xué)中采用。為了適應(yīng)當(dāng)前高校計(jì)算機(jī)教育的發(fā)展和教學(xué)改革的需要,我們總結(jié)多年教學(xué)經(jīng)驗(yàn),編寫(xiě)了本教材。本教材的特點(diǎn)體現(xiàn)在如下幾個(gè)方面。
1)充分考慮到初學(xué)者的特點(diǎn),整個(gè)教材采取了循序漸進(jìn)、逐層推進(jìn)的編寫(xiě)方式,如先介紹數(shù)據(jù)和表達(dá)式,再介紹簡(jiǎn)單程序設(shè)計(jì)及流程控制。
2)考慮到函數(shù)是C語(yǔ)言程序設(shè)計(jì)的核心和重點(diǎn),較早地引入函數(shù)對(duì)學(xué)生加深C語(yǔ)言模塊化的理解和應(yīng)用是有幫助的,因此將“函數(shù)”這一章放在講述簡(jiǎn)單程序設(shè)計(jì)和流程控制后,在“函數(shù)”這一章,主要介紹函數(shù)的基礎(chǔ)部分,隨后在講述數(shù)組、指針、字符串及結(jié)構(gòu)體等內(nèi)容時(shí)再將函數(shù)不斷深入。
3)重視學(xué)生的編程思想和編程規(guī)范意識(shí)的培養(yǎng)。在本書(shū)中,不論是一個(gè)簡(jiǎn)單的程序(一個(gè)函數(shù),幾條語(yǔ)句),還是相對(duì)復(fù)雜的程序,都充分體現(xiàn)了編程思想并力求做到編程(書(shū)寫(xiě)和編程設(shè)計(jì))規(guī)范。
4)字符串是一類(lèi)特殊的數(shù)據(jù)類(lèi)型,在C語(yǔ)言的教學(xué)中有特殊的地方,學(xué)生最初對(duì)其理解起來(lái)會(huì)較為困難,這也是教學(xué)的難點(diǎn)之一。深刻體會(huì)字符串對(duì)學(xué)習(xí)指針和函數(shù)有很大的幫助,這一部分內(nèi)容相對(duì)獨(dú)立,所以本書(shū)將字符串單獨(dú)作為一章,以利于學(xué)生的學(xué)習(xí)。
5)建立在C語(yǔ)言語(yǔ)法和基本結(jié)構(gòu)之上的C++近年來(lái)得到了很好的發(fā)展和應(yīng)用,為了使讀者對(duì)C及C++有全面的了解,專門(mén)增加了3章,即第11章、第12章和第13章,第11章介紹了C和C++應(yīng)用場(chǎng)合的區(qū)別,如何從C快速過(guò)渡到C++,第12章和第13章則主要介紹C++的基礎(chǔ),包括繼承與多態(tài)方面的知識(shí),供讀者選用。
6)我們認(rèn)為,學(xué)習(xí)計(jì)算機(jī)語(yǔ)言的最終目的是能夠親自動(dòng)手編程,所以在教材中非常注意引導(dǎo)學(xué)生如何進(jìn)行程序設(shè)計(jì),包括簡(jiǎn)單的程序設(shè)計(jì)和復(fù)雜的程序設(shè)計(jì)。另外,在教材中我們還精選了大量例題,這些例題實(shí)用性強(qiáng),都經(jīng)過(guò)了上機(jī)驗(yàn)證。
在撰寫(xiě)本書(shū)的過(guò)程中,既參考了國(guó)內(nèi)外多種教材,也融入了作者多年在華中科技大學(xué)自動(dòng)化學(xué)院及電子與信息學(xué)院從事教學(xué)和科研的實(shí)踐經(jīng)驗(yàn)及體會(huì),同時(shí)還吸收了同行專家學(xué)者們的建議。
本書(shū)由周純杰教授、何頂新副教授、周凱波副教授和彭剛副教授進(jìn)行整體規(guī)劃,周純杰教授完成統(tǒng)稿工作,其中第1章、第2章、第9章和第10章由周凱波副教授撰寫(xiě),第3章和第5章由何頂新副教授撰寫(xiě),第11章由張?zhí)柽h(yuǎn)講師和彭剛副教授撰寫(xiě),第12章由張?zhí)柽h(yuǎn)講師撰寫(xiě),第13章由彭剛副教授撰寫(xiě),第4章、第6章、第7章、第8章和本書(shū)的其余部分由周純杰教授撰寫(xiě)。
本書(shū)的出版得到了華中科技大學(xué)自動(dòng)化學(xué)院及教務(wù)處的領(lǐng)導(dǎo)和同事們的關(guān)心與支持,機(jī)械工業(yè)出版社的有關(guān)同志為其出版也付出了辛勤的勞動(dòng),碩士研究生胡博文對(duì)資料的整理和程序的驗(yàn)證進(jìn)行了有效的工作,另外碩士研究生彭源、張婷、湯曉慶、常昊、劉博、樊旭、姚干、徐高峰、鄒育桃、曾玲也進(jìn)行了部分資料整理和程序驗(yàn)證工作。在此一并表示感謝!由于作者水平有限,書(shū)中疏漏或錯(cuò)誤之處懇請(qǐng)廣大讀者批評(píng)指正。
編 者2015年12月于華中科技大學(xué)
前 言
教學(xué)建議
第1章 概論1
1.1 C語(yǔ)言的入門(mén)知識(shí)1
1.1.1 計(jì)算機(jī)中的數(shù)據(jù)1
1.1.2 二進(jìn)制編碼系統(tǒng)3
1.1.3 微型計(jì)算機(jī)硬件的基本組成4
1.1.4 計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)5
1.2 C語(yǔ)言的發(fā)展及特點(diǎn)8
1.2.1 C語(yǔ)言的發(fā)展過(guò)程8
1.2.2 C語(yǔ)言的特點(diǎn)9
1.3 C語(yǔ)言概覽10
1.3.1 C語(yǔ)言程序的書(shū)寫(xiě)格式10
1.3.2 C語(yǔ)言程序的結(jié)構(gòu)特點(diǎn)12
1.4 C語(yǔ)言的基本語(yǔ)法單位13
1.4.1 標(biāo)識(shí)符14
1.4.2 關(guān)鍵字14
1.4.3 分隔符15
1.5 簡(jiǎn)單的輸入/輸出15
1.5.1 格式化輸入/輸出函數(shù)15
1.5.2 字符輸入/輸出函數(shù)17
1.6 運(yùn)行C程序的一般步驟17
本章小結(jié)18
習(xí)題118
第2章 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式19
2.1 數(shù)據(jù)類(lèi)型19
2.2 常量19
2.2.1 整型常量19
2.2.2 浮點(diǎn)型常量20
2.2.3 字符型常量21
2.2.4 字符串常量22
2.2.5 符號(hào)常量23
2.3 變量23
2.3.1 整型變量24
2.3.2 浮點(diǎn)型變量24
2.3.3 字符變量25
2.3.4 指針變量26
2.4 運(yùn)算符和表達(dá)式26
2.4.1 表達(dá)式26
2.4.2 算術(shù)運(yùn)算符與算術(shù)表達(dá)式27
2.4.3 關(guān)系運(yùn)算符與關(guān)系表達(dá)式28
2.4.4 邏輯運(yùn)算符與邏輯表達(dá)式28
2.4.5 自增和自減運(yùn)算29
2.4.6 賦值運(yùn)算符與賦值表達(dá)式30
2.4.7 條件運(yùn)算符與條件表達(dá)式31
2.4.8 逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式31
2.5 位運(yùn)算31
2.5.1 按位與運(yùn)算符“&”32
2.5.2 按位或運(yùn)算符“|”33
2.5.3 按位異或運(yùn)算符“^”33
2.5.4 二進(jìn)制左移運(yùn)算符“<<”34
2.5.5 二進(jìn)制右移運(yùn)算符“>>”34
2.5.6 按位取反運(yùn)算符“~”34
2.6 各類(lèi)數(shù)值型數(shù)據(jù)間的混合運(yùn)算35
2.6.1 自動(dòng)類(lèi)型轉(zhuǎn)換35
2.6.2 運(yùn)算符的優(yōu)先級(jí)36
2.7 輸入/輸出的進(jìn)一步討論37
2.7.1 格式化輸出函數(shù)printf38
2.7.2 格式輸入函數(shù)scanf39
本章小結(jié)41
習(xí)題241
第3章 程序和流程控制45
3.1 C語(yǔ)言程序的版式及語(yǔ)句45
3.1.1 C語(yǔ)言程序的版式45
3.1.2C語(yǔ)言的語(yǔ)句47
3.2 結(jié)構(gòu)化程序設(shè)計(jì)和流程控制48
3.2.1 結(jié)構(gòu)化程序設(shè)計(jì)48
3.2.2 C語(yǔ)言的流程控制語(yǔ)句和輔助控制語(yǔ)句48
3.3 if語(yǔ)句49
3.3.1 if語(yǔ)句的標(biāo)準(zhǔn)形式49
3.3.2條件分支嵌套50
3.4 switch多分支選擇語(yǔ)句52
3.5 循環(huán)控制55
3.5.1 while語(yǔ)句55
3.5.2 for語(yǔ)句56
3.5.3 do-while語(yǔ)句58
3.5.4 從一重循環(huán)到多重循環(huán)58
3.6 輔助控制語(yǔ)句61
3.6.1 break語(yǔ)句61
3.6.2 continue語(yǔ)句62
3.6.3 goto 語(yǔ)句和標(biāo)號(hào)64
3.7 典型程序編寫(xiě)方法舉例64
本章小結(jié)74
習(xí)題375
第4章 函數(shù)77
4.1 C語(yǔ)言程序結(jié)構(gòu)及模塊化設(shè)計(jì)77
4.1.1 結(jié)構(gòu)化軟件及其優(yōu)越性77
4.1.2 C語(yǔ)言程序的結(jié)構(gòu)79
4.2 C語(yǔ)言函數(shù)的定義、原型和調(diào)用79
4.2.1 函數(shù)的定義79
4.2.2 函數(shù)的調(diào)用81
4.2.3 參數(shù)數(shù)目可變的函數(shù)82
4.3 變量的存儲(chǔ)類(lèi)型83
4.3.1 概述83
4.3.2 自動(dòng)型變量84
4.3.3 寄存器型變量87
4.3.4 外部參照型變量88
4.3.5 靜態(tài)型變量91
4.4 函數(shù)間的數(shù)據(jù)傳遞94
4.4.1 使用函數(shù)參數(shù)在函數(shù)間傳遞數(shù)據(jù)94
4.4.2 使用返回值傳遞數(shù)據(jù)97
4.4.3 使用全局變量傳遞數(shù)據(jù)98
4.5 遞歸函數(shù)99
本章小結(jié)101
習(xí)題4101
第5章 數(shù)組105
5.1 數(shù)組的定義和應(yīng)用105
5.1.1 一維數(shù)組的定義和應(yīng)用105
5.1.2 二維數(shù)組的定義和應(yīng)用107
5.2 數(shù)組在函數(shù)間的傳遞 110
5.2.1 數(shù)組元素在函數(shù)間的傳遞110
5.2.2 數(shù)組在函數(shù)間的傳遞110
5.3 程序設(shè)計(jì)舉例112
本章小結(jié)118
習(xí)題5119
第6章 指針120
6.1 基本概念120
6.1.1 指針變量的引入120
6.1.2 指針變量的定義與初始化121
6.1.3 指針的使用123
6.2 指針運(yùn)算125
6.2.1 指針的算術(shù)運(yùn)算125
6.2.2 指針的關(guān)系運(yùn)算128
6.2.3 指針的賦值運(yùn)算128
6.3 指針與數(shù)組131
6.3.1 一維數(shù)組與指針131
6.3.2 多維數(shù)組與指針137
6.4 指針數(shù)組與多級(jí)指針142
6.4.1 指針數(shù)組142
6.4.2 多級(jí)指針145
6.5 指針與函數(shù)150
6.5.1 返回指針的函數(shù)150
6.5.2 指向函數(shù)的指針153
6.6 綜合應(yīng)用158
本章小結(jié)162
習(xí)題6164
第7章 字符串167
7.1 字符串的基本概念167
7.1.1 字符167
7.1.2 字符串168
7.1.3 字符數(shù)組與字符指針168
7.2 字符串的相關(guān)庫(kù)函數(shù)及其使用172
7.2.1 字符串輸入輸出函數(shù)173
7.2.2 字符串轉(zhuǎn)換函數(shù)173
7.2.3 字符串處理函數(shù)174
7.2.4 字符串比較函數(shù)177
7.2.5 其他函數(shù)178
7.3 單個(gè)字符串的處理180
7.4 多個(gè)字符串的處理183
7.5 帶參數(shù)的main函數(shù)186
7.6 綜合舉例188
本章小結(jié)196
習(xí)題7196
第8章 結(jié)構(gòu)和聯(lián)合202
8.1 結(jié)構(gòu)及結(jié)構(gòu)變量202
8.1.1 結(jié)構(gòu)的定義202
8.1.2 結(jié)構(gòu)變量的定義203
8.1.3 結(jié)構(gòu)變量的使用形式和初始化204
8.2 結(jié)構(gòu)數(shù)組與結(jié)構(gòu)指針206
8.2.1 結(jié)構(gòu)數(shù)組206
8.2.2 結(jié)構(gòu)指針208
8.3 結(jié)構(gòu)在函數(shù)間的數(shù)據(jù)傳遞212
8.4 位字段結(jié)構(gòu)217
8.5 聯(lián)合218
8.6 類(lèi)型定義語(yǔ)句typedef221
8.6.1 用typedef語(yǔ)句定義新類(lèi)型名221
8.6.2 新類(lèi)型名的應(yīng)用222
8.7 枚舉類(lèi)型224
8.7.1 枚舉類(lèi)型的定義和枚舉變量的說(shuō)明224
8.7.2 枚舉類(lèi)型的應(yīng)用225
8.8 綜合應(yīng)用226
8.8.1 鏈表226
8.8.2 其他應(yīng)用舉例239
本章小結(jié)241
習(xí)題8241
第9章 C語(yǔ)言中的文件與圖形247
9.1 文件的基本概念247
9.1.1 文本文件與二進(jìn)制文件247
9.1.2 緩沖型文件系統(tǒng)247
9.2 文件類(lèi)型指針248
9.3 文件操作與相關(guān)函數(shù)248
9.3.1 文件打開(kāi)函數(shù)fopen ( )248
9.3.2 文件關(guān)閉函數(shù)fclose( )250
9.3.3 數(shù)據(jù)塊讀/寫(xiě)函數(shù)fread( )和fwrite( )250
9.3.4 格式化讀/寫(xiě)函數(shù)fscanf( )和fprintf( )251
9.3.5 讀/寫(xiě)字符函數(shù)fgetc( )和fputc( )251
9.3.6 讀/寫(xiě)字符串函數(shù)fgets( )和fputs()251
9.3.7 rewind函數(shù)252
9.3.8 fseek函數(shù)252
9.3.9 文件檢測(cè)函數(shù)252
9.4 文件函數(shù)應(yīng)用綜合舉例253
9.5 C語(yǔ)言圖形程序設(shè)計(jì)基本概念255
9.6 C語(yǔ)言中的圖形函數(shù)255
9.6.1 初始化圖形系統(tǒng)函數(shù)initgraph255
9.6.2 關(guān)閉圖形系統(tǒng)函數(shù)closegraph256
9.6.3 設(shè)置畫(huà)筆當(dāng)前顏色及屏幕背景色257
9.6.4 畫(huà)點(diǎn)及獲取屏幕點(diǎn)的顏色257
9.6.5 設(shè)置線型及畫(huà)直線257
9.6.6 畫(huà)圓、橢圓、矩形及多邊形258
9.6.7 填充圖形函數(shù)259
9.7 圖形方式下的文本常見(jiàn)操作函數(shù)260
9.7.1 視口操作函數(shù)261
9.7.2 圖形方式下的文字輸出261
9.7.3 屏幕圖形的保存和恢復(fù)262
9.8 C語(yǔ)言圖形操作綜合應(yīng)用舉例263
本章小結(jié)264
習(xí)題9265
第10章 編譯預(yù)處理268
10.1 宏定義268
10.1.1 不帶參數(shù)的宏268
10.1.2 帶參數(shù)的宏269
10.1.3 使用宏定義時(shí)應(yīng)注意的問(wèn)題270
10.2 文件包含271
10.3 條件編譯272
10.4 其他編譯預(yù)處理274
10.4.1 #error274
10.4.2 # pragma275
10.4.3 #line275
本章小結(jié)276
習(xí)題10277
第11章 從C到C++279
11.1 對(duì)象的思想279
11.1.1 從面向過(guò)程到面向?qū)ο?79
11.1.2 類(lèi)的說(shuō)明280
11.1.3 C程序與C++程序?qū)Ρ?81
11.2 從C到C++的過(guò)渡282
11.2.1 C++的I/O283
11.2.2 const和volatile訪問(wèn)修飾符283
11.2.3 引用286
11.2.4 作用域分辨符290
11.2.5 重載290
11.2.6 內(nèi)聯(lián)函數(shù)292
11.3 OOP設(shè)計(jì)思路294
11.3.1 面向?qū)ο蟪绦蛟O(shè)計(jì)的特征294
11.3.2 類(lèi)設(shè)計(jì)示例295
11.3.3 類(lèi)與結(jié)構(gòu)體的區(qū)別297
本章小結(jié)298
習(xí)題11298
第12章 類(lèi)與對(duì)象300
12.1 類(lèi)的實(shí)例化—對(duì)象300
12.2 類(lèi)的構(gòu)造函數(shù)和析構(gòu)函數(shù)301
12.2.1 構(gòu)造函數(shù)301
12.2.2 重載構(gòu)造函數(shù)和缺省構(gòu)造函數(shù)302
12.2.3 析構(gòu)函數(shù)304
12.3 new和delete306
12.4 this指針308
12.5 拷貝構(gòu)造函數(shù)310
12.5.1 缺省拷貝構(gòu)造函數(shù)311
12.5.2 自定義拷貝構(gòu)造函數(shù)312
12.6 運(yùn)算符重載314
12.7 類(lèi)的特殊成員317
12.7.1 const成員317
12.7.2 靜態(tài)成員321
12.8 對(duì)象成員324
12.9 對(duì)象數(shù)組與對(duì)象指針326
12.9.1 對(duì)象與數(shù)組326
12.9.2 對(duì)象與指針327
12.10 友元329
12.10.1 友元函數(shù)330
12.10.2 友元類(lèi)332
本章小結(jié)333
習(xí)題12334
第13章 繼承與多態(tài)335
13.1 繼承的實(shí)現(xiàn)方式335
13.1.1 公有繼承335
13.1.2 私有繼承336
13.1.3 保護(hù)繼承337
13.1.4 訪問(wèn)控制相關(guān)分析338
13.2 子類(lèi)的構(gòu)造函數(shù)順序339
13.3 多繼承342
13.3.1 多繼承的概念342
13.3.2 多繼承的構(gòu)造函數(shù)342
13.3.3 多繼承的二義性問(wèn)題344
13.4 多態(tài)的實(shí)現(xiàn)方式346
13.4.1 虛函數(shù)的聲明347
13.4.2 虛函數(shù)在派生類(lèi)中的重新定義347
13.4.3 基類(lèi)的析構(gòu)函數(shù)是虛的351
13.5 虛函數(shù)表352
13.6 重載、隱藏和覆蓋的區(qū)別355
本章小結(jié)357
習(xí)題13357
附錄A ASCII碼表362
附錄B C語(yǔ)言中的關(guān)鍵字363
附錄C C語(yǔ)言中的常用庫(kù)函數(shù)364
參考文獻(xiàn)369