目 錄
第1章 程式設計基礎 1
1.1 算法及表示 1
1.1.1 算法的特性 2
1.1.2 算法的表示 2
1.2 程式設計及結構化程式設計方法 2
1.2.1 程式 2
1.2.2 程式設計 3
1.2.3 結構化程式設計 3
1.3 C語言的發展及特點 3
1.3.1 C語言出現的歷史背景 3
1.3.2 C語言的特點 4
1.4 C程式的構成 4
1.5 程式的書寫格式和程式的書寫風格 5
實驗 Turbo C、VC的使用 16
習題1 17
第2章 數據類型、運算符和表達式 19
2.1 C語言數據類型簡介 20
2.2 標識符 20
2.2.1 字元集 20
2.2.2 標識符概述 20
2.2.3 標識符的分類 20
2.3 常量與變數 21
2.3.1 常量 21
2.3.2 符號常量 21
2.3.3 變數 21
2.3.4 變數賦初值 21
2.4 整型數據 22
2.4.1 整型數據在記憶體中的存儲形式 22
2.4.2 整型常量 22
2.4.3 整型變數 22
2.5 實型數據 22
2.5.1 實型常量 22
2.5.2 實型變數 23
2.6 字元型數據 23
2.6.1 字元常量 23
2.6.2 字元串常量 24
2.6.3 字元變數 24
2.7 運算符和表達式 24
2.7.1 C運算符簡介 24
2.7.2 表達式的求值規則 25
2.7.3 混合運算中的類型轉換 25
2.8 算術運算符和算術表達式 26
2.8.1 基本算術運算符 26
2.8.2 算術表達式和運算符的優先權與結合性 26
2.8.3 自增、自減運算符 26
2.9 賦值運算與賦值表達式 26
2.9.1 賦值運算符 26
2.9.2 類型轉換 26
2.9.3 複合的賦值運算符 27
2.9.4 賦值表達式 27
2.10 逗號運算符和逗號表達式 27
2.11 關係運算符和關係表達式 28
2.11.1 關係運算符及其優先次序 28
2.11.2 關係表達式 28
2.12 邏輯運算符及邏輯表達式 28
2.12.1 邏輯運算符及其優先次序 28
2.12.2 邏輯表達式 29
2.13 條件運算符與條件表達式 29
2.13.1 條件運算符與條件表達式 29
2.13.2 條件運算符的優先權與結合性 29
實驗 數據類型、運算符和表達式 30
習題2 32
第3章 順序結構程式設計 37
3.1 C語句概述 37
3.2 賦值語句 38
3.3 字元數據的輸入/輸出 38
3.3.1 字元輸出函式putchar() 38
3.3.2 字元輸入函式getchar() 39
3.4 格式輸入/輸出 39
3.4.1 格式輸出函式printf() 39
3.4.2 格式輸入函式scanf() 40
3.5 套用舉例 40
實驗(一) 輸入/輸出函式及格式 41
實驗(二) 順序結構程式設計 43
習題3 45
第4章 選擇結構程式設計 55
4.1 if語句 55
4.1.1 簡單if語句 55
4.1.2 雙分支if語句 56
4.1.3 多分支if語句 56
4.1.4 if語句使用說明 57
4.2 if語句的嵌套 57
4.3 多分支結構 57
實驗(一) if語句 58
實驗(二) 多分支選擇語句 60
習題4 61
第5章 循環結構程式設計 72
5.1 goto語句以及用goto語句構成循環 72
5.2 while語句 73
5.3 do…while語句 73
5.4 for語句 73
5.5 幾種循環的比較 74
5.6 循環嵌套 74
5.7 continue語句 75
5.8 break語句 75
實驗(一) 循環程式設計(一) 75
實驗(二) 循環程式設計(二) 77
實驗(三) 多重循環 78
實驗(四) 綜合實驗 80
習題5 80
第6章 數組 92
6.1 數組和數組元素 92
6.2 一維數組 93
6.2.1 一維數組的定義和引用 93
6.2.2 一維數組的初始化 93
6.3 多維數組 93
6.3.1 二維數組的定義和引用 93
6.3.2 二維數組的初始化 94
6.4 字元數組 94
6.4.1 字元數組的定義和引用 94
6.4.2 字元數組的初始化 94
6.4.3 字元串的輸入/輸出 94
6.4.4 用於字元處理的庫函式 95
實驗(一) 一維數組的使用 96
實驗(二) 二維數組的使用 98
實驗(三) 字元數組和字元串 99
實驗(四) 綜合實驗 100
習題6 101
第7章 函式 112
7.1 模組化程式設計 113
7.1.1 模組化程式設計簡介 113
7.1.2 函式概述 113
7.2 函式的定義 113
7.2.1 無參函式的定義 113
7.2.2 有參函式的定義 113
7.2.3 函式的返回值 114
7.3 函式的調用 114
7.3.1 函式調用的一般形式 114
7.3.2 函式的聲明 114
7.3.3 函式參數的傳遞 114
7.4 函式的嵌套調用與遞歸調用 115
7.4.1 函式的嵌套調用 115
7.4.2 函式的遞歸調用 115
7.5 數組作函式參數 116
7.5.1 數組元素作函式實參 116
7.5.2 數組名作函式參數 116
7.5.3 多維數組作函式參數 116
7.6 變數的作用域 116
7.6.1 局部變數 116
7.6.2 全局變數 116
7.7 變數的存儲類別 117
7.7.1 變數的生存期 117
7.7.2 局部變數的存儲類別 117
7.7.3 全局變數的存儲類別 117
7.7.4 存儲類別小結 117
7.8 內部函式和外部函式 118
7.8.1 內部函式 118
7.8.2 外部函式 118
實驗(一) 函式的引用 119
實驗(二) 函式的嵌套調用和遞歸調用 121
實驗(三) 變數的作用域及存儲類別 123
實驗(四) 綜合實驗 124
習題7 125
第8章 編譯預處理 134
8.1 宏定義 134
8.1.1 不帶參數的宏定義 134
8.1.2 帶參數的宏定義 135
8.2 檔案包含 135
8.3 條件編譯 135
實驗 編譯預處理 136
習題8 137
第9章 指針 145
9.1 相關概念 145
9.1.1 變數的地址 145
9.1.2 數據的訪問方式 146
9.1.3 指針和指針變數 146
9.2 指針變數的定義和使用 146
9.2.1 指針變數的定義 146
9.2.2 指針變數的初始化和賦值 146
9.2.3 指針變數的引用 147
9.2.4 指針的運算 147
9.3 指針變數作函式參數 147
9.4 數組的指針和指向數組的指針變數 148
9.4.1 指向數組元素的指針 148
9.4.2 通過指針引用數組元素 148
9.4.3 數組名作函式參數 148
9.4.4 指向多維數組的指針與指針變數 149
9.5 字元串的指針和指向字元串的指針變數 149
9.5.1 字元串的表示形式 149
9.5.2 對使用字元指針變數與字元數組的討論 150
9.5.3 字元串指針作函式參數 150
9.6 函式的指針和指向函式的指針變數 150
9.6.1 用函式指針變數調用函式 150
9.6.2 指向函式的指針變數作函式參數 150
9.7 返回指針值的函式 151
9.8 指針數組和指向指針的指針 151
9.8.1 指針數組的概念 151
9.8.2 指向指針的指針 151
9.8.3 main()函式的命令行參數 151
實驗(一) 指針的使用 152
實驗(二) 指針作函式參數 154
實驗(三) 綜合試驗 156
習題9 157
第10章 結構體與共用體 162
10.1 結構體類型及變數的定義 162
10.1.1 結構體類型的定義 162
10.1.2 結構體變數的定義 163
10.2 結構體變數的引用和初始化 163
10.3 結構體數組 164
10.3.1 定義結構體數組 164
10.3.2 結構體數組的初始化 164
10.4 指向結構體類型數據的指針 164
10.4.1 指向結構體變數的指針 164
10.4.2 指向結構體數組的指針 164
10.4.3 結構體變數和指向結構體的指針作函式參數 164
10.5 用指針處理鍊表 165
10.5.1 鍊表概述 165
10.5.2 處理動態鍊表所需的函式 165
10.5.3 鍊表的基本操作 165
10.6 共用體 166
10.6.1 共用體變數的引用方式 166
10.6.2 共用體類型數據的特點 166
10.7 枚舉類型 167
10.8 用typedef定義類型 167
實驗 結構體與共用體 168
習題10 171
第11章 位運算 179
11.1 位運算符與位運算 180
11.1.1 按位與運算符(&) 180
11.1.2 按位或運算符(|) 180
11.1.3 按位異或運算符(^) 180
11.1.4 按位取反運算符(~) 181
11.1.5 左移運算符() 181
11.1.6 右移運算符() 181
11.1.7 位運算賦值運算符 181
11.1.8 不同長度的數據進行位運算 181
11.2 位段 181
實驗 位運算 181
習題11 183
第12章 檔案 189
12.1 檔案的概念 189
12.2 檔案操作函式 190
12.2.1 檔案的打開 190
12.2.2 檔案的關閉 190
12.3 檔案檢測函式 190
12.4 常用的讀寫函式 191
12.4.1 讀寫字元函式 191
12.4.2 讀寫字元串函式 192
12.4.3 讀寫數據塊函式 192
12.4.4 格式化讀寫函式:fprintf()函式和fscanf()函式 192
12.5 檔案的定位 192
12.5.1 rewind()函式 193
12.5.2 隨機讀寫和fseek()函式 193
實驗 檔案操作 194
習題12 195
第13章 實用項目開發技術簡介 203
13.1 C語言圖形功能簡介 203
13.1.1 圖形與硬體 204
13.1.2 文本與圖形 204
13.1.3 圖形設計 207
13.2 圖形模式的初始化 207
13.3 獨立圖形運行程式的建立 209
13.4 螢幕顏色的設定和清屏函式 209
13.5 基本畫圖函式 210
13.5.1 畫點 210
13.5.2 畫線 211
13.6 基本圖形的填充 212
13.6.1 基本圖形的填充 212
13.6.2 設定填充方式 213
13.6.3 任意封閉圖形的填充 214
13.7 圖形操作函式 214
13.7.1 圖形視窗操作 214
13.7.2 螢幕操作函式 215
13.8 圖形模式下的文本操作 216
13.8.1 文本的輸出 216
13.8.2 文本字型、字型和輸出方式的設定 216
13.8.3 用戶對文本字元大小的設定 217
13.9 C語言動畫設計 218
13.10 選單設計技術 218
13.10.1 下拉式選單的設計 218
13.10.2 選擇式選單的設計 219
13.11 大型程式開發的項目管理 219
13.11.1 項目管理器 219
13.11.2 用項目管理器開發程式項目的步驟 219
13.11.3 項目管理器的使用技巧 220
實驗 C語言的圖形功能 220
習題13 225
附錄A 習題參考答案 226
附錄B Turbo C編譯出錯信息 264
參考文獻 275