本書系統(tǒng)地介紹ANSI C語言的基本概念、語法和語義,包括數(shù)據(jù)類型、常量、變量、運算符和表達式、語句、數(shù)組、函數(shù)、結構體、指針、文件等。將C語言的介紹和結構化程序設計方法有機地結合在一起,通過大量實例的分析、編程,幫助讀者盡快掌握C語言和用C語言編寫程序。通過基本算法思想介紹和應用實例,幫助讀者掌握用C語言描述算法和基本算法策略在程序設計中的應用。本書提供大量精心設計的例題、習題和上機實驗,通過完成習題和上機實驗,幫助讀者進一步理解C語言的各種語法成分,掌握C語言源程序的編輯、編譯、鏈接和運行過程。本書配有電子課件、源代碼和習題解答,讀者可登錄華信教育資源網(wǎng)(www.hxedu.com.cn)注冊并免費下載。 本書可作為高等院校“C語言程序設計”課程的教材,也可作為廣大計算機程序設計人員和計算機程序設計愛好者的參考書,同時可供參加相關考試的讀者參考。
呼克佑,太原理工大學軟件學院教師,主要從事方向為軟件工程、數(shù)據(jù)庫應用主編《C語言程序設計》《JAVA語言程序設計》等多部教教材。
目 錄
第1章 C語言與程序設計 1
1.1 C語言發(fā)展簡史 2
1.2 C語言的特點 3
1.3 計算機解題過程 4
1.4 算法及其表示 5
1.4.1 算法的概念 7
1.4.2 算法的描述 8
1.5 常用算法策略介紹 11
1.5.1 窮舉法 11
1.5.2 遞推法 12
1.5.3 遞歸法 12
1.6 結構化程序設計方法 13
1.6.1 結構化程序設計基本思想 13
1.6.2 三種基本程序結構 14
本章小結 14
習題一 15
第2章 C語言基礎知識 16
2.1 簡單的C語言程序 16
2.2 關鍵字和標識符 19
2.2.1 字符集 19
2.2.2 關鍵字 19
2.2.3 標識符 20
2.3 數(shù)據(jù)類型 20
2.3.1 C語言的數(shù)據(jù)類型 21
2.3.2 整數(shù)類型 22
2.3.3 浮點類型 23
2.3.4 字符類型 24
2.4 常量和變量 25
2.4.1 常量 25
2.4.2 變量 27
2.5 運算符和表達式 29
2.5.1 算術運算符 30
2.5.2 賦值運算符 32
2.5.3 其他運算符 34
2.5.4 運算符的優(yōu)先級和結合性 36
2.6 數(shù)據(jù)類型轉換 37
本章小結 39
習題二 39
第3章 程序控制結構 42
3.1 C語言語句概述 42
3.2 順序結構 44
3.2.1 賦值語句 44
3.2.2 數(shù)據(jù)輸入/輸出 44
3.2.3 格式輸入/輸出 46
3.2.4 程序舉例 51
3.3 選擇結構 52
3.3.1 關系運算符與關系表達式 53
3.3.2 邏輯運算符與邏輯表達式 53
3.3.3 if語句 55
3.3.4 switch語句 59
3.3.5 程序舉例 62
3.4 循環(huán)結構 64
3.4.1 while循環(huán)語句 64
3.4.2 do-while循環(huán)語句 66
3.4.3 for循環(huán)語句 67
3.4.4 循環(huán)的嵌套 70
3.4.5 goto、break和continue語句 71
3.4.6 程序舉例 74
本章小結 79
習題三 80
第4章 數(shù)組和字符串 94
4.1 一維數(shù)組 94
4.1.1 一維數(shù)組的定義 94
4.1.2 一維數(shù)組的初始化 95
4.1.3 一維數(shù)組元素的引用 96
4.1.4 一維數(shù)組應用舉例 98
4.2 二維數(shù)組及多維數(shù)組 103
4.2.1 二維數(shù)組的定義 103
4.2.2 二維數(shù)組的初始化 104
4.2.3 二維數(shù)組元素的引用 104
4.2.4 二維數(shù)組應用舉例 105
4.2.5 多維數(shù)組 106
4.3 字符數(shù)組和字符串 107
4.3.1 用字符數(shù)組存放字符序列 107
4.3.2 用字符數(shù)組存放字符串 108
4.3.3 字符串處理函數(shù) 110
4.3.4 字符數(shù)組應用舉例 113
本章小結 116
習題四 117
第5章 指針 123
5.1 指針的概念及運算 123
5.1.1 指針的概念 123
5.1.2 指針變量的定義和初始化 124
5.1.3 與指針有關的運算 125
5.2 數(shù)組中的指針 128
5.2.1 一維數(shù)組中的指針 128
5.2.2 二維數(shù)組中的指針 131
5.3 用指針處理字符串 133
5.4 指針數(shù)組和指針的指針 135
5.4.1 指針數(shù)組 135
5.4.2 指向指針的指針 137
5.5 程序舉例 139
本章小結 140
習題五 141
第6章 函數(shù) 145
6.1 模塊化程序設計方法 145
6.2 函數(shù)的定義、調用和聲明 147
6.2.1 函數(shù)定義 147
6.2.2 函數(shù)調用 150
6.2.3 函數(shù)聲明 151
6.3 函數(shù)參數(shù)及其傳遞方式 153
6.3.1 函數(shù)的參數(shù) 153
6.3.2 函數(shù)參數(shù)的傳遞方式 155
6.4 函數(shù)的嵌套調用和遞歸調用 161
6.4.1 函數(shù)的嵌套調用 161
6.4.2 函數(shù)的遞歸調用 164
6.5 函數(shù)指針和指向函數(shù)的指針變量 167
6.5.1 函數(shù)指針和指向函數(shù)的指針變量的定義 167
6.5.2 指向函數(shù)的指針作為函數(shù)的參數(shù) 168
6.6 main()函數(shù)的參數(shù) 170
6.7 exit()函數(shù) 172
6.8 變量的作用域規(guī)則與存儲類別 172
6.8.1 局部變量和全局變量 173
6.8.2 變量的存儲類別 176
6.8.3 內部函數(shù)和外部函數(shù) 181
6.9 程序舉例 183
本章小結 186
習題六 187
第7章 用戶自定義類型 193
7.1 結構體 193
7.1.1 結構體類型定義 193
7.1.2 結構體類型變量、數(shù)組和指針的定義 195
7.1.3 結構體類型變量、數(shù)組和指針的初始化 197
7.1.4 結構體類型變量的引用 198
7.1.5 結構體應用舉例 200
7.1.6 結構體指針與函數(shù) 204
7.1.7 位域 206
7.2 動態(tài)存儲分配 207
7.2.1 內存的分配與釋放 208
7.2.2 內存動態(tài)分配應用舉例 210
7.3 共用體 216
7.3.1 共用體類型的定義 217
7.3.2 共用體變量定義 217
7.4 枚舉類型 219
7.4.1 枚舉類型的定義 219
7.4.2 枚舉類型數(shù)據(jù)的使用 220
7.5 類型標識符的定義 221
本章小結 221
習題七 222
第8章 文件 225
8.1 文件概述 225
8.1.1 文件的基本概念 225
8.1.2 文件類型和常用函數(shù) 226
8.1.3 文件類型指針 227
8.2 文件的打開與關閉 228
8.2.1 文件的打開 228
8.2.2 文件的關閉 229
8.3 文件的讀/寫 229
8.3.1 順序文件的讀/寫 230
8.3.2 隨機文件的讀/寫 236
8.4 程序舉例 239
本章小結 242
習題八 243
第9章 編譯預處理 245
9.1 宏定義 245
9.1.1 不帶參數(shù)的宏定義 246
9.1.2 帶參數(shù)的宏定義 248
9.2 文件包含 251
9.3 條件編譯 253
本章小結 255
習題九 256
第10章 上機實驗 258
實驗一 C語言程序的運行環(huán)境和運行過程 259
實驗二 簡單程序設計 263
實驗三 分支結構和循環(huán)結構程序設計(1) 263
實驗四 分支結構和循環(huán)結構程序設計(2) 264
實驗五 數(shù)組應用和字符串處理程序設計 265
實驗六 指針應用程序設計 266
實驗七 模塊化程序設計 266
實驗八 結構體應用和文件操作程序設計 267
附錄A ASCII碼字符表 269
附錄B C語言運算符 270
附錄C 位運算 271
附錄D 常用的C庫函數(shù) 273
附錄E 實驗報告 279
附錄F Visual C++常見錯誤 280
參考文獻 284