C語言程式設計(C99版)

C語言程式設計(C99版)

《C語言程式設計(C99版)》是清華大學出版社出版的圖書,作者是陳良銀、游洪躍、李旭偉。

內容簡介

本教材共12章,第1章闡述計算機的基本工作原理,並重點介紹了與C語言程式密切相關的計算機基礎知識;第2章介紹了C語言的核心內容;第3章著重介紹了基本數據類型、表達式和運算符;第4章介紹了結構化程式控制流程,重點介紹了三種基本控制結構;第5章探討了函式的作用以及函式的設計;第6章討論了指針和數組;第7章討論了遞歸函式;第8章討論了結構、聯合、位運算和枚舉;第9章闡述了預處理器的使用;第10章介紹了檔案的基本操作;第11章做了一些C語言高級話題的討論;第12章對C99和C89標準的主要不同作了對比。

本教材取材新穎,內容豐富,可讀性強,考慮到初學者的需求,特別增加了計算機基礎知識一章。本教材圍繞編程能力展開,線索清楚,尤其避免了學習者在學習初期陷入語法細節的煩惱。同時,考慮到讀者學習時的心理適應性,對一些枯燥的內容作了適當的處理。

本教材面向初學者,立足C99標準,全面系統地介紹了C語言各要素及C語言程式設計技術,重點介紹與C89兼容的內容。對C89和C99的主要不同用專門章節進行了論述。

本教材引入了C語言核心內容的概念,並按照以核心內容為主的思想組織教材。本教材意圖從總體結構入手,慢慢深入細節。本教材的另一特點是引入了程式缺陷的內容,它並不見得蒐集得很全,但是這部分內容不管對初學者還是對那些長期編程的人都很有用。

本教材可作為高等學校計算機類、非計算機類本科教材,亦可供有需要的人員自學使用。

圖書目錄

第1章基礎知識1

1.1計算機系統2

1.1.1計算機的硬體系統3

1.1.2計算機的軟體系統6

1.2計算機的基本工作原理7

1.2.1存儲程式的原理7

1.2.2記憶體地址的概念8

1.2.3C程式的記憶體分區9

1.3計算機語言12

1.3.1機器語言12

1.3.2彙編語言12

1.3.3高級語言13

1.4數據在計算機內的表示13

1.4.1計數制13

1.4.2不同進位計數制之間的轉換15

1.4.3數值信息在計算機中的表示18

1.4.4二進制算術運算和邏輯運算22

1.4.5ASCII碼25

1.5算法和數據結構27

1.5.1算法及其特點27

1.5.2數據結構28

1.5.3傳統流程圖表示算法28

1.6C語言標準簡介29

1.7C和C++的不同30

1.8C語言編程風格簡介30

習題31

第2章C語言的基本要素33

2.1C語言程式的開發過程34

2.2第一個C語言程式34

2.2.1C語言程式的注釋37

2.2.2main( )函式及其返回值38

2.2.3函式參數和返回值38

2.2.4函式體39

2.2.5C程式的運行過程40

2.3變數定義、算術表達式、賦值語句和while語句42

C語言程式設計(C99版)目錄2.3.1變數定義語句44

2.3.2賦值語句46

2.3.3算術表達式46

2.3.4while循環語句46

2.3.5顯示輸出函式printf( )47

2.4for循環語句48

2.5常量50

2.5.1用#define定義宏50

*2.5.2用const定義常量52

2.6字元的輸入和輸出操作52

2.6.1字元輸入輸出函式52

2.6.2檔案複製55

2.6.3字元計數58

2.6.4行計數61

2.6.5單詞計數63

2.7函式65

2.8函式參數——複製傳值68

2.9字元數組和字元指針71

2.9.1字元數組71

2.9.2字元指針75

2.10整型數組76

2.11外部變數及變數的作用域81

***2.12實例研究:尋找質數84

*2.13程式陷阱87

習題88

第3章變數名、數據類型、運算符和表達式91

3.1C語言的變數命名91

3.1.1字元集91

3.1.2關鍵字92

3.1.3變數命名92

3.2C語言的基本數據類型及其大小93

3.3常量及其類型94

3.3.1字元常量95

3.3.2整型常量97

3.3.3實型常量97

3.3.4字元串常量98

*3.3.5枚舉常量100

*3.3.6使用const限定的常量101

3.4變數類型及其定義102

3.4.1基本數據類型變數及其定義102

3.4.2變數的初始化105

3.5運算符和表達式105

3.5.1表達式和表達式的值106

3.5.2賦值運算符、賦值表達式和賦值語句106

3.5.3算術運算符及其表達式107

3.5.4自增和自減算術運算符及其表達式109

3.5.5關係運算符及其表達式114

3.5.6邏輯運算符及其表達式114

3.5.7逗號運算符及其表達式115

3.5.8條件運算符及其表達式116

3.5.9位運算符及其表達式117

3.5.10複合賦值運算符及其表達式120

3.6運算符的優先權和求值順序123

3.7類型轉換125

***3.8實例研究:求質數的快速篩法131

*3.9程式陷阱134

習題138

第4章C程式基本控制結構141

4.1程式的基本結構141

4.1.1語句和塊的概念141

4.1.2三種基本結構142

4.2順序結構程式設計142

4.2.1數據輸入輸出在C語言中的實現方法142

4.2.2順序結構程式實例143

4.3選擇結構程式設計143

4.3.1if…else…語句144

4.3.2else if語句145

4.3.3switch語句147

4.4循環結構程式設計150

4.4.1while 循環語句150

4.4.2for 循環語句150

4.4.3do…while循環語句154

4.4.4break、continue和goto語句156

***4.5實例研究:尋找名人158

*4.6程式陷阱161

習題162

第5章函式165

5.1C語言的程式模組165

5.2函式概念166

5.2.1函式基礎166

5.2.2函式的現代定義形式171

*5.2.3函式的傳統定義形式172

5.2.4函式返回語句return172

5.2.5函式返回非整數174

5.2.6函式原型177

**5.2.7內聯函式(inline關鍵字)177

5.3外部變數、內部變數及其作用域178

*5.3.1外部變數和內部變數178

5.3.2變數的作用域規則191

*5.3.3頭檔案的設計193

5.4變數的存儲類型196

5.4.1自動型變數196

5.4.2靜態型變數196

5.4.3暫存器型變數198

5.4.4外部型變數198

5.4.5塊結構199

5.4.6變數的存儲類型及其作用域總結199

5.5變數的初始化201

*5.6變數的連線202

*5.7自頂向下程式設計202

***5.8實例研究203

5.8.1洗牌和發牌模擬203

5.8.2尋求一一函式205

*5.9程式陷阱208

習題210

第6章數組和指針211

6.1指針和地址212

6.2指針和函式參數214

6.3指針和數組219

6.4地址運算223

6.5字元指針和函式227

6.6指針數組和指向指針的指針230

6.6.1指針數組230

*6.6.2指向指針的指針234

6.6.3指針數組的初始化236

6.7多維數組237

6.7.1二維數組的定義、初始化及引用237

*6.7.2二維數組作為形式參數240

**6.7.3指針數組與多維數組的比較242

***6.8實例研究243

6.8.1兌換錢問題243

6.8.2最長公共子序列245

*6.9程式陷阱248

習題253

第7章遞歸255

7.1遞歸問題求解255

**7.2回溯法259

7.3分而治之算法263

***7.4實例研究264

7.4.1漢諾塔問題264

7.4.2迷宮問題266

*7.5程式陷阱269

習題270

第8章結構、聯合、位運算和枚舉類型273

8.1結構273

8.1.1概述273

8.1.2結構的聲明273

8.1.3結構類型變數的引用276

8.1.4結構變數的初始化278

8.1.5結構數組279

8.1.6指向結構類型的指針285

8.2聯合289

8.2.1聯合的概念289

8.2.2聯合的定義290

8.2.3聯合變數的說明290

8.2.4聯合變數的賦值和使用291

8.3枚舉類型293

8.4類型定義:typedef298

8.5位運算符299

8.5.1位運算符介紹300

*8.5.2位運算綜合舉例305

**8.6位段308

8.6.1位段的定義和位段變數的說明308

8.6.2位段的使用310

***8.7實例研究313

8.7.1石頭、剪刀、布遊戲313

8.7.2最短路徑問題319

*8.8程式陷阱323

習題324

第9章預處理命令325

9.1概述325

9.2檔案包含325

9.3宏定義326

9.3.1無參宏定義326

9.3.2帶參宏定義329

*9.3.3取消宏#undef335

9.4條件編譯335

9.4.1第1種形式:#ifdef、#else和#endif335

9.4.2第2種形式:#if、#else和#endif337

9.4.3第3種形式:#ifndef、#else和#endif338

*9.5宏assert339

***9.6實例研究340

9.6.1碰運氣遊戲340

9.6.2編輯字元串346

*9.7程式陷阱351

習題352

第10章檔案353

10.1檔案概念353

10.2檔案指針354

10.3檔案的打開與關閉354

10.3.1檔案打開的函式fopen( )354

10.3.2檔案關閉的函式fclose( )356

10.4檔案檢測函式356

10.5檔案操作函式357

10.5.1字元讀寫函式:fgetc( )/fputc( )357

10.5.2字元串讀寫函式:fgets( )/fputs( )360

10.5.3數據塊讀寫函式:fread( )/fwrite( )363

10.5.4格式化讀寫函式:fscanf( )/fprintf( )367

10.6隨機讀寫檔案370

***10.7實例研究374

10.7.1檔案加密算法374

10.7.2檔案分割算法379

*10.8程式陷阱386

習題386

第11章高級話題387

**11.1變長參數列表387

**11.2命令行參數389

**11.3編譯多個源檔案程式的說明390

**11.4用exit( )退出程式的執行391

**11.5運態記憶體分配與釋放393

11.5.1運態記憶體分配函式: malloc( )393

11.5.2運態記憶體釋放函式:free( )393

11.5.3運態記憶體處理實例:線性鍊表393

**11.6指針的深入討論397

11.6.1數組名和指針變數作函式參數397

11.6.2指向函式的指針變數398

11.6.3返回指針的函式400

*11.7格式化輸出與輸入討論401

11.7.1格式化輸出函式printf( )401

11.7.2格式化輸入函式scanf ( )404

**11.8實例研究:生物基因序列407

*11.9程式陷阱417

習題418

**第12章C89與C99419

12.1C99增加的屬性419

12.1.1inline內聯函式420

12.1.2restrict限定的指針420

12.1.3新的內建數據類型421

12.2C99改變了的屬性422

12.3C99刪除了的屬性426

附錄AC程式的基本開發過程429

A.1安裝程式429

A.2建立一個工程429

附錄BASCII表433

附錄C運算符表435

附錄D常見標準庫函式437

附錄E輸入輸出格式控制符451

附錄FC程式設計編程風格指導453

附錄G四川大學計算機學院國家示範性軟體學院C語言考研試題舉例455

附錄H辭彙表459

參考文獻465

相關詞條

熱門詞條

聯絡我們