內容簡介
本書介紹了c語言編程的基礎知識,重點講解了數組、指針、結構體、檔案、常見的數據結構及數據操作等知識點,並通過真實的項目案例討論如何綜合使用它們對檔案數據、資料庫進行讀寫及數據處理操作。全書分為入門篇、編程提高篇、數據結構與算法篇及實例項目篇,共22章,具體內容為c語言概述、變數和常量、c語言運算符、標準輸入/輸出、c語言控制結構、函式、宏指令#include和#define、數組、字元串、指針、結構體和共用體、數組指針、結構體指針、函式指針、動態記憶體分配、條件編譯機制、檔案操作、資料庫編程,線性數據結構、非線性數據結構、數據操作及利用c語言實現教學管理系統。書中循序漸進地從基本概念入門、編程實踐提高到實例項目開發講述c語言,既強調基礎知識的重要性,又注重其實踐性與實用性。
本書適合高等院校計算機專業及相關專業的學生、c語言愛好者及國中級程式開發人員,也可以供從事計算機工程與套用的廣大讀者參考。
目錄
叢書序
前言
第一篇 入 門 篇
第1章 c語言概述 1
1.1 c語言基礎知識 1
1.1.1 計算機語言和面向過程編程 1
1.1.2 c語言基本結構 2
1.1.3 代碼注釋 3
1.2 tc編譯器介紹 3
1.2.1 tc編譯環境介紹 4
1.2.2 tc編譯器的選單項 4
1.2.3 使用tc編譯器編寫代碼 7
1.2.4 使用tc編譯器打開源檔案 10
1.2.5 使用tc編譯器編譯原始碼 10
1.2.6 使用tc編譯器執行原始碼 12
1.2.7 tc編譯器學習技巧 13
1.3 vc編譯器介紹 13
1.3.1 vc編譯環境介紹 13
1.3.2 新建c語言源檔案 14
1.3.3 編寫c程式代碼 15
.1.3.4 使用vc編譯器編譯原始碼 15
1.3.5 使用vc編譯器執行原始碼 17
1.4 經典的“hello world”程式 17
1.5 小結 18
第2章 變數和常量 19
2.1 變數定義 19
2.1.1 變數類型簡介 19
2.1.2 變數命名 21
2.1.3 定義局部變數 21
2.1.4 定義全局變數 22
2.2 在程式中使用變數 22
2.2.1 使用變數存儲數據 22
2.2.2 輸出變數中的數據 23
2.3 定義常量 24
2.3.1 什麼是常量 24
2.3.2 關鍵字const的使用方法 24
2.3.3 定義全局常量和局部常量 24
2.4 小結 25
2.5 習題 25
第3章 c語言運算符 26
3.1 c語言常用運算符 26
3.1.1 賦值運算符 26
3.1.2 算術運算符 27
3.1.3 邏輯運算符 29
3.1.4 關係運算符 31
3.1.5 三目運算符 32
3.1.6 位運算符 33
3.2 單目運算符 34
3.2.1 前置單目運算符 34
3.2.2 後置單目運算符 35
3.3 運算符實例程式 37
3.4 小結 38
3.5 習題 38
第4章 標準輸入/輸出 39
4.1 c語言標準輸入 39
4.1.1 scanf()概述 39
4.1.2 包含標準輸入頭檔案 40
4.1.3 使用scanf()獲取數據 40
4.2 c語言標準輸出 41
4.2.1 printf()概述 41
4.2.2 使用printf()輸出數據 41
4.2.3 實例程式 42
4.3 使用getchar()和putchar() 43
4.3.1 使用getchar() 43
4.3.2 使用putchar() 44
4.4 標準輸入/輸出實例程式 45
4.5 小結 46
4.6 習題 46
第5章 c語言控制結構 47
5.1 條件編譯結構 47
5.1.1 if結構 47
5.1.2 if...else結構 49
5.2 循環結構 52
5.2.1 while循環結構 52
5.2.2 do...while循環結構 54
5.2.3 for循環結構 56
5.3 終止循環 58
5.3.1 使用break終止循環 58
5.3.2 使用continue終止循環 59
5.4 選擇結構 60
5.4.1 switch結構簡介 60
5.4.2 switch使用要點 63
5.5 嵌套結構 63
5.5.1 嵌套使用if語句 63
5.5.2 嵌套使用while語句 66
5.5.3 嵌套使用if和while語句 67
5.6 輸出控制結構 68
5.6.1 格式化輸出控制符的使用 68
5.6.2 格式化輸出數據實例 71
5.7 小結 72
5.8 習題 72
第6章 函式 73
6.1 c語言中的函式概述 73
6.1.1 函式的定義格式 73
6.1.2 函式參數和返回值 74
6.1.3 函式中的變數作用域 76
6.2 函式調用 78
6.2.1 函式的調用方式 78
6.2.2 函式的嵌套調用 78
6.2.3 函式的遞歸調用 80
6.3 函式實例程式 81
6.4 小結 82
6.5 習題 83
第7章 宏指令#include和#define 84
7.1 #include介紹 84
7.1.1 使用#include包含相關檔案 84
7.1.2 使用#include的具體位置 85
7.2 #define介紹 87
7.2.1 對常量進行重定義 87
7.2.2 對標識符進行重定義 88
7.2.3 對算術表達式進行重定義 90
7.3 宏指令#include和#define實例程式 91
7.4 小結 92
7.5 習題 92
第8章 數組 93
8.1 c程式數組基礎知識 93
8.1.1 什麼是數組 93
8.1.2 定義一維數組 94
8.1.3 定義二維數組 95
8.2 數組初始化 97
8.2.1 一維數組初始化 98
8.2.2 二維數組初始化 99
8.3 輸出數組中的元素 101
8.3.1 數組下標介紹 101
8.3.2 輸出數組中的指定元素 101
8.4 數組實例程式 104
8.5 小結 106
8.6 習題 106
第9章 字元串 107
9.1 字元串概述 107
9.2 存儲字元串 108
9.2.1 字元串結束符 108
9.2.2 使用數組存儲字元串 109
9.3 字元串數組 109
9.3.1 定義字元串數組 109
9.3.2 初始化字元串數組 110
9.3.3 輸入/輸出字元串數組 112
9.4 字元串操作 115
9.4.1 複製字元串 115
9.4.2 連線字元串 117
9.4.3 比較字元串 117
9.5 字元串實例程式 119
9.6 小結 121
9.7 習題 121
第二篇 編程提高篇
第10章 指針 123
10.1 指針的基本概念 123
10.1.1 指針與地址 123
10.1.2 取地址運算符“&” 124
10.2 定義指針變數 125
10.2.1 指針定義符“*” 125
10.2.2 定義空指針 125
10.3 初始化指針變數 128
10.4 使用指針變數輸出數據與地址 128
10.4.1 輸出數據 129
10.4.2 輸出數據的記憶體地址 131
10.5 指針實例程式 133
10.6 小結 135
10.7 習題 135
第11章 結構體和共用體 136
11.1 結構體的定義 136
11.1.1 定義結構體 136
11.1.2 添加結構體成員變數 136
11.2 定義結構體變數 137
11.3 使用結構體 139
11.3.1 初始化結構體成員變數 139
11.3.2 訪問結構體成員變數 141
11.3.3 修改結構體成員變數 141
11.4 共用體的定義 142
11.4.1 定義共用體 142
11.4.2 添加共用體成員變數 143
11.5 使用共用體 144
11.5.1 定義共用體變數 144
11.5.2 操作共用體變數 144
11.6 結構體和共用體實例程式 145
11.7 小結 148
11.8 習題 148
第12章 數組指針 149
12.1 數組地址與指針的聯繫 149
12.1.1 數組首地址 149
12.1.2 使用指針指向數組首地址 150
12.2 使用指針遍歷數組元素 152
12.2.1 通過指針初始化數組元素 152
12.2.2 通過指針運算輸出數組元素 155
12.2.3 通過指針變數輸出數組元素的地址 157
12.3 數組指針實例程式 158
12.4 小結 162
12.5 習題 162
第13章 結構體指針 163
13.1 結構體指針介紹 163
13.1.1 結構體指針定義 163
13.1.2 初始化結構體指針 165
13.1.3 指針訪問運算符“-]” 166
13.2 使用指針操作結構體成員 167
13.3 結構體指針實例程式 168
13.4 鍊表 170
13.4.1 鍊表介紹 170
13.4.2 鍊表結點定義 172
13.4.3 鍊表的創建 172
13.4.4 鍊表的遍歷 173
13.4.5 鍊表的插入操作 174
13.4.6 鍊表的刪除操作 175
13.5 小結 176
13.6 習題 176
第14章 函式指針 177
14.1 使用指針作為函式參數 177
14.1.1 使用數組指針作為函式實參 177
14.1.2 使用結構體指針作為函式實參 178
14.1.3 使用指針變數作為函式形參 179
14.2 函式返回值為指針類型 181
14.3 函式指針變數 183
14.4 函式指針實例程式 185
14.5 小結 189
14.6 習題 189
第15章 動態記憶體分配 190
15.1 概述 190
15.2 記憶體分配函式介紹 190
15.2.1 malloc函式 191
15.2.2 calloc函式 192
15.2.3 realloc函式 193
15.3 釋放記憶體 194
15.4 動態記憶體分配實例程式 195
15.5 小結 198
15.6 習題 198
第16章 條件編譯機制 199
16.1 條件編譯格式概述 199
16.1.1 #ifdef-#else-#endif格式 199
16.1.2 #ifndef-#else-#endif格式 200
16.1.3 #if-#else-#endif格式 200
16.2 條件編譯實例程式 201
16.3 小結 205
16.4 習題 205
第17章 檔案操作 206
17.1 基本概念 206
17.1.1 檔案 206
17.1.2 檔案指針 206
17.1.3 檔案存儲方式—文本方式和二進制方式 207
17.2 檔案操作 207
17.2.1 打開檔案 208
17.2.2 讀取檔案 209
17.2.3 寫入檔案 210
17.2.4 判斷檔案數據是否結束 210
17.2.5 實現字元數據的讀寫 211
17.2.6 實現字元串數據的讀寫 212
17.2.7 檔案操作實例程式 213
17.3 fread()和fwrite()實現檔案讀寫 215
17.3.1 fread()讀取檔案 216
17.3.2 fwrite()寫入檔案 216
17.4 檔案數據格式化操作 218
17.4.1 格式化讀取檔案(fscanf()函式) 219
17.4.2 格式化寫入檔案(fprintf()函式) 219
17.5 檔案定位 220
17.5.1 定位檔案開始(rewind()函式) 220
17.5.2 移動檔案指針(fseek()函式) 221
17.5.3 獲取檔案指針當前位置(ftell()函式) 221
17.6 小結 222
17.7 習題 222
第18章 資料庫編程 223
18.1 資料庫基礎知識 223
18.1.1 資料庫簡介 223
18.1.2 資料庫訪問技術 224
18.2 創建access資料庫 224
18.2.1 選單欄和工具列 225
18.2.2 新建資料庫 225
18.2.3 新建數據表 227
18.2.4 保存數據表 228
18.3 創建sql server資料庫 228
18.3.1 用sql server管理控制台創建資料庫和表 228
18.3.2 odbc數據源配置 231
18.4 使用odbc api資料庫編程 232
18.4.1 odbc api編程模型 233
18.4.2 odbc api編程實現步驟 234
18.5 使用ado資料庫編程 238
18.5.1 導入ado的動態程式庫 238
18.5.2 初始化ado控制項環境 239
18.5.3 ado庫接口 239
18.6 資料庫開發實例 240
18.7 小結 244
18.8 習題 244
第三篇 數據結構與算法篇
第19章 線性數據結構 245
19.1 數據結構與算法概述 245
19.1.1 數據結構概述 245
19.1.2 算法的概述 247
19.1.3 數據結構與算法 249
19.2 線性表 250
19.2.1 線性表的定義 250
19.2.2 線性表的基本運算 251
19.2.3 線性表的存儲結構 252
19.3 棧 257
19.3.1 棧的定義 257
19.3.2 棧的基本運算 258
19.3.3 棧的存儲結構 258
19.4 佇列 262
19.4.1 佇列的定義 262
19.4.2 佇列的基本運算 263
19.4.3 佇列的存儲結構 263
19.5 小結 268
19.6 習題 268
第20章 非線性數據結構 269
20.1 二叉樹 269
20.1.1 二叉樹的定義 269
20.1.2 二叉樹的性質 270
20.1.3 二叉樹的存儲結構 270
20.1.4 二叉樹的遍歷 274
20.2 圖 279
20.2.1 圖的定義 279
20.2.2 圖的存儲結構 281
20.2.3 圖的遍歷 284
20.3 小結 287
20.4 習題 287
第21章 數據操作 288
21.1 查找 288
21.1.1 查找的定義 288
21.1.2 順序查找 288
21.1.3 折半查找 289
21.2 排序 292
21.2.1 排序的定義 292
21.2.2 簡單排序 292
21.2.3 快速排序 299
21.3 小結 301
21.4 習題 301
第四篇 實例項目篇
第22章 利用c語言實現教學管理系統 303
22.1 項目概述 303
22.1.1 概述 303
22.1.2 實例中的相關檔案 303
22.1.3 實例程式的相關功能 304
22.2 自定義數據檔案 308
22.2.1 各數據檔案準備 309
22.2.2 自定義檔案數據讀取函式 310
22.2.3 自定義檔案數據寫入函式 312
22.3 資料庫設計及連線 314
22.3.1 定義各數據表 314
22.3.2 自定義資料庫連線函式 316
22.4 資料庫操作 317
22.4.1 登錄模組 317
22.4.2 數據讀取 320
22.4.3 數據添加 322
22.4.4 數據刪除 323
22.5 系統部署和運行 324
22.5.1 數據檔案的準備 324
22.5.2 資料庫、數據表的創建 324
22.5.3 用戶參數定製 324
22.6 小結 324
附錄1 turbo c中常見錯誤提示的中英文對照 325
附錄2 visual c++中常見的錯誤提示 329
附錄3 ascii編碼 335
附錄4 turbo c中的各種數據類型 339
附錄5 函式間傳遞參數時類型的自動轉換 340
附錄6 c標準庫介紹 341