c語言入門經典(第四版)

c語言入門經典(第四版)

C語言入門經典(第4版),英文名:Beginning C: From Novice to Professional, 4th Edition,本書是程式語言先驅者Ivor Horton的經典之作,是C語言方面最暢銷的圖書品種之一。本書集綜合性、實用性為一體,是學習C語言的優秀入門教材,在世界範圍內廣受歡迎,口碑極佳。書中除了講解C程式設計語言,還廣泛介紹了作為一名C程式設計人員應該掌握的必要知識,並提供了大量的實用性很強的編程實例。本書的目標是使你在C語言程式設計方面由一位初學者成為一位稱職的程式設計師。讀者基本不需要具備任何編程知識,即可通過本書從頭開始編寫自己的C程式,堪稱最經典的入門教材。

內容簡介

《C語言入門經典(第4版)》的目標是使你在C語言程式設計方面由一位初學者成為一位稱職的程式設計師。讀者基本不需要具備任何編程知識,即可通過《C語言入門經典(第4版)》從頭開始編寫自己的C程式。研讀《C語言入門經典(第4版)》,你就可以成為一位稱職的C語言程式設計師。從許多方面來說,C語言都是學習程式設計的理想起步語言。C語言很簡潔,因此無須學習大量的語法,就能夠開始編寫真正的應用程式。除了簡明易學外,它還是一種功能非常強大的語言,至今仍被專業人士廣泛使用。C語言的強大之處主要體現在,它能夠進行各種層次的程式設計,從硬體設備驅動程式和作業系統組件到大規模的應用程式,都能勝任。事實上,任何計算機都支持C語言編譯器,因此,當我們學會了C語言,就可以在任何環境下進行程式設計。最後一點,掌握了C語言,就為理解面向對象的C++語言奠定了良好的基礎。


目錄

第1章 C語言編程

1.1 創建C程式

1.1.1 編輯

1.1.2 編譯

1.1.3 連結

1.1.4 執行

1.2 創建第一個程式

1.3 編輯第一個程式

1.4 處理錯誤

1.5 剖析一個簡單的程式

1.5.1 注釋

1.5.2 預處理指令

1.5.3 定義main()函式

1.5.4 關鍵字

1.5.5 函式體

1.5.6 輸出信息

1.5.7 參數

1.5.8 控制符

1.6 用C語言開發程式

1.6.1 了解問題

1.6.2 詳細設計

1.6.3 實施

1.6.4 測試

1.7 函式及模組化編程

1.8 常見錯誤

1.9 要點

1.10 小結

1.11 習題

第2章 編程初步

2.1 計算機的記憶體

2.2 什麼是變數

2.3 存儲數值的變數

2.3.1 整數變數

2.3.2 變數的命名

2.3.3 變數的使用

2.3.4 變數的初始化

2.3.5 算術語句

2.4 變數與記憶體

2.5 整數變數類型

2.5.1 無符號的整數類型

2.5.2 使用整數類型

2.5.3 指定整數常量

2.6 浮點數

2.7 浮點數變數

2.8 使用浮點數完成除法運算

2.8.1 控制小數位數

2.8.2 控制輸出的欄位寬度

2.9 較複雜的表達式

2.10 定義常量

2.10.1 極限值

2.10.2 sizeof運算符

2.11 選擇正確的類型

2.12 強制類型轉換

2.12.1 自動轉換類型

2.12.2 隱式類型轉換的規則

2.12.3 賦值語句中的隱式類型轉換

2.13 再談數值數據類型

2.13.1 字元類型

2.13.2 字元的輸入輸出

2.13.3 寬字元類型

2.13.4 枚舉

2.13.5 存儲布爾值的變數

2.13.6 複數類型

2.14 賦值操作的op=形式

2.15 數學函式

2.16 設計一個程式

2.16.1 問題

2.16.2 分析

2.16.3 解決方案

2.17 小結

2.18 練習

第3章 條件判斷

3.1 判斷過程

3.1.1 算術比較

3.1.2 涉及關係運算符的表達式

3.1.3 基本的if語句

3.1.4 擴展if語句:if-else

3.1.5 在if語句中使用代碼塊

3.1.6 嵌套的if語句

3.1.7 更多的關係運算符

3.1.8 邏輯運算符

3.1.9 條件運算符

3.1.10 運算符的優先權

3.2 多項選擇問題

3.2.1 給多項選擇使用else-if語句

3.2.2 switch語句

3.2.3 goto語句

3.3 按位運算符

3.3.1 按位運算符的op=用法

3.3.2 使用按位運算符

3.4 設計程式

3.4.1 問題

3.4.2 分析

3.4.3 解決方案

3.5 小結

3.6 練習

第4章 循環

4.1 循環

4.2 遞增和遞減運算符

4.3 for循環

4.4 for循環的一般語法

4.5 再談遞增和遞減運算符

4.5.1 遞增運算符

4.5.2 遞增運算符的前置和後置形式

4.5.3 遞減運算符

4.6 再論for循環

4.6.1 修改for循環變數

4.6.2 沒有參數的for循環

4.6.3 循環內的break語句

4.6.4 使用for循環限制輸入

4.6.5 生成偽隨機整數

4.6.6 再談循環控制選項

4.6.7 浮點類型的循環控制變數

4.7 while循環

4.8 嵌套循環

4.9 嵌套循環和goto語句

4.10 do-while循環

4.11 continue語句

4.12 設計程式

4.12.1 問題

4.12.2 分析

4.12.3 解決方案

4.13 小結

4.14 習題

第5章 數組

5.1 數組簡介

5.1.1 不用數組的程式

5.1.2 什麼是數組

5.1.3 使用數組

5.2 記憶體

5.3 數組和地址

5.4 數組的初始化

5.5 確定數組的大小

5.6 多維數組

5.7 多維數組的初始化

5.8 設計一個程式

5.8.1 問題

5.8.2 分析

5.8.3 解決方案

5.9 小結

5.10 習題

第6章 字元串和文本的套用

6.1 什麼是字元串

6.2 處理字元串和文本的方法

6.3 字元串操作

6.3.1 連線字元串

6.3.2 字元串數組

6.4 字元串庫函式

6.4.1 使用庫函式複製字元串

6.4.2 使用庫函式確定字元串的長度

6.4.3 使用庫函式連線字元串

6.4.4 比較字元串

6.4.5 搜尋字元串

6.5 分析和轉換字元串

6.5.1 轉換字元

6.5.2 將字元串轉換成數值

6.7 使用寬字元串

6.8 設計一個程式

6.8.1 問題

6.8.2 分析

6.8.3 解決方案

6.9 小結

6.10 習題

第7章 指針

7.1 指針初探

7.1.1 聲明指針

7.1.2 通過指針訪問值

7.1.3 使用指針

7.1.4 指向常量的指針

7.1.5 常量指針

7.1.6 指針的命名

7.2 數組和指針

7.3 多維數組

7.3.1 多維數組和指針

7.3.2 訪問數組元素

7.4 記憶體的使用

7.4.1 動態記憶體分配:malloc()函式

7.4.2 分配記憶體時使用sizeof運算符

7.4.3 用calloc()函式分配記憶體

7.4.4 釋放動態分配的記憶體

7.4.5 重新分配記憶體

7.5 使用指針處理字元串

7.5.1 更多地控制字元串輸入

7.5.2 使用指針數組

7.6 設計程式

7.6.1 問題

7.6.2 分析

7.6.3 解決方案

7.7 小結

7.8 習題

第8章 程式的結構

8.1 程式的結構

8.1.1 變數的作用域和生存期

8.1.2 變數的作用域和函式

8.2 函式

8.2.1 定義函式

8.2.2 return語句

8.3 按值傳遞機制

8.4 函式聲明

8.5 指針用作參數和返回值

8.5.1 常量參數

8.5.2 從函式中返回指針值

8.5.3 在函式中遞增指針

8.6 小結

8.7 習題

第9章 函式再探

9.1 函式指針

9.1.1 聲明函式指針

9.1.2 通過函式指針調用函式

9.1.3 函式指針數組

9.1.4 作為變元的函式指針

9.2 函式中的變數

9.2.1 靜態變數:函式內部的追蹤

9.2.2 在函式之間共享變數

9.3 調用自己的函式:遞歸

9.4 變元個數可變的函式

9.4.1 複製va_list

9.4.2 長度可變的變元列表的基本規則

9.5 main()函式

9.6 結束程式

9.7 函式館:頭檔案

9.8 提高性能

9.8.1 內聯聲明函式

9.8.2 使用restrict關鍵字

9.9 設計程式

9.9.1 問題

9.9.2 分析

9.9.3 解決方案

9.10 小結

9.11 習題

第10章 基本輸入和輸出操作

10.1 輸入和輸出流

10.2 標準流

10.3 鍵盤輸入

10.3.1 格式化鍵盤輸入

10.3.2 輸入格式控制字元串

10.3.3 輸入格式字元串中的字元

10.3.4 輸入浮點數的各種變化

10.3.5 讀取十六進制和八進制值

10.3.6 用scanf()讀取字元

10.3.7 scanf()的陷阱

10.3.8 從鍵盤上輸入字元串

10.3.9 鍵盤的非格式化輸入

10.4 螢幕輸出

10.4.1 使用printf()格式輸出到螢幕

10.4.2 轉義序列

10.4.3 整數輸出

10.4.4 輸出浮點數

10.4.5 字元輸出

10.5 其他輸出函式

10.5.1 螢幕的非格式化輸出

10.5.2 數組的格式化輸出

10.5.3 數組的格式化輸入

10.6 印表機輸出

10.7 小結

10.8 習題

第11章 結構化數據

11.1 數據結構:使用struct

11.1.1 定義結構類型和結構變數

11.1.2 訪問結構成員

11.1.3 未命名的結構

11.1.4 結構數組

11.1.5 表達式中的結構

11.1.6 結構指針

11.1.7 為結構動態分配記憶體

11.2 再探結構成員

11.2.1 將一個結構作為另一個結構的成員

11.2.2 聲明結構中的結構

11.2.3 將結構指針用作結構成員

11.2.4 雙向鍊表

11.2.5 結構中的位欄位

11.3 結構與函式

11.3.1 結構作為函式的變元

11.3.2 結構指針作為函式變元

11.3.3 作為函式返回值的結構

11.3.4 修改程式

11.3.5 二叉樹

11.4 共享記憶體

11.4.1 聯合

11.4.2 聯合指針

11.4.3 聯合的初始化

11.4.4 聯合中的結構成員

11.5 定義自己的數據類型

11.5.1 結構與類型定義(typedef)功能

11.5.2 使用typedef簡化代碼

11.6 設計程式

11.6.1 問題

11.6.2 分析

11.6.3 解決方案

11.7 小結

11.8 習題

第12章 處理檔案

12.1 檔案的概念

12.1.1 檔案中的位置

12.1.2 檔案流

12.2 檔案訪問

12.2.1 打開檔案

12.2.2 檔案重命名

12.2.3 關閉檔案

12.2.4 刪除檔案

12.3 寫入文本檔案

12.4 讀取文本檔案

12.5 將字元串寫入文本檔案

12.6 從文本檔案中讀入字元串

12.7 格式化檔案的輸入輸出

12.7.1 格式化檔案輸出

12.7.2 格式化檔案輸入

12.8 錯誤處理

12.9 再探文本檔案操作模式

12.10 二進制檔案的輸入輸出

12.10.1 指定二進制模式

12.10.2 寫入二進制檔案

12.10.3 讀取二進制檔案

12.11 在檔案中移動

12.11.1 檔案定位操作

12.11.2 找出我們在檔案中的位置

12.11.3 在檔案中設定位置

12.12 使用臨時檔案

12.12.1 創建臨時檔案

12.12.2 創建唯一的檔案名稱

12.13 更新二進制檔案

12.13.1 修改檔案的內容

12.13.2 從鍵盤讀取記錄

12.13.3 將記錄寫入檔案

12.13.4 從檔案中讀取記錄

12.13.5 寫入檔案

12.13.6 列出檔案內容

12.13.7 更新已有的檔案內容

12.14 檔案打開模式小結

12.15 設計程式

12.15.1 問題

12.15.2 分析

12.15.3 解決方案

12.16 小結

12.17 習題

第13章 支持功能

13.1 預處理

13.1.1 在程式中包含頭檔案

13.1.2 外部變數及函式

13.1.3 替換程式原始碼

13.1.4 宏替換

13.1.5 看起來像函式的宏

13.1.6 多行上的預處理指令

13.1.7 字元串作為宏參數

13.1.8 結合兩個宏展開式的結果

13.2 預處理器邏輯指令

13.2.1 條件編譯

13.2.2 測試指定值的指令

13.2.3 多項選擇

13.2.4 標準預處理宏

13.3 調試方法

13.3.1 集成的調試器

13.3.2 調試階段的預處理器

13.3.3 使用assert()宏

13.4 其他庫函式

13.4.1 日期和時間函式館

13.4.2 獲取日期

13.5 小結

13.6 習題

附錄A 計算機中的數學知識

附錄B ASCII字元代碼定義

附錄C C語言中的保留字

附錄D 輸入輸出格式指定符

相關詞條

熱門詞條

聯絡我們