第1篇 新 手 入 门
第1章 C语言开发环境
视频讲解:12分钟
1.1 本章知识体系
1.2 程序员的成长之路
1.3 C语言的重要性
1.4 如何学好C语言
1.5 C语言常用开发工具简介
1.5.1 Turbo C
1.5.2 Visual C++ 6.0
1.5.3 C++ Builder(BCB)
1.5.4 Cygwin
1.5.5 Dev-C++
1.5.6 Source Insight
1.6 了解Visual C++集成开发环境
1.6.1 开发环境布局
1.6.2 菜单栏
1.6.3 工具栏
1.6.4 工作区窗口
1.6.5 代码编辑窗口
1.6.6 输出窗口
1.7 如何在Turbo C 2.0下运行C源程序
1.8 了解GCC开发编译器
1.9 Dev-C++
1.9.1 Dev-C++概述
1.9.2 Dev-C++的使用
1.10 Eclipse for C/C++
1.10.1 Eclipse概述
1.10.2 Eclipse的使用
1.11 实战
1.11.1 判断三角形的类型
1.11.2 计算某日是该年的第几天
1.11.3 婚礼上的谎言
1.11.4 尼科彻斯定理
1.11.5 猴子吃桃
1.11.6 阳阳买苹果
1.12 疑难解惑
1.12.1 为什么说C语言可移植性好
1.12.2 C语言的应用领域有哪些
1.12.3 如何提高C语言的编程效率
1.13 小结
1.14 学习成果检验
第2章 C语言开发基础
视频讲解:68分钟
2.1 本章知识体系
2.2 编码规范要记牢
2.2.1 注释的合理使用
2.2.2 程序中的{}要对齐
2.2.3 合理使用空格使代码更规范
2.2.4 换行使代码更清晰
2.3 语言要素
2.3.1 关键字
2.3.2 标识符
2.4 常量
2.4.1 整型常量
2.4.2 实型常量
2.4.3 字符型常量
2.4.4 字符串常量
2.5 变量
2.5.1 什么是变量
2.5.2 变量的声明
2.6 数据类型
2.6.1 什么是数据类型
2.6.2 整型
2.6.3 实型
2.6.4 字符型
2.6.5 枚举类型
2.7 使用typedef定义类型
2.8 变量的存储类型
2.8.1 了解变量的存储类型
2.8.2 使用auto关键字声明自动变量
2.8.3 使用static关键字声明静态变量
2.8.4 使用register关键字声明寄存器变量
2.8.5 使用extern关键字声明外部变量
2.8.6 使用static关键字声明静态外部变量
2.9 混合运算
2.10 实战
2.10.1 十进制转换为二进制
2.10.2 求100~200之间的素数
2.10.3 利用“#”输出图形
2.10.4 打印杨辉三角
2.10.5 利用“*”输出矩形
2.10.6 小球下落问题
2.10.7 巧分苹果
2.11 疑难解惑
2.11.1 声明变量和定义变量
2.11.2 限定词const
2.11.3 字符串常量为什么用“\0”作为结束符
2.12 小结
2.13 学习成果检验
第3章 运算符与表达式
视频讲解:34分钟
3.1 本章知识体系
3.2 运算符与表达式的使用
3.2.1 赋值运算符与表达式
3.2.2 加减乘除新认识
3.2.3 关系源自比较
3.2.4 逻辑出真假
3.2.5 逗号运算符与表达式
3.2.6 运算符的优先级
3.3 自增、自减操作符
3.3.1 认识自增、自减操作符
3.3.2 自增、自减操作符的副作用
3.4 位运算
3.4.1 “或”运算符
3.4.2 “与”运算符
3.4.3 “取反”运算符
3.4.4 “异或”运算符
3.4.5 “左移”运算符
3.4.6 “右移”运算符
3.5 实战
3.5.1 求1~10的累加和
3.5.2 计算学生的平均身高
3.5.3 求一元二次方程ax2+bx+c=0的根
3.5.4 阿姆斯特朗数
3.5.5 可逆素数
3.5.6 满足abcd=(ab+cd)2的数
3.5.7 最大公约数及最小公倍数
3.5.8 循环移位
3.6 疑难解惑
3.6.1 表达式“a=b”和“a= =b”一样吗
3.6.2 如何区分“,”是运算符还是分隔符
3.6.3 C语言中有哪些简化的运算表达式
3.7 小结
3.8 学习成果检验
第4章 语句
视频讲解:100分钟
4.1 本章知识体系
4.2 语句的构成
4.2.1 表达式语句
4.2.2 函数调用语句
4.2.3 控制语句
4.2.4 复合语句
4.2.5 空语句
4.3 如何实现字符数据输入/输出
4.3.1 字符数据输出
4.3.2 字符数据输入
4.4 格式输入/输出
4.4.1 格式输出函数
4.4.2 格式输入函数
4.5 程序的控制结构
4.5.1 顺序结构
4.5.2 分支结构
4.5.3 循环结构
4.6 if语句
4.6.1 if语句的介绍
4.6.2 if语句的嵌套
4.7 条件运算符
4.8 switch语句
4.8.1 switch语句的基本形式
4.8.2 剖析switch和if语句
4.9 while与do-while语句
4.9.1 当型循环语句while
4.9.2 直到型循环语句do-while
4.9.3 while与do-while的异同
4.10 for语句
4.10.1 初识for语句
4.10.2 for语句的变体
4.10.3 for语句的嵌套
4.11 跳转语句
4.11.1 continue语句跳出本次循环
4.11.2 break语句跳出循环
4.11.3 用于返回数据的return语句
4.11.4 goto语句
4.12 实战
4.12.1 输出3*3矩阵
4.12.2 输出一个字符的前驱字符
4.12.3 根据输入判断能否构成三角形
4.12.4 求学生的最高分和最低分
4.12.5 整数加减法练习
4.12.6 一元钱兑换方案
4.13 疑难解惑
4.13.1 C语言提供的跳转语句各有什么特点
4.13.2 循环嵌套时应该注意什么
4.13.3 如何提高循环语句的执行效率
4.14 小结
4.15 学习成果检验
第5章 综合实验(一)——模拟ATM机界面程序
视频讲解:3分钟
5.1 概述
5.2 需求分析
5.3 设计思路
5.4 详细设计
5.5 程序代码
第2篇 进 阶 提 高
第6章 数组
视频讲解:29分钟
6.1 本章知识体系
6.2 一维数组
6.2.1 如何定义和引用一维数组
6.2.2 一维数组初始化
6.2.3 一维数组应用
6.3 二维数组
6.3.1 如何定义和引用二维数组
6.3.2 二维数组初始化
6.3.3 二维数组应用
6.4 多维数组
6.5 字符数组
6.5.1 如何定义和使用字符数组
6.5.2 字符数组初始化
6.5.3 字符数组的结束标志
6.5.4 字符数组的输入和输出
6.5.5 字符数组应用
6.6 实战
6.6.1 相邻元素之和
6.6.2 选票系统
6.6.3 统计学生成绩
6.6.4 模拟比赛打分
6.6.5 矩阵的转置
6.6.6 设计魔方阵
6.6.7 统计各种字符个数
6.6.8 删除字符串中的连续字符
6.7 疑难解惑
6.7.1 数组下标必须从0开始吗
6.7.2 数组名作函数参数与数组元素作函数参数有什么不同之处
6.7.3 '\0'和"\0"有什么区别
6.8 小结
6.9 学习成果检验
第7章 函数
视频讲解:53分钟
7.1 本章知识体系
7.2 函数概述
7.3 函数的定义
7.3.1 无参函数
7.3.2 有参函数
7.3.3 空函数
7.4 返回语句
7.4.1 从函数返回
7.4.2 返回值
7.5 函数参数
7.5.1 形式参数与实际参数
7.5.2 数组作函数参数
7.5.3 main参数
7.6 函数的调用
7.6.1 函数调用方式
7.6.2 嵌套调用
7.6.3 递归调用
7.7 内部函数和外部函数
7.7.1 内部函数
7.7.2 外部函数
7.8 局部变量和全局变量
7.8.1 局部变量
7.8.2 全局变量
7.9 实战
7.9.1 百钱百鸡问题
7.9.2 求直角三角形斜边
7.9.3 小数分离
7.9.4 判断素数
7.9.5 递归解决分鱼问题
7.9.6 字母检索
7.9.7 求字符串中字符的个数
7.9.8 打渔晒网问题
7.10 疑难解惑
7.10.1 在调用时不使用函数的返回值会产生什么现象
7.10.2 C语言中函数的调用方式有哪几种
7.10.3 函数定义时容易犯哪些错误
7.11 小结
7.12 学习成果检验
第8章 指针
视频讲解:17分钟
8.1 本章知识体系
8.2 指针相关概念
8.2.1 地址与指针
8.2.2 指针变量
8.2.3 指针的赋值
8.2.4 指针的引用
8.3 指针运算
8.4 一维数组与指针
8.5 指针访问二维数组
8.6 字符和指针
8.6.1 使用字符指针
8.6.2 字符指针数组
8.7 指向指针的指针
8.8 函数型指针
8.9 实战
8.9.1 用指针实现数据交换
8.9.2 使用指针实现整数排序
8.9.3 查找成绩不及格的学生
8.9.4 使用指针实现冒泡排序
8.9.5 使用指针插入元素
8.9.6 实现输入月份号输出该月份的英文名
8.9.7 将若干字符串按字母顺序输出
8.10 疑难解惑
8.10.1 指针类型和指针所指向的类型是一样的吗
8.10.2 指针运算与取地址运算符有何联系
8.10.3 空指针有何意义
8.11 小结
8.12 学习成果检验
第9章 结构体和共用体
视频讲解:40分钟
9.1 本章知识体系
9.2 结构体
9.2.1 结构体类型的概念
9.2.2 结构体变量的定义
9.2.3 结构体类型的几点说明
9.2.4 结构体变量的引用
9.2.5 结构体变量的初始化
9.3 结构体数组
9.3.1 定义结构体数组
9.3.2 初始化结构体数组
9.4 结构体指针
9.4.1 指向结构体变量的指针
9.4.2 指向结构体数组的指针
9.4.3 结构体作函数参数
9.5 包含结构的结构
9.6 链表
9.6.1 什么是链表
9.6.2 创建动态链表
9.6.3 链表相关操作
9.7 共用体
9.7.1 什么是共用体
9.7.2 共用体变量的定义和引用
9.7.3 共用体类型的初始化
9.8 实战
9.8.1 找出最高分
9.8.2 候选人选票程序
9.8.3 求平面上两点距离
9.8.4 设计通讯录
9.8.5 输出火车票价格
9.8.6 链队列
9.8.7 约瑟夫环
9.8.8 计算开机时间
9.9 疑难解惑
9.9.1 定义结构体对结构体成员的类型是否有限制
9.9.2 成员运算符(.)和指向结构体成员运算符(->)有何区别
9.9.3 结构体和联合体有什么区别和联系
9.10 小结
9.11 学习成果检验
第10章 综合实验(二)——猜数字游戏
视频讲解:24分钟
10.1 概述
10.2 需求分析
10.3 系统设计
10.3.1 设计目标
10.3.2 开发及运行环境
10.4 程序预览
10.5 设计思路
10.6 文件引用
10.7 主要功能实现
10.7.1 主函数
10.7.2 猜数字
10.7.3 光标定位
第3篇 高 级 应 用
第11章 文件
视频讲解:29分钟
11.1 本章知识体系
11.2 文件概述
11.3 文件基本操作
11.3.1 文件的打开
11.3.2 文件的关闭
11.4 文件的读写
11.4.1 fputc函数
11.4.2 fgetc函数
11.4.3 fread函数和fwrite函数
11.5 文件的定位
11.5.1 rewind函数
11.5.2 ftell函数
11.5.3 fseek函数
11.6 出错检测
11.6.1 ferror函数
11.6.2 clearerr函数
11.7 实战
11.7.1 读取磁盘文件
11.7.2 将数据写入磁盘文件
11.7.3 创建文件
11.7.4 删除文件
11.7.5 重命名文件
11.7.6 文件加密
11.7.7 格式化读写文件
11.8 疑难解惑
11.8.1 标准文件和一般文件有什么区别
11.8.2 C语言的常用库文件包含哪些
11.8.3 为什么文件打开以后要及时关闭
11.9 小结
11.10 学习成果检验
第12章 预处理
视频讲解:29分钟
12.1 本章知识体系
12.2 不带参数的宏定义
12.3 带参数的宏定义
12.4 #include命令
12.5 条件编译
12.5.1 #if命令
12.5.2 #ifdef及#ifndef命令
12.5.3 #undef命令
12.5.4 #line命令
12.5.5 #pragma命令
12.6 实战
12.6.1 利用宏计算两个数的乘积
12.6.2 利用宏求3个数中的最小数
12.6.3 使用带参数的宏求圆面积
12.6.4 利用文件包含设计输出格式
12.6.5 使用条件编译隐藏密码
12.7 疑难解惑
12.7.1 C语言中包括哪些预处理功能
12.7.2 使用宏时需要注意些什么
12.7.3 文件包含可以嵌套吗
12.8 小结
12.9 学习成果检验
第13章 存储管理
视频讲解:21分钟
13.1 本章知识体系
13.2 内存组织方式
13.2.1 内存组织方式
13.2.2 堆与栈
13.3 分配内存函数(malloc和calloc)
13.3.1 malloc函数
13.3.2 calloc函数
13.4 修改已分配内存(realloc函数)
13.5 释放内存——free函数
13.6 谁偷了我的内存
13.7 实战
13.7.1 为具有3个元素的数组分配内存
13.7.2 为二维数组动态分配内存并释放
13.7.3 商品信息的动态存放
13.8 疑难解惑
13.8.1 什么是“内存泄露”
13.8.2 内存耗尽了怎么办
13.8.3 常见的内存管理错误有哪些
13.9 小结
13.10 学习成果检验
第14章 综合实验(三)——商品信息管理系统
视频讲解:29分钟
14.1 概述
14.1.1 需求分析
14.1.2 功能结构图
14.2 预处理
14.2.1 文件引用
14.2.2 宏定义
14.3 声明结构体
14.4 函数声明
14.5 功能选择界面
14.5.1 功能概述
14.5.2 主函数
14.5.3 自定义菜单功能函数
14.6 录入商品信息
14.7 查询商品信息
14.8 删除商品信息
14.9 修改商品信息
14.10 插入商品信息
14.11 统计商品数
14.12 小结
第4篇 范 例 演 练
第15章 排序
视频讲解:36分钟
15.1 选择排序
15.1.1 范例功能演示
15.1.2 开发思路指引
15.1.3 专家难点解析
15.1.4 设计过程详解
15.1.5 范例开发手记
15.1.6 进阶与提高
15.2 冒泡排序
15.2.1 范例功能演示
15.2.2 开发思路指引
15.2.3 专家难点解析
15.2.4 设计过程详解
15.2.5 范例开发手记
15.2.6 进阶与提高
15.3 插入排序
15.3.1 范例功能演示
15.3.2 开发思路指引
15.3.3 专家难点解析
15.3.4 设计过程详解
15.3.5 范例开发手记
15.3.6 进阶与提高
15.4 希尔排序
15.4.1 范例功能演示
15.4.2 开发思路指引
15.4.3 专家难点解析
15.4.4 设计过程详解
15.4.5 范例开发手记
15.4.6 进阶与提高
15.5 快速排序
15.5.1 范例功能演示
15.5.2 开发思路指引
15.5.3 专家难点解析
15.5.4 设计过程详解
15.5.5 范例开发手记
15.5.6 进阶与提高
第16章 查找
16.1 顺序查找
16.1.1 范例功能演示
16.1.2 开发思路指引
16.1.3 专家难点解析
16.1.4 设计过程详解
16.1.5 范例开发手记
16.1.6 进阶与提高
16.2 折半查找
16.2.1 范例功能演示
16.2.2 开发思路指引
16.2.3 专家难点解析
16.2.4 设计过程详解
16.2.5 范例开发手记
16.2.6 进阶与提高
16.3 分块查找
16.3.1 范例功能演示
16.3.2 开发思路指引
16.3.3 专家难点解析
16.3.4 设计过程详解
16.3.5 范例开发手记
16.3.6 进阶与提高
16.4 哈希查找
16.4.1 范例功能演示
16.4.2 开发思路指引
16.4.3 专家难点解析
16.4.4 设计过程详解
16.4.5 范例开发手记
16.4.6 进阶与提高
第17章 数据压缩
17.1 RLE算法实现数据压缩
17.1.1 范例功能演示
17.1.2 开发思路指引
17.1.3 专家难点解析
17.1.4 设计过程详解
17.1.5 范例开发手记
17.1.6 进阶与提高
17.2 LZW算法实现数据压缩
17.2.1 范例功能演示
17.2.2 开发思路指引
17.2.3 专家难点解析
17.2.4 设计过程详解
17.2.5 范例开发手记
17.2.6 进阶与提高
第18章 图形编程
视频讲解:45分钟
18.1 绘制折线图
18.1.1 范例功能演示
18.1.2 开发思路指引
18.1.3 专家难点解析
18.1.4 设计过程详解
18.1.5 范例开发手记
18.1.6 进阶与提高
18.2 绘制饼状图
18.2.1 范例功能演示
18.2.2 开发思路指引
18.2.3 专家难点解析
18.2.4 设计过程详解
18.2.5 范例开发手记
18.2.6 进阶与提高
18.3 绘制条形图
18.3.1 范例功能演示
18.3.2 开发思路指引
18.3.3 专家难点解析
18.3.4 设计过程详解
18.3.5 范例开发手记
18.3.6 进阶与提高
18.4 绘制玫瑰花
18.4.1 范例功能演示
18.4.2 开发思路指引
18.4.3 专家难点解析
18.4.4 设计过程详解
18.4.5 范例开发手记
18.4.6 进阶与提高
18.5 菜单界面设计
18.5.1 范例功能演示
18.5.2 开发思路指引
18.5.3 专家难点解析
18.5.4 设计过程详解
18.5.5 范例开发手记
18.5.6 进阶与提高
第19章 文件的高级应用
视频讲解:55分钟
19.1 创建文件
19.1.1 范例功能演示
19.1.2 开发思路指引
19.1.3 专家难点解析
19.1.4 设计过程详解
19.1.5 范例开发手记
19.1.6 进阶与提高
19.2 文件的复制
19.2.1 范例功能演示
19.2.2 开发思路指引
19.2.3 专家难点解析
19.2.4 设计过程详解
19.2.5 范例开发手记
19.2.6 进阶与提高
19.3 删除文件
19.3.1 范例功能演示
19.3.2 开发思路指引
19.3.3 专家难点解析
19.3.4 设计过程详解
19.3.5 范例开发手记
19.3.6 进阶与提高
19.4 重命名文件
19.4.1 范例功能演示
19.4.2 开发思路指引
19.4.3 专家难点解析
19.4.4 设计过程详解
19.4.5 范例开发手记
19.4.6 进阶与提高
19.5 文件加密
19.5.1 范例功能演示
19.5.2 开发思路指引
19.5.3 专家难点解析
19.5.4 设计过程详解
19.5.5 范例开发手记
19.5.6 进阶与提高
第20章 综合实验(四)——五子棋游戏开发
视频讲解:28分钟
20.1 概述
20.2 需求分析
20.3 系统设计
20.3.1 设计目标
20.3.2 开发及运行环境
20.4 程序预览
20.5 graphics.h文件
20.6 设计思路
20.7 预处理
20.7.1 文件引用
20.7.2 宏定义
20.8 声明变量
20.9 函数声明
20.10 主要功能实现
20.10.1 主函数
20.10.2 开始游戏
20.10.3 绘制棋盘
20.10.4 绘制棋子
20.10.5 清除棋子
20.10.6 游戏过程
20.10.7 判断胜负结果
20.11 小结
第5篇 项 目 实 战
第21章 网络通信系统
视频讲解:37分钟
21.1 网络通信系统概述
21.1.1 开发背景
21.1.2 需求分析
21.1.3 功能结构图
21.2 技术攻关
21.2.1 TCP/IP协议
21.2.2 IP地址
21.2.3 数据包格式
21.2.4 建立连接
21.2.5 套接字库函数
21.3 网络通信系统主程序
21.4 点对点通信
21.5 服务器中转通信
21.6 程序调试与错误处理
21.7 小结
第22章 图书管理系统(MySQL)
视频讲解:32分钟
22.1 概述
22.1.1 需求分析
22.1.2 开发工具选择
22.2 系统设计
22.2.1 系统目标
22.2.2 系统功能结构
22.2.3 系统预览
22.2.4 开发及运行环境
22.3 数据库设计
22.3.1 安装MySQL数据库
22.3.2 启动MySQL数据库
22.3.3 创建数据库
22.3.4 数据表结构
22.4 C语言开发数据库程序的流程
22.5 C语言操作MySQL数据库
22.5.1 MySQL常用数据库操作函数
22.5.2 连接MySQL数据
22.5.3 查询图书表记录
22.5.4 插入图书表记录
22.5.5 修改图书表记录
22.5.6 删除图书表记录
22.6 文件引用
22.7 变量和函数定义
22.8 主要功能模块设计
22.8.1 显示主菜单信息
22.8.2 显示所有图书信息
22.8.3 添加图书信息
22.8.4 修改图书信息
22.8.5 删除图书信息
22.8.6 查询图书信息
22.9 程序调试及错误处理
22.9.1 解决创建数据表为一个文件的问题
22.9.2 在创建数据表时,最后一句结尾没有标点
22.10 小结
展开