本書封面
本書簡介
C語言從入門到精通 第四版
作者: 明日科技
出版時間:2019
內容簡介
《C語言從入門到精通(第4版)》從初學者的角度出發,以通俗易懂的語言,豐富多彩的實例,詳細介紹了使用C語言進行程序開發需要掌握的各方面知識。全書共分為17章,包括C語言概述、算法、數據類型、運算符與表達式、常用的數據輸入/輸出函數、選擇結構程序設計、循環控制、數組、函數、指針、結構體和共用體、位運算、預處理、文件、存儲管理、網絡套接字編程和學生成績管理系統。
本書目錄
篇?基礎知識
章?C語言概述2
視頻講解:33分鐘
1.1C語言的發展史3
1.1.1程序語言簡述3
1.1.2C語言的歷史3
1.2C語言的特點4
1.3一個簡單的C程序5
1.4一個完整的C程序7
1.5C語言程序的格式11
1.6開發環境12
1.6.1Visual C6.012
1.6.2Visual Studio201719
1.7小結25
第2章?算法26
視頻講解:22分鐘
2.1算法的基本概念27
2.1.1算法的特性27
2.1.2算法的優劣28
2.2算法的描述28
2.2.1自然語言29
2.2.2流程圖29
2.2.3N-S流程圖32
2.3小結34
第3章?數據類型35
視頻講解:39分鐘
3.1編程規范36
3.2關鍵字37
3.3標識符37
3.4數據類型38
3.5常量39
3.5.1整型常量40
3.5.2實型常量42
3.5.3字符型常量43
3.5.4轉義字符46
3.5.5符號常量46
3.6變量47
3.6.1整型變量47
3.6.2實型變量50
3.6.3字符型變量52
3.7變量的存儲類別53
3.7.1靜態存儲與動態存儲54
3.7.2auto變量54
3.7.3static變量55
3.7.4register變量55
3.7.5extern變量56
3.8混合運算57
3.9小結58
3.10實踐與練習58
第4章?運算符與表達式59
視頻講解:31分鐘
4.1表達式60
4.2賦值運算符與賦值表達式62
4.2.1變量賦初值62
4.2.2自動類型轉換64
4.2.3強制類型轉換64
4.3算術運算符與算術表達式65
4.3.1算術運算符65
4.3.2算術表達式66
4.3.3優先級與結合性67
4.3.4自增/自減運算符69
4.4關系運算符與關系表達式71
4.4.1關系運算符71
4.4.2關系表達式71
4.4.3優先級與結合性72
4.5邏輯運算符與邏輯表達式73
4.5.1邏輯運算符74
4.5.2邏輯表達式74
4.5.3優先級與結合性74
4.6位邏輯運算符與位邏輯表達式75
4.6.1位邏輯運算符76
4.6.2位邏輯表達式76
4.7逗號運算符與逗號表達式76
4.8復合賦值運算符78
4.9小結79
4.10實踐與練習80
第5章?常用的數據輸入/輸出函數81
視頻講解:40分鐘
5.1語句82
5.2字符數據輸入/輸出82
5.2.1字符數據輸出82
5.2.2字符數據輸入83
5.3字符串輸入/輸出85
5.3.1字符串輸出函數85
5.3.2字符串輸入函數86
5.4格式輸出函數87
5.5格式輸入函數90
5.6順序程序設計應用94
5.7小結96
5.8實踐與練習96
第6章?選擇結構程序設計97
視頻講解:39分鐘
6.1if語句98
6.2if語句的基本形式98
6.2.1if語句形式98
6.2.2if…else語句形式101
6.2.3elseif語句形式105
6.3if的嵌套形式108
6.4條件運算符111
6.5switch語句112
6.5.1switch語句的基本形式113
6.5.2多路開關模式的switch語句116
6.6if…else語句和switch語句的區別118
6.7小結120
6.8實踐與練習120
第7章?循環控制121
視頻講解:43分鐘
7.1循環語句122
7.2while語句122
7.3do…while語句125
7.4for語句127
7.4.1for語句使用127
7.4.2for循環的變體130
7.4.3for語句中的逗號應用132
7.53種循環語句的比較134
7.6循環嵌套134
7.6.1循環嵌套的結構134
7.6.2循環嵌套實例135
7.7轉移語句137
7.7.1goto語句137
7.7.2break語句139
7.7.3continue語句140
7.8小結141
7.9實踐與練習141
第2篇?核心技術
第8章?數組144
視頻講解:1小時7分鐘
8.1一維數組145
8.1.1一維數組的定義和引用145
8.1.2一維數組初始化147
8.1.3一維數組的應用149
8.2二維數組150
8.2.1二維數組的定義和引用150
8.2.2二維數組初始化151
8.2.3二維數組的應用154
8.3字符數組155
8.3.1字符數組的定義和引用155
8.3.2字符數組初始化156
8.3.3字符數組的結束標志158
8.3.4字符數組的輸入和輸出159
8.3.5字符數組的應用160
8.4多維數組161
8.5數組的排序算法161
8.5.1選擇法排序162
8.5.2冒泡法排序164
8.5.3交換法排序165
8.5.4插入法排序168
8.5.5折半法排序170
8.5.6排序算法的比較172
8.6字符串處理函數173
8.6.1字符串復制173
8.6.2字符串連接174
8.6.3字符串比較176
8.6.4字符串大小寫轉換177
8.6.5獲得字符串長度179
8.7數組應用180
8.7.1反轉輸出字符串180
8.7.2輸出系統日期和時間181
8.7.3字符串的加密和解密183
8.8小結185
8.9實踐與練習185
第9章?函數186
視頻講解:55分鐘
9.1函數概述187
9.2函數的定義189
9.2.1函數定義的形式189
9.2.2定義與聲明191
9.3返回語句193
9.3.1從函數返回193
9.3.2返回值194
9.4函數參數196
9.4.1形式參數與實際參數196
9.4.2數組作函數參數198
9.4.3main函數的參數204
9.5函數的調用205
9.5.1函數的調用方式205
9.5.2嵌套調用208
9.5.3遞歸調用210
9.6內部函數和外部函數212
9.6.1內部函數213
9.6.2外部函數214
9.7局部變量和全局變量215
9.7.1局部變量215
9.7.2全局變量218
9.8函數應用220
9.9小結226
9.10實踐與練習227
0章?指針228
視頻講解:1小時2分鐘
10.1指針相關概念229
10.1.1地址與指針229
10.1.2變量與指針229
10.1.3指針變量230
10.1.4指針自加自減運算234
10.2數組與指針236
10.2.1一維數組與指針236
10.2.2二維數組與指針240
10.2.3字符串與指針243
10.2.4字符串數組245
10.3指向指針的指針246
10.4指針變量作函數參數249
10.5返回指針值的函數258
10.6指針數組作main函數的參數260
10.7小結262
10.8實踐與練習262
第3篇?不錯應用
1章?結構體和共用體264
視頻講解:40分鐘
11.1結構體265
11.1.1結構體類型的概念265
11.1.2結構體變量的定義266
11.1.3結構體變量的引用268
11.1.4結構體類型的初始化270
11.2結構體數組272
11.2.1定義結構體數組272
11.2.2初始化結構體數組274
11.3結構體指針276
11.3.1指向結構體變量的指針276
11.3.2指向結構體數組的指針279
11.3.3結構體作為函數參數281
11.4包含結構的結構283
11.5鏈表285
11.5.1鏈表概述285
11.5.2創建動態鏈表286
11.5.3輸出鏈表289
11.6鏈表相關操作291
11.6.1鏈表的插入操作291
11.6.2鏈表的刪除操作293
11.7共用體297
11.7.1共用體的概念297
11.7.2共用體變量的引用298
11.7.3共用體變量的初始化299
11.7.4共用體類型的數據特點300
11.8枚舉類型300
11.9小結301
11.10實踐與練習302
2章?位運算303
視頻講解:36分鐘
12.1位與字節304
12.2位運算操作符304
12.2.1“與”運算符304
12.2.2“或”運算符306
12.2.3“取反”運算符307
12.2.4“異或”運算符308
12.2.5“左移”運算符310
12.2.6“右移”運算符311
12.3循環移位312
12.4位段315
12.4.1位段的概念與定義315
12.4.2位段相關說明316
12.5小結318
12.6實踐與練習318
3章?預處理319
視頻講解:40分鐘
13.1宏定義320
13.1.1不帶參數的宏定義320
13.1.2帶參數的宏定義321
13.2#include指令323
13.3條件編譯325
13.3.1#if命令325
13.3.2#ifdef及#ifndef命令328
13.3.3#undef命令329
13.3.4#line命令330
13.3.5#pragma命令330
13.4小結331
13.5實踐與練習331
4章?文件332
視頻講解:58分鐘
14.1文件概述333
14.2文件基本操作333
14.2.1文件指針333
14.2.2文件的打開334
14.2.3文件的關閉335
14.3文件的讀寫335
14.3.1fputc函數335
14.3.2fgetc函數336
14.3.3fputs函數337
14.3.4fgets函數338
14.3.5fprintf函數339
14.3.6fscanf函數340
14.3.7fread和fwrite函數341
14.4文件的定位343
14.4.1fseek函數343
14.4.2rewind函數345
14.4.3ftell函數346
14.5小結349
14.6實踐與練習349
5章?存儲管理350
視頻講解:22分鐘
15.1內存組織方式351
15.1.1內存的組織方式351
15.1.2堆與棧351
15.2動態管理353
15.2.1malloc函數353
15.2.2calloc函數354
15.2.3realloc函數355
15.2.4free函數356
15.3內存丟失357
15.4小結358
15.5實踐與練習358
6章?網絡套接字編程359
視頻講解:39分鐘
16.1計算機網絡基礎360
16.1.1IP地址360
16.1.2OSI七層參考模型360
16.1.3地址解析361
16.1.4域名系統362
16.1.5TCP/IP協議362
16.1.6端口364
16.1.7套接字的引入364
16.1.8網絡字節順序364
16.2套接字基礎365
16.2.1套接字概述365
16.2.2TCP的套接字的socket編程365
16.2.3UDP的套接字的socket編程366
16.3套接字函數367
16.3.1套接字函數介紹367
16.3.2基于TCP的網絡聊天程序372
16.4小結378
16.5實踐與練習378
第4篇?項目實戰
7章?學生成績管理系統380
視頻講解:40分鐘
17.1需求分析381
17.2系統設計381
17.3功能設計382
17.3.1功能選擇界面382
17.3.2錄入學生成績信息383
17.3.3查詢學生成績信息386
17.3.4刪除學生成績信息387
17.3.5修改學生成績信息388
17.3.6插入學生成績信息390
17.3.7統計學生人數392
17.4小結392
附錄ASCII表393
1.3一個簡單的C程序5
1.4一個完整的C程序7
1.5C語言程序的格式11
1.6開發環境12
1.6.1Visual C6.012
1.6.2Visual Studio201719
1.7小結25
第2章?算法26
視頻講解:22分鐘
2.1算法的基本概念27
2.1.1算法的特性27
2.1.2算法的優劣28
2.2算法的描述28
2.2.1自然語言29
2.2.2流程圖29
2.2.3N-S流程圖32
2.3小結34
第3章?數據類型35
視頻講解:39分鐘
3.1編程規范36
3.2關鍵字37
3.3標識符37
3.4數據類型38
3.5常量39
3.5.1整型常量40
3.5.2實型常量42
3.5.3字符型常量43
3.5.4轉義字符46
3.5.5符號常量46
3.6變量47
3.6.1整型變量47
3.6.2實型變量50
3.6.3字符型變量52
3.7變量的存儲類別53
3.7.1靜態存儲與動態存儲54
3.7.2auto變量54
3.7.3static變量55
3.7.4register變量55
3.7.5extern變量56
3.8混合運算57
3.9小結58
3.10實踐與練習58
第4章?運算符與表達式59
視頻講解:31分鐘
4.1表達式60
4.2賦值運算符與賦值表達式62
4.2.1變量賦初值62
4.2.2自動類型轉換64
4.2.3強制類型轉換64
4.3算術運算符與算術表達式65
4.3.1算術運算符65
4.3.2算術表達式66
4.3.3優先級與結合性67
4.3.4自增/自減運算符69
4.4關系運算符與關系表達式71
4.4.1關系運算符71
4.4.2關系表達式71
4.4.3優先級與結合性72
4.5邏輯運算符與邏輯表達式73
4.5.1邏輯運算符74
4.5.2邏輯表達式74
4.5.3優先級與結合性74
4.6位邏輯運算符與位邏輯表達式75
4.6.1位邏輯運算符76
4.6.2位邏輯表達式76
4.7逗號運算符與逗號表達式76
4.8復合賦值運算符78
4.9小結79
4.10實踐與練習80
第5章?常用的數據輸入/輸出函數81
視頻講解:40分鐘
5.1語句82
5.2字符數據輸入/輸出82
5.2.1字符數據輸出82
5.2.2字符數據輸入83
5.3字符串輸入/輸出85
5.3.1字符串輸出函數85
5.3.2字符串輸入函數86
5.4格式輸出函數87
5.5格式輸入函數90
5.6順序程序設計應用94
5.7小結96
5.8實踐與練習96
第6章?選擇結構程序設計97
視頻講解:39分鐘
6.1if語句98
6.2if語句的基本形式98
6.2.1if語句形式98
6.2.2if…else語句形式101
6.2.3elseif語句形式105
6.3if的嵌套形式108
6.4條件運算符111
6.5switch語句112
6.5.1switch語句的基本形式113
6.5.2多路開關模式的switch語句116
6.6if…else語句和switch語句的區別118
6.7小結120
6.8實踐與練習120
第7章?循環控制121
視頻講解:43分鐘
7.1循環語句122
7.2while語句122
7.3do…while語句125
7.4for語句127
7.4.1for語句使用127
7.4.2for循環的變體130
7.4.3for語句中的逗號應用132
7.53種循環語句的比較134
7.6循環嵌套134
7.6.1循環嵌套的結構134
7.6.2循環嵌套實例135
7.7轉移語句137
7.7.1goto語句137
7.7.2break語句139
7.7.3continue語句140
7.8小結141
7.9實踐與練習141
第2篇?核心技術
第8章?數組144
視頻講解:1小時7分鐘
8.1一維數組145
8.1.1一維數組的定義和引用145
8.1.2一維數組初始化147
8.1.3一維數組的應用149
8.2二維數組150
8.2.1二維數組的定義和引用150
8.2.2二維數組初始化151
8.2.3二維數組的應用154
8.3字符數組155
8.3.1字符數組的定義和引用155
8.3.2字符數組初始化156
8.3.3字符數組的結束標志158
8.3.4字符數組的輸入和輸出159
8.3.5字符數組的應用160
8.4多維數組161
8.5數組的排序算法161
8.5.1選擇法排序162
8.5.2冒泡法排序164
8.5.3交換法排序165
8.5.4插入法排序168
8.5.5折半法排序170
8.5.6排序算法的比較172
8.6字符串處理函數173
8.6.1字符串復制173
8.6.2字符串連接174
8.6.3字符串比較176
8.6.4字符串大小寫轉換177
8.6.5獲得字符串長度179
8.7數組應用180
8.7.1反轉輸出字符串180
8.7.2輸出系統日期和時間181
8.7.3字符串的加密和解密183
8.8小結185
8.9實踐與練習185
第9章?函數186
視頻講解:55分鐘
9.1函數概述187
9.2函數的定義189
9.2.1函數定義的形式189
9.2.2定義與聲明191
9.3返回語句193
9.3.1從函數返回193
9.3.2返回值194
9.4函數參數196
9.4.1形式參數與實際參數196
9.4.2數組作函數參數198
9.4.3main函數的參數204
9.5函數的調用205
9.5.1函數的調用方式205
9.5.2嵌套調用208
9.5.3遞歸調用210
9.6內部函數和外部函數212
9.6.1內部函數213
9.6.2外部函數214
9.7局部變量和全局變量215
9.7.1局部變量215
9.7.2全局變量218
9.8函數應用220
9.9小結226
9.10實踐與練習227
0章?指針228
視頻講解:1小時2分鐘
10.1指針相關概念229
10.1.1地址與指針229
10.1.2變量與指針229
10.1.3指針變量230
10.1.4指針自加自減運算234
10.2數組與指針236
10.2.1一維數組與指針236
10.2.2二維數組與指針240
10.2.3字符串與指針243
10.2.4字符串數組245
10.3指向指針的指針246
10.4指針變量作函數參數249
10.5返回指針值的函數258
10.6指針數組作main函數的參數260
10.7小結262
10.8實踐與練習262
第3篇?不錯應用
1章?結構體和共用體264
視頻講解:40分鐘
11.1結構體265
11.1.1結構體類型的概念265
11.1.2結構體變量的定義266
11.1.3結構體變量的引用268
11.1.4結構體類型的初始化270
11.2結構體數組272
11.2.1定義結構體數組272
11.2.2初始化結構體數組274
11.3結構體指針276
11.3.1指向結構體變量的指針276
11.3.2指向結構體數組的指針279
11.3.3結構體作為函數參數281
11.4包含結構的結構283
11.5鏈表285
11.5.1鏈表概述285
11.5.2創建動態鏈表286
11.5.3輸出鏈表289
11.6鏈表相關操作291
11.6.1鏈表的插入操作291
11.6.2鏈表的刪除操作293
11.7共用體297
11.7.1共用體的概念297
11.7.2共用體變量的引用298
11.7.3共用體變量的初始化299
11.7.4共用體類型的數據特點300
11.8枚舉類型300
11.9小結301
11.10實踐與練習302
2章?位運算303
視頻講解:36分鐘
12.1位與字節304
12.2位運算操作符304
12.2.1“與”運算符304
12.2.2“或”運算符306
12.2.3“取反”運算符307
12.2.4“異或”運算符308
12.2.5“左移”運算符310
12.2.6“右移”運算符311
12.3循環移位312
12.4位段315
12.4.1位段的概念與定義315
12.4.2位段相關說明316
12.5小結318
12.6實踐與練習318
3章?預處理319
視頻講解:40分鐘
13.1宏定義320
13.1.1不帶參數的宏定義320
13.1.2帶參數的宏定義321
13.2#include指令323
13.3條件編譯325
13.3.1#if命令325
13.3.2#ifdef及#ifndef命令328
13.3.3#undef命令329
13.3.4#line命令330
13.3.5#pragma命令330
13.4小結331
13.5實踐與練習331
4章?文件332
視頻講解:58分鐘
14.1文件概述333
14.2文件基本操作333
14.2.1文件指針333
14.2.2文件的打開334
14.2.3文件的關閉335
14.3文件的讀寫335
14.3.1fputc函數335
14.3.2fgetc函數336
14.3.3fputs函數337
14.3.4fgets函數338
14.3.5fprintf函數339
14.3.6fscanf函數340
14.3.7fread和fwrite函數341
14.4文件的定位343
14.4.1fseek函數343
14.4.2rewind函數345
14.4.3ftell函數346
14.5小結349
14.6實踐與練習349
5章?存儲管理350
視頻講解:22分鐘
15.1內存組織方式351
15.1.1內存的組織方式351
15.1.2堆與棧351
15.2動態管理353
15.2.1malloc函數353
15.2.2calloc函數354
15.2.3realloc函數355
15.2.4free函數356
15.3內存丟失357
15.4小結358
15.5實踐與練習358
6章?網絡套接字編程359
視頻講解:39分鐘
16.1計算機網絡基礎360
16.1.1IP地址360
16.1.2OSI七層參考模型360
16.1.3地址解析361
16.1.4域名系統362
16.1.5TCP/IP協議362
16.1.6端口364
16.1.7套接字的引入364
16.1.8網絡字節順序364
16.2套接字基礎365
16.2.1套接字概述365
16.2.2TCP的套接字的socket編程365
16.2.3UDP的套接字的socket編程366
16.3套接字函數367
16.3.1套接字函數介紹367
16.3.2基于TCP的網絡聊天程序372
16.4小結378
16.5實踐與練習378
第4篇?項目實戰
7章?學生成績管理系統380
視頻講解:40分鐘
17.1需求分析381
17.2系統設計381
17.3功能設計382
17.3.1功能選擇界面382
17.3.2錄入學生成績信息383
17.3.3查詢學生成績信息386
17.3.4刪除學生成績信息387
17.3.5修改學生成績信息388
17.3.6插入學生成績信息390
17.3.7統計學生人數392
17.4小結392
附錄ASCII表393