第一篇 語言基礎
第1章 C語言的基本概念
1.1 C語言的發(fā)展與特點
1.1.1 C語言的發(fā)展
1.1.2 C語言的特點
1.2 幾個基本概念
1.3 C語言的基本標識符
1.3.1 字符集
1.3.2 標識符
1.4 C語言程序的幾個簡單實例
1.5 C語言程序的結構特點
1.6 C語言程序的編譯和執(zhí)行
本章小結
習題一
第2章 基本數據類型及其運算
2.1 C語言的數據類型
2.1.1 數據類型的一般概念
2.1.2 常量
2.2 數據類型及變量
2.2.1 基本數據類型
2.2.2 變量及變量的定義
2.2.3 變量的初始化
2.3 運算符和表達式
2.3.1 運算符和表達式概述
2.3.2 混合類型數據的運算
2.3.3 賦值語句及賦值表達式
2.3.4 算術運算符及算術表達式
2.3.5 關系運算符及關系表達式
2.3.6 邏輯運算符及邏輯表達式
2.3.7 位運算符
2.3.8 其他運算符及表達式
2.4 基本輸入/輸出函數
2.4.1 格式化輸出函數
2.4.2 格式化輸入函數
2.4.3 字符輸入與輸出函數
本章小結
習題二
第3章 程序控制結構
3.1 C語言結構化程序設計基礎
3.1.1 基本控制結構
3.1.2 程序的結構化
3.2 順序結構
3.2.1 語句和語句塊
3.2.2 順序結構示例
3.3 分支結構
3.3.1 if-else語句
3.3.2 if-elseif-else多分支語句
3.3.3 條件分支的嵌套
3.3.4 switch分支
3.4 循環(huán)結構
3.4.1 while(當型循環(huán))
3.4.2 do-while(直到型循環(huán))
3.4.3 for循環(huán)語句
3.4.4 三種循環(huán)的比較
3.4.5 多重循環(huán)
3.4.6 循環(huán)中的控制轉移
3.4.7 結構化程序設計注意事項
3.5 結構化程序設計應用舉例
本章小結
習題三
第4章 復合數據結構基礎
4.1 數組及其應用
4.1.1 一維數組
4.1.2 多維數組
4.1.3 字符型數組的應用
4.2 指針及其應用
4.2.1 指針的基本概念及定義方式
4.2.2 指針的初始化
4.2.3 指針的運算
4.2.4 用指針操作基本數據對象
4.2.5 用指針操作數組
4.3 結構體及其應用
4.3.1 結構體的聲明
4.3.2 結構體變量的定義
4.3.3 結構體成員的引用
4.3.4 結構體變量的初始化
4.4 聯合體及其應用
4.4.1 聯合體的聲明
4.4.2 聯合體變量的定義
4.4.3 聯合體成員的引用
4.4.4 定義聯合體變量應注意的問題
4.5 枚舉類型及其應用
4.5.1 枚舉類型的聲明
4.5.2 枚舉類型變量的定義
4.5.3 枚舉類型變量的應用
4.6 自定義類型
本章小結
習題四
第二篇 程序設計
第5章 結構化程序設計概論
5.1 數據的基本概念
5.1.1 數據與信息
5.1.2 數據與地址
5.1.3 數據類型
5.1.4 文字常量
5.1.5 變量
5.1.6 聲明
5.2 代碼的基本概念
5.2.1 表達式語義
5.2.2 賦值與初始化
5.2.3 代碼與計算
5.2.4.控制流
5.2.5 斷言與程序不變量
5.3 算法及其表示方法概要
5.3.1 算法的基本概念
5.3.2 代碼與偽代碼
5.4 結構化程序的組織
5.4.1 程序的結構化
5.4.2 程序的一般結構
5.4.3 結構化與函數抽象
5.4.4 程序范型
5.5 程序測試與代碼優(yōu)化
5.5.1 程序測試
5.5.2 程序效率與代碼優(yōu)化
本章小結
習題五
第6章 函數與模塊設計
6.1 函數概述
6.2 函數的聲明、定義與調用
6.2.1 函數聲明
6.2.2 函數定義
6.2.3 函數調用
6.2.4 函數參數與返回值
6.2.5 函數的嵌套調用
6.3 函數調用??蚣?br />6.3.1 函數調用棧框架的基本概念
6.3.2 值傳遞與地址傳遞
6.4 作用域
6.4.1 變量的作用域
6.4.2 函數的作用域
6.5 變量的存儲類別
6.5.1 auto變量
6.5.2 static變量
6.5.3 register變量
6.5.4 extern變量
6.6 模塊化程序設計
6.6.1 模塊的獨立性原則
6.6.2 自頂向下、逐步求精
6.7 綜合舉例
本章小結
習題六
第7章 庫與接口設計
7.1 用戶、接口與庫概述
7.2 標準庫
7.2.1 標準I/O庫
7.2.2 數學庫接口
7.2.3 數字與字符特征庫接口
7.2.4 字符串庫接口
7.2.5 輔助函數庫接口
7.3 圖形庫
7.3.1 圖形系統(tǒng)初始化
7.3.2 基本繪圖函數
7.3.3 圖形庫的應用及自定義接口
7.4 接口設計的原則
本章小結
習題七
第8章 復合數據類型——數組與字符串
8.1 數據類型與數據結構
8.1.1 數據與數據結構的關系
8.1.2 數據的邏輯結構
8.1.3 數據的物理結構
8.1.4 數據結構上的操作
8.1.5 同質復合數據類型
8.2 數組
8.2.1 數組的下標
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 ANSI標準字符串庫
8.3.5 字符串的應用
本章小結
習題八
第9章 復合數據類型——結構體與指針
9.1 結構體
9.1.1 結構體的意義
9.1.2 結構體的應用
9.1 ,3結構體指針
9.2 指針
9.2.1 指針的意義和作用
9.2.2 指針的聲明與使用
9.2.3 指針與其他數據結構的關系
9.2.4 動態(tài)存儲分配
9.2.5 指針與函數
9.3 鏈表
9.3.1 鏈表的構造
9.3.2 鏈表元素的遍歷
9.3.3 鏈表的插入操作
9.3.4 鏈表的刪除操作
本章小結
習題九
第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 文件應用實例
本章小結
習題十
第11章 算法設計與分析
11.1 算法的概念與特征
11.1.1 算法舉例
11.1.2 算法的基本特征
11.2 算法的類型與結構
11.2.1 數值算法與非數值算法
11.2.2 算法的基本結構
11.3 算法的描述方法
11.3.1 流程圖
11.3.2 N-S圖
11.3.3 偽代碼
11.4 算法的設計與實現
11.4.1 素數判斷問題
11.4.2 最大公約數問題
11.5 算法分析與算法復雜度
11.5.1 排序算法分析
11.5.2 算法復雜度
11.5.3 歸并排序
11.5.4 標準復雜度類型
11.6 常用算法設計與分析
11.6.1 快速排序算法的基本原理
11.6.2 快速排序算法的實現
11.6.3 快速排序算法的效率分析
本章小結
習題十
第12章 遞歸程序設計
12.1 遞歸問題的引入
12.1.1 遞歸的簡單例子
12.1.2 遞歸過程的跟蹤
12.1.3 遞歸信任與遞歸范型
12.2 典型遞歸程序
12.2.1 Hanoi塔問題
12.2.2 分形問題
12.2.3 其他遞歸問題
12.3 遞歸與迭代
本章小結
習題十二
第13章 數據抽象
13.1 抽象數據類型
13.2 線性表類型
13.2.1 線性表類型定義
13.2.2 線性表的順序表示及其實現
13.2.3 通用線性表類型
13.3 棧
13.3.1 抽象棧類型定義
13.3.2 抽象棧的實現
13.3.3 棧的應用
13.4 隊列
13.4.1 抽象隊列類型的定義
13.4.2 隊列的實現
13.4.3 隊列的應用
13.5 符號表
13.5.1 定義抽象的符號表
13.5.2 鍵與值類型的確定
13.5.3 無定義值的處理方法
13.5.4 抽象符號表的接口聲明
13.6 哈希表
13.6.1 哈希表的基本概念
13.6.2 哈希函數
13.6.3 負載因子與桶的數目
13.7 抽象哈希表的應用
13.7.1 重集元素的計數
13.7.2 使用抽象符號表
13.7.3 抽象符號表的局限性
本章小結
習題十三
第14章 算法與程序抽象
14.1 基本函數設計原則
14.1.1 軟件評判標準
14.1.2 內聚性
14.1.3 耦合度
14.2 數據封裝與信息隱藏
14.2.1 客戶函數與服務器函數
14.2.2 數據封裝
14.2.3 信息隱藏
14.3 函數指針
14.3.1 函數指針的目的
14.3.2 函數指針聲明
14.3.3 函數指針的使用
14.3.4 函數指針類型
14.4 回調函數
14.4.1 回調函數
14.4.2 遍歷與回調
14.4.3 回調函數參數
14.4.4 值的存儲與刪除
14.5 再論抽象符號表
14.5.1 完整的抽象符號表接口
14.5.2 完整的抽象符號表實現
本章小結
習題十四
參考文獻