程式設計基礎(C語言)(2009年清華大學出版社出版的圖書)

程式設計基礎(C語言)(2009年清華大學出版社出版的圖書)

《程式設計基礎(C語言)》是由高克寧、李金雙、趙長寬、柳秀梅編著,2009年清華大學出版社出版的高等學校計算機基礎教育精選教材。該教材適合作為高等院校理工科學生教材,也可作為計算機培訓教材。

該教材共15章,介紹了程式設計的基本方法和技術,以程式設計思想、程式設計語言、程式設計技術和軟體工程管理四條主線組織相關內容。以C語言為依託,介紹了程式設計的基本知識。

基本介紹

  • 書名:程式設計基礎(C語言)
  • 作者:高克寧、李金雙、趙長寬、柳秀梅
  • ISBN:9787302203780
  • 類別:高等學校計算機基礎教育精選教材
  • 頁數:477頁
  • 出版社:清華大學出版社
  • 出版時間:2009年10月1日
  • 裝幀:平裝
  • 開本:16可
  • 字數:735千字
  • CIP核字號:2009157301
成書過程,修訂情況,出版工作,內容簡介,教材目錄,教學資源,教材特色,作者簡介,

成書過程

修訂情況

該教材是總結了作者的教學和軟體開發經驗編寫而成。由高克寧教授主編,副主編有李金雙、趙長寬和柳秀梅。編寫分工如下:第1、2、5章由高克寧編寫,第3、4、9、13章由李金雙編寫,第6、8、10、11章由柳秀梅編寫,第7、12、14、15章由趙長寬編寫。雒興剛副教授和博士生張引也參與了該教材的編寫工作,李鳳雲、李婕參與核對工作。
2012年11月21日,該教材入選第一批“十二五”普通高等教育本科國家級規劃教材。

出版工作

2009年10月1日,該教材由清華大學出版社出版。
出版社工作人員
責任編輯責任校對責任印製
袁勤勇、李瑋琪
時翠蘭
何芊

內容簡介

該教材共分15章。第1章從計算機基礎知識入手,結合計算機套用及相關問題描述,介紹算法的概念,並介紹了主流的程式設計思想和程式設計語言,並以一個簡單問題開始介紹了C程式設計的基本概貌。第2章從信息編碼與存儲著手,介紹C語言的基本數據類型,同時與其他語言的數據類型進行了對比。第3章從值計算的角度出發,介紹了C語言中的運算符與表達式。第4章介紹了常用的文本標準輸出庫,以及基於BGI/GDI/OpenGL的圖形輸出技術。第5章重點介紹程式控制語句。
第6章介紹一維數組、二維數組和字元串的概念,並結合專業套用介紹了矩陣運算及線性方程求解問題。第7章從項目分工和代碼重用的角度介紹了函式的基本概念,並介紹了基於多檔案的程式基本結構。第8章介紹了指針的基本知識,重點從記憶體管理的角度,對其概念進行了深入分析。第9章介紹自定義數據結構--結構體和共用體基本知識,並介紹了線性鍊表的基本知識。第10章介紹預編譯處理相關指令。
第11章介紹檔案的基本概念和常用函式,並通過學生管理系統案例對結構化程式設計進行小結。第12章系統地將常用問題分類整理,並給出相關處理的算法。第13章從代碼和數據封裝的角度介紹了面向對象的程式設計思想。第14章從並行程式設計的實際需求入手,介紹了基於MPI的並行程式設計。第15章從培養合格程式設計人員的角度,介紹了程式設計規範和代碼重用技術,同時引入軟體工程的概念,初步介紹了個體軟體過程(PSP)。

教材目錄

第1章計算機及程式設計概述1
1.1概述1
1.2計算機的基本原理1
1.3指令與程式3
1.4計算機套用簡介4
1.5程式設計語言6
1.6問題求解與算法設計9
1.6.1算法定義9
1.6.2算法的複雜性11
1.6.3偽代碼11
1.6.4流程圖12
1.6.5N-S圖13
1.6.6UML14
1.7程式設計思想14
1.7.1程式設計概述14
1.7.2程式設計基本步驟15
1.7.3結構化程式設計16
1.7.4面向對象程式設計17
1.7.5並行程式設計19
1.7.6程式設計思想前沿20
1.8C語言概述20
1.8.1C語言的特點20
1.8.2簡單的C程式設計21
1.8.3C語言程式結構23
1.8.4C程式調試處理26
1.9案例--應用程式界面的簡單設計27
練習題28
第2章基本數據類型、常量及變數30
2.1概述30
2.2信息編碼與存儲31
2.2.1數值31
2.2.2字元32
2.3標識符34
2.4數據類型35
2.5常量37
2.5.1整型常量37
2.5.2實型常量38
2.5.3字元常量39
2.5.4字元串常量40
2.5.5符號常量41
2.6變數42
2.6.1變數聲明42
2.6.2變數初始化44
2.6.3變數賦值45
2.6.4const修飾符46
2.7數據溢出與計算精度47
2.8其他語言的基本數據類型49
2.8.1C++語言的基本類型49
2.8.2Java語言的基本類型50
2.8.3C#語言的基本類型51
2.9數據類型與程式移植52
2.10案例--跨平台程式開發54
練習題55
第3章運算符與表達式57
3.1概述57
3.2算術運算符與算術表達式58
3.3關係運算符與關係表達式59
3.4邏輯運算符與邏輯表達式60
3.5賦值運算符與賦值表達式61
3.6++/--運算符與自增/自減表達式62
3.7條件運算符與條件表達式64
3.8逗號運算符與逗號表達式64
3.9sizeof運算符65
3.10類型轉換65
3.10.1隱式轉換66
3.10.2顯式轉換67
3.11位運算符與位運算68
3.11.1位邏輯運算68
3.11.2位移運算70
3.11.3複合位運算及補位原則70
3.12表達式運算71
3.13其他語言中的運算符及表達式72
3.14案例72
練習題73
第4章輸入輸出75
4.1概述75
4.2printf函式76
4.2.1printf函式的調用格式76
4.2.2printf函式的簡單套用76
4.2.3printf函式的格式控制字元串77
4.3scanf函式82
4.3.1scanf函式的調用格式82
4.3.2scanf函式的格式控制字元串83
4.4字元輸入與輸出85
4.5圖形輸出86
4.5.1圖形處理函式86
4.5.2圖形界面接口90
4.6案例--基於OpenGL建立一個立方體91
練習題93
第5章程式控制結構95
5.1概述95
5.2基本語句96
5.3條件控制語句100
5.3.1if語句100
5.3.2if-else語句102
5.3.3if-elseif語句104
5.3.4switch語句106
5.3.5分支結構套用111
5.4循環控制語句114
5.4.1while語句114
5.4.2for語句117
5.4.3do-while語句120
5.4.4循環的本質122
5.4.5幾種循環語句的比較124
5.4.6循環結構套用124
5.5其他控制語句126
5.5.1goto語句127
5.5.2break語句128
5.5.3continue語句129
5.5.4goto,break,continue語句的區別130
5.6語句嵌套132
5.6.1條件分支嵌套結構132
5.6.2循環嵌套結構134
5.7案例--應用程式選單界面136
練習題137
第6章數組140
6.1概述140
6.2一維數組141
6.2.1一維數組定義141
6.2.2一維數組初始化142
6.2.3一維數組引用143
6.2.4一維數組套用145
6.3二維數組147
6.3.1二維數組定義147
6.3.2二維數組初始化147
6.3.3二維數組引用149
6.3.4二維數組套用150
6.4高維數組152
6.5字元數組與字元串154
6.5.1字元數組154
6.5.2字元串155
6.5.3字元串輸入輸出156
6.5.4常用字元串處理函式158
6.5.5字元數組與字元串套用160
6.6數組與數據存儲163
6.6.1一維數組的存儲163
6.6.2二維數組的存儲163
6.6.3多維數組的存儲164
6.6.4字元串的存儲164
6.7案例--高斯消去法求解線性方程組165
練習題167
第7章函式170
7.1概述170
7.2函式定義172
7.2.1函式返回值172
7.2.2函式定義的通用格式173
7.2.3無返回值類型的函式176
7.2.4有返回值類型的函式177
7.2.5空函式178
7.3函式聲明178
7.3.1庫函式聲明178
7.3.2用戶自定義函式聲明179
7.4參數傳遞183
7.4.1形式參數與實際參數183
7.4.2值拷貝傳遞機制186
7.4.3地址拷貝傳遞機制188
7.4.4數組作為函式參數189
7.5函式調用192
7.5.1函式調用的一般形式193
7.5.2函式調用的方式194
7.6函式的嵌套調用與遞歸調用196
7.6.1嵌套調用196
7.6.2遞歸調用197
7.7變數的作用域和存儲類型200
7.7.1局部變數與全局變數200
7.7.2變數的存儲類型205
7.7.3變數的生存期與作用域208
7.8內部函式與外部函式209
7.9函式程式結構210
7.9.1單檔案單函式結構211
7.9.2單檔案多函式結構211
7.9.3多檔案多函式結構211
7.9.4多檔案多函式多庫結構213
7.10案例--典型波形的繪製213
練習題221
第8章指針223
8.1概述223
8.2指針和指針變數224
8.3指針運算227
8.3.1指針運算符227
8.3.2算術運算228
8.3.3關係運算230
8.3.4指針類型轉換230
8.4數組和指針232
8.4.1用指針訪問數組元素232
8.4.2指向多維數組的指針234
8.5字元串和指針237
8.5.1指針處理字元串237
8.5.2使用字元指針變數與字元數組的區別239
8.6函式和指針241
8.6.1指針作為函式參數241
8.6.2指針作為函式的返回值246
8.6.3指向函式的指針247
8.7指針數組251
8.7.1指針數組聲明251
8.7.2帶參數的main函式253
8.8數組指針255
8.9指向指針的指針257
8.10記憶體管理258
8.10.1動態記憶體分配259
8.10.2動態記憶體分配套用261
8.11案例--棧的基本操作算法265
練習題267
第9章結構體、共用體與枚舉類型269
9.1概述269
9.2結構體類型270
9.2.1結構體定義270
9.2.2結構體變數的聲明和初始化272
9.2.3結構體變數的引用274
9.2.4結構體變數作為函式參數和函式返回值277
9.2.5結構體數組278
9.2.6結構體類型指針279
9.3共用體281
9.4枚舉類型283
9.5類型重定義286
9.6再議數據類型與存儲288
9.7鍊表290
9.7.1鍊表定義290
9.7.2鍊表的基本操作292
9.8案例--問卷調查294
練習題299
第10章預編譯和宏定義301
10.1概述301
10.2#define命令301
10.2.1不帶參數的宏定義302
10.2.2帶參數的宏定義304
10.3#include命令306
10.4條件編譯308
10.5其他指令311
10.6預定義宏314
10.7案例--系統可移植性處理314
練習題315
第11章檔案317
11.1概述317
11.2文本檔案與二進制檔案317
11.3檔案的定義319
11.4檔案打開與關閉320
11.4.1檔案打開320
11.4.2檔案關閉322
11.5檔案讀寫323
11.5.1單字元讀寫323
11.5.2字元串讀寫325
11.5.3格式化讀寫327
11.5.4數據塊的讀寫328
11.6檔案定位函式332
11.7檔案狀態跟蹤334
11.8案例--學生信息管理系統336
練習題346
第12章程式設計思想及範例348
12.1概述348
12.2求和/求積問題348
12.2.1多項式計算349
12.2.2數列求和351
12.3遍歷問題353
12.4疊代問題358
12.4.1二分法358
12.4.2牛頓疊代法360
12.5排序問題361
12.5.1直接插入排序362
12.5.2起泡法排序363
12.5.3選擇排序365
12.6查找問題366
12.6.1順序查找367
12.6.2折半查找368
12.7遞歸問題--漢諾塔369
12.8字元串處理372
12.8.1字元串長度計算372
12.8.2字元串拷貝372
12.8.3字元串連線373
12.9矩陣運算375
12.9.1矩陣加減運算375
12.9.2矩陣乘法376
12.9.3矩陣轉置378
練習題380
第13章面向對象程式設計381
13.1概述381
13.1.1模組化設計381
13.1.2代碼封裝383
13.2面向對象程式設計384
13.3類與對象385
13.3.1類386
13.3.2對象387
13.3.3類在C++中的實現388
13.3.4類在Java中的實現390
13.4面向對象的語言實現392
13.4.1類的繼承392
13.4.2屬性394
13.4.3方法398
13.4.4虛函式401
13.5面向對象的軟體開發與UML建模404
13.5.1靜態建模--用例404
13.5.2靜態建模--類和對象405
13.5.3動態建模--活動圖406
13.5.4動態建模--順序圖407
13.6案例--學生信息管理系統408
第14章並行程式設計與MPI415
14.1概述415
14.2並行算法416
14.2.1並行問題416
14.2.2並行算法設計416
14.3並行程式設計417
14.3.1並行程式設計模型417
14.3.2進程418
14.3.3創建進程419
14.3.4訊息傳遞420
14.4MPI程式設計基礎423
14.5MPI初始化與關閉426
14.6MPI訊息傳遞427
14.6.1獲取進程標識427
14.6.2獲取通信域內的進程數量428
14.6.3訊息傳送428
14.6.4訊息接收429
14.7案例--π值計算432
第15章個體軟體開發過程管理(PSP)438
15.1概述438
15.2編碼規範定義439
15.3MPI編碼規範439
15.4ANSIC程式編碼規範441
15.4.1代碼結構與組織441
15.4.2注釋444
15.4.3標識符命名規範445
15.4.4代碼風格與排版447
15.5代碼重用技術448
15.5.1源程式檔案448
15.5.2靜態庫449
15.5.3動態程式庫451
15.5.4組件技術452
15.6軟體生命周期模型454
15.7CMM簡介456
15.8PSP個體軟體開發過程簡介456
15.9PSP0級457
15.9.1計畫過程管理458
15.9.2開發過程管理458
15.9.3總結過程管理459
15.9.4PSP0過程文檔460
15.9.5PSP0.1級461
15.10軟體開發計畫463
15.11PSP1級466
15.12PSP2級468
附錄1C語言中的關鍵字471
附錄2ASCII碼錶472
附錄3運算符和結合方向474
參考文獻476c
(註:目錄排版順序為從左列至右列

教學資源

  • 配套教材
該教材配有配套教材——《程式設計基礎(C語言)實驗指導與測試》。
書名書號出版社出版時間作者
《程式設計基礎(C語言)實驗指導與測試》
9787302208303
清華大學出版社
2009.09.01
高克寧、於瑞雲
  • 課程資源
該教材各章後練習題答案及相關資料。

教材特色

該教材從程式設計思想入手,在介紹一門主流程式設計語言的同時,兼顧其他主流的程式設計語言。在介紹傳統的結構化程式設計的同時,引入面向對象程式設計思想,結合併行設計的發展動向,介紹基於MPI的並行程式設計,同時結合軟體開發實踐,引入程式設計規範和代碼重用技術。該教材面向工程套用的實踐,引入了工程問題,並且從編碼風格到軟體工程,注重程式設計師的基本素質的培養。

作者簡介

高克寧,女,工學博士,東北大學計算中心教育技術與雲計算研究所長、教授、中國計算機學會辦公自動化專業委員會委員、中國計算機學會高級會員、美國ACM學會會員。主要研究領域為Web信息處理、社會網路。

相關詞條

熱門詞條

聯絡我們