C語言大學實用教程

C語言大學實用教程

《C語言大學實用教程(第3版)》是電子工業出版社2012年出版的圖書,作者是蘇小紅、孫志崗、陳惠鵬。

基本信息

內容簡介

本書為普通高等教育“十一五”國家級規劃教材。

本書注重教材的可讀性和可用性,每章開頭有內容關鍵字和難點提示;每章結尾安排本章小結,小結中給出了該章中的常見錯誤提示;典型例題一題多解,由淺入深,強化知識點、算法、編程方法與技巧;還將程式測試、程式調試與排錯、軟體的健壯性和代碼風格、結構化與模組化程式設計方法等軟體工程知識融入其中;配套教材《C語言大學實用教程學習指導 》包括三部分內容:習題指導、實驗指導、錯誤案例與優秀案例分析;為任課教師免費提供電子課件,其中包括全部例題和習題源程式檔案(可按前言提供的方式索取)。

全書由11章組成,內容包括:程式設計ABC,數據類型、運算符與表達式,簡單的C程式設計,程式的控制結構,函式,數組,指針,結構體與共用體,函式的高級套用,檔案操作,C程式設計常見錯誤及解決方案等。

本書是一本充滿趣味性和實用性的大學C語言教材,適合作為大學各專業公共課教材和全國計算機等級考試參考書。

目錄

第1章 程式設計ABC

1.1 計算機與人

1.2 計算機與程式設計語言

1.3 程式設計語言的故事

1.4 C語言的故事

1.5 程式設計語言的工作原理

1.5.1 運行

1.5.2 記憶體

1.6 本章小結

習題1

第2章 數據類型、運算符與表達式

2.1 一個簡單的C程式例子

2.2 C程式常見符號分類

2.3 數據類型

2.3.1 為什麼引入數據類型

2.3.2 從基本數據類型到抽象數據類型

2.3.3 類型修飾符

2.3.4 標識符命名

2.4 常量

2.4.1 整型常量

2.4.2 實型常量

2.4.3 字元常量

2.4.4 字元串常量

2.4.5 宏常量

2.4.6 枚舉常量

2.5 變數

2.5.1 變數的聲明與初始化

2.5.2 const類型修飾符

2.5.3 使用變數時的注意事項

2.6 常用運算符及表達式

2.6.1 運算符的優先權與結合性

2.6.2 算術運算符

2.6.3 關係運算符

2.6.4 邏輯運算符

2.6.5 賦值運算符

2.6.6 增1和減1運算符

2.6.7 強制轉換運算符

2.6.8 位運算符

2.6.9 逗號運算符

2.7 賦值和表達式中的類型轉換

2.8 本章小結

習題2

第3章 簡單的C程式設計

3.1 C語句分類

3.2 表達式語句

3.3 複合語句和空語句的作用

3.4 基本輸入/輸出操作的實現

3.4.1 字元輸入/輸出

3.4.2 格式輸入/輸出

3.4.3 使用函式scanf()時需要注意的問題

3.5 本章小結

習題3

第4章 程式的控制結構

4.1 算法及其描述方法

4.1.1 算法的概念

4.1.2 算法的描述方法

4.2 順序結構

4.2.1 順序結構的流程圖表示

4.2.2 應用程式舉例

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.4.5 嵌套循環及其套用舉例

4.5 流程的轉移控制

4.5.1 goto語句

4.5.2 break與continue語句

4.5.3 函式exit()

4.5.4 應用程式舉例

4.6 程式排錯

4.6.1 程式中常見的出錯原因

4.6.2 程式調試與排錯基本方法

4.6.3 使用函式getchar()的問題

4.7 結構化程式設計方法簡介

4.7.1 關於goto論戰

4.7.2 結構化程式設計的核心思想

4.7.3 自頂向下、逐步求精的程式設計方法

4.8 本章小結

習題4

第5章 函式

5.1 程式設計的藝術

5.2 函式的定義與使用

5.2.1 函式的分類

5.2.2 函式的定義

5.2.3 函式的調用、參數和返回值

5.2.4 函式原型

5.2.5 函式main()的特殊性

5.3 變數的作用域和存儲類型

5.3.1 變數的作用域

5.3.2 全局變數

5.3.3 變數的存儲類型

5.4 函式封裝

5.5 預處理指令

5.5.1 #include

5.5.2 #define和#undef

5.5.3 條件編譯

5.6 使用assert()查錯

5.7 模組和連結

5.8 模組化程式設計方法簡介

5.8.1 功能分解

5.8.2 模組劃分的原則

5.8.3 套用實例

5.9 本章小結

習題5

第6章 數組

6.1 數組類型的套用場合

6.2 數組的定義、引用和初始化

6.2.1 數組的定義

6.2.2 數組的引用

6.2.3 數組的初始化

6.2.4 程式實例

6.3 向函式傳遞一維數組

6.4 向函式傳遞二維數組

6.5 字元數組

6.5.1 字元數組與字元串的關係

6.5.2 字元數組的輸入/輸出

6.5.3 字元串處理函式

6.5.4 套用舉例

6.6 本章小結

習題6

第7章 指針

7.1 指針概述

7.1.1 指針的概念

7.1.2 為什麼引入指針的概念

7.1.3 指針變數作為函式參數

7.1.4 字元指針作為函式參數

7.2 指針和數組間的關係

7.2.1 一維數組的地址和指針

7.2.2 二維數組的地址和指針

7.3 指針數組

7.4 指向指針的指針

7.5 帶參數的函式main()

7.6 動態數組的實現

7.6.1 C程式的記憶體映像

7.6.2 動態記憶體分配函式

7.6.3 一維動態數組的實現

7.6.4 二維動態數組的實現

7.7 使用const修飾指針變數

7.8 代碼風格問題

7.8.1 程式版式

7.8.2 命名規則

7.8.3 函式設計

7.8.4 防禦性程式設計

7.9 本章小結

習題7

第8章 結構體與共用體

8.1 問題的提出

8.2 結構體類型與結構體變數

8.2.1 結構體類型的聲明

8.2.2 關鍵字typedef的用法

8.2.3 結構體變數的定義

8.2.4 指向結構體變數的指針

8.2.5 結構體變數的引用和初始化

8.3 結構體數組

8.3.1 結構體數組的定義

8.3.2 結構體數組的套用實例

8.3.3 結構體數組與指針

8.4 結構體與函式

8.5 動態數據結構

8.5.1 問題的提出

8.5.2 鍊表的定義

8.5.3 鍊表的特點及操作原理

8.5.4 動態鍊表的建立

8.5.5 鍊表的刪除操作

8.5.6 鍊表的插入操作

8.6 共用體

8.7 位段

8.8 本章小結

習題8

第9章 函式的高級套用

9.1 遞歸

9.1.1 遞歸問題的提出

9.1.2 遞歸函式

9.2 返回指針值的函式

9.3 函式指針

9.4 一個綜合套用實例——學生成績管理程式

9.5 本章小結

習題9

第10章 檔案操作

10.1 計算機中的流

10.2 檔案

10.2.1 存儲設備的使用

10.2.2 目錄

10.2.3 檔案格式

10.3 基本檔案操作

10.3.1 基本檔案操作函式

10.3.2 錯誤處理

10.3.3 程式示例

10.3.4 基本檔案操作的意義

10.4 高級檔案操作

10.4.1 打開與關閉

10.4.2 讀寫

10.4.3 程式示例

10.4.4 標準輸入與標準輸出

10.5 本章小結

習題10

第11章 C程式設計常見錯誤及解決方案

條款1:使用未初始化和未賦值的變數

條款2:不考慮數值溢出的可能

條款3:不用sizeof( )獲得類型或變數的字長

條款4:假定類型取值範圍

條款5:期望兩個整數的運算自動得出浮點數的結果

條款6:不預先判斷除數是否為0

條款7:混淆“&,|”與“&&,||”

條款8:使用依賴編譯器求值順序的語句

條款9:使用依靠算符優先權的表達式

條款10:表達式過於複雜

條款11:用“==”時誤用“=”

條款12:用“==”比較兩個浮點數

條款13:使用幻數

條款14:printf()和scanf()中格式控制字元串與參數類型不匹配

條款15:循環或判斷語句以“;”結尾

條款16:在循環體內改變循環結束條件

條款17:case分支不用break結束

條款18:switch-case語句沒有default分支

條款19:不聲明函式原型

條款20:不定義函式參數或返回值的類型

條款21:有返回值的函式不用return指明返回值

條款22:調用函式後,不檢查函式是否正確執行

條款23:變數、函式和模組功能不單一

條款24:函式過長

條款25:函式的參數過於複雜

條款26:返回指向局部變數的指針

條款27:隨意修改全局變數的值

條款28:數組下標越界

條款29:字元串沒有‘\0’終結符

條款30:使用不限制最大處理長度的字元串處理函式

條款31:用malloc()申請的記憶體不用free()

條款32:使用已經被free()的指針

條款33:檔案打開後不主動關閉

條款34:成對函式不在同一個模組或函式內調用

條款35:頭檔案不加宏定義鎖

條款36:忽略編譯器警告

條款37:用“複製+貼上”的方式復用代碼

條款38:在字元串和注釋以外的地方使用全形字元

條款39:代碼風格不佳

條款40:代碼與注釋不一致

後記

附錄A 書中常用概念、名詞、語句、運算符、數據類型和算法索引表

附錄B C關鍵字

附錄C Visual C++下各數據類型所占位元組數和取值範圍

附錄D C運算符的優先權與結合性

附錄E 常用ASCII字元表

附錄F 常用字元表

附錄G 常用的ANSI C標準庫函式

參考文獻

相關詞條

相關搜尋

熱門詞條

聯絡我們