標準C程式設計(第7版)

標準C程式設計(第7版)

《標準C程式設計(第7版)》是一本於2017年07月由清華大學出版社出版,李周芳編譯的面向C語言程式開發的書籍。

簡介

作者:[印] E. Balagurusamy 著 李周芳 譯
定價:79.80元
印次:1-1
ISBN:9787302471202
出版日期:2017.07.01
印刷日期:2017.06.13

內容

本書專門用於滿足渴望成為程式設計師的學生,最新版按照Bloom分類法所定的學習目標來呈現主題,支持基於學習的成果。本書解釋了基本概念和高級內容,且主要關注編程基礎。本書詳盡地解釋了數組、字元串、函式、指針和數據結構。大量示例使內容更相關,提高了學習效果。本書適用於初學者和有經驗的專業人員,有關C語言的幾乎所有問題在這本書中都能找到答案。

目錄

第1章 C語言概述 1

1.1 C語言的歷史 1

1.2 C語言的主要特性 3

1.3 示例程式1:顯示一條訊息 3

1.4 示例程式2:兩個數相加 6

1.5 示例程式3:利息計算 7

1.6 示例程式4:子例程的使用 9

1.7 示例程式5:數學函式的使用 10

1.8 C程式的基本結構 11

1.9 編程風格 12

1.10 運行C程式 13

1.11 在UNIX系統環境下 14

1.11.1 創建程式 14

1.11.2 編譯與連結 15

1.11.3 運行程式 15

1.11.4 創建自己的可運行檔案 15

1.11.5 多個源檔案問題 16

1.12 在MS-DOS系統環境下 17

重要術語 17

謹記 17

複習題 18

調試練習 19

編程練習 20

第2章 常量、變數及數據類型 23

2.1 概述 23

2.2 字元集 23

2.3 C標記符 25

2.4 關鍵字與標識符 25

2.5 常量 26

2.5.1 整型常量 26

2.5.2 實數常量 28

2.5.3 單字元常量 29

2.5.4 字元串常量 29

2.5.5 反斜槓字元常量 29

2.6 變數 30

2.7 數據類型 31

2.7.1 整型 32

2.7.2 浮點型 33

2.7.3 void類型 34

2.7.4 字元類型 34

2.8 變數的聲明 34

2.8.1 基本類型的聲明 34

2.8.2 自定義類型的聲明 36

2.9...

2.10變數的賦值38

2.10.1賦值語句39

2.10.2從鍵盤讀取數據41

2.11符號常量的定義43

2.11.1可修改性43

2.11.2可理解性43

2.12將變數聲明為常量44

2.13將變數聲明為可變的45

2.14數據的上溢和下溢45

重要術語45

謹記46

2.15案例學習46

2.15.1平均數計算(中級難度)46

2.15.2溫度轉換問題(中級難度)47

複習題48

調試練習50

編程練習50

第3章運算符與表達式53

3.1概述53

3.2算術運算符54

3.2.1整數算術運算54

3.2.2實數算術運算55

3.2.3混合算術運算56

3.3關係運算符56

3.4邏輯運算符57

3.5賦值運算符58

3.6遞增和遞減運算符60

3.7條件運算符61

3.8逐位運算符61

3.9特殊運算符62

3.9.1逗號運算符62

3.9.2sizeof運算符63

3.10算術表達式64

3.11表達式的計算64

3.12算術表達式的優先權65

3.13一些可計算性問題67

3.14表達式中的類型轉換68

3.14.1隱式類型轉換68

3.14.2顯式類型轉換70

3.15運算符的優先權及其關聯性71

3.16數學函式73

關鍵術語74

謹記74

3.17案例學習75

3.17.1銷售人員的工資

(中等難度)75

3.17.2二次方程的求解

(高級難度)76

複習題77

調試練習80

編程練習81

第4章管理輸入和輸出操作85

4.1概述85

4.2讀取一個字元86

4.3寫一個字元88

4.4格式化輸入90

4.4.1整數輸入90

4.4.2輸入實數92

4.4.3輸入字元串93

4.4.4混合數據類型的讀取95

4.4.5錯誤輸入的檢測96

4.4.6使用scanf函式時應記住的

幾個要點98

4.5格式化輸出98

4.5.1整數的輸出99

4.5.2實數的輸出100

4.5.3單個字元的顯示102

4.5.4字元串的顯示102

4.5.5混合數據的輸出103

4.5.6提高輸出的可讀性104

關鍵術語105

謹記105

4.6案例學習106

4.6.1庫存報告(中級難度)106

4.6.2可靠性圖形(高級難度)107

複習題109

調試練習111

編程練習112

第5章判斷與分支115

5.1概述115

5.2if判斷語句115

5.3簡單if語句116

5.4if…else語句120

5.5嵌套if…else語句122

5.6階梯式elseif語句125

5.7switch語句128

5.8?:運算符132

5.9goto語句136

關鍵術語138

謹記139

5.10案例學習139

5.10.1數值的分布範圍

(中級難度)139

5.10.2賬單計算(中級難度)141

練習題143

調試練習147

編程練習148

第6章判斷與循環153

6.1概述153

6.2while語句155

6.3do語句157

6.4for語句159

6.4.1簡單的for循環159

6.4.2for循環的其他特性163

6.4.3for循環的嵌套165

6.5循環中的跳轉168

6.5.1跳出循環168

6.5.2跳過循環的一部分171

6.5.3避免使用goto語句173

6.5.4跳出程式174

6.6簡潔的測試表達式174

關鍵術語175

謹記175

6.7案例學習176

6.7.1二項式係數表(中級難度)176

6.7.2柱狀圖(中級難度)177

6.7.3最小成本(中級難度)179

6.7.4描繪兩函式的曲線圖

(高級難度)180

複習題182

調試練習184

編程練習185

第7章數組189

7.1概述189

7.2一維數組191

7.3一維數組的聲明192

7.4一維數組的初始化194

7.4.1編譯時初始化194

7.4.2運行時初始化195

7.5二維數組199

7.6二維數組的初始化203

7.7多維數組210

7.8動態數組211

7.9與數組相關的其他內容211

關鍵術語212

謹記212

7.10案例學習213

7.10.1數列的中值問題

(中級難度)213

7.10.2標準差的計算(中級難度)215

7.10.3測試評分(高級難度)217

7.10.4產品與銷售分析

(高級難度)219

複習題224

調試練習225

編程練習227

第8章字元數組與字元串231

8.1概述231

8.2字元串變數的聲明與初始化232

8.3從終端讀取字元串233

8.3.1使用scanf函式233

8.3.2讀取文本行235

8.3.3使用getchar和gets函式235

8.4在螢幕上顯示字元串239

8.4.1使用printf函式239

8.4.2使用putchar和puts函式242

8.5字元的算術運算243

8.6將字元串組合在一起245

8.7兩個字元串的比較246

8.8字元串處理函式246

8.8.1strcat函式247

8.8.2strcmp函式248

8.8.3strcpy函式248

8.8.4strlen函式249

8.8.5其他字元串函式251

8.9字元串表253

8.10字元串的其他特性254

關鍵術語255

謹記255

8.11案例學習255

8.11.1計算文本中的單詞數

(中級難度)255

8.11.2客戶列表的處理

(中級難度)257

複習題259

調試練習261

編程練習262

第9章用戶自定義函式265

9.1概述265

9.2為什麼需要自定義函式265

9.3多函式程式266

9.4自定義函式的元素269

9.5函式定義269

9.5.1函式頭270

9.5.2函式體271

9.6返回值及其類型271

9.7函式調用273

9.8函式聲明274

9.9函式的類型276

9.10無參數、無返回值的函式276

9.11有參數、無返回值的函式278

9.12有參數、有返回值的函式281

9.13無參數但有一個返回值的

函式285

9.14返回多個值的函式285

9.15函式的嵌套287

9.16函式的遞歸288

9.17將數組傳遞給函式289

9.17.1一維數組289

9.17.2二維數組292

9.18將字元串傳遞給函式293

9.19變數的作用域、可見性和

生存期294

9.19.1自動變數294

9.19.2外部變數296

9.19.3外部聲明298

9.19.4靜態變數300

9.19.5暫存器變數301

9.19.6嵌套代碼塊302

9.20多檔案程式303

關鍵術語304

謹記305

9.21案例學習306

複習題308

調試練習311

編程練習312

第10章結構體與共用體315

10.1概述315

10.2結構體的定義316

10.3聲明結構體變數317

10.4訪問結構體成員319

10.5結構體的初始化320

10.6結構體變數的複製與比較322

10.7單個成員的運算323

10.8結構體數組324

10.9結構體中的數組326

10.10結構體中的結構體328

10.11結構體與函式330

10.12共用體332

10.13結構體的大小333

10.14位域334

關鍵術語336

謹記336

10.15案例學習337

複習題340

調試練習343

編程練習344

第11章指針347

11.1概述347

11.2理解指針348

11.3訪問變數的地址350

11.4指針變數的聲明351

11.5指針變數的初始化352

11.6通過指針訪問變數353

11.7指針鏈355

11.8指針表達式356

11.9指針的遞增與比例因子357

11.10指針與數組358

11.11指針與字元串361

11.12指針數組363

11.13將指針作為函式的參數364

11.14函式返回指針367

11.15指向函式的指針368

11.16指針與結構體370

11.17指針存在的問題373

關鍵術語374

謹記374

11.18案例學習375

11.18.1考試成績處理程式

(高級難度)375

11.18.2庫存更新程式

(中級難度)378

複習題379

調試練習381

編程練習382

第12章檔案管理385

12.1概述385

12.2定義並打開檔案386

12.3關閉檔案387

12.4檔案的輸入/輸出操作388

12.4.1getc與putc函式388

12.4.2getw和putw函式389

12.4.3fprintf與fscanf函式391

12.5I/O操作的錯誤處理393

12.6隨機訪問檔案396

12.7命令行參數401

關鍵術語403

謹記404

複習題404

調試練習405

編程練習406

第13章動態記憶體分配與鍊表407

13.1概述407

13.2動態記憶體分配407

13.3用malloc函式分配一塊記憶體408

13.4用calloc函式分配多個

記憶體塊410

13.5用free函式釋放已用的空間411

13.6用realloc函式改變記憶體塊的

大小411

13.7鍊表的概念413

13.8鍊表的優點416

13.9鍊表的種類417

13.10再論指針417

13.11創建鍊表419

13.12插入一個數據項422

13.13刪除數據項425

13.14鍊表的套用427

關鍵術語428

謹記428

13.15案例學習429

13.15.1在已排序鍊表中插入

數據(中級難度)429

13.15.2構建已排序的鍊表

(高級難度)432

複習題434

調試練習436

編程練習437

第14章預處理器439

14.1概述439

14.2宏替換指令440

14.2.1簡單宏替換440

14.2.2帶參數的宏442

14.2.3宏嵌套443

14.2.4取消宏定義444

14.3檔案包含444

14.4編譯器控制指令445

14.4.1情形1445

14.4.2情形2446

14.4.3情形3447

14.4.4情形4447

14.5ANSIC的其他預處理指令448

14.5.1#elif指令448

14.5.2#pragma指令449

14.5.3#error指令449

14.5.4字元串化運算符#450

14.5.5標記符貼上運算符##450

關鍵術語451

謹記451

複習題451

調試練習452

編程練習452

第15章C程式開發的一些指導原則455

15.1概述455

15.2程式設計455

15.2.1問題分析456

15.2.2勾勒出程式的結構456

15.2.3算法開發456

15.2.4控制結構的選擇457

15.3程式編碼457

15.3.1自身文檔化457

15.3.2語句的構造458

15.3.3輸入/輸出格式459

15.3.4程式的通用性459

15.4常見的程式錯誤459

15.4.1丟失分號459

15.4.2誤用分號460

15.4.3丟失括弧460

15.4.4丟失引號461

15.4.5誤用引號461

15.4.6使用不正確的注釋字元461

15.4.7未聲明變數462

15.4.8忽視了運算符的優先權462

15.4.9忽視了遞增/遞減運算符

的計算順序463

15.4.10忽視了函式參數的

說明463

15.4.11在函式調用中實參和

形參類型不匹配463

15.4.12函式未聲明464

15.4.13在scanf函式的參數中

丟失了&運算符464

15.4.14超出了數組的邊界464

15.4.15忘記了給字元串的

空字元留出空間465

15.4.16使用未初始化的指針465

15.4.17丟失了間接運算符和

地址運算符465

15.4.18在指針表達式中

丟失括弧466

15.4.19宏定義語句中的參數

遺漏了括弧466

15.5程式測試與調試467

15.5.1錯誤的類型467

15.5.2程式測試468

15.5.3程式調試468

15.6程式的效率469

15.6.1運行時間469

15.6.2記憶體需求469

關鍵術語469

謹記470

複習題470

附錄A位級程式設計473

附錄B字元的ASCII值479

附錄CANSIC語言的庫函式481

附錄D項目設計485

附錄EC99/C11的特性527

附錄F使用C語言進行圖形編程535

相關詞條

熱門詞條

聯絡我們