第1篇基础知识
第1章C语言概述
1.1C语言的发展史
1.1.1程序语言简述
1.1.2C语言的发展与应用
1.2C语言的特点
1.3VisualC++6.0开发环境
1.3.1VisualC++6.0的下载与安装
1.3.2VisualC++6.0创建C文件
1.4一个简单的C程序
1.5一个完整的C程序
1.6C语言程序的格式
1.7小结
第2章算法
2.1算法的基本概念
2.1.1算法的特性
2.1.2算法的优劣
2.2算法的描述
2.2.1自然语言
2.2.2流程图
2.2.3N-S流程图
2.3难点解答
2.3.1当型循环和直到型循环有什么不同?
2.3.2如何设计一个好的算法?
2.4小结
第3章C语言基础
3.1关键字
3.2标识符
3.3数据类型
3.4常量
3.4.1整型常量
3.4.2实型常量
3.4.3字符型常量
3.4.4转义字符
3.4.5符号常量
3.5变量
3.5.1整型变量
3.5.2实型变量
3.5.3字符型变量
3.6变量的存储类别
3.6.1auto变量
3.6.2static变量
3.6.3register变量
3.6.4extern变量
3.7混合运算
3.8难点解答
3.8.1变量的赋值和初始化
3.8.2如何合理定义变量的类型?
3.9小结
3.10动手纠错
第4章运算符与表达式
4.1表达式
4.2赋值运算符与赋值表达式
4.2.1变量赋初值
4.2.2自动类型转换
4.2.3强制类型转换
4.3算术运算符与算术表达式
4.3.1算术运算符
4.3.2算术表达式
4.3.3优先级与结合性
4.3.4自增/自减运算符
4.4关系运算符与关系表达式
4.4.1关系运算符
4.4.2关系表达式
4.4.3优先级与结合性
4.5逻辑运算符与逻辑表达式
4.5.1逻辑运算符
4.5.2逻辑表达式
4.5.3优先级与结合性
4.6位逻辑运算符与位逻辑表达式
4.6.1位逻辑运算符
4.6.2位逻辑表达式
4.7逗号运算符与逗号表达式
4.8复合赋值运算符
4.9难点解答
4.9.1自增前缀与自增后缀的区别(例如:++i,i++)
4.9.2逗号表达式的要领
4.10小结
4.11动手纠错
第5章常用的数据输入/输出函数
5.1语句
5.2字符数据输入/输出
5.2.1字符数据输出
5.2.2字符数据输入
5.3字符串输入/输出
5.3.1字符串输出函数
5.3.2字符串输入函数
5.4格式输出函数
5.5格式输入函数
5.6难点解答
5.6.1putchar()、puts()和printf()三个函数的区别
5.6.2getchar()、gets()和scanf()三个函数的区别
5.7小结
5.8动手纠错
第6章选择结构程序设计
6.1if语句
6.2if语句的基本形式
6.2.1if语句形式
6.2.2if…else语句形式
6.2.3elseif语句形式
6.3if语句的嵌套
6.4条件运算符
6.5switch语句
6.5.1switch语句的基本形式
6.5.2多路开关模式的switch语句
6.6if…else语句和switch语句的区别
6.7难点解答
6.7.1if…else和elseif语句的区别
6.7.2if和if…else语句的区别
6.8小结
6.9动手纠错
第7章循环控制
7.1循环语句
7.2while语句
7.3do…while语句
7.4for语句
7.4.1for语句使用
7.4.2for循环的变体
7.4.3for语句中的逗号应用
7.53种循环语句的比较
7.6循环嵌套
7.6.1循环嵌套的结构
7.6.2循环嵌套实例
7.7转移语句
7.7.1break语句
7.7.2continue语句
7.7.3goto语句
7.8难点解答
7.8.1continue和break语句的区别
7.8.2while和do…while语句的区别
7.9小结
7.10动手纠错
第2篇核心技术
第8章数组
8.1一维数组
8.1.1一维数组的定义和引用
8.1.2一维数组初始化
8.1.3一维数组应用
8.2二维数组
8.2.1二维数组的定义和引用
8.2.2二维数组初始化
8.2.3二维数组应用
8.3字符数组
8.3.1字符数组的定义和引用
8.3.2字符数组初始化
8.3.3字符数组的结束标志
8.3.4字符数组的输入和输出
8.3.5字符数组应用
8.4多维数组
8.5数组的排序算法
8.5.1选择法排序
8.5.2冒泡法排序
8.5.3交换法排序
8.5.4插入法排序
8.5.5折半法排序
8.5.6排序算法的比较
8.6字符串处理函数
8.6.1字符串复制
8.6.2字符串连接
8.6.3字符串比较
8.6.4字符串大小写转换
8.6.5获得字符串长度
8.7数组应用
8.7.1反转输出字符串
8.7.2输出系统日期和时间
8.8难点解答
8.8.1数组下标越界
8.8.2为什么使用数组
8.9小结
8.10动手纠错
第9章函数
9.1函数概述
9.2函数的定义
9.2.1函数定义的形式
9.2.2定义与声明
9.3返回语句
9.3.1无返回值函数
9.3.2返回值
9.4函数参数
9.4.1形式参数与实际参数
9.4.2数组作函数参数
9.4.3main函数的参数
9.5函数的调用
9.5.1函数的调用方式
9.5.2嵌套调用
9.5.3递归调用
9.6内部函数和外部函数
9.6.1内部函数
9.6.2外部函数
9.7局部变量和全局变量
9.7.1局部变量
9.7.2全局变量
9.8函数应用
9.9难点解答
9.9.1怎样区分声明和定义
9.9.2为什么每个程序都有main函数?为什么不用声明就可以使用?
9.10小结
9.11动手纠错
第10章指针
10.1指针相关概念
10.1.1地址与指针
10.1.2变量与指针
10.1.3指针变量
10.1.4指针自增自减运算
10.2数组与指针
10.2.1一维数组与指针
10.2.2二维数组与指针
10.2.3字符串与指针
10.2.4字符串数组
10.3指向指针的指针
10.4指针变量作函数参数
10.5返回指针值的函数
10.6指针数组作main函数的参数
10.7难点解答
10.7.1为什么使用指针,指针的优点
10.7.2指针的初始化问题
10.8小结
10.9动手纠错
第3篇高级应用
第11章结构体与链表
11.1结构体
11.1.1结构体类型的概念
11.1.2结构体变量的定义
11.1.3结构体变量的引用
11.1.4结构体类型的初始化
11.2结构体数组
11.2.1定义结构体数组
11.2.2初始化结构体数组
11.3结构体指针
11.3.1指向结构体变量的指针
11.3.2指向结构体数组的指针
11.3.3结构体作为函数参数
11.4包含结构的结构
11.5链表
11.5.1链表概述
11.5.2创建动态链表
11.5.3输出链表
11.6链表相关操作
11.6.1链表的插入操作
11.6.2链表的删除操作
11.7难点解答
11.7.1结构体怎样赋值
11.7.2链表与数组
11.8小结
11.9动手纠错
第12章共用体与枚举类型
12.1共用体
12.1.1共用体的概念
12.1.2共用体变量的引用
12.1.3共用体变量的初始化
12.1.4共用体类型的数据特点
12.2枚举类型
12.3难点解答
12.3.1共用体和结构体的区别
12.3.2枚举类型什么时候使用?
12.4小结
12.5动手纠错
第13章位运算
13.1位与字节
13.2位运算操作符
13.2.1“与”运算符
13.2.2“或”运算符
13.2.3“取反”运算符
13.2.4“异或”运算符
13.2.5“左移”运算符
13.2.6“右移”运算符
13.3循环移位
13.4位段
13.4.1位段的概念与定义
13.4.2位段相关说明
13.5难点解答
13.5.1&与&&有什么不同?
13.5.2|与||的区别
13.6小结.
13.7动手纠错
第14章预处理
14.1宏定义
14.1.1不带参数的宏定义
14.1.2带参数的宏定义
14.2#include指令
14.3条件编译
14.3.1#if命令
14.3.2#ifdef及#ifndef命令
14.3.3#undef命令
14.3.4#line命令
14.3.5#pragma命令
14.4小结
14.5动手纠错
第15章文件
15.1文件概述
15.2文件基本操作
15.2.1文件指针
15.2.2文件的打开
15.2.3文件的关闭
15.3文件的读写
15.3.1fputc()函数
15.3.2fgetc()函数
15.3.3fputs()函数
15.3.4fgets()函数
15.3.5fprintf()函数
15.3.6fscanf()函数
15.3.7fread()和fwrite()函数
15.4文件的定位
15.4.1fseek()函数
15.4.2rewind()函数
15.4.3ftell()函数
15.5难点解答
15.5.1怎样运行本章程序
15.5.2为什么程序后都有fclose()函数
15.6小结
15.7动手纠错
第16章存储管理
16.1内存组织方式
16.1.1内存的组织方式
16.1.2堆与栈
16.2动态管理
16.2.1malloc()函数
16.2.2calloc()函数
16.2.3realloc()函数
16.2.4free()函数
16.3内存丢失
16.4难点解答
16.4.1malloc()函数分配内存为什么常写(int*)?
16.4.2malloc()、calloc()、realloc()函数的区别?
16.5小结
16.6动手纠错
第17章网络套接字编程
17.1计算机网络基础
17.1.1IP地址
17.1.2OSI七层参考模型
17.1.3地址解析
17.1.4域名系统
17.1.5TCP/IP协议
17.1.6端口
17.1.7套接字的引入
17.1.8网络字节顺序
17.2套接字概述
17.2.1套接字概述
17.2.2TCP的套接字的socket编程
17.2.3UDP的套接字的socket编程
17.3套接字函数
17.3.1套接字函数介绍
17.3.2基于TCP的网络聊天程序
17.4难点解答
17.4.1TCP与UDP的比较
17.4.2如何实现网络通信
17.5小结
17.6动手纠错
第4篇项目实战
第18章学生成绩管理系统
18.1需求分析
18.2系统设计
18.3功能设计
18.3.1功能选择界面
18.3.2录入学生成绩信息
18.3.3查询学生成绩信息
18.3.4删除学生成绩信息
18.3.5修改学生成绩信息
18.3.6插入学生成绩信息
18.3.7统计学生人数
18.4小结