**篇 基 础
篇
第1章
C语言程序设计概述
视频讲解:70分钟
12集
1.1
C语言相关知识概述
1.1.1
C语言的历史沿革
1.1.2
C语言的重要性
1.1.3
C语言的特点
1.2
C语言程序设计入门三要素
1.2.1 安装软件并开发HelloWorld程序
【例1-1】**个简单的C程序
1.2.2 掌握基本的输入/输出手段
【例1-2】一个完整的输入/输出示例
【例1-3】计算输入的两个整数的和的程序
【例1-4】计算两个浮点数的乘积
【例1-5】改进例1-4中的输出格式
1.2.3
理解C语言程序的基本结构
【例1-6】两个函数构成的C程序示例
1.2.4 C语言程序的简单调试
【例1-7】利用Dev-C 进行程序的调试
1.3 案例分析
1.3.1 动画效果的HelloWorld程序
【例1-8】动画效果的HelloWorld程序1
【例1-9】动画效果的HelloWorld程序2
1.3.2 带声音的HelloWorld程序
【例1-10】带声音的HelloWorld程序1
【例1-11】带声音的HelloWorld程序2
1.3.3 功能强大的system库函数
【例1-12】利用system库函数实现关机
小结
习题与实践
第2章
数据存储与运算
视频讲解:53分钟
13集
2.1 示例程序
【例2-1】计算圆的面积
2.2 数据类型与变量
2.2.1
数据类型
2.2.2
常量
2.2.3
变量
【例2-2】计算1~n的和
2.2.4
标识符
2.3 整数类型
2.3.1
基本整数类型int
【例2-3】定义int变量
【例2-4】以十进制、八进制、十六进制打印
十进制数1000
2.3.2
有符号整数类型
【例2-5】5种有符号整数类型所占字节数及
数据范围
2.3.3
无符号整数类型
2.3.4
char类型
【例2-6】字符变量定义并用字符常量赋值
2.3.5
整型变量的溢出
【例2-7】数据溢出示例
2.3.6
整数常量
2.4 浮点类型
2.4.1
定义浮点型变量
2.4.2
浮点常量
2.4.3
输出浮点值
【例2-8】浮点类型定义、初始化及输出
2.5 枚举类型
2.6
void类型
2.7 运算符和表达式
【例2-9】运算符优先级示例
【例2-10】运算符的结合性示例
2.7.1
算术运算符
【例2-11】应用整除和求模运算符输出3位
整数的每一位
2.7.2
自增自减运算符
【例2-12】自增运算符编程实例
2.7.3
赋值运算符
【例2-13】赋值运算符编程实例
2.7.4
关系运算符
【例2-14】关系运算符示例程序
2.7.5
逻辑运算符
【例2-15】逻辑运算符示例程序
2.7.6
其他运算符
【例2-16】sizeof运算符获取int空间大小
的三种方式
【例2-17】显式强制类型转换与自动类型
转换示例
【例2-18】条件运算符示例
小结
习题与实践
第3章
简单程序的设计
视频讲解:98分钟
19集
3.1 算法概述
3.1.1
算法的概念
【例3-1】求两个变量值交换的算法流程
【例3-2】求分段函数值的算法流程
【例3-3】求两个数*大公约数的算法流程
3.1.2
算法的特征
3.1.3
算法的表示
3.2 顺序结构程序设计
3.2.1
赋值语句
3.2.2
表达式语句
3.2.3
函数调用语句
3.2.4
空语句与复合语句
3.3 顺序结构的实例
【例3-4】编程实现交换两个变量的值
【例3-5】求ax2 bx c=0方程的根
【例3-6】输入三角形的三条边的长,求三角形的面积
【例3-7】已知一个四位数的整数,求其逆转后对应的整数并输出
3.4 选择结构程序设计
3.4.1
条件语句
【例3-8】输入一个年份,判断其是否为闰年
【例3-9】求给定整数x的绝对值
【例3-10】求两个整数a,b较大者的值
【例3-11】输入一个整数成绩,判断是否通过
【例3-12】求分段函数的值
【例3-13】 输入一个学生成绩(0~100),输出其对应的等级(A~E)
【例3-14】 输入年份y和月份m的值,输出y年m月的天数
【例3-15】简单四则运算:编写形如“A op B”的加减乘除四则运算的程序
3.4.2
开关语句
【例3-16】 用switch语句实现例3-13成绩等级输出程序
小结
习题与实践
第4章
循环结构程序的设计
视频讲解:114分钟
16集
4.1 循环结构概述
【例4-1】用goto语句编程实现求1~100 之间整数和的程序
4.2 条件控制循环语句
4.2.1
while语句
【例4-2】阅读程序理解while的使用
【例4-3】用while语句实现求1~100之间整数和的程序
【例4-4】已知两个正整数,求它们的*大公约数及*小公倍数
【例4-5】计算一个不足10位数整数的位数
4.2.2
do...while语句
4.3 计数控制循环语句(for语句)
【例4-6】求n个分数的和
4.4 循环的中断
4.4.1
break语句
4.4.2
continue语句
【例4-7】编程实现输出100以内的偶数
【例4-8】编程实现判断一个整数m是否为素数(质数),并输出判断结果
4.5 循环嵌套
【例4-9】编写程序,输出图4-7所示的
图形
【例4-10】编程实现输出2~100之间的素数,要求每行输出5个素数
4.6 循环结构的简单应用
4.6.1
枚举问题
【例4-11】输出所有水仙花数
【例4-12】找零钱问题
【例4-13】推理问题
4.6.2
递推问题
【例4-14】Fibonacci Sequence
(斐波那契数列)
小结
习题与实践
第5章
函数
视频讲解:56分钟
12集
5.1 函数概述
5.1.1 函数的定义与声明
【例5-1】符号函数sign
【例5-2】绝对值函数myabs
【例5-3】求两数中的*大值函数max
【例5-4】计算1 2 3 … n的和的函数sum
【例5-5】判断正整数n是否为质数的函数isPrime
5.1.2 函数的调用与传参
【例5-6】输出1~n的和
【例5-7】演示函数定义在调用前,不需要声明
【例5-8】利用传值的方式能交换两个实参的值吗
5.1.3 函数的嵌套调用与递归调用
【例5-9】函数嵌套调用示例
【例5-10】利用递归求1 2 3 … n的和
【例5-11】利用递归求an
5.2 变量的生存期与作用域
【例5-12】全局变量和局部变量
【例5-13】演示在代码块内定义的局部变量
【例5-14】演示全局变量和局部变量同名时的情况
【例5-15】演示静态局部变量与非静态局部变量
5.3 编译预处理
5.3.1 包含头文件
5.3.2 宏定义及宏展开
【例5-16】宏定义中的“#”运算符
【例5-17】宏定义中的“##”运算符
【例5-18】演示#undef取消宏定义
5.3.3 条件编译
【例5-19】条件编译指令示例
【例5-20】条件编译指令示例
【例5-21】嵌套条件编译指令示例
【例5-22】条件编译指令的用法
5.3.4 特殊符号处理
【例5-23】编译预处理中的特殊符号
【例5-24】演示#line的用法
5.4 模块化编译链接
5.4.1 分别编译
【例5-25】分别编译并链接的示例
5.4.2 链接
小结
习题与实践
第6章
数组
视频讲解:137分钟
13集
6.1 数组的引入
【例6-1】输入一组学生的年龄,求平均
年龄,要求保留小数点后两位
6.2 一维数组的初识
6.2.1
一维数组的声明、初始化及引用
【例6-2】将一组整数逆置
6.2.2
数组与函数
【例6-3】求平均年龄及大于平均年龄的
学生数
6.2.3
一维数组的简单应用
【例6-4】输入n(n≤10)及n个整数,
输出*大整数及其位序
【例6-5】选择排序
【例6-6】顺序查找
6.3 二维数组的初识
6.3.1
二维数组的定义
6.3.2
二维数组元素的引用
6.3.3
二维数组的初始化
6.3.4
二维数组的应用
【例6-7】多个班级某课程的成绩管理
6.4 字符串
【例6-8】字符串的简单加密
【例6-9】系统登录验证的实现
小结
习题与实践
第7章
指针
视频讲解:81分钟
13集
7.1 指针概述
【例7-1】指针就是内存地址,指针变量
用于存储地址
【例7-2】交换两个整型变量的值
7.2 空指针和void指针
7.2.1
空指针
7.2.2
void指针
7.2.3
malloc函数
【例7-3】随机生成指定长度的字符串
【例7-4】与指定数字相同的数的个数
7.3
const指针常量
【例7-5】函数形参是常量指针
7.4 指针与数组
7.4.1
通过指针变量访问数组
【例7-6】通过指针操作数组
【例7-7】在数组中查找元素
7.4.2
数组指针
【例7-8】数组指针访问二维数组
7.4.3
指针数组
【例7-9】指针数组编程示例
7.5 指向函数的指针
【例7-10】函数指针简单示例
【例7-11】对用户输入的两个数字,进行
加减乘除计算
【例7-12】使用qsort()函数完成数组排序
7.6 命令行参数
【例7-13】命令行参数的概念程序示例
【例7-14】求输入的若干个整数中的*大
者程序示例
小结
习题与实践
第8章
结构、联合与位字段
视频讲解:38分钟
6集
8.1 结构
8.1.1
声明结构类型
8.1.2
访问结构成员
【例8-1】计算两点间距离
8.1.3
结构变量的内存分配
【例8-2】计算结构体变量内存空间大小
并输出结构成员的起始地址
8.1.4
结构数组
【例8-3】奖学金问题
8.1.5
链表
【例8-4】单链表的创建与遍历
8.2 联合
【例8-5】联合union编程实例
8.3 位字段
【例8-6】位字段编程实例
小结
习题与实践
第9章
文件
视频讲解:36分钟
4集
9.1 文件概述
9.2 文件的打开与关闭
【例9-1】编程实现以只读方式打开文本
文件
9.3 文件的读写操作
9.3.1
文件的顺序读写
【例9-2】从指定文件中读取数据
【例9-3】从键盘输入字符,并将其写入一个文本文件
【例9-4】编程实现将一个字符串追加到指定文件中
【例9-5】编程实现文件复制
【例9-6】用fscanf和fprintf函数实现商品信息输入
【例9-7】数据块读写函数的使用
9.3.2
文件的随机读写
【例9-8】输出第m个商品信息
9.4 文件检测函数
小结
习题与实践
第二篇 进 阶
篇
第10章
内存问题
10.1
程序运行需要内存
10.2
内存编址、寻址
10.3
C语言访问内存的方式
10.4
栈和堆内存管理
10.5
C程序的内存五区
第11章
简单计算问题
视频讲解:38分钟
2集
【例11-1】计算IPv6地址能分配多久
【例11-2】简单四则运算
【例11-3】表达式求值问题
【例11-4】多项式求值问题
小结
习题与实践
第12章
数制转换问题
视频讲解:32分钟
3集
【例12-1】八进制到十进制
【例12-2】十进制到八进制
【例12-3】N进制到M进制
【例12-4】确定进制问题
小结
习题与实践
第13章
日期相关问题
视频讲解:34分钟
3集
【例13-1】输出当前计算机系统的日期及时间
【例13-2】n天后日期问题
【例13-3】打印月历
【例13-4】确定母亲节
【例13-5】黑色星期五
小结
习题与实践
第14章
数组进阶
视频讲解:89分钟
7集
14.1
筛选法的应用
【例14-1】求1~n间的质数,每行输出5
个质数
【例14-2】反质数
14.2
循环数组的应用
【例14-3】机器翻译
【例14-4】约瑟夫环问题
14.3
排序与查找
14.3.1
排序
【例14-5】冒泡排序
【例14-6】插入排序
【例14-7】快速排序
【例14-8】使用库函数qsort完成排序
14.3.2
查找
【例14-9】在n个整数中,使用折半查找方法查找x,输出查找结果
14.4
二维数组的应用
【例14-10】同行同列同对角线的格子
【例14-11】鞍点问题
小结
习题与实践
第15章
字符串处理
视频讲解:73分钟
6集
【例15-1】统计字符数
【例15-2】被3整除
【例15-3】487-3279
【例15-4】删除单词后缀
【例15-5】字符串移位包含问题
【例15-6】查找文本串中的单词
【例15-7】字符串加密
【例15-8】过滤多余的空格
【例15-9】ISBN号码
【例15-10】提取数字
小结
习题与实践
第16章
高精度计算问题
视频讲解:57分钟
3集
【例16-1】高精度加法
【例16-2】高精度乘法
【例16-3】高精度阶乘
【例16-4】高精度除法
小结
习题与实践
第17章
位运算问题
视频讲解:42分钟
5集
【例17-1】给定一个整型数a,设置a二进制表示中的bit5为1, 其他位不变
【例17-2】给定一个整型数a,它的bit15清0,其他位不变
【例17-3】给定一个整型数a,求a的bit3~bit8对应的整数
【例17-4】用C语言给一个寄存器(32位)的bit7~bit17赋值937
【例17-5】用C语言实现将一个寄存器的bit7~bit17的值加17
【例17-6】使用位运算判断一个整数是奇数还是偶数
【例17-7】使用位运算计算一个 int整数 的二进制数中有多少个1
【例17-8】使用位运算完成两个变量值的交换
【例17-9】一组整数中只有一个数只出现一次,其余的数都是成对出现的,请找出这个只出现一次的数
【例17-10】已知一个含有N个整数集合,输出它的所有非空子集
小结
习题与实践
第18章
递推与递归
视频讲解:70分钟
5集
【例18-1】n!
【例18-2】青蛙过河
【例18-3】汉诺塔问题
【例18-4】分解因数
【例18-5】整数划分问题
【例18-6】扩号匹配问题
【例18-7】分书问题
【例18-8】红与黑
小结
习题与实践
第19章
链表
视频讲解:60分钟
3集
【例19-1】计算与指定数字相同的数的个数
【例19-2】生日相同
【例19-3】分数线划定
【例19-4】子串计算
【例19-5】猴子选大王
小结
习题与实践
第三篇 项 目
篇
第20章
有声有色文本库
视频讲解:107分钟
7集
20.1
mycon库的安装配置与基本使用
20.1.1 函数库使用的核心要点
20.1.2 mycon库的安装配置与基本使用
【例20-1】带声音的打字机动画版
HelloWorld程序
20.2
mycon文本库的应用编程案例
20.2.1 超级赌马大赛
20.2.2 “弹小球”游戏
20.2.3 “打飞机”游戏
20.2.4 “贪吃蛇”游戏
20.2.5 “推箱子”游戏
小结
习题与实践
第21章
开源图形库EGE
视频讲解:91分钟
7集
21.1
EGE使用基础
21.1.1 EGE简介
21.1.2 EGE的配置与基本使用
【例21-1】图形打字机动画版的
HelloWorld程序
21.2
EGE的应用编程案例
21.2.1 汉字点阵显示及变换
21.2.2 水平跑马灯广告牌
21.2.3 环形跑马灯广告牌
21.2.4 七段数码管日期时间
21.2.5 “推箱子”游戏
21.2.6 “扑克牌21点”游戏
小结
习题与实践
第22章
编程访问网络
视频讲解:45分钟
6集
22.1
网络基础
22.1.1 网络的引入
22.1.2 网络的基本概念
22.2
Windows Sockets套接字编程基础
22.2.1 Windows Sockets套接字
22.2.2 Windows Sockets套接字编程步骤
22.3
Windows Sockets套接字编程案例
22.3.1 查询主机名对应的IP地址
22.3.2 UDP实现的点对点聊天
22.3.3 TCP实现的点对点聊天
22.3.4 TCP实现的远程文件上传
22.3.5 TCP实现的多人聊天室
小结
习题与实践
第23章
编程访问数据库
视频讲解:50分钟
4集
23.1
数据库基础
23.1.1 数据库的引入
23.1.2 MySQL数据库的安装与使用初步
23.1.3 C语言访问MySQL数据库的配置
23.2
C语言数据库编程案例
23.2.1 标准化考试系统
23.2.2 同学通讯录系统
小结
习题与实践
第24章
综合实践应用
视频讲解:67分钟
6集
24.1
英语单词标准化测试系统
24.2
软件产权保护系统
24.3
计算用户的月通信费用
24.4
实现Linux下的wc命令
24.5
24位BMP位图图像变换
24.6
“贪吃蛇”游戏外挂基本原理
小结
习题与实践
参考文献