本書以C語言的基本語法、語句為基礎,深入淺出地描述了C語言程序設計的基本概念。以程序案例為導向,采用計算思維的方法設計程序,通過程序案例,拓寬學生的思維,引導學生自主思考,掌握程序設計的一般規(guī)律和方法。
1.遵從程序設計認知規(guī)律,內容編排從感性認識到理性認識
2.案例豐富,層次感強,具有較好的可擴展性(共精選了180個程序,大部分程序都在Visual Studio 2010環(huán)境和Dev C 5.11環(huán)境下通過驗證)
3.問題分析引導,算法流程圖規(guī)范
李麗娟,博士,教授,曾擔任湖南大學計算機與通信學院應用系系主任,長期從事計算機基礎教育與研究工作。主要承擔的教學課程有《C語言程序設計》《C 面向對象程序設計》《面向對象設計技術》《信息技術導論》《數據結構》等,編寫了多本教材。
主要研究方向:指紋識別技術、DNA識別技術等
第1 章 引言 1
1.1 C 語言的發(fā)展過程 1
1.2 C 語言的特點 1
1.3 簡單的C 語言程序 3
1.4 C 語言程序的結構 6
1.5 C 語言程序的執(zhí)行 6
1.5.1 源程序翻譯 7
1.5.2 鏈接目標程序 7
1.5.3 集成開發(fā)工具 8
1.6 本章小結 9
習題 10
第2 章 基本的程序語句 11
2.1 預備知識 11
2.1.1 定點數和浮點數的概念 11
2.1.2 整型數的二進制表示 12
2.1.3 浮點型數的二進制表示 13
2.2 基本數據類型及取值范圍 15
2.3 標識符、變量和常量 18
2.3.1 標識符 18
2.3.2 變量和常量 19
2.4 基本運算符、表達式及運算的優(yōu)先級 25
2.4.1 算術運算符及算術表達式 26
2.4.2 關系運算符及關系表達式 30
2.4.3 邏輯運算符及邏輯表達式 31
2.4.4 位運算符及表達式 32
2.4.5 條件運算符 33
2.4.6 逗號表達式 34
2.4.7 數據類型的轉換 35
2.4.8 復雜表達式的計算順序 35
2.4.9 C 語言的基本語句結構 37
2.5 標準輸入 輸出函數 38
2.5.1 格式化輸出函數 38
2.5.2 格式化輸入函數 42
2.5.3 字符輸出函數 46
2.5.4 字符輸入函數 47
2.6 程序范例 49
2.7 本章小結 51
習題 52
第3 章 程序的簡單算法設計 58
3.1 結構化程序的算法設計 58
3.2 結構化算法的性質及結構 59
3.2.1 結構化算法的性質 59
3.2.2 結構化算法的結構 59
3.3 結構化算法的描述方法 60
3.3.1 自然語言 60
3.3.2 流程圖 61
3.3.3 偽代碼 65
3.4 算法設計范例 68
3.5 本章小結 70
習題 70
第4 章 分支結構 71
4.1 if 結構 71
4.1.1 if 語句 71
4.1.2 if...else 語句 73
4.1.3 if 語句的嵌套 75
4.2 switch 結構 79
4.2.1 switch 語句 79
4.2.2 break 語句在switch 語句中的作用 81
4.3 程序范例 83
4.4 本章小結 89
習題 89
第5 章 循環(huán)結構 96
5.1 for 語句 96
5.2 while 語句 103
5.3 do...while 語句 106
5.4 用于循環(huán)中的break 語句和continue
語句 108
5.5 循環(huán)結構的嵌套 112
5.6 goto 語句 113
5.7 程序范例 115
5.8 本章小結 118
習題 119
第6 章 函數與宏定義 126
6.1 函數的概念 126
6.1.1 函數的定義 126
6.1.2 函數的聲明和調用 127
6.1.3 函數的傳值方式 128
6.2 變量的作用域和存儲類型 131
6.3 內部函數與外部函數 134
6.4 遞歸函數的設計和調用 135
6.5 預處理 139
6.5.1 宏定義 139
6.5.2 文件包含 141
6.5.3 條件編譯及其他 142
6.6 程序范例 145
6.7 本章小結 152
習題 152
第7 章 數組 157
7.1 一維數組的定義和初始化 157
7.1.1 一維數組的定義 157
7.1.2 一維數組的初始化 159
7.2 一維數組的使用 160
7.3 多維數組 164
7.3.1 二維數組的概念 164
7.3.2 二維數組的定義 164
7.3.3 多維數組的定義 165
7.3.4 二維數組及多維數組的初始化 166
7.4 字符數組 169
7.4.1 字符數組的初始化 171
7.4.2 字符串的輸入 172
7.4.3 字符串的輸出 173
7.4.4 二維字符數組 173
7.5 數組作為函數的參數 178
7.5.1 數組元素作為函數的參數 178
7.5.2 數組名作為函數的參數 179
7.6 程序范例 182
7.7 本章小結 188
習題 189
第8 章 指針 194
8.1 指針的概念 194
8.1.1 指針變量的定義 195
8.1.2 指針變量的使用 195
8.1.3 指針變量與簡單變量的關系 196
8.2 指針的運算 197
8.2.1 指針的算術運算 197
8.2.2 指針的關系運算 199
8.3 指針與數組的關系 199
8.3.1 指向一維數組的指針 199
8.3.2 指向多維數組的指針 202
8.3.3 字符指針 207
8.3.4 指針數組 208
8.4 指針作為函數的參數 210
8.5 函數的返回值為指針 213
*8.6 指向函數的指針 214
*8.7 main 函數的參數 215
*8.8 指向指針的指針 217
8.9 程序范例 218
8.10 本章小結 225
習題 226
第9 章 構造數據類型 230
9.1 結構體數據類型 230
9.1.1 結構體的定義 230
9.1.2 結構型變量的定義 231
9.1.3 結構型變量的初始化 232
9.1.4 結構型變量成員的引用 233
9.1.5 結構型變量成員的輸入 輸出 235
9.2 結構型數組 236
9.2.1 結構型數組的定義 236
9.2.2 結構型數組成員的初始化和引用 237
9.3 結構型變量與函數 237
9.3.1 函數的形參與實參為結構體 237
9.3.2 函數的返回值類型為結構體 238
9.4 共用型數據 240
9.5 枚舉型數據 242
9.6 鏈表 244
9.6.1 動態(tài)分配內存 245
9.6.2 單鏈表的建立 246
9.6.3 從單鏈表中刪除結點 249
9.6.4 向鏈表中插入結點 252
9.7 程序范例 255
9.8 本章小結 261
習題 261
第10 章 文件操作 266
10.1 文件的概念 266
10.2 文件的操作 266
10.2.1 文件的打開與關閉 266
10.2.2 文件操作的錯誤檢測 269
10.2.3 文件的順序讀 寫 269
10.2.4 文件的隨機讀 寫 274
10.3 程序范例 278
10.4 本章小結 281
習題 281
第11 章 位運算 285
11.1 按位取反運算 285
11.2 按位左移運算 287
11.3 按位右移運算 288
11.4 按位與運算 290
11.5 按位或運算 292
11.6 按位異或運算 294
11.7 復合位運算賦值運算符 297
11.8 程序范例 297
11.9 本章小結 300
習題 300
附錄A C 語言的關鍵字 303
附錄B ASCII 字符表 304