程序設計基礎(C語言)(第4版)
高克寧、李金雙、趙長寬、柳秀梅、徐彬
商品描述
目錄大綱
目錄
第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.3NS圖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