《程式設計基礎(C語言)(第2版)》是由張先偉、馬新娟、張立紅、王雲、田愛奎編著,2016年清華大學出版社出版的21世紀高等學校計算機專業實用規劃教材。 該教材可作為高等院校相關專業教材,亦可供從事計算機相關領域的科研人員參考自學。
該教材介紹在C語言環境下編寫程式的思路與方法。全書共15章,內容共分為三部分,以程式設計的基本思想與方法作為主要結構,介紹了程式的基本結構組織、批量數據的組織方式與處理技巧,引入了遞推、遞歸、動態規劃、貪心等常用的算法設計方法套用案例,強調了程式設計中設計方法與動手實踐。
基本介紹
- 書名:程式設計基礎(C語言)(第2版)
- 作者:張先偉、馬新娟、張立紅、王雲、田愛奎
- ISBN:9787302440864
- 類別:21世紀高等學校計算機專業實用規劃教材
- 頁數:365頁
- 出版社:清華大學出版社
- 出版時間:2016年9月1日
- 裝幀:平裝
- 開本:16開
- 字數:576千字
- CIP核字號:2016132437
成書過程
修訂過程
出版工作
責任編輯 | 封面設計 | 責任校對 | 責任印製 |
---|---|---|---|
劉星 | 劉鍵 | 李建莊 | 王靜怡 |
內容簡介
教材目錄
第1章程式設計引論1.1電腦程式與計算機語言 1.1.1電腦程式 1.1.2計算機記憶體 1.1.3計算機語言 1.1.4C語言簡介 1.2簡單的C程式構成 1.2.1最簡單的C語言程式舉例 1.2.2C程式的結構 1.3C程式設計的基本步驟 1.3.1需求分析 1.3.2詳細設計 1.3.3編輯程式 1.3.4編譯與連結 1.3.5運行與調試 1.4C程式檔案的創建、編譯與運行 1.4.1CodeBlocks下程式檔案的創建、編譯與運行 1.4.2Visual C++ 6.0下程式檔案的創建、編譯與運行 1.5本章小結 第2章算法設計基礎 2.1什麼是算法 2.1.1日常生活中的算法 2.1.2計算機算法的分類 2.1.3簡單算法舉例 2.2算法的特徵 2.3算法的表示方法 2.3.1自然語言表示算法 2.3.2傳統流程圖表示算法 2.3.3三種基本結構 2.3.4用NS流程圖表示算法 2.3.5其他表示算法的方法 2.4程式設計中常用算法 2.4.1疊代法 2.4.2窮舉搜尋法 2.4.3遞推法 2.4.4遞歸 2.4.5回溯法 2.4.6貪心法 2.4.7分治法 2.4.8動態規劃法 2.5本章小結 第3章數據類型基礎 3.1數據在計算機中的存儲方式 3.1.1二進制 3.1.2位與位元組 3.1.3數據的存儲方式 3.2常量與變數 3.2.1基本概念 3.2.2定義常量的名字(預處理命令#define) 3.2.3變數的聲明和賦值 3.2.4常量的分類 3.3基本數據類型 3.3.1整型 3.3.2實型 3.3.3字元型 3.3.4sizeof()求類型大小 3.4數據類型轉換 3.4.1自動轉換 3.4.2強制類型轉換 3.5運算符與表達式 3.5.1算術運算符 3.5.2自增運算符和自減運算符 3.5.3算術表達式 3.5.4運算符的優先權和結合性 3.6本章小結 第4章順序控制結構與數據的輸入輸出 4.1順序結構 4.1.1C語句綜述 4.1.2賦值運算符和賦值表達式 4.1.3順序結構實例 4.2數據的輸入輸出及實現 4.3字元數據的輸入輸出 4.3.1putchar函式 4.3.2getchar函式 4.4格式化輸入輸出 4.4.1格式輸出printf函式 4.4.2格式輸入scanf函式 4.5本章小結 第5章分支控制結構 5.1關係運算符和關係表達式 5.2邏輯運算符和邏輯表達式 5.3if語句 5.3.1if語句的三種形式 5.3.2if語句的嵌套 5.3.3條件運算符與條件表達式 5.3.4if語句中的複合語句 5.4switch語句 5.5本章小結 第6章循環控制結構 6.1循環控制結構 6.2while()語句 6.2.1while語句的一般形式 6.2.2如何終止while循環 6.2.3while語法要點 6.2.4計數循環與不確定循環 6.3do…while語句——退出條件循環 6.3.1do while的一般形式 6.3.2do while語句的使用 6.3.3do while語句的語法要點 6.4逗號運算符和逗號表達式 6.5for語句 6.5.1for語句的一般形式 6.5.2for語句的靈活運用 6.5.3逗號表達式在for語句中的使用 6.6空語句在循環中的使用 6.7循環語句的選擇 6.8循環嵌套 6.9break和continue語句 6.10本章小結 第7章函式 7.1函式概述 7.1.1什麼是函式 7.1.2為什麼使用函式 7.1.3函式的特點 7.1.4函式的分類 7.2函式定義和調用 7.2.1函式定義 7.2.2函式調用 7.2.3函式的聲明 7.2.4return語句 7.3嵌套調用與遞歸調用 7.3.1嵌套調用 7.3.2遞歸調用 7.4變數與函式 7.4.1變數的作用域和存儲類別 7.4.2局部變數的作用域和存儲類別 7.4.3全局變數的作用域和存儲類別 7.5隨機數函式 7.6本章小結 第8章數組 8.1一維數組的定義、引用與初始化 8.1.1一維數組的定義 8.1.2一維數組元素的引用 8.1.3一維數組的初始化 8.2一維數組的套用 8.2.1Fibonacci數列 8.2.2統計問題 8.2.3排序問題 8.2.4查找問題 8.2.5逆置與移位 8.2.6元素刪除 8.3二維數組 8.3.1二維數組的定義 8.3.2二維數組元素的引用 8.3.3二維數組的初始化 8.3.4二維數組程式舉例 8.4數組與函式 8.4.1數組元素作函式實參 8.4.2數組名作為函式參數 8.5本章小結 | 第9章指針9.1地址與指針 9.1.1變數、數組、函式與地址 9.1.2變數的地址和變數的值 9.1.3變數的訪問方式 9.1.4指針和指針變數 9.2指針變數 9.2.1指針變數的定義 9.2.2指針變數的引用 9.2.3指針變數作為函式參數 9.3指向數組的指針變數 9.3.1指向數組元素的指針 9.3.2通過指針引用數組元素 9.3.3指向數組的指針變數作為函式參數 9.3.4指向多維數組的指針變數 9.4函式指針變數 9.4.1函式指針與指向函式的指針變數 9.4.2用函式指針變數調用函式 9.4.3用指向函式的指針變數作函式參數 9.5返回指針值的函式 9.6指針數組和指向指針的指針 9.6.1指針數組的概念 9.6.2指向指針的指針 9.7本章小結 第10章字元串 10.1字元串常量 10.1.1字元串與字元串結束標誌 10.1.2什麼是字元串常量 10.1.3如何存儲字元串常量 10.2如何表示字元串變數 10.2.1字元數組的定義與引用 10.2.2字元數組的初始化 10.2.3指針變數與字元串 10.2.4字元串數組 10.3字元串的輸入輸出 10.3.1用gets函式和puts函式輸入輸出字元串 10.3.2用scanf函式和printf函式輸入輸出字元串 10.4字元串處理函式 10.5字元指針與字元數組的區別 10.6程式舉例 10.7本章小結 第11章結構體、共用體和枚舉 11.1示例問題: 學生成績管理的例子 11.2結構體 11.2.1結構體類型的定義 11.2.2結構體類型變數的定義 11.2.3結構體類型變數的引用與賦值 11.2.4結構體變數的初始化 11.2.5結構體類型數組 11.2.6結構體類型指針變數 11.2.7結構體類型指針變數作函式參數 11.3共用體 11.3.1共用體類型的概念 11.3.2共用體類型變數的引用 11.3.3共用體類型數據的特點 11.4枚舉 11.4.1枚舉類型的概念和定義 11.4.2枚舉類型變數的賦值和使用 11.5利用typedef自定義類型 11.6本章小結 第12章檔案 12.1檔案概述 12.1.1檔案的概念 12.1.2檔案的分類 12.1.3標準檔案I/O 12.2檔案指針 12.3檔案的打開與關閉 12.3.1檔案打開函式(fopen)與程式結束函式(exit) 12.3.2檔案關閉函式(fclose) 12.4文本檔案的讀寫 12.4.1字元讀寫函式(fgetc和fputc) 12.4.2字元串讀寫函式(fgets和fputs) 12.4.3格式化讀寫函式(fscanf和fprintf) 12.5二進制檔案的讀寫 12.5.1二進制模式與文本模式的區別 12.5.2數據塊讀寫函式(fread和fwtrite) 12.6檔案操作的其他函式 12.6.1判斷檔案是否結束函式(feof) 12.6.2檔案內部指針定位 12.6.3ftell函式 12.6.4int fflush()函式 12.7綜合示例 12.8本章小結 第13章鍊表 13.1動態記憶體分配 13.1.1C程式的記憶體劃分 13.1.2記憶體分配方式 13.1.3動態記憶體分配函式 13.2單鍊表概述 13.2.1結點的結構 13.2.2單鍊表的結構 13.3單鍊表結點的基本操作 13.3.1單鍊表結點的查找 13.3.2單鍊表結點的插入 13.3.3單鍊表結點的刪除 13.4單鍊表的建立 13.4.1逆序建鍊表 13.4.2順序建鍊表 13.5單鍊表的套用 13.5.1單鍊表的逆置 13.5.2單鍊表的歸併 13.5.3單鍊表的拆分 13.6循環鍊表與約瑟夫環問題 13.6.1循環鍊表 13.6.2約瑟夫環問題 13.7本章小結 第14章遞推與遞歸 14.1遞推 14.1.1遞推思想 14.1.2求解遞推關係的方法 14.1.3遞推關係的建立 14.2遞推設計實例 14.2.1簡單Hanoi塔問題 14.2.2捕魚問題 14.2.3Fibonacci類問題 14.2.4錯排公式 14.2.5馬踏過河卒 14.3遞歸 14.3.1遞歸的定義 14.3.2遞歸的思想 14.4遞歸設計實例 14.4.1青蛙過河問題 14.4.2快速排序問題 14.4.3第k小的數 14.4.4全排列問題 14.4.5八皇后問題 14.5遞歸的效率 14.6本章小結 第15章貪心法與動態規劃法 15.1貪心法 15.1.1貪心法的思想 15.1.2貪心法的實現過程 15.1.3貪心法的基本要素 15.1.4貪心法的注意事項 15.2貪心法實例 15.2.1刪數問題 15.2.2活動選擇問題 15.2.3區間覆蓋問題 15.2.4貪心法解題的一般步驟 15.3動態規劃 15.3.1什麼是動態規劃 15.3.2引入動態規劃的意義 15.3.3動態規劃的特徵 15.3.4動態規划算法的基本步驟 15.4動態規劃實例 15.4.1簡單最短路徑問題 15.4.2最長公共子序列問題 15.4.3最長上升子序列問題 15.5本章小結 |
教學資源
書名 | 書號 | 出版社 | 出版時間 | 作者 |
---|---|---|---|---|
《程式設計基礎習題與實驗指導(C語言)》 | 9787302432210 | 清華大學出版社 | 2016.08.01 | 馬新娟、張立紅 |