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

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

《程式設計基礎(C語言)(第2版)》是由張先偉、馬新娟、張立紅、王雲、田愛奎編著,2016年清華大學出版社出版的21世紀高等學校計算機專業實用規劃教材。 該教材可作為高等院校相關專業教材,亦可供從事計算機相關領域的科研人員參考自學。

該教材介紹在C語言環境下編寫程式的思路與方法。全書共15章,內容共分為三部分,以程式設計的基本思想與方法作為主要結構,介紹了程式的基本結構組織、批量數據的組織方式與處理技巧,引入了遞推、遞歸、動態規劃、貪心等常用的算法設計方法套用案例,強調了程式設計中設計方法與動手實踐。

基本介紹

  • 書名:程式設計基礎(C語言)(第2版)
  • 作者:張先偉、馬新娟、張立紅、王雲、田愛奎
  • ISBN:9787302440864
  • 類別:21世紀高等學校計算機專業實用規劃教材
  • 頁數:365頁
  • 出版社:清華大學出版社
  • 出版時間:2016年9月1日
  • 裝幀:平裝
  • 開本:16開
  • 字數:576千字
  • CIP核字號:2016132437
成書過程,修訂過程,出版工作,內容簡介,教材目錄,教學資源,教材特色,作者簡介,

成書過程

修訂過程

該教材由張先偉、馬新娟負責策劃、修訂。具體編寫分工如下:張先偉完成第1、2、8、9、13、14、15章的修訂編寫,馬新娟完成第3、4、5、6、7、10、11、12章的修訂編寫。第2版對教材內容進行了較大的修訂,重新調整了全書的章節結構,補充完善了更多有代表性的題目。

出版工作

2016年9月1日,該教材由清華大學出版社出版。
出版社工作人員
責任編輯封面設計責任校對責任印製
劉星
劉鍵
李建莊
王靜怡

內容簡介

全書共15章,內容共分為三部分,分別介紹程式的基本結構、批量數據的組織方式與處理技巧、常用算法的思路與套用典型案例。第一部分主要介紹程式結構與函式,力求結合案例以簡練的內容介紹最常用的知識與離散數據的處理方法;第二部分主要以經典案例與實踐訓練相結合的方法介紹批量數據的組織方法與處理技巧;第三部分主要以基本算法理論與經典案例結合的方式介紹常用算法。

教材目錄

第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用NS流程圖表示算法
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語言)》。
書名書號出版社出版時間作者
《程式設計基礎習題與實驗指導(C語言)》
9787302432210
清華大學出版社
2016.08.01
馬新娟、張立紅

教材特色

該教材與傳統的C語言教材相比較,雖然以C語言作為工具,但是不再以瑣碎的C語言語法知識作為內容的核心,而是以程式設計的基本思想與方法作為主要結構,在理論體系中淡化不常用、非必須且難理解的語法內容,引入常用的算法設計(如遞推、遞歸、動態規劃、貪心等)方法的套用案例與練習,使得教材內容的程式設計知識體系比較完整且重點突出。

作者簡介

張先偉,男,1971年10月生,山東理工大學計算機科學與技術學院副教授,研究方向為計算機軟體與理論。
馬新娟,女,1974年11生,山東理工大學計算機科學與技術學院副教授,研究方向為資料庫、格線計算。
張立紅,女,1966年2月生,山東理工大學計算機科學與技術學院副教授,研究方向為程式設計、資料庫技術、數字圖像處理。
王雲,女,1968年9月生,山東理工大學計算機科學與技術學院副教授,研究方向為數據挖掘。
田愛奎,男,博士,山東理工大學計算機科學與技術學院教授,計算機科學與技術、軟體工程專業碩士生導師,現任計算機科學與技術學院院長。

相關詞條

熱門詞條

聯絡我們