程序設計基礎(C語言)(第4版)

高克寧、李金雙、趙長寬、柳秀梅、徐彬

  • 出版商: 清華大學
  • 出版日期: 2025-04-01
  • 售價: $479
  • 語言: 簡體中文
  • ISBN: 7302684650
  • ISBN-13: 9787302684657
  • 相關分類: C 程式語言
  • 下單後立即進貨 (約4週~6週)

  • 程序設計基礎(C語言)(第4版)-preview-1
  • 程序設計基礎(C語言)(第4版)-preview-2
  • 程序設計基礎(C語言)(第4版)-preview-3
程序設計基礎(C語言)(第4版)-preview-1

商品描述

"圍繞計算思維、電腦思維和工程思維的培養,面向程序設計基礎能力的培養,從程序設計思想、語言、技術和工程管理四個方面組織內容,共分為15個章節。從程序設計思想入手,以C語言為依托,涵蓋C99、C11、C18等標準。前11章系統、全面地介紹了編程語言的基礎知識,包括標識符、數據類型、變量與常量、表達式與運算符、輸入輸出、程序結構、數組、函數、指針、結構體與共享體、預編譯與宏定義、文件操作等內容。每章設置的兩個案例採用逐級深入的方式,循序漸進引導學生完成實際問題的程序開發過程。第12章精選典型問題的求解算法匯總成章。在第13章引入面向對象程序設計,實現與C++的銜接。第14章面向多核CPU快速發展和高性能計算需求,引入並行程序設計內容。第15章,從軟件過程管理的角度,介紹軟件工程管理的基礎支持,為軟件設計打下基礎。通過本教材的學習,在系統掌握C語言的基礎上,可以掌握基本的程序設計能力,並接觸高性能計算和個體軟件過程管理等內容,對於大多數僅僅開設一門程序設計類課程的理工專業的學生有很大的幫助。 另外從電腦發展歷史、電腦**技術成果中選取相關素材,製作精彩案例,擴大讀者的視野,同時激勵讀者的歷史責任感,為國家和民族的偉大復興做出自己的貢獻。"

目錄大綱

目錄

                                                   第1章電腦及程序設計概述1

1.1概述1

1.2計算與機器2

1.2.1計算器2

1.2.2機械式電腦2

1.2.3圖靈機模型3

1.2.4電子數字電腦4

1.3指令與程序5

1.4電腦的典型應用6

1.5程序設計語言7

1.5.1機器語言7

1.5.2匯編語言8

1.5.3高級語言8

1.6問題求解與算法11

1.6.1算法定義12

1.6.2算法復雜性12

1.7算法描述13

1.7.1偽代碼13

1.7.2流程圖14

1.7.3NS圖14

1.8程序設計15

1.8.1基本步驟15

1.8.2結構化程序設計16

1.8.3面向對象程序設計17

1.8.4並行程序設計17

1.8.5程序設計思想前沿18

1.9C語言簡介18

1.9.1C語言的特點18

1.9.2簡單的C程序

設計19

1.9.3C語言程序結構20

1.9.4C程序設計過程22

1.10綜合應用23

1.11案例電腦與人腦24

練習題26第2章信息編碼與數據類型27

2.1概述27

2.2二進制與信息編碼27

2.2.1整數編碼27

2.2.2實數編碼28

2.2.3字符編碼29

2.3標識符和關鍵字30

2.3.1標識符構成30

2.3.2關鍵字30

2.3.3自定義標識符30

2.4基本數據類型31

2.4.1整數類型33

2.4.2實數類型34

2.4.3字符類型34

2.4.4邏輯類型35

2.4.5復數類型36

2.5常量36

2.5.1整型常量36

2.5.2實型常量37

2.5.3字符常量37

2.5.4字符串常量39

2.5.5邏輯常量39

2.5.6復數常量39

2.5.7符號常量40

2.6變量40

2.6.1變量聲明41

2.6.2變量初始化42

2.6.3變量賦值43

2.6.4變量讀寫43

2.7綜合應用44

2.8案例獨立自主的漢字

編碼44

練習題45〖1〗〖3〗程序設計基礎(C語言)(第4版)目錄〖3〗〖3〗第3章基本運算與順序結構47

3.1概述47

3.2運算符與表達式47

3.3賦值運算49

3.4算術運算50

3.4.1基本算術運算50

3.4.2自增或自減運算51

3.4.3整數運算52

3.4.4實數運算53

3.4.5復合賦值運算54

3.5字符運算55

3.5.1算術運算55

3.5.2字符分類55

3.5.3字符轉換56

3.6位運算57

3.6.1位邏輯運算57

3.6.2位移運算58

3.6.3復合位運算及補

位原則59

3.7逗號運算59

3.8強制類型轉換60

3.8.1算術運算中的隱式

轉換60

3.8.2賦值運算中的隱式

轉換60

3.8.3顯式轉換61

3.9sizeof運算62

3.10標準設備輸入輸出

函數庫62

3.10.1字符輸入輸出

函數62

3.10.2格式化輸出函數63

3.10.3格式化輸入函數69

3.11數學庫72

3.11.1實數計算函數72

3.11.2復數運算函數73

3.12EGE繪圖庫74

3.13基本語句77

3.14順序結構78

3.15綜合應用80

3.16案例漢字輸入與激光

照排技術80

練習題81第4章邏輯判斷與選擇結構83

4.1概述83

4.2關系運算83

4.3邏輯運算84

4.4條件運算86

4.5if語句86

4.5.1單分支選擇結構87

4.5.2雙分支選擇結構88

4.5.3多分支選擇結構90

4.6switch語句93

4.7選擇結構嵌套96

4.8綜合應用100

4.9案例從因果關繫到關聯

關系100

練習題102第5章迭代計算與循環結構103

5.1概述103

5.2while語句104

5.3do…while語句106

5.4for語句108

5.5循環語句對比111

5.6循環嵌套112

5.7跳轉控制語句115

5.7.1break語句115

5.7.2continue語句116

5.7.3goto語句117

5.7.4continue、break、goto

語句的區別118

5.8綜合應用120

5.9案例圓周率的計算與迭代

算法120

練習題121第6章集合數據與數組123

6.1概述123

6.2一維數組124

6.2.1一維數組定義124

6.2.2一維數組初始化125

6.2.3一維數組引用126

6.2.4一維數組應用127

6.3二維數組129

6.3.1二維數組定義129

6.3.2二維數組初始化130

6.3.3二維數組引用131

6.3.4二維數組應用131

6.4高維數組134

6.5字符數組與字符串136

6.5.1字符數組136

6.5.2字符串137

6.6字符串處理函數140

6.6.1字符串標準輸入

輸出函數141

6.6.2其他字符串輸入

輸出函數142

6.6.3字符串復制函數143

6.6.4字符串連接函數143

6.6.5字符串比較函數144

6.6.6字符串檢索函數145

6.6.7字符串轉換函數146

6.6.8其他字符串常用

函數147

6.6.9寬字節類型字符串

函數148

6.7數組新特性148

6.8綜合應用149

6.9案例由表及里、去偽

存真150

練習題151第7章模塊化與函數153

7.1概述153

7.2函數定義155

7.2.1函數定義形式155

7.2.2函數返回值與函數

類型157

7.3函數聲明、頭文件的使用

和庫函數聲明160

7.3.1函數聲明160

7.3.2頭文件的使用161

7.3.3庫函數聲明162

7.4參數傳遞163

7.4.1形式參數164

7.4.2實際參數165

7.4.3值復制傳遞機制167

7.4.4地址復制傳遞

機制168

7.4.5數組參數新特性172

7.5函數調用172

7.5.1函數調用形式173

7.5.2嵌套調用173

7.5.3遞歸調用175

7.6源程序文件與函數分類176

7.6.1外部函數177

7.6.2內部函數177

7.6.3內聯函數178

7.7變量存儲類型179

7.7.1普通變量179

7.7.2寄存器變量179

7.8變量作用域180

7.8.1局部變量180

7.8.2全局變量182

7.8.3靜態變量184

7.8.4變量訪問控制185

7.9源程序結構186

7.9.1單文件單函數

結構186

7.9.2單文件多函數

結構187

7.9.3多文件多函數

結構187

7.10綜合應用188

7.11案例函數庫與科學計算

工具箱190

練習題191第8章地址操作與指針193

8.1概述193

8.2指針和指針變量194

8.2.1指針變量聲明194

8.2.2指針變量的賦值及

初始化194

8.2.3指針變量的引用195

8.3指針運算196

8.3.1取地址與取值

運算196

8.3.2算術運算197

8.3.3關系運算198

8.3.4指針類型轉換198

8.4數組和指針200

8.4.1用指針訪問數組

元素200

8.4.2指向多維數組的

指針201

8.5字符串和指針203

8.5.1指針處理字符串203

8.5.2使用字符指針變量與

字符數組的區別204

8.6函數和指針205

8.6.1指針作為函數

參數206

8.6.2指針作為函數的

返回值210

8.6.3指向函數的指針212

8.7指針數組213

8.7.1指針數組定義214

8.7.2帶參數的main

函數216

8.8數組指針217

8.9指向指針的指針218

8.10內存訪問控制220

8.11綜合應用221

8.12案例指針的“顯”

與“隱”222

練習題224第9章復雜數據類型與結構體226

9.1概述226

9.2結構體類型227

9.2.1結構體類型定義227

9.2.2結構體類型變量聲

明與初始化229

9.2.3結構體變量的

引用231

9.2.4結構體數組233

9.2.5結構體與函數235

9.2.6結構體類型指針236

9.3共享體238

9.4枚舉類型240

9.5類型重定義242

9.6日期和時間243

9.7鏈表244

9.7.1鏈表定義244

9.7.2動態內存管理

函數245

9.7.3鏈表的基本操作247

9.8結構體新特性251

9.9綜合應用253

9.10案例復雜數據存儲254

練習題256第10章泛化編程與預編譯258

10.1概述258

10.2#define指令258

10.2.1不帶參數的宏

定義258

10.2.2帶參數的宏

定義260

10.3#include指令263

10.4條件編譯264

10.4.1#ifdef…#else

 …#endif264

10.4.2#ifndef…#else

 …#endif265

10.4.3#if…#else 

…#endif265

10.5#error與#運算指令266

10.6預定義宏267

10.7異常處理268

10.8程序移植269

10.9綜合應用270

10.10案例泛化與開源271

練習題272第11章數據存儲與文件274

11.1概述274

11.2文本文件與二進制文件275

11.2.1文本文件275

11.2.2二進制文件275

11.3文件類型276

11.4文件打開與關閉276

11.4.1文件打開277

11.4.2文件關閉279

11.5文件讀寫280

11.5.1單字符讀寫280

11.5.2字符串讀寫282

11.5.3格式化讀寫283

11.5.4數據塊讀寫284

11.6文件定位函數287

11.7文件狀態跟蹤288

11.8其他文件操作函數290

11.9綜合應用291

11.10案例結構化數據與非

結構化數據293

練習題295第12章程序設計思想及範例 297

12.1概述297

12.2求和/求積問題297

12.2.1多項式求和298

12.2.2數列求和299

12.3遍歷問題300

12.4迭代問題302

12.4.1二分迭代法303

12.4.2牛頓迭代法304

12.5排序問題305

12.5.1直接插入排序305

12.5.2起泡排序306

12.5.3選擇排序307

12.6查找問題308

12.6.1順序查找308

12.6.2折半查找309

12.7遞歸問題310

12.8矩陣運算311

12.8.1矩陣加/減

運算311

12.8.2矩陣乘法312

12.8.3矩陣轉置313

練習題313第13章面向對象與C++基礎315

13.1概述315

13.1.1結構化程序

設計315

13.1.2模塊封裝與

訪問控制316

13.2面向對象程序設計317

13.3類與對象318

13.3.1類318

13.3.2對象319

13.3.3類在C++中的

實現320

13.3.4成員變量324

13.3.5成員函數326

13.3.6構造函數和析構

函數329

13.3.7函數重載330

13.3.8運算符重載332

13.3.9靜態成員變量334

13.3.10靜態成員函數335

13.4繼承與多態337

13.4.1類繼承337

13.4.2多態性與虛

函數339

13.5綜合應用342

13.6案例程序設計思想的

發展與融合342

練習題344第14章高性能計算與並行程序

設計345

14.1概述345

14.2並行算法345

14.2.1並行問題345

14.2.2並行算法設計346

14.3並行程序設計347

14.3.1並行程序設計

模型347

14.3.2進程347

14.3.3創建進程348

14.3.4消息傳遞348

14.4MPI程序設計基礎352

14.4.1MPI簡介352

14.4.2簡單MPI程序

設計352

14.4.3MPI初始化與

關閉353

14.4.4MPI函數庫354

14.4.5MPI消息傳遞355

14.5多核CPU與多線程360

14.5.1多核CPU360

14.5.2線程361

14.6OpenMP與多核程序

設計362

14.6.1OpenMP簡介362

14.6.2OpenMP並行

程序結構363

14.6.3parallel節364

14.6.4for節365

14.6.5其他節366

14.6.6共享變量與信息

傳遞366

14.7多線程技術367

14.7.1線程函數庫

簡介367

14.7.2Win32線程

函數庫368

14.7.3C11標準線程

函數庫372

14.8案例高性能計算與

“天河二號”376

練習題378第15章個體軟件過程管理379

15.1概述379

15.2編碼規範定義379

15.3MPI編碼規範380

15.3.1標識符命名

規範380

15.3.2函數或過程

規範381

15.4ANSI C程序編碼規範381

15.4.1代碼結構與

組織381

15.4.2註釋383

15.4.3標識符命名

規範385

15.4.4代碼風格與

排版386

15.5代碼重用技術387

15.5.1源程序文件387

15.5.2靜態庫387

15.5.3動態鏈接庫389

15.5.4組件技術391

15.6軟件生命周期模型簡介392

15.7CMM簡介394

15.8PSP簡介395

15.9PSP 0級395

15.9.1計劃過程管理396

15.9.2開發過程管理396

15.9.3總結過程管理397

15.9.4PSP 0過程管理

文檔397

15.9.5PSP 0.1級398

15.10軟件開發計劃400

15.10.1軟件開發計劃

基本內容401

15.10.2制訂個體軟件

開發計劃401

15.10.3PSP軟件開發計

劃過程管理401

15.11PSP 1級403

15.11.1規模計算403

15.11.2任務計劃404

15.11.3進度計劃404

15.12PSP 2級404

15.12.1代碼評審405

15.12.2設計評審406

15.12.3缺陷預防406

15.12.4PSP 2級的

改進406

15.13案例軟件開發與成熟

度模型: CMM認證406

練習題408附錄AASCII表409

附錄B運算符和結合方向410參考文獻412