《程式設計基礎(C語言)(第3版)》是由高克寧等編著,2018年清華大學出版社出版的“十二五”普通高等教育本科國家級規劃教材、高等學校計算機基礎教育規劃教材、教育部-英特爾精品課程配套教材、遼寧省精品課程配套教材。該教材適合作為高等學校程式設計基礎課程的教材,也可供程式設計愛好者學習。
該教材介紹程式設計的基本方法和技術,全書共15章,以程式設計思想、程式設計語言、程式設計技術和軟體工程管理四條主線組織內容。
基本介紹
- 書名:程式設計基礎(C語言)(第3版)
- 作者:高克寧、李金雙、趙長寬、柳秀梅、徐彬
- ISBN:9787302488439
- 類別:“十二五”普通高等教育本科國家級規劃教材
- 頁數:489頁
- 出版社:清華大學出版社
- 出版時間:2018年1月1日
- 裝幀:平裝
- 開本:16開
- 字數:733千字
- CIP核字號:2017284894
成書過程
修訂情況
出版工作
責任編輯 | 封面設計 | 責任校對 | 責任印製 |
---|---|---|---|
袁勤勇、戰曉雷 | 常雪影 | 焦麗麗 | 李紅英 |
內容簡介
教材目錄
第1章計算機及程式設計概述11.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機器語言8 1.5.2彙編語言8 1.5.3高級語言9 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圖15 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語言程式結構21 1.9.4C程式設計過程23 1.10案例24 練習題25 第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自定義標識符31 2.4基本數據類型31 2.4.1整數類型33 2.4.2實數類型34 2.4.3字元類型34 2.4.4邏輯類型36 2.4.5複數類型36 2.5常量37 2.5.1整型常量37 2.5.2實型常量38 2.5.3字元常量38 2.5.4字元串常量39 2.5.5邏輯常量40 2.5.6複數常量40 2.5.7符號常量41 2.6變數41 2.6.1變數聲明42 2.6.2變數初始化43 2.6.3變數賦值44 2.6.4變數讀寫45 2.7案例45 練習題46 第3章基本運算與順序結構48 3.1概述48 3.2運算符與表達式48 3.3賦值運算50 3.4算術運算51 3.4.1基本算術運算51 3.4.2自增或自減運算52 3.4.3整數運算53 3.4.4實數運算55 3.4.5複合賦值運算56 3.5字元運算56 3.5.1算術運算56 3.5.2字元分類57 3.5.3字元轉換58 3.6位運算58 3.6.1位邏輯運算58 3.6.2位移運算60 3.6.3複合位運算及補位原則61 3.7逗號運算61 3.8強制類型轉換62 3.8.1算術運算中的隱式轉換62 3.8.2賦值運算中的隱式轉換62 3.8.3顯式轉換63 3.9sizeof運算64 3.10標準設備輸入輸出庫64 3.10.1字元輸入輸出函式65 3.10.2格式化輸出函式66 3.10.3格式化輸入函式72 3.11數學庫76 3.11.1實數計算函式76 3.11.2複數運算函式77 3.12基本語句78 3.12.1標籤語句78 3.12.2空語句78 3.12.3聲明語句79 3.12.4表達式語句79 3.12.5複合語句79 3.13順序結構80 3.14案例82 練習題83 第4章邏輯判斷與選擇結構85 4.1概述85 4.2關係運算85 4.3邏輯運算86 4.4條件運算88 4.5if語句89 4.5.1單分支選擇結構89 4.5.2雙分支選擇結構91 4.5.3多分支選擇結構93 4.6switch語句96 4.7選擇結構嵌套101 4.8案例106 練習題108 第5章疊代計算與循環結構109 5.1概述109 5.2while語句110 5.3do…while語句112 5.4for語句115 5.5循環語句對比118 5.6循環嵌套119 5.7跳轉控制語句124 5.7.1break語句124 5.7.2continue語句126 5.7.3goto語句126 5.7.4continue、break、goto語句的區別128 5.8案例129 練習題131 第6章集合數據與數組133 6.1概述133 6.2一維數組134 6.2.1一維數組定義134 6.2.2一維數組初始化135 6.2.3一維數組引用136 6.2.4一維數組套用137 6.3二維數組140 6.3.1二維數組定義141 6.3.2二維數組初始化142 6.3.3二維數組引用143 6.3.4二維數組套用143 6.4高維數組147 6.5字元數組與字元串149 6.5.1字元數組149 6.5.2字元串151 6.6字元串處理函式155 6.6.1字元串標準輸入輸出函式155 6.6.2字元串輸入輸出函式157 6.6.3字元串複製函式158 6.6.4字元串連線函式159 6.6.5字元串比較函式159 6.6.6字元串檢索函式160 6.6.7字元串轉換函式162 6.6.8其他字元串常用函式162 6.6.9寬位元組型字元串函式163 6.7數組新特性164 6.8案例165 練習題166 第7章模組化與函式168 7.1概述168 7.2函式定義170 7.2.1函式定義形式170 7.2.2函式返回值與函式類型173 7.3函式聲明、頭檔案的使用和庫函式聲明176 7.3.1函式聲明176 7.3.2頭檔案的使用177 7.3.3庫函式聲明178 7.4參數傳遞180 7.4.1形式參數180 7.4.2實際參數182 7.4.3值複製傳遞機制183 7.4.4地址複製傳遞機制185 7.4.5數組參數新特性189 7.5函式調用190 7.5.1函式調用形式190 7.5.2嵌套調用191 7.5.3遞歸調用192 7.6源程式檔案與函式分類194 7.6.1外部函式194 7.6.2內部函式195 7.6.3內聯函式196 7.7變數存儲類型197 7.7.1普通變數197 7.7.2暫存器變數197 7.8變數作用域198 7.8.1局部變數199 7.8.2全局變數200 7.8.3靜態變數203 7.8.4變數訪問控制204 7.9源程式結構205 7.9.1單檔案單函式結構205 7.9.2單檔案多函式結構206 7.9.3多檔案多函式結構206 7.10案例208 練習題210 第8章地址操作與指針212 8.1概述212 | 8.2指針和指針變數213 8.2.1指針變數聲明213 8.2.2指針變數的賦值及初始化214 8.2.3指針變數的引用214 8.3指針運算215 8.3.1取地址與取值運算216 8.3.2算術運算216 8.3.3關係運算218 8.3.4指針類型轉換218 8.4數組和指針220 8.4.1用指針訪問數組元素220 8.4.2指向多維數組的指針221 8.5字元串和指針224 8.5.1指針處理字元串224 8.5.2使用字元指針變數與字元數組的區別225 8.6函式和指針227 8.6.1指針作為函式參數227 8.6.2指針作為函式的返回值232 8.6.3指向函式的指針233 8.7指針數組236 8.7.1指針數組定義236 8.7.2帶參數的main函式239 8.8數組指針241 8.9指向指針的指針242 8.10記憶體訪問控制244 8.11案例245 練習題249 第9章複雜數據類型與結構體251 9.1概述251 9.2結構體類型252 9.2.1結構體類型定義253 9.2.2結構體類型變數聲明與初始化254 9.2.3結構體變數的引用257 9.2.4結構體數組259 9.2.5結構體與函式262 9.2.6結構體類型指針264 9.3共用體267 9.4枚舉類型269 9.5類型重定義271 9.6日期和時間273 9.7鍊表274 9.7.1鍊表定義274 9.7.2動態記憶體管理函式275 9.7.3鍊表的基本操作279 9.8結構體新特性283 9.9案例285 練習題290 第10章泛化編程與預編譯292 10.1概述292 10.2#define指令292 10.2.1不帶參數的宏定義292 10.2.2帶參數的宏定義294 10.3#include指令297 10.4條件編譯299 10.4.1#ifdef … #else …#endif299 10.4.2#ifndef … #else …#endif299 10.4.3#if … #else …#endif300 10.5其他指令302 10.6預定義宏305 10.7異常處理305 10.8程式移植307 10.9案例308 練習題310 第11章數據存儲與檔案312 11.1概述312 11.2文本檔案與二進制檔案313 11.2.1文本檔案313 11.2.2二進制檔案313 11.3檔案類型314 11.4檔案打開與關閉315 11.4.1檔案打開315 11.4.2檔案關閉318 11.5檔案讀寫319 11.5.1單字元讀寫319 11.5.2字元串讀寫322 11.5.3格式化讀寫323 11.5.4數據塊讀寫325 11.6檔案定位函式328 11.7檔案狀態跟蹤330 11.8其他檔案操作函式332 11.9案例334 練習題338 第12章程式設計思想及範例 340 12.1概述340 12.2求和/求積問題340 12.2.1多項式求和341 12.2.2數列求和342 12.3遍歷問題344 12.4疊代問題350 12.4.1二分疊代法350 12.4.2牛頓疊代法352 12.5排序問題354 12.5.1直接插入排序355 12.5.2起泡排序357 12.5.3選擇排序359 12.6查找問題361 12.6.1順序查找361 12.6.2折半查找362 12.7遞歸問題364 12.8矩陣運算367 12.8.1矩陣加/減運算367 12.8.2矩陣乘法368 12.8.3矩陣轉置370 練習題371 第13章面向對象與C++基礎373 13.1概述373 13.1.1結構化程式設計373 13.1.2模組封裝與訪問控制374 13.2面向對象程式設計376 13.3類與對象376 13.3.1類376 13.3.2對象378 13.3.3類在C++中的實現378 13.3.4成員變數384 13.3.5成員函式386 13.3.6構造函式和析構函式390 13.3.7函式重載392 13.3.8運算符重載394 13.3.9靜態成員變數396 13.3.10靜態成員函式398 13.4繼承與多態400 13.4.1類繼承400 13.4.2多態性與虛函式403 13.5案例407 練習題408 第14章高性能計算與並行程式設計409 14.1概述409 14.2並行算法409 14.2.1並行問題409 14.2.2並行算法設計410 14.3並行程式設計實現411 14.3.1並行程式設計模型411 14.3.2進程412 14.3.3創建進程412 14.3.4訊息傳遞413 14.4MPI程式設計基礎416 14.4.1MPI簡介416 14.4.2簡單MPI程式設計417 14.4.3MPI初始化與關閉417 14.4.4MPI函式館419 14.4.5MPI訊息傳遞420 14.5多核CPU與多執行緒428 14.5.1多核CPU428 14.5.2執行緒430 14.6OpenMP與多核程式設計431 14.6.1OpenMP簡介431 14.6.2OpenMP並行程式結構431 14.6.3parallel節433 14.6.4for節434 14.6.5其他節435 14.6.6共享變數與信息傳遞436 14.7多執行緒技術437 14.7.1執行緒函式館簡介437 14.7.2Win32執行緒函式館437 14.7.3C11標準執行緒函式館444 練習題451 第15章個體軟體過程管理453 15.1概述453 15.2編碼規範定義454 15.3MPI編碼規範454 15.3.1標識符命名規範455 15.3.2函式或過程規範455 15.4ANSI C程式編碼規範456 15.4.1代碼結構與組織456 15.4.2注釋458 15.4.3標識符命名規範460 15.4.4代碼風格與排版461 15.5代碼重用技術462 15.5.1源程式檔案463 15.5.2靜態庫463 15.5.3動態程式庫465 15.5.4組件技術467 15.6軟體生命周期模型簡介468 15.7CMM簡介470 15.8PSP簡介470 15.9PSP0級471 15.9.1計畫過程管理472 15.9.2開發過程管理472 15.9.3總結過程管理473 15.9.4PSP0過程管理文檔474 15.9.5PSP0.1級475 15.10軟體開發計畫477 15.10.1軟體開發計畫基本內容477 15.10.2制定個體軟體開發計畫478 15.10.3PSP軟體開發計畫過程管理479 15.11PSP1級479 15.11.1規模計算480 15.11.2任務計畫480 15.11.3進度計畫481 15.12PSP2級481 15.12.1代碼評審482 15.12.2設計評審483 15.12.3缺陷預防483 15.12.4PSP2級的改進483 練習題483 附錄AASCII碼錶485 附錄B運算符和結合方向486 參考文獻488 |
教學資源
- 配套教材
書名 | 書號 | 出版社 | 出版時間 | 作者 |
---|---|---|---|---|
《程式設計基礎(C語言)實驗指導與測試(第3版)》 | 9787302498537 | 清華大學出版社 | 2018.05.01 | 高克寧等 |
- 課程資源
教材特色
- 該教材圍繞程式設計能力培養,從程式設計思想、語言、技術和工程管理四個方面組織內容,以結構化程式設計思想為主,兼顧面向對象程式設計和並行程式設計;程式實現以C語言為主,介紹了C11標準,同時介紹其他語言的相應處理;從分解與重用的角度闡述函式、檔案、庫、組件等相關技術,從高性能計算的角度介紹MPI並行程式設計技術;從編碼規範入手引入個體軟體過程管理;
- 在教材內容編排模式上,採用將完整案例分解,逐級深入,引導學生有序地用程式設計思想解決實際工程問題;
- 配套實驗與測試教材以知識點為單元組織線上資源,利用思維導圖將知識點有機地聯繫到一起;從高度、廣度、深度三個方面立體展示了課程知識網路;
- 該教材中的部分程式要求採用支持C11標準的編譯器,建議使用GCC4.9.2或更新版本。