《C程式設計教程(第3版)》是由譚浩強著,2018年清華大學出版社出版的普通高等教育“十一五”國家級規劃教材、中國高等院校計算機基礎教育課程體系規劃教材。該教材可用作全國高等學校各專業的正式教材,適合一般院校的非計算機專業使用,同時也是一本供讀者自學的教材。
全書共9章,主要內容包括程式設計和C語言,最簡單的C程式設計——順序程式設計,選擇結構程式設計,循環結構程式設計等。
基本介紹
- 書名:C程式設計教程(第3版)
- 作者:譚浩強
- ISBN:9787302503828
- 類別:普通高等教育“十一五”國家級規劃教材
- 頁數:286頁
- 出版社:清華大學出版社
- 出版時間:2018年8月1日
- 裝幀:平裝
- 開本:16開
- 字數:469千字
- CIP核字號:2018122870
成書過程
修訂情況
出版工作
責任編輯 | 封面設計 | 責任校對 | 責任印製 |
---|---|---|---|
張民 | 何風霞 | 焦麗麗 | 從懷字 |
內容簡介
教材目錄
第1章程式設計和C語言1 1.1計算機與程式、程式設計語言1 1.2C語言的特點2 1.3簡單的C語言程式3 1.4C語言程式的結構6 1.5運行C程式的步驟與方法8 1.6程式設計的任務10 1.7算法——程式的靈魂11 1.7.1程式是什麼11 1.7.2什麼是算法12 1.7.3怎樣表示一個算法13 1.8結構化程式設計方法19 1.9學習程式設計,培養科學思維21 本章小結23 習題23 第2章最簡單的C程式設計——順序程式設計25 2.1順序程式設計舉例25 2.2數據的類型及存儲形式29 2.2.1C語言的數據類型29 2.2.2數據的表現形式——常量和變數29 2.2.3整型數據31 2.2.4字元型數據36 2.2.5浮點型數據41 2.3用表達式進行數據的運算43 2.3.1C表達式43 2.3.2C運算符44 2.3.3運算符的優先權與結合性46 2.3.4不同類型數據間的混合運算46 *2.3.5強制類型轉換47 2.4最常用的C語句——賦值語句48 2.4.1C語句綜述48 2.4.2賦值表達式50 2.4.3賦值語句53 2.5數據的輸入輸出56 2.5.1C語言中輸入輸出的概念56 2.5.2用printf函式輸出數據57 2.5.3用scanf函式輸入數據62 2.5.4字元數據的輸入輸出65 本章小結67 習題68 第3章選擇結構程式設計71 3.1簡單的選擇結構程式71 3.2選擇結構中的關係運算73 3.2.1關係運算符及其優先次序73 3.2.2關係表達式73 3.3選擇結構中的邏輯運算74 3.3.1邏輯運算符及其優先次序75 3.3.2邏輯表達式76 3.4用if語句實現選擇結構78 3.4.1if語句的三種形式78 3.4.2if語句的嵌套80 3.5用條件表達式實現選擇結構83 3.6利用switch語句實現多分支選擇結構86 3.7選擇結構程式綜合舉例88 本章小結94 習題94 第4章循環結構程式設計96 4.1程式需要循環96 4.2用while語句和do…while語句實現循環96 4.2.1用while語句實現循環96 4.2.2用do…while語句實現循環98 4.2.3while循環和do…while循環的比較99 4.2.4遞推與疊代101 4.3用for語句實現循環104 4.3.1for語句的執行過程104 4.3.2for語句的各種形式106 4.3.3for循環套用舉例108 4.4循環的嵌套110 4.5用break語句和continue語句改變循環狀態110 4.5.1用break語句提前退出循環110 4.5.2用continue語句提前結束本次循環111 4.6幾種循環的比較113 4.7循環程式舉例113 本章小結116 習題117 第5章利用數組處理批量數據119 5.1數組的作用119 5.2怎樣定義和引用一維數組120 5.2.1怎樣定義一維數組120 5.2.2怎樣引用一維數組元素120 5.2.3一維數組的初始化121 5.2.4利用一維數組的典型算法——遞推與排序122 5.3怎樣定義和引用二維數組125 5.3.1怎樣定義二維數組125 5.3.2怎樣引用二維數組的元素126 5.3.3二維數組程式舉例126 5.3.4二維數組的初始化129 5.4利用字元數組處理字元串數據130 5.4.1怎樣定義字元數組130 5.4.2字元數組的初始化131 5.4.3引用字元數組的元素132 5.4.4字元串和字元串結束標誌133 5.4.5字元數組的輸入輸出方法135 5.4.6有關字元處理的算法136 5.4.7利用字元串處理函式139 本章小結142 習題143 | 第6章利用函式進行模組化程式設計1456.1為什麼要使用函式145 6.1.1函式是什麼145 6.1.2程式和函式146 6.2怎樣定義函式147 6.2.1為什麼要定義函式147 6.2.2怎樣定義無參函式148 6.2.3怎樣定義有參函式148 6.3函式參數和函式的值149 6.3.1形式參數和實際參數149 6.3.2函式的返回值150 6.4函式的調用151 6.4.1函式調用的一般形式151 6.4.2調用函式的方式152 6.4.3對被調用函式的聲明和函式原型152 6.5函式的嵌套調用155 6.6函式的遞歸調用157 6.6.1什麼是函式的遞歸調用157 6.6.2遞歸算法分析157 6.6.3用遞歸函式實現遞歸算法160 6.7數組作為函式參數164 6.8函式套用舉例——編寫排序程式168 6.9變數的作用域和生存期171 6.9.1局部變數171 6.9.2全局變數171 *6.9.3變數的存儲方式和生存期172 6.9.4作用域與生存期小結176 6.10關於變數的聲明和定義178 本章小結179 習題180 第7章善於使用指針182 7.1什麼是指針182 7.2變數的指針和指向變數的指針變數184 7.2.1怎樣定義指針變數184 7.2.2怎樣引用指針變數187 7.2.3指針變數作為函式參數189 7.3通過指針引用數組194 7.3.1數組元素的指針194 7.3.2指針的運算195 7.3.3通過指針引用數組元素196 7.3.4用數組名作函式參數200 7.4通過指針引用字元串206 7.4.1引用字元串的方法206 7.4.2字元指針作函式參數209 7.4.3對使用字元指針變數和字元數組的歸納212 本章小結215 習題219 第8章根據需要創建數據類型221 8.1定義和引用結構體變數221 8.1.1怎樣創建結構體類型221 8.1.2怎樣定義結構體類型變數223 8.1.3引用結構體變數225 8.2使用結構體數組228 8.2.1定義結構體數組228 8.2.2結構體數組套用舉例230 8.3結構體指針231 8.3.1指向結構體變數的指針231 *8.3.2指向結構體數組的指針233 *8.3.3用結構體變數和結構體變數的指針作函式參數234 *8.4用指針處理鍊表237 8.4.1什麼是鍊表237 8.4.2建立簡單的靜態鍊表239 8.4.3建立動態鍊表240 8.4.4輸出鍊表243 8.5使用枚舉類型246 8.5.1什麼是枚舉和枚舉變數246 8.5.2枚舉型數據套用舉例247 本章小結250 習題251 第9章利用檔案保存數據252 9.1C檔案的有關概念252 9.1.1什麼是檔案252 9.1.2檔案名稱253 9.1.3檔案的分類253 9.1.4檔案緩衝區254 9.1.5檔案類型指針254 9.1.6檔案位置標記255 9.2檔案的打開與關閉256 9.2.1用fopen函式打開檔案256 9.2.2用fclose函式關閉檔案257 9.3檔案的順序讀寫258 9.3.1向檔案讀寫一個字元258 9.3.2向檔案讀寫一個字元串260 *9.3.3對檔案進行格式化讀寫263 *9.3.4按二進制方式對檔案進行讀寫264 *9.4檔案的隨機讀寫264 9.4.1檔案位置標記的定位264 9.4.2對檔案進行隨機讀寫266 本章小結267 習題269 附錄A常用字元與ASCII代碼對照表270 附錄BC語言中的關鍵字271 附錄C運算符和結合性272 附錄DC語言常用語法提要275 附錄EC庫函式280 參考文獻287 |
教學資源
書名 | 書號 | 出版社 | 出版時間 | 作者 |
---|---|---|---|---|
《C程式設計教程(第3版)學習輔導》 | 9787302503835 | 清華大學出版社 | 2018.08.01 | 譚浩強 |
教材特色
- 按照C99標準進行介紹,以適應C語言的發展,使編寫程式更加規範;C99所增加的許多新的功能和規則,是在編制比較複雜的程式時為方便使用和提高效率而用的,在初學時可以不涉及,因此該教材對暫時用不到的內容不作介紹;
- 加強算法,強化解題思路;在各章中結合例題介紹各種典型的算法,對窮舉、遞推、疊代、遞歸、排序(包括比較交換法、選擇法、起泡法)、矩陣運算、字元處理套用等算法作了介紹,對難度較大的鍊表處理算法的思路作了清晰說明;介紹例題時,在給出問題後,先是進行問題分析,探討解題思路,構造算法,然後才根據算法編寫程式,而不是先列出程式再解釋程式,從中了解算法;
- 對指針作了更明確詳盡的說明,在該次修訂中對指針的性質作了進一步說明,指出:人們所說的指針就是地址,這個地址不僅是在記憶體中的位置信息(即純地址),而且包括在該存儲單元中的數據的類型信息,並對此作了有力而明確的說明;
- 作者適當降低門檻,便於讀者入門;儘量少用深奧難懂的專業術語,用通俗易懂的方法和語言闡述清楚複雜的概念,使複雜的問題簡單化。