C程序設計(第四版)
2010年譚浩強創作的書籍
由譚浩強教授著、清華大學出版社出版的《C程序設計》是一本公認的學習C語言程序設計的經典教材。根據C語言的發展和計算機教學的需要,作者在《C程序設計(第三版)》的基礎上進行了修訂。本書按照C語言的新標準C 99進行介紹,所有程序都符合C 99的規定,使編寫程序更加規範;對C語言和程序設計的基本概念和要點講解透徹,全面而深入;按照作者提出的“提出問題—解決問題—歸納分析”三部曲進行教學、組織教材;本書的每個例題都按以下幾個步驟展開:提出任務—解題思路—編寫程序—運行程序—程序分析—有關說明。符合讀者認知規律,容易入門與提高。
本書內容先進,體系合理,概念清晰,講解詳盡,降低台階,分散難點,例題豐富,深入淺出,文字流暢,通俗易懂,是初學者學習C程序設計的理想教材,可作為高等學校各專業的正式教材,也是一本自學的好教材。本書還配有輔助教材《C程序設計(第四版)學習輔導》。
第1章 程序設計和C語言
1.1 什麼是計算機程序
1.2 什麼是計算機語言
1.3C語言的發展及其特點
1.4 最簡單的C語言程序
1.4.1 最簡單的C語言程序舉例
1.4.2 C語言程序的結構
1.5 運行C程序的步驟與方法
1.6 程序設計的任務
習題
第2章 演演算法——程序的靈魂
2.1 什麼是演演算法
2.2 簡單的演演算法舉例
2.3 演演算法的特性
2.4 怎樣表示一個演演算法
2.4.1 用自然語言表示演演算法
2.4.2 用流程圖表示演演算法
2.4.3 三種基本結構和改進的流程圖
2.4.4 用N?S流程圖表示演演算法
2.4.5 用偽代碼表示演演算法
2.4.6 用計算機語言表示演演算法
2.5 結構化程序設計方法
習題
第3章 最簡單的C程序設計——順序程序設計
3.1 順序程序設計舉例
3.2 數據的表現形式及其運算
3.2.1 常量和變數
3.2.2 數據類型
3.2.3 整型數據
3.2.4 字元型數據
3.2.5 浮點型數據
3.2.6 怎樣確定常量的類型
3.2.7 運算符和表達式
3.3 C語句
3.3.1 C語句的作用和分類
3.3.2 最基本的語句——賦值語句
3.4 數據的輸入輸出
3.4.1 輸入輸出舉例
3.4.2 有關數據輸入輸出的概念
3.4.3 用printf函數輸出數據
3.4.4 用scanf函數輸入數據
3.4.5 字元數據的輸入輸出
習題
第4章 選擇結構程序設計
4.1 選擇結構和條件判斷
4.2 用if語句實現選擇結構
4.2.1 用if語句處理選擇結構舉例
4.2.2 if語句的一般形式
4.3 關係運算符和關係表達式
4.3.1 關係運算符及其優先次序
4.3.2 關係表達式
4.4 邏輯運算符和邏輯表達式
4.4.1 邏輯運算符及其優先次序
4.4.2 邏輯表達式
4.4.3 邏輯型變數
4.5 條件運算符和條件表達式
4.6 選擇結構的嵌套
4.7 用switch語句實現多分支選擇結構
4.8 選擇結構程序綜合舉例
習題
第5章 循環結構程序設計
5.1 為什麼需要循環控制
5.2 用while語句實現循環
5.3 用do…while語句實現循環
5.4 用for語句實現循環
5.5 循環的嵌套
5.6 幾種循環的比較
5.7 改變循環執行的狀態
5.7.1 用break語句提前終止循環
5.7.2 用continue語句提前結束本次循環
5.7.3 break語句和continue語句的區別
5.8 循環程序舉例
習題
第6章 利用數組處理批量數據
6.1 怎樣定義和引用一維數組
6.1.1 怎樣定義一維數組
6.1.2 怎樣引用一維數組元素
6.1.3 一維數組的初始化
6.1.4 一維數組程序舉例
6.2 怎樣定義和引用二維數組
6.2.1 怎樣定義二維數組
6.2.2 怎樣引用二維數組的元素
6.2.3 二維數組的初始化
6.2.4 二維數組程序舉例
6.3 字元數組
6.3.1 怎樣定義字元數組
6.3.2 字元數組的初始化
6.3.3 怎樣引用字元數組中的元素
6.3.4 字元串和字元串結束標誌
6.3.5 字元數組的輸入輸出
6.3.6 使用字元串處理函數
6.3.7 字元數組應用舉例
習題
第7章 用函數實現模塊化程序設計
7.1 為什麼要用函數
7.2 怎樣定義函數
7.2.1 為什麼要定義函數
7.2.2 定義函數的方法
7.3 調用函數
7.3.1 函數調用的形式
7.3.2 函數調用時的數據傳遞
7.3.3 函數調用的過程
7.3.4 函數的返回值
7.4 對被調用函數的聲明和函數原型
7.5 函數的嵌套調用
7.6 函數的遞歸調用
7.7 數組作為函數參數
7.7.1 數組元素作函數實參
7.7.2 數組名作函數參數
7.7.3 多維數組名作函數參數
7.8 局部變數和全局變數
7.8.1 局部變數
7.8.2 全局變數
7.9 變數的存儲方式和生存期
7.9.1 動態存儲方式與靜態存儲方式
7.9.2 局部變數的存儲類別
7.9.3 全局變數的存儲類別
7.9.4 存儲類別小結
7.10 關於變數的聲明和定義
7.11 內部函數和外部函數
7.11.1 內部函數
7.11.2 外部函數
習題
第8章 善於利用指針
8.1 指針是什麼
8.2 指針變數
8.2.1 使用指針變數的例子
8.2.2 怎樣定義指針變數
8.2.3 怎樣引用指針變數
8.2.4 指針變數作為函數參數
8.3 通過指針引用數組
8.3.1 數組元素的指針
8.3.2 在引用數組元素時指針的運算
8.3.3 通過指針引用數組元素
8.3.4 用數組名作函數參數
8.3.5 通過指針引用多維數組
8.4 通過指針引用字元串
8.4.1 字元串的引用方式
8.4.2 字元指針作函數參數
8.4.3 使用字元指針變數和字元數組的比較
8.5 指向函數的指針
8.5.1 什麼是函數指針
8.5.2 用函數指針變數調用函數
8.5.3 怎樣定義和使用指向函數的指針變數
8.5.4 用指向函數的指針作函數參數
8.6 返回指針值的函數
8.7 指針數組和多重指針
8.7.1 什麼是指針數組
8.7.2 指向指針數據的指針
8.7.3 指針數組作main函數的形參
8.8 動態內存分配與指向它的指針變數
8.8.1 什麼是內存的動態分配
8.8.2 怎樣建立內存的動態分配
8.8.3 void指針類型
8.9 有關指針的小結
習題
第9章 用戶自己建立數據類型
9.1 定義和使用結構體變數
9.1.1 自己建立結構體類型
9.1.2 定義結構體類型變數
9.1.3 結構體變數的初始化和引用
9.2 使用結構體數組
9.2.1 定義結構體數組
9.2.2 結構體數組的應用舉例
9.3 結構體指針
9.3.1 指向結構體變數的指針
9.3.2 指向結構體數組的指針
9.3.3 用結構體變數和結構體變數的指針作函數參數
9.4 用指針處理鏈表
9.4.1 什麼是鏈表
9.4.2 建立簡單的靜態鏈表
9.4.3 建立動態鏈表
9.4.4 輸出鏈表
9.5 共用體類型
9.5.1 什麼是共用體類型
9.5.2 引用共用體變數的方式
9.5.3 共用體類型數據的特點
9.6 使用枚舉類型
9.7 用typedef聲明新類型名
習題
第10章 對文件的輸入輸出
10.1 C文件的有關基本知識
10.1.1 什麼是文件
10.1.2 文件名
10.1.3 文件的分類
10.1.4 文件緩衝區
10.1.5 文件類型指針
10.2 打開與關閉文件
10.2.1 用fopen函數打開數據文件
10.2.2 用fclose函數關閉數據文件
10.3 順序讀寫數據文件
10.3.1 怎樣向文件讀寫字元
10.3.2 怎樣向文件讀寫一個字元串
10.3.3 用格式化的方式讀寫文件
10.3.4 用二進位方式向文件讀寫一組數據
10.4 隨機讀寫數據文件
10.4.1 文件位置標記及其定位
10.4.2 隨機讀寫
10.5 文件讀寫的出錯檢測
習題
第11章 常見錯誤分析355附錄
附錄A 在VisualC++6.0環境下運行C程序的方法
附錄B 常用字元與ASCII代碼對照表
附錄C C語言中的關鍵字
附錄D 運算符和結合性
附錄E C語言常用語法提要
附錄F C庫函數
參考文獻