圖書信息
出版社: 清華大學出版社; 第1版 (2008年6月1日)
外文書名: Programming in ANSI C (Fourth Edition)
叢書名: 世界著名計算機教材精選
平裝: 505頁
正文語種: 簡體中文
開本: 16
ISBN: 9787302172451
條形碼: 9787302172451
尺寸: 25.6 x 18.4 x 1.8 cm
重量: 762 g
作者簡介
作者:(印度)巴拉古路薩米(E Balagurusamy) 譯者:金名
內容簡介
《世界著名計算機教材精選·標準C程式設計(第4版)》是印度各大學使用最廣的C語言程式設計教材之一。《世界著名計算機教材精選·標準C程式設計(第4版)》旨在教授讀者如何使用C語言進行程式設計。全書貫徹了“用示例學習”的概念。在深入介紹了C語言的每個特性之後,給出了一個完整的示例程式,用於演示說明其套用。每章末尾的“案例學習”不僅介紹了把C語言的特性集成在一起的常用方法,而且還顯示了它在實際生活中的套用。最後一章介紹了開發高效、無錯誤的C程式的一些指導原則。
《世界著名計算機教材精選·標準C程式設計(第4版)》在前一版的基礎上增加介紹了c99的一些新特性,並增加了不少複習題和項目設計題,而且在附錄IV中給出了4個完整的應用程式開發示例,使得《世界著名計算機教材精選·標準C程式設計(第4版)》的實際套用性更強。
《世界著名計算機教材精選·標準C程式設計(第4版)》特點:
帶注釋的代碼全書隨處可見,這些注釋說明了C語言的各種特性是如何集成在一起以實現特定任務的。補充信息和“注意”對正文進行了必要的補充,但獨立於正文之外。最後一章給出了開發高效的C程式的一些指導原則,以及經驗不足的C程式設計師可能容易犯的常見錯誤列表。每章末尾的案例研究演示了把C特性集成在一起的常用方式,並顯示了一些實際的套用。每章末尾的“謹記”一節列舉了一些有用的提示和可能出問題的地方。每章末尾的“問題”和“練習”為讀者複習所學概念和實際的套用開發提供機會。附錄給出的編程項目介紹了開發大型程式時如何集成C的各種特性。
目錄
第1章 C語言概述
1.1 C語言的歷史
1.2 C語言的主要特性
1.3 示例程式1:顯示一條訊息
1.4 示例程式2:兩個數相加
1.5 示例程式3:利息計算
1.6 示例程式4:子例程的使用
1.7 示例程式5:數學函式的使用
1.8 C程式的基本結構
1.9 編程風格
1.10 運行一個程式
1.11 UNIX系統環境下
1.11.1 創建程式
1.11.2 編譯與連結
1.11.3 運行程式
1.11.4 創建自己的可運行檔案
1.11.5 多個源檔案問題
1.12 MS-DOS系統環境下
複習題
編程練習
第2章 常量、變數及數據類型
2.1 概述
2.2 字元集
2.3 C標記符
2.4 關鍵字與標識符
2.5 常量
2.5.1 整型常量
2.5.2 實數常量
2.5.3 單字元常量
2.5.4 字元串常量
2.5.5 反斜槓字元常量
2.6 變數
2.7 數據類型
2.7.1 整數型
2.7.2 浮點數類型
2.7.3 void類型
2.7.4 字元類型
2.8 變數的聲明
2.8.1 基本類型的聲明
2.8.2 自定義類型的聲明
2.9 存儲類的聲明
2.10 變數的賦值
2.10.1 賦值語句
2.10.2 從鍵盤讀取數據
2.11 符號常量的定義
2.11.1 可修改性
2.11.2 可理解性
2.12 將變數聲明為常量
2.13 將變數聲明為可變的
2.14 數據的溢出
2.15 案例學習
2.15.1 平均數計算
2.15.2 溫度轉換問題
複習題
編程練習
第3章 運算符與表達式
3.1 概述
3.2 算術運算符
3.2.1 整數算術運算
3.2.2 實數算術運算
3.2.3 混合算術運算
3.3 關係運算符
3.4 邏輯運算符
3.5 賦值運算符
3.6 遞增和遞減運算符
3.7 條件運算符
3.8 逐位運算符
3.9 特殊運算符
3.9.1 逗號運算符
3.9.2 sizeof運算符
3.10 算術表達式
3.11 表達式的計算
3.12 算術表達式的優先權
3.13 一些可計算性問題
3.14 表達式中的類型轉換
3.14.1 隱式類型轉換
3.14.2 顯式類型轉換
3.15 運算符的優先權及其關聯
3.16 數學函式
3.17 案例學習
3.17.1 銷售人員的工資
3.17.2 二次方程的求解
複習題
編程練習
第4章 輸入輸出操作管理
4.1 概述
4.2 讀取一個字元
4.3 寫字元
4.4 格式化輸入
4.4.1 整數輸入
4.4.2 實數輸入
4.4.3 字元串輸入
4.4.4 混合數據類型的讀取
4.4.5 錯誤輸入的檢測
4.4.6 使用scanf函式時應記住的幾個要點
4.5 格式化輸出
4.5.1 整數的輸出
4.5.2 實數的輸出
4.5.3 單個字元的顯示
4.5.4 字元串的顯示
4.5.5 混合數據的輸出
4.5.6 提高輸出的可讀性
4.6 案例學習
4.6.1 庫存報告
4.6.2 可靠性圖形
複習題
編程練習
第5章 判斷與分支
5.1 概述
5.2 if判斷語句
5.3 簡單if語句
5.4 if…else語句
5.5 嵌套if…else語句
5.6 階梯式else if語句
5.7 switch語句
5.8 ?: 運算符
5.9 goto語句
5.10 案例學習
5.10.1 數值的分布範圍
5.10.2 賬單計算
複習題
編程練習
第6章 判斷與循環
6.1 概述
6.2 while語句
6.3 do語句
6.4 for語句
6.4.1 簡單的for循環語句
6.4.2 for循環的其他特性
6.4.3 for循環的嵌套
6.5 循環中的跳轉
6.5.1 跳出循環
6.5.2 跳過循環的一部分
6.5.3 避免使用goto語句
6.5.4 跳出程式
6.6 簡潔的測試表達式
6.7 案例學習
6.7.1 二項式係數表
6.7.2 柱狀圖
6.7.3 最小成本
6.7.4 描繪兩函式的曲線圖
複習題
編程練習
第7章 數組
7.1 概述
7.2 一維數組
7.3 一維數組的聲明
7.4 一維數組的初始化
7.4.1 編譯時初始化
7.4.2 運行時初始化
7.5 二維數組
7.6 二維數組的初始化
7.7 多維數組
7.8 動態數組
7.9 與數組相關的其他內容
7.10 案例學習
7.10.1 數列的中值問題
7.10.2 標準偏差的計算
7.10.3 測試評分
7.10.4 產品與銷售分析
複習題
編程練習
第8章 字元數組與字元串
8.1 概述
8.2 字元串變數的聲明與初始化
8.3 使用scanf函式從終端讀取字元串
8.3.1 讀取文本行
8.3.2 使用getchar和gets函式
8.4 在螢幕上顯示字元串
8.4.1 使用printf函式
8.4.2 使用putchar和puts函式
8.5 字元的算術運算
8.6 將字元串組合在一起
8.7 兩個字元串的比較
8.8 字元串處理函式
8.8.1 strcat()函式
8.8.2 strcmp()函式
8.8.3 strcpy()函式
8.8.4 strlen()函式
8.8.5 其他字元串函式
8.9 字元串表
8.10 字元串的其他特性
8.11 案例學習
8.11.1 計算文本中的字數
8.11.2 客戶列表處理程式
複習題
編程練習
第9章 用戶自定義函式
9.1 概述
9.2 為什麼需要自定義函式
9.3 多函式程式
9.4 自定義函式的元素
9.5 函式的定義
9.5.1 函式頭
9.5.2 函式名與類型
9.5.3 形參列表
9.5.4 函式體
9.6 返回值及其類型
9.7 函式調用
9.8 函式聲明
9.9 函式的類型
9.10 無參數無返回值的函式
9.11 有參數無返回值的函式
9.12 有參數有返回值的函式
9.13 無參數但有一個返回值的函式
9.14 返回多個值的函式
9.15 函式的嵌套
9.16 函式的疊代
9.17 將數組傳遞給函式
9.17.1 一維數組
9.17.2 二維數組
9.18 將字元串傳遞給函式
9.19 變數的作用域、可見性和生存期
9.19.1 自動變數
9.19.2 外部變數
9.19.3 外部聲明
9.19.4 靜態變數
9.19.5 暫存器變數
9.19.6 嵌套代碼塊
9.20 多檔案程式
9.21 案例學習
複習題
編程練習
第10章 結構體與共用體
10.1 概述
10.2 結構體的定義
10.3 聲明結構體變數
10.4 訪問結構體成員
10.5 結構體的初始化
10.6 結構體變數的複製與比較
10.7 單個成員的運算
10.8 結構數組
10.9 結構體中的數組
10.10 結構體中的結構體
10.11 結構體與函式
10.12 共用體
10.13 結構體的大小
10.14 位域
10.15 案例學習
複習題
編程練習
第11章 指針
11.1 概述
11.2 理解指針
11.3 訪問變數的地址
11.4 指針變數的聲明
11.5 指針變數的初始化
11.6 通過指針訪問變數
11.7 指針鏈
11.8 指針表達式
11.9 指針的遞增與比例因子
11.10 指針與數組
11.11 指針與字元串
11.12 指針數組
11.13 指針作為函式的參數
11.14 函式返回指針
11.15 指向函式的指針
11.16 指針與結構體
11.17 案例學習
11.17.1 考試成績處理程式
11.17.2 庫存更新程式
複習題
編程練習
第12章 檔案管理
12.1 概述
12.2 定義並打開檔案
12.3 關閉檔案
12.4 檔案的輸入輸出操作
12.4.1 getc與putc函式
12.4.2 getw和putw函式
12.4.3 fprintf與fscanf函式
12.5 I/O操作的錯誤處理
12.6 隨機訪問檔案
12.7 命令行參數
複習題
編程練習
第13章 動態記憶體分配與鍊表
13.1 概述
13.2 動態記憶體分配
13.3 用malloc函式分配一塊記憶體
13.4 用calloc函式分配多個記憶體塊
13.5 用free函式釋放已用的空間
13.6 用realloc函式改變記憶體塊的大小
13.7 鍊表的概念
13.8 鍊表的優點
13.9 鍊表的種類
13.10 再論指針
13.11 創建鍊表
13.12 插入一個數據項
13.13 刪除一個數據項
13.14 鍊表的套用
13.15 案例學習
13.15.1 在已排序鍊表中插入數據
13.15.2 構建一個已排序的鍊表
複習題
編程練習
第14章 預處理器
14.1 概述
14.2 宏替換指令
14.2.1 簡單宏替換
14.2.2 含參數的宏
14.2.3 宏嵌套
14.3 檔案包含
14.4 編譯器控制指令
14.4.1 情形1
14.4.2 情形2
14.4.3 情形3
14.4.4 情形4
14.5 ANSI C的其他預處理器指令
14.5.1 #elif指令
14.5.2 #pragma指令
14.5.3 #error指令
14.5.4 字元串化運算符#
14.5.5 標記符貼上運算符##
複習題
編程練習
第15章 C程式開發指導原則
15.1 概述
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.4.4 丟失引號
15.4.5 誤用引號
15.4.6 使用不正確的注釋字元
15.4.7 未定義變數
15.4.8 忽視了運算符的優先權
15.4.9 忽視了遞增遞減運算符的計算順序
15.4.10 忽視了函式參數的說明
15.4.11 在函式調用中實參和形參類型不匹配
15.4.12 函式未聲明
15.4.13 在scanf的參數中丟失了&運算符
15.4.14 超出了數組的邊界
15.4.15 忘記了給字元串的空字元留出空間
15.4.16 使用未初始化的指針
15.4.17 丟失了間接運算符和地址運算符
15.4.18 在指針表達式中丟失括弧
15.4.19 在宏定義語句中參數遺漏了括弧
15.5 程式測試與調試
15.5.1 錯誤的類型
15.5.2 程式測試
15.5.3 程式調試
15.6 程式的效率
15.6.1 運行時間
15.6.2 記憶體需求
複習題
附錄Ⅰ 位級程式設計
Ⅰ.1 概述
Ⅰ.2 逐位邏輯運算符
Ⅰ.2.1 逐位與操作
Ⅰ.2.2 逐位或操作
Ⅰ.2.3 逐位非或操作
Ⅰ.3 逐位移位運算符
Ⅰ.4 逐位求反運算符
Ⅰ.5 禁止
附錄Ⅱ
附錄Ⅲ
附錄Ⅳ 項目設計
Ⅳ.1 庫存管理系統
Ⅳ.2 登錄記錄系統
Ⅳ.3 鍊表
Ⅳ.4 矩陣相乘
附錄Ⅴ C99的特性
Ⅴ.1 概述
Ⅴ.2 新關鍵字
Ⅴ.3 新注釋
Ⅴ.4 新數據類型
Ⅴ.4.1 _Bool類型
Ⅴ.4.2 _Complex和_Imaginary類型
Ⅴ.4.3 long long類型
Ⅴ.5 變數聲明
Ⅴ.6 I/O格式化的變化
Ⅴ.7 數組處理
Ⅴ.7.1 可變長度數組
Ⅴ.7.2 數組聲明中的類型說明
Ⅴ.7.3 結構的靈活數組成員
Ⅴ.8 函式實現
Ⅴ.8.1 默認為inline類型的規則
Ⅴ.8.2 顯式函式定義
Ⅴ.8.3 return語句的限制
Ⅴ.8.4 聲明函式為inline
Ⅴ.9 受限指針
Ⅴ.10 編譯器限制的變化
Ⅴ.11 其他改進
參考文獻