本書全面介紹了C語言的語法知識和利用其進行程序設計的相關技術,包括C語言及程序設計的基礎知識、數據組織、流程控制、函數封裝、指針、字符串操作、構造數據類型及文件操作等。
在內容編排和結構組織上,本書力求精練合理,難點概念合理分散,問題講解簡明生動,更重要的是將工程應用和強化實踐能力的宗旨貫穿于每個部分。本書不同于一般的語法書籍,從基本習慣、說明案例至編程實戰,都在不同程度上融入了工程元素,詳細介紹了實際軟件開發中的重點問題和注意事項,并說明哪些是工程應用中的合適技術,使學習者能夠進行“近距離”的工程應用知識學習。
牛連強,教授,專業計算機科學與技術。1986年吉林大學本科畢業,畢業后至今沈陽工業大學信息科學與工程學院工作。
第1章 概述
1.1 程序設計基礎
1.1.1 問題的求解過程
1.1.2 算法及其描述
1.1.3 模塊化與結構化
1.2 C語言及其特點
1.2.1 C語言的產生和發展
1.2.2 C語言的主要特點
1.3 C語言程序的基本結構
1.4 C語言程序的執行過程
1.5 編程環境
1.5.1 安裝和運行TC集成化環境
1.5.2 編寫和運行程序
1.5.3 熟悉編輯環境
1.5.4 與程序調試有關的功能
第1章 概述
1.1 程序設計基礎
1.1.1 問題的求解過程
1.1.2 算法及其描述
1.1.3 模塊化與結構化
1.2 C語言及其特點
1.2.1 C語言的產生和發展
1.2.2 C語言的主要特點
1.3 C語言程序的基本結構
1.4 C語言程序的執行過程
1.5 編程環境
1.5.1 安裝和運行TC集成化環境
1.5.2 編寫和運行程序
1.5.3 熟悉編輯環境
1.5.4 與程序調試有關的功能
1.5.5 簡單的程序調試與糾錯
1.6 習題
1.7 編程實戰
第2章 數據與運算
2.1 標識符與關鍵字
2.1.1 標識符
2.1.2 關鍵字
2.2 數據類型
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.5 算術運算與賦值運算
2.5.1 運算符和表達式
2.5.2 算術運算
2.5.3 賦值運算
2.5.4 自加和自減運算
2.6 關系運算和邏輯運算
2.6.1 邏輯值
2.6.2 關系運算
2.6.3 邏輯運算
2.7 位運算
2.7.1 位運算符及表達式
2.7.2 位運算操作
2.8 sizeof運算與逗號運算
2.8.1 sizeof運算符
2.8.2 逗號運算符
2.9 數據類型轉換
2.9.1 隱式類型轉換
2.9.2 顯式類型轉換
2.10 習題
2.11 編程實戰
第3章 簡單程序設計
3.1 C語言語句概述
3.1.1 語句分類
3.1.2 語句的形式
3.2 數據輸出
3.2.1 輸出一個字符
3.2.2 按自定義格式輸出數據
3.3 數據輸入
3.3.1 輸入一個字符
3.3.2 按自定義格式輸入數據
3.4 分支結構
3.4.1 條件運算符與條件表達式
3.4.2 if語句
3.4.3 switch語句與多分支處理
3.5 習題
3.6 編程實戰
第4章 循環結構與數組
4.1 while語句與do-while語句
4.1.1 while語句
4.1.2 do-while語句
4.2 for語句
4.2.1 for語句的語法
4.2.2 for語句的特殊形式
4.3 流程轉移語句
4.3.1 break語句
4.3.2 continue語句
4.3.3 goto語句
4.4 循環結構的應用
4.5 一維數組的定義和引用
4.5.1 一維數組的定義
4.5.2 一維數組的引用
4.5.3 一維數組的定義初始化
4.6 一維數組的應用
4.7 二維數組
4.7.1 二維數組的定義與引用
4.7.2 二維數組的定義初始化
4.7.3 二維數組的應用
4.8 習題
4.9 編程實戰
第5章 函數
5.1 函數的定義與聲明
5.1.1 函數定義
5.1.2 函數聲明
5.2 函數調用及返回
5.2.1 函數的調用過程
5.2.2 用return語句控制函數返回
5.3 形參與實參
5.3.1 函數的形式參數
5.3.2 實參與形參的匹配
5.3.3 函數調用表達式
5.4 參數的傳值調用規則
5.5 遞歸調用
5.5.1 遞歸調用過程
5.5.2 使用遞歸函數的典型問題
5.6 變量的存儲屬性
5.6.1 變量的生存期與作用域
5.6.2 局部變量
5.6.3 外部變量
5.6.4 static修飾、變量屏蔽和外部
變量的使用
5.7 編譯預處理指令
5.7.1 宏定義
5.7.2 文件包含
5.7.3 條件編譯
5.8 習題
5.9 編程實戰
第6章 指針
6.1 指針與指針變量
6.1.1 指針是經過包裝的地址
6.1.2 指針變量
6.2 指針變量的賦值與指針的間接引用
6.2.1 指針變量的賦值
6.2.2 *運算符與間接訪問
6.2.3 指針變量的初始化
6.3 指針的運算
6.3.1 指針的加減算術運算
6.3.2 指針的自加和自減運算
6.3.3 指針的比較
6.4 指針作函數的參數
6.4.1 修改實參變量的值
6.4.2 從被調用函數取得信息
6.5 利用指針訪問一維數組
6.5.1 利用指針實現的快速數組元素
訪問
6.5.2 一維數組名的指針含義
6.5.3 指針與數組的一致性
6.6 向函數傳遞一維數組
6.7 習題
6.8 編程實戰
第7章 字符串
7.1 用字符數組作字符串變量
7.1.1 對字符數組的特殊處理
7.1.2 用作字符串變量的字符數組的
初始化
7.2 指向字符串常量的指針變量
7.2.1 模糊的字符串常量與變量
7.2.2 利用const限制指針的行為
7.3 字符串的輸出與輸入
7.3.1 字符串的輸出
7.3.2 字符串的輸入
7.3.3 內存格式化
7.4 字符串操作
7.4.1 向函數傳遞字符串
7.4.2 返回指針的函數
7.4.3 字符串運算函數
7.4.4 字符串處理函數的設計
7.5 指針數組
7.5.1 指針數組的定義與引用
7.5.2 字符串數組
7.6 指向指針的指針
7.6.1 指向指針的指針常量與變量
7.6.2 指針數組作函數參數
7.7 習題
7.8 編程實戰
第8章 與指針相關的其他技術
8.1 二維數組的指針訪問
8.1.1 二維數組的一維表示
8.1.2 二維數組名的指針含義
8.1.3 指向一維數組的指針變量
8.1.4 二維數組作函數參數
8.1.5 利用二維數組實現的字符
串數組
8.2 動態內存管理
8.2.1 動態內存分配與使用
8.2.2 calloc函數與realloc函數
8.3 指向函數的指針
8.3.1 指向函數的指針常量與變量
8.3.2 函數指針的應用
8.4 定義的識別與數據類型的顯式描述
8.4.1 由運算識別復雜的定義
8.4.2 用typedef顯式描述數據類型
8.5 習題
8.6 編程實戰
第9章 自定義數據類型
9.1 枚舉
9.2 結構體類型
9.2.1 結構體類型的定義
9.2.2 結構體類型的變量定義
9.3 結構體變量的引用
9.3.1 引用結構體的成員
9.3.2 結構體變量的初始化
9.3.3 整體引用結構體變量
9.3.4 結構體對象在函數間的傳遞
9.4 結構體數組和指針
9.4.1 結構體數組
9.4.2 結構體指針
9.5 結構體指針的應用——鏈表
9.5.1 單向鏈表及其支撐結構
9.5.2 鏈表的創建與訪問
9.5.3 鏈表結點的查找、插入與刪除
9.6 位段
9.7 共用體
9.8 習題
9.9 編程實戰
第10章 文件
10.1 文件概述
10.1.1 文件的概念
10.1.2 文本流與二進制流
10.1.3 標準I/O和系統I/O
10.2 文件的打開與關閉
10.2.1 文件類型與文件指針
10.2.2 文件的打開
10.2.3 文件的關閉
10.3 文件的順序讀寫
10.3.1 字符讀寫函數fgetc和fputc
10.3.2 文件位置指針的檢測
10.3.3 getw函數和putw函數
10.3.4 讀寫字符串函數fgets和fputs
10.3.5 格式化讀寫函數fscanf和
fprintf
10.3.6 按塊讀寫函數fread和fwrite
10.4 文件的隨機讀寫
10.4.1 以讀/寫方式打開文件
10.4.2 讀寫位置的隨機定位與fseek
函數
10.5 相關函數
10.6 習題
10.7 編程實戰
附錄A 常用字符與ASCII碼對照表
附錄B 運算符的優先級與結合性
附錄C Windows平臺下的編程環境簡介