C語言是世界上使用頻度最高的計算機程序設計語言,是許多計算機專業人員編寫應用程序和計算機的愛好者學習程序設計的首選。 本書通過一個貫穿全書的案例,逐步引出C語言的基礎知識和應用方式,其中包括:C語言的數據類型和運算、順序結構、選擇結構、循環結構、函數、數組、指針、結構體和文件。文中穿插了較多的示例程序,這些程序代碼都經過VC9和gcc雙重編譯調試通過。書中涉及的C語法完全符合C99標準。 本書可作為普通高校本、專科學生的教學用書,也可供一般工程技術人員參考使用。
1.適合三本院校學生特點2.以貫穿性思維將一個項目的開發過程融入整本教材
目 錄
第1章 引論 1
1.1 程序設計概述 1
1.1.1 為什么需要程序設計 2
1.1.2 什么是程序設計語言 4
1.1.3 程序設計語言的多樣性 4
1.1.4 高級程序設計語言的基本結構 5
1.1.5 高級程序設計語言的開發過程 6
1.1.6 高級程序設計語言的標準化 7
1.2 計算機系統 8
1.2.1 硬件系統 8
1.2.2 軟件系統 9
1.2.3 關于使用計算機系統的一些話題 10
1.3 C語言程序設計起步 10 目 錄
第1章 引論 1
1.1 程序設計概述 1
1.1.1 為什么需要程序設計 2
1.1.2 什么是程序設計語言 4
1.1.3 程序設計語言的多樣性 4
1.1.4 高級程序設計語言的基本結構 5
1.1.5 高級程序設計語言的開發過程 6
1.1.6 高級程序設計語言的標準化 7
1.2 計算機系統 8
1.2.1 硬件系統 8
1.2.2 軟件系統 9
1.2.3 關于使用計算機系統的一些話題 10
1.3 C語言程序設計起步 10
1.3.1 C程序的基本結構 10
1.3.2 C程序的設計流程 13
1.3.3 C程序的編輯、編譯、鏈接和運行 15
1.4 關于數據結構和算法 17
1.5 貫穿全書的案例 18
本章小結 19
第2章 數據類型和運算 20
2.1 問題的引入 20
2.2 數據類型 21
2.2.1 整數類型 22
2.2.2 字符類型 22
2.2.3 浮點類型 24
2.3 標識符與變量 25
2.3.1 標識符 25
2.3.2 變量 26
2.4 常量和枚舉類型 28
2.4.1 字面常量、命名常量和符號常量 28
2.4.2 枚舉類型 30
2.5 運算符和表達式 30
2.5.1 運算符和表達式概述 30
2.5.2 賦值運算符和賦值表達式 31
2.5.3 算術運算符和算術表達式 32
2.5.4 關系運算符和關系表達式 34
2.5.5 邏輯運算符和邏輯表達式 35
2.5.6 條件運算符和條件表達式 35
2.5.7 逗號運算符和逗號表達式 36
2.5.8 移位運算符和移位表達式 36
2.5.9 位運算符和位運算表達式 37
2.5.10 復合賦值運算符和復合賦值表達式 37
2.5.11 sizeof運算符 38
2.6 混合運算 39
2.6.1 運算符的優先級規則 39
2.6.2 類型轉換 40
2.7 編程實例 42
2.8 C程序的書寫風格 45
2.9 解決方案 45
本章小結 46
第3章 控制結構——順序結構 47
3.1 問題引入 47
3.2 C語句概述 48
3.2.1 C語句的分類 48
3.2.2 非語句的情況 49
3.3 順序控制結構 50
3.4 字符輸入、輸出 51
3.4.1 getchar()函數(字符輸入函數) 51
3.4.2 putchar()函數(字符輸出函數) 52
3.5 格式化輸入、輸出 52
3.5.1 格式化輸出函數printf() 53
3.5.2 格式化輸入函數scanf() 55
3.6 編譯預處理 58
3.6.1 文件包含 59
3.6.2 宏替換 59
3.6.3 條件編譯 60
3.7 解決方案 60
本章小結 61
第4章 控制結構——選擇結構 62
4.1 問題引入 62
4.2 選擇結構概述 62
4.3 if語句 63
4.3.1 單/雙路選擇if語句 63
4.3.2 多路選擇if-else if語句 65
4.3.3 if語句的嵌套 67
4.4 多路選擇switch語句 69
4.4.1 switch語句的基本語法 69
4.4.2 使用break語句終止switch語句的執行 70
4.4.3 switch語句與if-else if語句的異同 73
4.4.4 在switch語句中聲明變量 73
4.5 解決方案 73
本章小結 75
第5章 控制結構——循環結構 76
5.1 問題引入 76
5.2 循環結構的概述 76
5.3 while語句 77
5.3.1 while語句的語法 77
5.3.2 死循環 78
5.3.3 程序實例 79
5.4 do-while語句 80
5.4.1 do-while語句的語法 80
5.4.2 迭代法 80
5.5 for語句 83
5.5.1 for語句的語法 83
5.5.2 for語句的變體形式 83
5.5.3 窮舉法 84
5.6 循環嵌套 86
5.7 break和continue語句 88
5.7.1 break語句 88
5.7.2 continue語句 89
5.8 循環的應用 90
5.8.1 迭代法的應用 90
5.8.2 處理多個字符輸入 90
5.8.3 窮舉法應用 92
5.9 解決方案 94
本章小結 94
第6章 函數 95
6.1 問題引入 95
6.2 函數的聲明和定義 96
6.2.1 函數的分類 96
6.2.2 函數原型的聲明 96
6.2.3 函數的定義 97
6.2.4 函數類型 98
6.3 函數的調用 99
6.3.1 函數的參數 99
6.3.2 函數的返回值和return語句 100
6.3.3 函數的調用過程 102
6.3.4 函數的嵌套調用 102
6.4 函數的設計 103
6.5 存儲分類 105
6.5.1 局部變量和全局變量 105
6.5.2 自動變量和靜態變量 107
6.6 外部聲明 109
6.7 函數遞歸 110
6.8 解決方案 114
本章小結 115
第7章 數組 116
7.1 問題引入 116
7.2 一維數組 117
7.2.1 一維數組的聲明 117
7.2.2 一維數組元素的使用 118
7.2.3 一維數組的初始化 119
7.2.4 一維數組作為函數的參數 121
7.2.5 一維數組的應用 123
7.3 二維數組 129
7.3.1 二維數組的聲明和使用 129
7.3.2 二維數組的初始化 131
7.3.3 二維數組作為函數的參數 133
7.3.4 二維數組的應用 134
7.3.5 二維數組和一維數組的關系 136
7.4 字符數組 138
7.4.1 字符數組、字符串及其初始化 138
7.4.2 字符串處理函數 140
7.4.3 一維、二維字符數組和字符串處理函數的應用 142
7.5 高維數組 144
7.6 解決方案 145
本章小結 148
第8章 指針 149
8.1 問題引入 149
8.2 指針的聲明和使用 150
8.2.1 指針變量的聲明 150
8.2.2 指針的使用 151
8.2.3 const作用于指針 154
8.3 指針的運算 156
8.3.1 指針的賦值運算 156
8.3.2 指針的比較運算 157
8.3.3 指針的算術運算 157
8.4 指針和數組 159
8.4.1 指向數組元素的指針 159
8.4.2 指向字符的指針、字符數組和字符串 162
8.4.3 指針數組 164
8.4.4 指向數組的指針 166
8.5 指向指針的指針 167
8.6 指針和函數 168
8.6.1 指針作為函數的參數 168
8.6.2 函數返回指針 173
8.6.3 指向函數的指針 174
8.6.4 使用typedef來簡化類型 178
8.7 動態內存管理 179
8.8 解決方案 182
本章小結 182
第9章 結構體 183
9.1 問題引入 183
9.2 結構體類型聲明和使用 184
9.2.1 結構體類型聲明 184
9.2.2 結構體變量聲明 186
9.2.3 結構體變量的使用和初始化 187
9.2.4 何時使用結構體 189
9.3 結構體數組 189
9.4 結構體與指針 191
9.4.1 指針變量作為結構體的成員 191
9.4.2 指向結構體變量的指針 192
9.4.3 指向結構體數組元素的指針 195
9.5 結構體與函數 198
9.5.1 結構體變量作為函數參數傳遞 198
9.5.2 函數返回結構體類型值 201
9.6 位域 204
9.7 聯合體 205
9.8 解決方案 205
本章小結 207
第10章 文件 208
10.1 問題引入 208
10.2 C文件概述 208
10.3 文件的打開和關閉 210
10.3.1 fopen()函數(文件打開函數) 210
10.3.2 fclose()函數 211
10.4 文件的讀寫 212
10.4.1 字符的讀寫 212
10.4.2 格式化讀寫 213
10.4.3 字符串讀寫 214
10.4.4 數據塊讀寫 216
10.5 關于文件操作的其他函數 217
10.5.1 rewind()函數 217
10.5.2 fseek()函數 218
10.5.3 ftell()函數 218
10.5.4 ferror()函數 219
10.5.5 feof()函數 219
10.6 解決方案 219
附錄A C99關鍵字 222
附錄B C語言的運算符 223
附錄C 運算符的優先級和結合性 224
附錄D ASCII碼表 225
附錄E 標準C語言頭文件 227
參考文獻 228