定 價:49 元
叢書名:高等學校計算機專業(yè)規(guī)劃教材
當前圖書已被 1 所學校薦購過!
查看明細
- 作者:周純潔 ... [等] 編著
- 出版時間:2016/5/1
- ISBN:9787111533863
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP312C
- 頁碼:368
- 紙張:膠版紙
- 版次:1
- 開本:16K
本教材在作者20多年C/C++語言教學,特別是項目開發(fā)的基礎上,站在初學者的角度,在注重基礎知識學習的同時,以培養(yǎng)學生良好的編程規(guī)范意識和編程思想為重點精心編寫,例程豐富,層次感強,非常適合作為學習C/C++語言的課程教材,本書可作為高等學校電類、信息類以及相關專業(yè)的本科教材,也可作為C語言的參考手冊,自學使用。
C語言已經(jīng)成為全球程序員的公共語言,具有功能豐富、表達力強、使用靈活方便、應用面廣、目標效率高及可移植性好等特點;既具有高級語言的優(yōu)點,又具有低級語言的許多特點。因此,C語言在系統(tǒng)軟件和應用軟件的開發(fā)中得到了廣泛的應用。
現(xiàn)在,我國高等學校的理工科專業(yè)都開設了C語言課程,并將之作為第一門計算機語言課程,有的甚至開設了C++課程,因此,我們認為作為高校的第一門計算機語言課程,由于其開課時間大多在一年級,在C語言的教學中應注意教學內(nèi)容的循序漸進,特別要注意對學生編程思想和編程規(guī)范意識的培養(yǎng),走好第一步;在此基礎上,根據(jù)課時安排,適當擴充C語言的內(nèi)容,講授一些C++的基礎知識。2005年,我們出版了《標準C語言程序設計及應用》,該書受到了廣大讀者的好評,如視角新穎、概念清楚、貼近實際應用、注意規(guī)范等,被國內(nèi)多所高校相繼在教學中采用。為了適應當前高校計算機教育的發(fā)展和教學改革的需要,我們總結多年教學經(jīng)驗,編寫了本教材。本教材的特點體現(xiàn)在如下幾個方面。
1)充分考慮到初學者的特點,整個教材采取了循序漸進、逐層推進的編寫方式,如先介紹數(shù)據(jù)和表達式,再介紹簡單程序設計及流程控制。
2)考慮到函數(shù)是C語言程序設計的核心和重點,較早地引入函數(shù)對學生加深C語言模塊化的理解和應用是有幫助的,因此將“函數(shù)”這一章放在講述簡單程序設計和流程控制后,在“函數(shù)”這一章,主要介紹函數(shù)的基礎部分,隨后在講述數(shù)組、指針、字符串及結構體等內(nèi)容時再將函數(shù)不斷深入。
3)重視學生的編程思想和編程規(guī)范意識的培養(yǎng)。在本書中,不論是一個簡單的程序(一個函數(shù),幾條語句),還是相對復雜的程序,都充分體現(xiàn)了編程思想并力求做到編程(書寫和編程設計)規(guī)范。
4)字符串是一類特殊的數(shù)據(jù)類型,在C語言的教學中有特殊的地方,學生最初對其理解起來會較為困難,這也是教學的難點之一。深刻體會字符串對學習指針和函數(shù)有很大的幫助,這一部分內(nèi)容相對獨立,所以本書將字符串單獨作為一章,以利于學生的學習。
5)建立在C語言語法和基本結構之上的C++近年來得到了很好的發(fā)展和應用,為了使讀者對C及C++有全面的了解,專門增加了3章,即第11章、第12章和第13章,第11章介紹了C和C++應用場合的區(qū)別,如何從C快速過渡到C++,第12章和第13章則主要介紹C++的基礎,包括繼承與多態(tài)方面的知識,供讀者選用。
6)我們認為,學習計算機語言的最終目的是能夠親自動手編程,所以在教材中非常注意引導學生如何進行程序設計,包括簡單的程序設計和復雜的程序設計。另外,在教材中我們還精選了大量例題,這些例題實用性強,都經(jīng)過了上機驗證。
在撰寫本書的過程中,既參考了國內(nèi)外多種教材,也融入了作者多年在華中科技大學自動化學院及電子與信息學院從事教學和科研的實踐經(jīng)驗及體會,同時還吸收了同行專家學者們的建議。
本書由周純杰教授、何頂新副教授、周凱波副教授和彭剛副教授進行整體規(guī)劃,周純杰教授完成統(tǒng)稿工作,其中第1章、第2章、第9章和第10章由周凱波副教授撰寫,第3章和第5章由何頂新副教授撰寫,第11章由張?zhí)柽h講師和彭剛副教授撰寫,第12章由張?zhí)柽h講師撰寫,第13章由彭剛副教授撰寫,第4章、第6章、第7章、第8章和本書的其余部分由周純杰教授撰寫。
本書的出版得到了華中科技大學自動化學院及教務處的領導和同事們的關心與支持,機械工業(yè)出版社的有關同志為其出版也付出了辛勤的勞動,碩士研究生胡博文對資料的整理和程序的驗證進行了有效的工作,另外碩士研究生彭源、張婷、湯曉慶、常昊、劉博、樊旭、姚干、徐高峰、鄒育桃、曾玲也進行了部分資料整理和程序驗證工作。在此一并表示感謝!由于作者水平有限,書中疏漏或錯誤之處懇請廣大讀者批評指正。
編 者2015年12月于華中科技大學
前 言
教學建議
第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)的層次結構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語言程序的結構特點12
1.4 C語言的基本語法單位13
1.4.1 標識符14
1.4.2 關鍵字14
1.4.3 分隔符15
1.5 簡單的輸入/輸出15
1.5.1 格式化輸入/輸出函數(shù)15
1.5.2 字符輸入/輸出函數(shù)17
1.6 運行C程序的一般步驟17
本章小結18
習題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 算術運算符與算術表達式27
2.4.3 關系運算符與關系表達式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 自動類型轉換35
2.6.2 運算符的優(yōu)先級36
2.7 輸入/輸出的進一步討論37
2.7.1 格式化輸出函數(shù)printf38
2.7.2 格式輸入函數(shù)scanf39
本章小結41
習題241
第3章 程序和流程控制45
3.1 C語言程序的版式及語句45
3.1.1 C語言程序的版式45
3.1.2C語言的語句47
3.2 結構化程序設計和流程控制48
3.2.1 結構化程序設計48
3.2.2 C語言的流程控制語句和輔助控制語句48
3.3 if語句49
3.3.1 if語句的標準形式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 語句和標號64
3.7 典型程序編寫方法舉例64
本章小結74
習題375
第4章 函數(shù)77
4.1 C語言程序結構及模塊化設計77
4.1.1 結構化軟件及其優(yōu)越性77
4.1.2 C語言程序的結構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
本章小結101
習題4101
第5章 數(shù)組105
5.1 數(shù)組的定義和應用105
5.1.1 一維數(shù)組的定義和應用105
5.1.2 二維數(shù)組的定義和應用107
5.2 數(shù)組在函數(shù)間的傳遞 110
5.2.1 數(shù)組元素在函數(shù)間的傳遞110
5.2.2 數(shù)組在函數(shù)間的傳遞110
5.3 程序設計舉例112
本章小結118
習題5119
第6章 指針120
6.1 基本概念120
6.1.1 指針變量的引入120
6.1.2 指針變量的定義與初始化121
6.1.3 指針的使用123
6.2 指針運算125
6.2.1 指針的算術運算125
6.2.2 指針的關系運算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 綜合應用158
本章小結162
習題6164
第7章 字符串167
7.1 字符串的基本概念167
7.1.1 字符167
7.1.2 字符串168
7.1.3 字符數(shù)組與字符指針168
7.2 字符串的相關庫函數(shù)及其使用172
7.2.1 字符串輸入輸出函數(shù)173
7.2.2 字符串轉換函數(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
本章小結196
習題7196
第8章 結構和聯(lián)合202
8.1 結構及結構變量202
8.1.1 結構的定義202
8.1.2 結構變量的定義203
8.1.3 結構變量的使用形式和初始化204
8.2 結構數(shù)組與結構指針206
8.2.1 結構數(shù)組206
8.2.2 結構指針208
8.3 結構在函數(shù)間的數(shù)據(jù)傳遞212
8.4 位字段結構217
8.5 聯(lián)合218
8.6 類型定義語句typedef221
8.6.1 用typedef語句定義新類型名221
8.6.2 新類型名的應用222
8.7 枚舉類型224
8.7.1 枚舉類型的定義和枚舉變量的說明224
8.7.2 枚舉類型的應用225
8.8 綜合應用226
8.8.1 鏈表226
8.8.2 其他應用舉例239
本章小結241
習題8241
第9章 C語言中的文件與圖形247
9.1 文件的基本概念247
9.1.1 文本文件與二進制文件247
9.1.2 緩沖型文件系統(tǒng)247
9.2 文件類型指針248
9.3 文件操作與相關函數(shù)248
9.3.1 文件打開函數(shù)fopen ( )248
9.3.2 文件關閉函數(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ù)應用綜合舉例253
9.5 C語言圖形程序設計基本概念255
9.6 C語言中的圖形函數(shù)255
9.6.1 初始化圖形系統(tǒng)函數(shù)initgraph255
9.6.2 關閉圖形系統(tǒng)函數(shù)closegraph256
9.6.3 設置畫筆當前顏色及屏幕背景色257
9.6.4 畫點及獲取屏幕點的顏色257
9.6.5 設置線型及畫直線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 屏幕圖形的保存和恢復262
9.8 C語言圖形操作綜合應用舉例263
本章小結264
習題9265
第10章 編譯預處理268
10.1 宏定義268
10.1.1 不帶參數(shù)的宏268
10.1.2 帶參數(shù)的宏269
10.1.3 使用宏定義時應注意的問題270
10.2 文件包含271
10.3 條件編譯272
10.4 其他編譯預處理274
10.4.1 #error274
10.4.2 # pragma275
10.4.3 #line275
本章小結276
習題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設計思路294
11.3.1 面向?qū)ο蟪绦蛟O計的特征294
11.3.2 類設計示例295
11.3.3 類與結構體的區(qū)別297
本章小結298
習題11298
第12章 類與對象300
12.1 類的實例化—對象300
12.2 類的構造函數(shù)和析構函數(shù)301
12.2.1 構造函數(shù)301
12.2.2 重載構造函數(shù)和缺省構造函數(shù)302
12.2.3 析構函數(shù)304
12.3 new和delete306
12.4 this指針308
12.5 拷貝構造函數(shù)310
12.5.1 缺省拷貝構造函數(shù)311
12.5.2 自定義拷貝構造函數(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
本章小結333
習題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 訪問控制相關分析338
13.2 子類的構造函數(shù)順序339
13.3 多繼承342
13.3.1 多繼承的概念342
13.3.2 多繼承的構造函數(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 基類的析構函數(shù)是虛的351
13.5 虛函數(shù)表352
13.6 重載、隱藏和覆蓋的區(qū)別355
本章小結357
習題13357
附錄A ASCII碼表362
附錄B C語言中的關鍵字363
附錄C C語言中的常用庫函數(shù)364
參考文獻369