《C語言程式設計——面向工程套用實踐(第2版)》是2017年2月1日電子工業出版社出版的圖書,作者是牛連強、馮海文、侯春光。
基本介紹
- 書名:C語言程式設計——面向工程套用實踐(第2版)
- 作者:牛連強、馮海文、侯春光
- ISBN:9787121306747
- 出版社:電子工業出版社
- 出版時間:2017年2月1日
圖書內容,目 錄,
圖書內容
本書的內容共分10章。第1章介紹程式設計的基本概念、常識以及C語言的初步知識,可完成對C語言、程式設計及設計環境的基本了解。第2章和第3章介紹數據、運算、輸入輸出、順序與與分支流程控制,可滿足設計簡單但完整的C語言程式的要求。第4章介紹循環結構以及數組的基本套用方法,可以解決稍微複雜的實際問題。第5章介紹函式,能夠較全面了解C語言程式的組織結構和模組化的程式設計技術。
第6章介紹指針,這是C語言"高級”能力的體現。第7章介紹字元串,這是套用廣泛且能夠體現C語言程式設計技巧的內容。第8章介紹了利用指針訪問數組的方法、動態記憶體管理、指向函式的指針以及類型識別與描述方法,集中討論了幾種與指針相關的複雜概念和技術。第9章介紹自定義的數據類型,包括枚舉、結構體和共用體,使程式能夠順利描述複雜的對象,建立複雜的數據結構。第10章介紹檔案操作,完成數據在記憶體與磁碟檔案之間的互動。
目 錄
第1章 概述 1
1.1 程式設計基礎 1
1.1.1 問題的求解過程 1
1.1.2 算法及其描述 2
1.1.3 模組化與結構化 4
1.2 C語言及其特點 5
1.2.1 C語言的產生和發展 5
1.2.2 C語言的主要特點 5
1.3 C語言程式的基本結構 6
1.4 高級語言程式的處理過程 10
1.5 利用Visual C++ 6.0環境編寫和運行
C語言程式 11
1.5.1 VC6環境的安裝與運行 12
1.5.2 編制一個(控制台)源程式 13
1.5.3 編譯、連結與運行程式 14
1.5.4 程式調試技術 15
1.5.5 簡單的程式調試與糾錯 17
1.6 習題 19
1.7 編程實戰 20
第2章 數據與運算 21
2.1 標識符與關鍵字 21
2.1.1 標識符 21
2.1.2 關鍵字 22
2.2 數據類型 22
2.3 常量 23
2.3.1 直接常量與符號常量 23
2.3.2 整型常量 24
2.3.3 字元型常量與字元串常量 25
2.3.4 浮點型常量 28
2.4 變數 29
2.4.1 變數定義與初始化 29
2.4.2 整型變數 31
2.4.3 字元型變數 32
2.4.4 浮點型變數 33
2.5 算術運算與賦值運算 33
2.5.1 運算符和表達式 34
2.5.2 算術運算 35
2.5.3 賦值運算 35
2.5.4 自加和自減運算 38
2.6 關係運算和邏輯運算 39
2.6.1 邏輯值 39
2.6.2 關係運算 40
2.6.3 邏輯運算 41
2.7 位運算 44
2.7.1 位運算符及表達式 44
2.7.2 位運算操作 44
2.8 sizeof運算與逗號運算 48
2.8.1 sizeof運算符 48
2.8.2 逗號運算符 49
2.9 數據類型轉換 50
2.9.1 隱式類型轉換 50
2.9.2 顯式類型轉換 51
2.10 習題 52
2.11 編程實戰 54
第3章 簡單程式設計 55
3.1 C語言語句概述 55
3.1.1 語句分類 55
3.1.2 語句的形式 56
3.2 數據輸出 58
3.2.1 輸出一個字元 58
3.2.2 按自定義格式輸出數據 59
3.3 數據輸入 62
3.3.1 輸入一個字元 62
3.3.2 按自定義格式輸入數據 63
3.4 分支結構 66
3.4.1 條件運算符與條件表達式 66
3.4.2 if語句 67
3.4.3 switch語句與多分支處理 72
3.5 習題 76
3.6 編程實戰 77
第4章 循環結構與數組 78
4.1 while語句與do while語句 78
4.1.1 while語句 78
4.1.2 do while語句 80
4.2 for語句 82
4.2.1 for語句的語法 82
4.2.2 for語句的特殊形式 83
4.3 流程轉移語句 85
4.3.1 break語句 85
4.3.2 continue語句 86
4.3.3 goto語句 87
4.4 循環結構的套用 88
4.5 一維數組的定義和引用 91
4.5.1 一維數組的定義 91
4.5.2 一維數組的引用 92
4.5.3 一維數組的定義初始化 93
4.6 一維數組的套用 94
4.7 二維數組 97
4.7.1 二維數組的定義與引用 97
4.7.2 二維數組的定義初始化 98
4.7.3 二維數組的套用 99
4.8 習題 101
4.9 編程實戰 103
第5章 函式 104
5.1 函式的定義與聲明 104
5.1.1 函式定義 104
5.1.2 函式聲明 107
5.2 函式調用及返回 108
5.2.1 函式的調用過程 108
5.2.2 用return語句控制函式返回 109
5.3 形參與實參 111
5.3.1 函式的形式參數 111
5.3.2 實參與形參的匹配 112
5.3.3 函式調用表達式 112
5.4 參數的傳值調用規則 114
5.5 遞歸調用 116
5.5.1 遞歸調用過程 116
5.5.2 典型的遞歸問題與函式示例 118
5.6 變數的存儲屬性 120
5.6.1 變數的生存期與作用域 120
5.6.2 局部變數 121
5.6.3 外部變數 125
5.6.4 static修飾、變數禁止和外部變數
的使用 127
5.7 編譯預處理指令 129
5.7.1 宏定義 129
5.7.2 檔案包含 131
5.7.3 條件編譯 132
5.8 習題 132
5.9 編程實戰 135
第6章 指針 138
6.1 指針與指針變數 138
6.1.1 指針是經過包裝的地址 138
6.1.2 指針變數 140
6.2 指針變數的賦值與指針的間接
引用 141
6.2.1 指針變數的賦值 141
6.2.2 *運算符與間接訪問 142
6.2.3 指針變數的初始化 144
6.3 指針的運算 145
6.3.1 指針的加減算術運算 145
6.3.2 指針的自加和自減運算 147
6.3.3 指針的比較 147
6.4 指針作函式的參數 148
6.4.1 修改實參變數的值 148
6.4.2 從被調用函式取得信息 150
6.5 利用指針訪問一維數組 151
6.5.1 利用指針實現快速數組元素
訪問 151
6.5.2 一維數組名的指針含義 152
6.5.3 指針與數組的一致性 153
6.6 向函式傳遞一維數組 154
6.7 習題 158
6.8 編程實戰 161
第7章 字元串 162
7.1 用字元數組作字元串變數 162
7.1.1 對字元數組的特殊處理 162
7.1.2 用作字元串變數的字元數組
初始化 164
7.2 指向字元串常量的指針變數 165
7.2.1 界限模糊的字元串常量與變數 165
7.2.2 利用const限制指針的行為 166
7.3 字元串的輸出與輸入 167
7.3.1 字元串輸出 167
7.3.2 字元串輸入 168
7.3.3 記憶體格式化 169
7.4 字元串操作 170
7.4.1 向函式傳遞字元串 170
7.4.2 返回指針的函式 171
7.4.3 字元串運算函式 173
7.4.4 字元串處理函式的設計 176
7.5 指針數組 178
7.5.1 指針數組的定義與引用 178
7.5.2 字元串數組 179
7.6 指向指針的指針 181
7.6.1 指向指針的指針常量與變數 181
7.6.2 指針數組作函式參數 183
7.7 習題 184
7.8 編程實戰 187
第8章 與指針相關的其他技術 189
8.1 二維數組的指針訪問 189
8.1.1 二維數組的一維表示 189
8.1.2 二維數組名的指針含義 190
8.1.3 指向一維數組的指針變數 192
8.1.4 二維數組作函式參數 193
8.1.5 利用二維數組實現的字元串
數組 195
8.2 動態記憶體管理 196
8.2.1 動態記憶體申請與使用的一般
過程 197
8.2.2 calloc函式與realloc函式 199
8.3 指向函式的指針 201
8.3.1 指向函式的指針常量與變數 202
8.3.2 函式指針的套用 203
8.4 定義的識別與數據類型的顯式
描述 205
8.4.1 由運算識別複雜的定義 205
8.4.2 用typedef顯式描述數據類型 207
8.5 習題 209
8.6 編程實戰 211
第9章 自定義數據類型 212
9.1 枚舉 212
9.2 結構體類型 214
9.2.1 結構體類型的定義 214
9.2.2 結構體類型的變數定義 216
9.3 結構體變數的引用 217
9.3.1 引用結構體成員 217
9.3.2 結構體變數的初始化 218
9.3.3 整體引用結構體變數 218
9.3.4 結構體對象在函式間的傳遞 219
9.4 結構體數組和指針 220
9.4.1 結構體數組 220
9.4.2 結構體指針 221
9.5 結構體指針的套用──鍊表 224
9.5.1 單向鍊表及其支撐結構 224
9.5.2 鍊表的創建與訪問 225
9.5.3 鍊表結點的查找、插入與刪除 227
9.6 位段 231
9.7 共用體 232
9.8 習題 233
9.9 編程實戰 235
第10章 檔案 236
10.1 檔案概述 236
10.1.1 檔案的概念 236
10.1.2 文本流與二進制流 236
10.1.3 標準I/O和系統I/O 237
10.2 檔案的打開與關閉 238
10.2.1 檔案類型與檔案指針 238
10.2.2 檔案的打開 238
10.2.3 檔案的關閉 241
10.3 檔案的順序讀寫 242
10.3.1 字元讀寫函式fgetc和fputc 242
10.3.2 檔案尾檢測 243
10.3.3 getw函式和putw函式 245
10.3.4 讀寫字元串函式fgets和fputs 246
10.3.5 格式化讀寫函式fscanf和
fprintf 247
10.3.6 按塊讀寫函式fread和fwrite 248
10.4 檔案的隨機讀寫 251
10.4.1 以讀/寫方式打開檔案 251
10.4.2 fseek函式與讀寫位置的隨機
定位 252
10.5 相關函式 253
10.6 習題 254
10.7 編程實戰 255
附錄A 常用字元與ASCII碼對照表 257
附錄B 運算符的優先權與結合性 258
附錄C C++ Builder編程環境的使用 259
附錄D DEV-C++編程環境簡介 264
參考文獻 267
1.1 程式設計基礎 1
1.1.1 問題的求解過程 1
1.1.2 算法及其描述 2
1.1.3 模組化與結構化 4
1.2 C語言及其特點 5
1.2.1 C語言的產生和發展 5
1.2.2 C語言的主要特點 5
1.3 C語言程式的基本結構 6
1.4 高級語言程式的處理過程 10
1.5 利用Visual C++ 6.0環境編寫和運行
C語言程式 11
1.5.1 VC6環境的安裝與運行 12
1.5.2 編制一個(控制台)源程式 13
1.5.3 編譯、連結與運行程式 14
1.5.4 程式調試技術 15
1.5.5 簡單的程式調試與糾錯 17
1.6 習題 19
1.7 編程實戰 20
第2章 數據與運算 21
2.1 標識符與關鍵字 21
2.1.1 標識符 21
2.1.2 關鍵字 22
2.2 數據類型 22
2.3 常量 23
2.3.1 直接常量與符號常量 23
2.3.2 整型常量 24
2.3.3 字元型常量與字元串常量 25
2.3.4 浮點型常量 28
2.4 變數 29
2.4.1 變數定義與初始化 29
2.4.2 整型變數 31
2.4.3 字元型變數 32
2.4.4 浮點型變數 33
2.5 算術運算與賦值運算 33
2.5.1 運算符和表達式 34
2.5.2 算術運算 35
2.5.3 賦值運算 35
2.5.4 自加和自減運算 38
2.6 關係運算和邏輯運算 39
2.6.1 邏輯值 39
2.6.2 關係運算 40
2.6.3 邏輯運算 41
2.7 位運算 44
2.7.1 位運算符及表達式 44
2.7.2 位運算操作 44
2.8 sizeof運算與逗號運算 48
2.8.1 sizeof運算符 48
2.8.2 逗號運算符 49
2.9 數據類型轉換 50
2.9.1 隱式類型轉換 50
2.9.2 顯式類型轉換 51
2.10 習題 52
2.11 編程實戰 54
第3章 簡單程式設計 55
3.1 C語言語句概述 55
3.1.1 語句分類 55
3.1.2 語句的形式 56
3.2 數據輸出 58
3.2.1 輸出一個字元 58
3.2.2 按自定義格式輸出數據 59
3.3 數據輸入 62
3.3.1 輸入一個字元 62
3.3.2 按自定義格式輸入數據 63
3.4 分支結構 66
3.4.1 條件運算符與條件表達式 66
3.4.2 if語句 67
3.4.3 switch語句與多分支處理 72
3.5 習題 76
3.6 編程實戰 77
第4章 循環結構與數組 78
4.1 while語句與do while語句 78
4.1.1 while語句 78
4.1.2 do while語句 80
4.2 for語句 82
4.2.1 for語句的語法 82
4.2.2 for語句的特殊形式 83
4.3 流程轉移語句 85
4.3.1 break語句 85
4.3.2 continue語句 86
4.3.3 goto語句 87
4.4 循環結構的套用 88
4.5 一維數組的定義和引用 91
4.5.1 一維數組的定義 91
4.5.2 一維數組的引用 92
4.5.3 一維數組的定義初始化 93
4.6 一維數組的套用 94
4.7 二維數組 97
4.7.1 二維數組的定義與引用 97
4.7.2 二維數組的定義初始化 98
4.7.3 二維數組的套用 99
4.8 習題 101
4.9 編程實戰 103
第5章 函式 104
5.1 函式的定義與聲明 104
5.1.1 函式定義 104
5.1.2 函式聲明 107
5.2 函式調用及返回 108
5.2.1 函式的調用過程 108
5.2.2 用return語句控制函式返回 109
5.3 形參與實參 111
5.3.1 函式的形式參數 111
5.3.2 實參與形參的匹配 112
5.3.3 函式調用表達式 112
5.4 參數的傳值調用規則 114
5.5 遞歸調用 116
5.5.1 遞歸調用過程 116
5.5.2 典型的遞歸問題與函式示例 118
5.6 變數的存儲屬性 120
5.6.1 變數的生存期與作用域 120
5.6.2 局部變數 121
5.6.3 外部變數 125
5.6.4 static修飾、變數禁止和外部變數
的使用 127
5.7 編譯預處理指令 129
5.7.1 宏定義 129
5.7.2 檔案包含 131
5.7.3 條件編譯 132
5.8 習題 132
5.9 編程實戰 135
第6章 指針 138
6.1 指針與指針變數 138
6.1.1 指針是經過包裝的地址 138
6.1.2 指針變數 140
6.2 指針變數的賦值與指針的間接
引用 141
6.2.1 指針變數的賦值 141
6.2.2 *運算符與間接訪問 142
6.2.3 指針變數的初始化 144
6.3 指針的運算 145
6.3.1 指針的加減算術運算 145
6.3.2 指針的自加和自減運算 147
6.3.3 指針的比較 147
6.4 指針作函式的參數 148
6.4.1 修改實參變數的值 148
6.4.2 從被調用函式取得信息 150
6.5 利用指針訪問一維數組 151
6.5.1 利用指針實現快速數組元素
訪問 151
6.5.2 一維數組名的指針含義 152
6.5.3 指針與數組的一致性 153
6.6 向函式傳遞一維數組 154
6.7 習題 158
6.8 編程實戰 161
第7章 字元串 162
7.1 用字元數組作字元串變數 162
7.1.1 對字元數組的特殊處理 162
7.1.2 用作字元串變數的字元數組
初始化 164
7.2 指向字元串常量的指針變數 165
7.2.1 界限模糊的字元串常量與變數 165
7.2.2 利用const限制指針的行為 166
7.3 字元串的輸出與輸入 167
7.3.1 字元串輸出 167
7.3.2 字元串輸入 168
7.3.3 記憶體格式化 169
7.4 字元串操作 170
7.4.1 向函式傳遞字元串 170
7.4.2 返回指針的函式 171
7.4.3 字元串運算函式 173
7.4.4 字元串處理函式的設計 176
7.5 指針數組 178
7.5.1 指針數組的定義與引用 178
7.5.2 字元串數組 179
7.6 指向指針的指針 181
7.6.1 指向指針的指針常量與變數 181
7.6.2 指針數組作函式參數 183
7.7 習題 184
7.8 編程實戰 187
第8章 與指針相關的其他技術 189
8.1 二維數組的指針訪問 189
8.1.1 二維數組的一維表示 189
8.1.2 二維數組名的指針含義 190
8.1.3 指向一維數組的指針變數 192
8.1.4 二維數組作函式參數 193
8.1.5 利用二維數組實現的字元串
數組 195
8.2 動態記憶體管理 196
8.2.1 動態記憶體申請與使用的一般
過程 197
8.2.2 calloc函式與realloc函式 199
8.3 指向函式的指針 201
8.3.1 指向函式的指針常量與變數 202
8.3.2 函式指針的套用 203
8.4 定義的識別與數據類型的顯式
描述 205
8.4.1 由運算識別複雜的定義 205
8.4.2 用typedef顯式描述數據類型 207
8.5 習題 209
8.6 編程實戰 211
第9章 自定義數據類型 212
9.1 枚舉 212
9.2 結構體類型 214
9.2.1 結構體類型的定義 214
9.2.2 結構體類型的變數定義 216
9.3 結構體變數的引用 217
9.3.1 引用結構體成員 217
9.3.2 結構體變數的初始化 218
9.3.3 整體引用結構體變數 218
9.3.4 結構體對象在函式間的傳遞 219
9.4 結構體數組和指針 220
9.4.1 結構體數組 220
9.4.2 結構體指針 221
9.5 結構體指針的套用──鍊表 224
9.5.1 單向鍊表及其支撐結構 224
9.5.2 鍊表的創建與訪問 225
9.5.3 鍊表結點的查找、插入與刪除 227
9.6 位段 231
9.7 共用體 232
9.8 習題 233
9.9 編程實戰 235
第10章 檔案 236
10.1 檔案概述 236
10.1.1 檔案的概念 236
10.1.2 文本流與二進制流 236
10.1.3 標準I/O和系統I/O 237
10.2 檔案的打開與關閉 238
10.2.1 檔案類型與檔案指針 238
10.2.2 檔案的打開 238
10.2.3 檔案的關閉 241
10.3 檔案的順序讀寫 242
10.3.1 字元讀寫函式fgetc和fputc 242
10.3.2 檔案尾檢測 243
10.3.3 getw函式和putw函式 245
10.3.4 讀寫字元串函式fgets和fputs 246
10.3.5 格式化讀寫函式fscanf和
fprintf 247
10.3.6 按塊讀寫函式fread和fwrite 248
10.4 檔案的隨機讀寫 251
10.4.1 以讀/寫方式打開檔案 251
10.4.2 fseek函式與讀寫位置的隨機
定位 252
10.5 相關函式 253
10.6 習題 254
10.7 編程實戰 255
附錄A 常用字元與ASCII碼對照表 257
附錄B 運算符的優先權與結合性 258
附錄C C++ Builder編程環境的使用 259
附錄D DEV-C++編程環境簡介 264
參考文獻 267