第1篇
基 本 知 識
第1章 C 的初步知識
*1.1 從C到C
*1.2 最簡單的C 程序
1.3 C 程序的構成和書寫形式
1.4 C 程序的編寫和實現(xiàn)
1.5 關于C 上機實踐
習題
第2章 數(shù)據(jù)類型與表達式
2.1 C 的數(shù)據(jù)類型
2.2 常量
2.2.1 什么是常量
2.2.2 數(shù)值常量
2.2.3 字符常量
2.2.4 符號常量
2.3 變量
2.3.1 什么是變量
2.3.2 變量名規(guī)則
2.3.3 定義變量
2.3.4 為變量賦初值
2.3.5 常變量
2.4 C 的運算符
2.5 算術運算符與算術表達式
2.5.1 基本的算術運算符
2.5.2 算術表達式和運算符的優(yōu)先級與結合性
2.5.3 表達式中各類數(shù)值型數(shù)據(jù)間的混合運算
2.5.4 自增和自減運算符
2.5.5 強制類型轉換運算符
2.6 賦值運算符與賦值表達式
2.6.1 賦值運算符
2.6.2 賦值過程中的類型轉換
2.6.3 復合的賦值運算符
2.6.4 賦值表達式
2.7 逗號運算符與逗號表達式
習題
第2篇 面向過程的程序設計第3章程序設計初步
3.1 面向過程的程序設計和算法
3.1.1 算法的概念
3.1.2 算法的表示
3.2 C 程序和語句
3.3 賦值語句
3.4 C 的輸入與輸出
*3.4.1 輸入流與輸出流的基本操作
*3.4.2 在輸入流與輸出流中使用控制符
3.4.3 用getchar和putchar函數(shù)進行字符的輸入和輸出
3.4.4 用scanf和printf函數(shù)進行輸入和輸出
3.5 編寫順序結構的程序
3.6 關系運算和邏輯運算
3.6.1 關系運算和關系表達式
3.6.2 邏輯常量和邏輯變量
3.6.3 邏輯運算和邏輯表達式
3.7 選擇結構和if語句
3.7.1 if語句的3種形式
3.7.2 if語句的嵌套
3.8 條件運算符和條件表達式
3.9 多分支選擇結構和switch語句
3.10 編寫選擇結構的程序
3.11 循環(huán)結構和循環(huán)語句
3.11.1 用while語句構成循環(huán)
3.11.2 用do\|while語句構成循環(huán)
3.11.3 用for語句構成循環(huán)
3.11.4 幾種循環(huán)的比較
3.12 循環(huán)的嵌套
3.13 break語句和continue語句
3.14 編寫循環(huán)結構的程序
習題
第4章 函數(shù)與預處理
4.1 概述
4.2 定義函數(shù)的一般形式
4.2.1 定義無參函數(shù)的一般形式
4.2.2 定義有參函數(shù)的一般形式
4.3 函數(shù)參數(shù)和函數(shù)的值
4.3.1 形式參數(shù)和實際參數(shù)
4.3.2 函數(shù)的返回值
4.4 函數(shù)的調用
4.4.1 函數(shù)調用的一般形式
4.4.2 函數(shù)調用的方式
4.4.3 對被調用函數(shù)的聲明和函數(shù)原型
*4.5 內置函數(shù)
*4.6 函數(shù)的重載
*4.7 函數(shù)模板
*4.8 有默認參數(shù)的函數(shù)
4.9 函數(shù)的嵌套調用
4.10 函數(shù)的遞歸調用
4.11 局部變量和全局變量
4.11.1 局部變量
4.11.2 全局變量
4.12 變量的存儲類別
4.12.1 動態(tài)存儲方式與靜態(tài)存儲方式
4.12.2 自動變量
4.12.3 用static聲明靜態(tài)局部變量
4.12.4 用register聲明寄存器變量
4.12.5 用extern聲明外部變量
4.12.6 用static聲明靜態(tài)外部變量
4.13 變量屬性小結
4.14 關于變量的聲明和定義
4.15 內部函數(shù)和外部函數(shù)
4.15.1 內部函數(shù)
4.15.2 外部函數(shù)
4.16 預處理命令
4.16.1 宏定義
4.16.2 文件包含處理
4.16.3 條件編譯
習題
第5章 數(shù)組
5.1 數(shù)組的概念
5.2 一維數(shù)組的定義和引用
5.2.1 定義一維數(shù)組
5.2.2 引用一維數(shù)組的元素
5.2.3 一維數(shù)組的初始化
5.2.4 一維數(shù)組程序舉例
5.3 二維數(shù)組的定義和引用
5.3.1 定義二維數(shù)組
5.3.2 二維數(shù)組的引用
5.3.3 二維數(shù)組的初始化
5.3.4 二維數(shù)組程序舉例
5.4 用數(shù)組名作函數(shù)參數(shù)
5.5 字符數(shù)組
5.5.1 字符數(shù)組的定義和初始化
5.5.2 字符數(shù)組的賦值與引用
5.5.3 字符串和字符串結束標志
5.5.4 字符數(shù)組的輸入輸出
5.5.5 字符串處理函數(shù)
5.5.6 字符數(shù)組應用舉例
*5.6 C 處理字符串的方法--字符串類與字符串變量
5.6.1 字符串變量的定義和引用
5.6.2 字符串變量的運算
5.6.3 字符串數(shù)組
5.6.4 字符串運算舉例
習題
第6章 指針
6.1 指針的概念
6.2 變量與指針
6.2.1 定義指針變量
6.2.2 引用指針變量
6.2.3 指針作為函數(shù)參數(shù)
6.3 數(shù)組與指針
6.3.1 指向數(shù)組元素的指針
6.3.2 用指針變量作函數(shù)參數(shù)接收數(shù)組地址
6.3.3 多維數(shù)組與指針
6.4 字符串與指針
6.5 函數(shù)與指針
6.5.1 用函數(shù)指針變量調用函數(shù)
6.5.2 用指向函數(shù)的指針作函數(shù)參數(shù)
6.6 返回指針值的函數(shù)
6.7 指針數(shù)組和指向指針的指針
6.7.1 指針數(shù)組的概念
6.7.2 指向指針的指針
6.8 有關指針的數(shù)據(jù)類型和指針運算的小結
6.8.1 有關指針的數(shù)據(jù)類型的小結
6.8.2 指針運算小結
*6.9 引用
6.9.1 什么是變量的引用
6.9.2 引用的簡單使用
6.9.3 引用作為函數(shù)參數(shù)
習題
第7章 自定義數(shù)據(jù)類型
7.1 結構體類型
7.1.1 結構體概述
7.1.2 結構體類型變量的定義方法及其初始化
7.1.3 結構體變量的引用
7.1.4 結構體數(shù)組
7.1.5 指向結構體變量的指針
7.1.6 結構體類型數(shù)據(jù)作為函數(shù)參數(shù)
*7.1.7 動態(tài)分配和撤銷內存的運算符new和delete
7.2 共用體
7.2.1 共用體的概念
7.2.2 對共用體變量的訪問方式
7.2.3 共用體類型數(shù)據(jù)的特點
7.3 枚舉類型
7.4 用typedef聲明類型
習題
第3篇 基于對象的程序設計
第8章 類和對象
8.1
面向對象程序設計方法概述
8.1.1 什么是面向對象的程序設計
8.1.2 面向對象程序設計的特點
8.1.3 類和對象的作用
8.1.4 面向對象的軟件開發(fā)
8.2 類的聲明和對象的定義
8.2.1 類和對象的關系
8.2.2 聲明類類型
8.2.3 定義對象的方法
8.2.4 類和結構體類型的異同
8.3 類的成員函數(shù)
8.3.1 成員函數(shù)的性質
8.3.2 在類外定義成員函數(shù)
8.3.3 inline成員函數(shù)
8.3.4 成員函數(shù)的存儲方式
8.4 對象成員的引用
8.4.1 通過對象名和成員運算符訪問對象中的成員
8.4.2 通過指向對象的指針訪問對象中的成員
8.4.3 通過對象的引用變量來訪問對象中的成員
8.5 類的封裝性和信息隱蔽
8.5.1 公用接口與私有實現(xiàn)的分離
8.5.2 類聲明和成員函數(shù)定義的分離
8.5.3 面向對象程序設計中的幾個名詞
8.6 類和對象的簡單應用舉例
習題
第9章 關于類和對象的進一步討論
9.1 構造函數(shù)
9.1.1 對象的初始化
9.1.2 構造函數(shù)的作用
9.1.3 帶參數(shù)的構造函數(shù)
9.1.4 用參數(shù)初始化表對數(shù)據(jù)成員初始化
9.1.5 構造函數(shù)的重載
9.1.6 使用默認參數(shù)的構造函數(shù)
9.2
析構函數(shù)
9.3 調用構造函數(shù)和析構函數(shù)的順序
9.4 對象數(shù)組
9.5 對象指針
9.5.1 指向對象的指針
9.5.2 指向對象成員的指針
9.5.3 this指針
9.6 共用數(shù)據(jù)的保護
9.6.1 常對象
9.6.2 常對象成員
9.6.3 指向對象的常指針
9.6.4 指向常對象的指針變量
9.6.5 對象的常引用
9.6.6 const型數(shù)據(jù)的小結
9.7 對象的動態(tài)建立和釋放
9.8 對象的賦值和復制
9.8.1 對象的賦值
9.8.2 對象的復制
9.9 靜態(tài)成員
9.9.1 靜態(tài)數(shù)據(jù)成員
9.9.2 靜態(tài)成員函數(shù)
9.10 友元
9.10.1 友元函數(shù)
9.10.2 友元類
9.11 類模板
習題
第10章 運算符重載
10.1 什么是運算符重載
10.2 運算符重載的方法
10.3 重載運算符的規(guī)則
10.4 運算符重載函數(shù)作為類成員函數(shù)和友元函數(shù)
10.5 重載雙目運算符
10.6 重載單目運算符
10.7 重載流插入運算符和流提取運算符
10.7.1 重載流插入運算符<<
10.7.2 重載流提取運算符>>
10.8 不同類型數(shù)據(jù)間的轉換
10.8.1 標準類型數(shù)據(jù)間的轉換
10.8.2 轉換構造函數(shù)
10.8.3 類型轉換函數(shù)
習題
第4篇 面向對象的程序設計
第11章 繼承與派生
11.1 繼承與派生的概念
11.2 派生類的聲明方式
11.3 派生類的構成
11.4 派生類成員的訪問屬性
11.4.1 公用繼承
11.4.2 私有繼承
11.4.3 保護成員和保護繼承
11.4.4 多級派生時的訪問屬性
11.5 派生類的構造函數(shù)和析構函數(shù)
11.5.1 簡單的派生類的構造函數(shù)
11.5.2 有子對象的派生類的構造函數(shù)
11.5.3 多層派生時的構造函數(shù)
11.5.4 派生類構造函數(shù)的特殊形式
11.5.5 派生類的析構函數(shù)
11.6 多重繼承
11.6.1 聲明多重繼承的方法
11.6.2 多重繼承派生類的構造函數(shù)
11.6.3 多重繼承引起的二義性問題
11.6.4 虛基類
11.7 基類與派生類的轉換
11.8 繼承與組合
11.9 繼承在軟件開發(fā)中的重要意義
習題
第12章 多態(tài)性與虛函數(shù)
12.1 多態(tài)性的概念
12.2 一個典型的例子
12.3 虛函數(shù)
12.3.1 虛函數(shù)的作用
12.3.2 靜態(tài)關聯(lián)與動態(tài)關聯(lián)
12.3.3 在什么情況下應當聲明虛函數(shù)
12.3.4 虛析構函數(shù)
12.4 純虛函數(shù)與抽象類
12.4.1 純虛函數(shù)
12.4.2 抽象類
12.4.3 應用實例
習題
第13章 輸入輸出流
13.1 C 的輸入和輸出
13.1.1 輸入輸出的含義
13.1.2 C 的I/O對C的發(fā)展--類型安全和可擴展性
13.1.3 C 的輸入輸出流
13.2 標準輸出流
13.2.1 cout, cerr和clog流
13.2.2 格式輸出
13.2.3 用流成員函數(shù)put輸出字符
13.3 標準輸入流
13.3.1 cin流
13.3.2 用于字符輸入的流成員函數(shù)
13.3.3 istream類的其他成員函數(shù)
13.4 文件操作與文件流
13.4.1 文件的概念
13.4.2 文件流類與文件流對象
13.4.3 文件的打開與關閉
13.4.4 對ASCII文件的操作
13.4.5 對二進制文件的操作
13.5 字符串流
習題
第14章 C 工具
14.1 異常處理
14.1.1 異常處理的任務
14.1.2 異常處理的方法
14.1.3 在函數(shù)聲明中進行異常情況指定
14.1.4 在異常處理中處理析構函數(shù)
14.2 命名空間
14.2.1 為什么需要命名空間
14.2.2 什么是命名空間
14.2.3 使用命名空間解決名字沖突
14.2.4 使用命名空間成員的方法
14.2.5 無名的命名空間
14.2.6 標準命名空間std
14.3 使用早期的函數(shù)庫
習題
附錄
附錄A常用字符與ASCII代碼對照表
附錄B運算符與結合性
參考文獻