第1篇 基礎知識
第1章 C語言概述 3
視頻講解:29分鐘
1.1 C語言發展史 4
1.1.1 程序語言簡述 4
1.1.2 C 語言歷史 4
1.2 C語言的特點 5
1.3 壹個簡單的C程序 6
1.4 壹個完整的C程序 8
1.5 C語言程序的格式 12
1.6 開發環境 13
1.6.1 Turbo C 2.0 13
1.6.2 Visual C++ 6.0 18
1.7 小結 24
第2章 算法 25
視頻講解:22分鐘
2.1 算法的基本概念 26
2.1.1 算法的特性 26
2.1.2 算法的優劣 27
2.2 算法的描述 27
2.2.1 自然語言 28
2.2.2 流程圖 28
2.2.3 N-S流程圖 32
2.3 小結 36
第3章 數據類型 37
視頻講解:39分鐘
3.1 編程規範 38
3.2 關鍵字 39
3.3 標識符 39
3.4 數據類型 41
3.5 常量 42
3.5.1 整型常量 42
3.5.2 實型常量 45
3.5.3 字符型常量 46
3.5.4 轉義字符 49
3.5.5 符號常量 49
3.6 變量 50
3.6.1 整型變量 50
3.6.2 實型變量 53
3.6.3 字符型變量 55
3.7 變量的存儲類別 57
3.7.1 動態存儲與靜態存儲 57
3.7.2 auto變量 57
3.7.3 static 變量 58
3.7.4 register變量 59
3.7.5 extern變量 60
3.8 混合運算 61
3.9 小結 62
3.10 實踐與練習 62
第4章 運算符與表達式 63
視頻講解:29分鐘
4.1 表達式 64
4.2 賦值運算符與賦值表達式 66
4.2.1 變量賦初值 66
4.2.2 自動類型轉換 68
4.2.3 強制類型轉換 68
4.3 算術運算符與表達式 69
4.3.1 算術運算符 70
4.3.2 算術表達式 70
4.3.3 優先級與結合性 71
4.3.4 自增自減運算符 73
4.4 關系運算符與表達式 75
4.4.1 關系運算符 75
4.4.2 關系表達式 76
4.4.3 優先級與結合性 77
4.5 邏輯運算符與表達式 78
4.5.1 邏輯運算符 79
4.5.2 邏輯表達式 79
4.5.3 優先級與結合性 79
4.6 位邏輯運算符與表達式 81
4.6.1 位邏輯運算符 81
4.6.2 位邏輯表達式 81
4.7 逗號運算符與表達式 82
4.8 復合賦值運算符 83
4.9 小結 84
4.10 實踐與練習 85
第5章 常用的數據輸入、輸出函數 87
視頻講解:40分鐘
5.1 語句 88
5.2 字符數據輸入輸出 88
5.2.1 字符數據輸出 88
5.2.2 字符數據輸入 89
5.3 字符串輸入輸出 91
5.3.1 字符串輸出函數 91
5.3.2 字符串輸入函數 93
5.4 格式輸出函數 94
5.5 格式輸入函數 97
5.6 順序程序設計應用 100
5.7 小結 102
5.8 實踐與練習 103
第6章 選擇結構程序設計 105
視頻講解:44分鐘
6.1 if語句 106
6.2 if語句的基本形式 106
6.2.1 if語句形式 106
6.2.2 if…else語句形式 109
6.2.3 else if語句形式 113
6.3 if的嵌套形式 117
6.4 條件運算符 119
6.5 switch 語句 121
6.5.1 switch語句的基本形式 121
6.5.2 多路開關模式的switch語句 125
6.6 if else 語句和switch語句的區別 127
6.7 選擇結構程序應用 129
6.8 小結 131
6.9 實踐與練習 131
第 7章 循環控制 133
視頻講解:41分鐘
7.1 循環語句 134
7.2 while語句 134
7.3 do- while語句 137
7.4 for語句 139
7.4.1 for語句使用 139
7.4.2 for循環的變體 143
7.4.3 for語句中的逗號應用 145
7.5 3種循環語句的比較 146
7.6 循環嵌套 147
7.6.1 循環嵌套的結構 147
7.6.2 循環嵌套實例 148
7.7 轉移語句 150
7.7.1 goto語句 150
7.7.2 break 語句 151
7.7.3 continue語句 153
7.8 小結 154
7.9 實踐與練習 154
第2篇 核心技術
第8章 數組 157
視頻講解:1小時7分鐘
8.1 壹維數組 158
8.1.1 壹維數組的定義和引用 158
8.1.2 壹維數組初始化 160
8.1.3 壹維數組應用 162
8.2 二維數組 163
8.2.1 二維數組的定義和引用 163
8.2.2 二維數組初始化 165
8.2.3 二維數組應用 168
8.3 字符數組 169
8.3.1 字符數組定義和引用 169
8.3.2 字符數組初始化 170
8.3.3 字符數組的結束標誌 172
8.3.4 字符數組的輸入和輸出 172
8.3.5 字符數組應用 174
8.4 多維數組 175
8.5 數組的排序算法 175
8.5.1 選擇法排序 175
8.5.2 冒泡法排序 177
8.5.3 交換法排序 179
8.5.4 插入法排序 181
8.5.5 折半法排序 184
8.5.6 排序算法的比較 186
8.6 字符串處理函數 187
8.6.1 字符串復制 187
8.6.2 字符串連接 188
8.6.3 字符串比較 190
8.6.4 字符串大小寫轉換 192
8.6.5 獲得字符串長度 193
8.7 數組應用 194
8.7.1 反轉輸出字符串 194
8.7.2 輸出系統日期和時間 196
8.7.3 字符串的加密和解密 198
8.8 小結 199
8.9 實踐與練習 200
第9章 函數 201
視頻講解:55分鐘
9.1 函數概述 202
9.2 函數的定義 204
9.2.1 函數定義的形式 205
9.2.2 定義與聲明 206
9.3 返回語句 208
9.3.1 從函數返回 208
9.3.2 返回值 209
9.4 函數參數 211
9.4.1 形式參數與實際參數 211
9.4.2 數組作函數參數 213
9.4.3 main 的參數 220
9.5 函數的調用 220
9.5.1 函數調用方式 221
9.5.2 嵌套調用 223
9.5.3 遞歸調用 226
9.6 內部函數和外部函數 228
9.6.1 內部函數 228
9.6.2 外部函數 230
9.7 局部變量和全局變量 231
9.7.1 局部變量 231
9.7.2 全局變量 234
9.8 函數應用 236
9.9 小結 242
9.10 實踐與練習 243
第10章 指針 245
視頻講解:1小時2分鐘
10.1 指針相關概念 246
10.1.1 地址與指針 246
10.1.2 變量與指針 247
10.1.3 指針變量 247
10.1.4 指針自加自減運算 251
10.2 數組與指針 253
10.2.1 壹維數組與指針 253
10.2.2 二維數組與指針 257
10.2.3 字符串與指針 261
10.2.4 字符串數組 263
10.3 指向指針的指針 264
10.4 指針變量做函數參數 268
10.5 返回指針值的函數 277
10.6 指針數組做main函數的參數 279
10.7 小結 280
10.8 實踐與練習 281
第3篇 高級應用
第11章 結構體和***用體 285
視頻講解:40分鐘
11.1 結構體 286
11.1.1 結構體類型的概念 286
11.1.2 結構體變量的定義 287
11.1.3 結構體變量的引用 289
11.1.4 結構體類型的初始化 292
11.2 結構體數組 293
11.2.1 定義結構體數組 293
11.2.2 初始化結構體數組 295
11.3 結構體指針 297
11.3.1 指向結構體變量的指針 297
11.3.2 指向結構體數組的指針 300
11.3.3 結構體作為函數參數 302
11.4 包含結構的結構 305
11.5 鏈表 307
11.5.1 鏈表概述 307
11.5.2 創建動態鏈表 308
11.5.3 輸出鏈表 310
11.6 鏈表相關操作 313
11.6.1 鏈表的插入操作 313
11.6.2 鏈表的刪除操作 315
11.7 ***用體 319
11.7.1 ***用體的概念 319
11.7.2 ***用體變量的引用 320
11.7.3 ***用體變量的初始化 321
11.7.4 ***用體類型的數據特點 322
11.8 枚舉類型 322
11.9 小結 324
11.10 實踐與練習 324
第12章 位運算 325
視頻講解:35分鐘
12.1 位與字節 326
12.2 位運算操作符 326
12.2.1 “與”運算符 326
12.2.2 “或”運算符 328
12.2.3 “取反”運算符 329
12.2.4 “異或”運算符 330
12.2.5 “左移”運算符 332
12.2.6 “右移”運算符 334
12.3 循環移位 335
12.4 位段 338
12.4.1 位段的概念與定義 338
12.4.2 位段相關說明 339
12.5 小結 341
12.6 實踐與練習 341
第13章 預處理 343
視頻講解:39分鐘
13.1 宏定義 344
13.1.1 不帶參數的宏定義 344
13.1.2 帶參數的宏定義 346
13.2 #include指令 347
13.3 條件編譯 349
13.3.1 #if命令 349
13.3.2 #ifdef及#ifndef命令 352
13.3.3 #undef命令 354
13.3.4 #line命令 354
13.3.5 #pragma命令 355
13.4 小結 356
13.5 實踐與練習 356
第14章 文件 357
視頻講解:55分鐘
14.1 文件概述 358
14.2 文件基本操作 358
14.2.1 文件指針 358
14.2.2 文件的打開 359
14.2.3 文件的關閉 360
14.3 文件的讀寫 360
14.3.1 fputc函數 361
14.3.2 fgetc函數 361
14.3.3 fputs函數 362
14.3.4 fgets函數 363
14.3.5 fprintf函數 364
14.3.6 fscanf函數 366
14.3.7 fread函數和fwrite函數 367
14.4 文件的定位 369
14.4.1 fseek函數 369
14.4.2 rewind函數 371
14.4.3 ftell函數 372
14.5 小結 375
14.6 實踐與練習 375
第15章 存儲管理 377
視頻講解:22分鐘
15.1 內存組織方式 378
15.1.1 內存組織方式 378
15.1.2 堆與棧 378
15.2 動態管理 381
15.2.1 malloc 函數 381
15.2.2 calloc函數 382
15.2.3 realloc函數 383
15.2.4 free函數 384
15.3 內存丟失 385
15.4 小結 386
15.5 實踐與練習 386
第16章 網絡套接字編程 387
視頻講解:39分鐘
16.1 計算機網絡基礎 388
16.1.1 IP地址 388
16.1.2 OSI 七層參考模型 389
16.1.3 地址解析 389
16.1.4 域名系統 390
16.1.5 TCP/IP協議 391
16.1.6 端口 392
16.1.7 套接字的引入 393
16.1.8 網絡字節順序 393
16.2 套接字概述 393
16.2.1 套接字概述 393
16.2.2 TCP的套接字的socket編程 394
16.2.3 UDP 的套接字的socket編程 395
16.3 套接字函數 395
16.3.1 套接字函數介紹 395
16.3.2 基於TCP的網絡聊天程序 402
16.4 小結 407
16.5 實踐與練習 408
第4篇 項目實戰
第17 章 學生成績管理系統 411
視頻講解:40分鐘
17.1 需求分析 412
17.2 系統設計 412
17.3 功能設計 413
17.3.1 功能選擇界面 413
17.3.2 錄入學生成績信息 415
17.3.3 查詢學生成績信息 417
17.3.4 刪除學生成績信息 418
17.3.5 修改學生成績信息 420
17.3.6 插入學生成績信息 421
17.3.7 統計學生人數 423
17.4 小結 424
附 錄 425