《程式設計基礎(C語言)》是由高克寧、李金雙、趙長寬、柳秀梅編著,2009年清華大學出版社出版的高等學校計算機基礎教育精選教材。該教材適合作為高等院校理工科學生教材,也可作為計算機培訓教材。
該教材共15章,介紹了程式設計的基本方法和技術,以程式設計思想、程式設計語言、程式設計技術和軟體工程管理四條主線組織相關內容。以C語言為依託,介紹了程式設計的基本知識。
基本介紹
- 書名:程式設計基礎(C語言)
- 作者:高克寧、李金雙、趙長寬、柳秀梅
- ISBN:9787302203780
- 類別:高等學校計算機基礎教育精選教材
- 頁數:477頁
- 出版社:清華大學出版社
- 出版時間:2009年10月1日
- 裝幀:平裝
- 開本:16可
- 字數:735千字
- CIP核字號:2009157301
成書過程
修訂情況
出版工作
責任編輯 | 責任校對 | 責任印製 |
---|---|---|
袁勤勇、李瑋琪 | 時翠蘭 | 何芊 |
內容簡介
教材目錄
第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語言)實驗指導與測試》 | 9787302208303 | 清華大學出版社 | 2009.09.01 | 高克寧、於瑞雲 |
- 課程資源