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