第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.013
1.6.2 Visual C++ 6.018
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
第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.013
1.6.2 Visual C++ 6.018
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