内容简介
基础知识篇
第1章C语言开发环境
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.12 疑难解惑
1.12.1为什么说C语言可移植性好
1.12.2 C语言的应用领域有哪些
1.12.3如何提高C语言的编程效率
1.13小结
第2章C语言开发基础
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求100200之间的素数
2.11疑难解惑
2.11.1声明变量和定义变量
2.11.2限定词const
2.11.3字符串常量为什么用“\0”作为结束符
2.12小结
第3章 运算符与表达式
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最大公约数及最小公倍数
3.5.2循环移位
3.6疑难解惑
3.6.1表达式“a=b”和“a= =b”一样吗?
3.6.2如何区分“,”是运算符还是分隔符
3.6.3 C语言中有哪些简化的运算表达式
3.7小结
第4章 语句
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剖析if和switch语句
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整数加减法练习
4.12.2一元钱兑换方案
4.13疑难解惑
4.13.1 C语言提供的跳转语句各有什么特点
4.13.2循环嵌套时应该注意什么
4.13.3如何提高循环语句的执行效率
4.14小结
第5章 数组
5.1本章知识体系
5.2一维数组
5.2.1如何定义和引用一维数组
5.2.2一维数组初始化
5.2.3一维数组应用
5.3二维数组
5.3.1如何定义和引用二维数组
5.3.2二维数组初始化
5.3.3二维数组应用
5.4多维数组
5.5字符数组
5.5.1如何定义和使用字符数组
5.5.2字符数组初始化
5.5.3字符数组的结束标志
5.5.4字符数组的输入和输出
5.5.5字符数组应用
5.6实战
5.6.1逆序存放数据
5.6.2相邻元素之和
5.7 疑难解惑
5.7.1数组下标必须从0开始吗
5.7.2数组名作函数参数与数组元素作函数参数有什么不同之处
5.7.3‘\0’和“\0”有什么区别
5.8小结
第6章 函数
6.1本章知识体系
6.2函数概述
6.3函数的定义
6.3.1无参函数
6.3.2有参函数
6.3.3空函数
6.4返回语句
6.4.1从函数返回
6.4.2返回值
6.5函数参数
6.5.1形式参数与实际参数
6.5.2数组作函数参数
6.5.3 main参数
6.6函数的调用
6.6.1函数调用方式
6.6.2嵌套调用
6.6.3递归调用
6.7内部函数和外部函数
6.7.1内部函数
6.7.2外部函数
6.8局部变量和全局变量
6.8.1局部变量
6.8.2全局变量
6.9实战
6.9.1求字符串中字符的个数
6.9.2打渔晒网问题
6.10疑难解惑
6.10.1在调用时不使用函数的返回值会产生什么现象
6.10.2 C语言中函数的调用方式有哪几种
6.10.3函数定义时容易犯哪些错误
6.11小结
第7章 指针
7.1本章知识体系
7.2指针相关概念
7.2.1地址与指针
7.2.2指针变量
7.2.3指针的赋值
7.2.4指针的引用
7.3指针运算
7.4一维数组与指针
7.5指针访问二维数组
7.6字符和指针
7.6.1使用字符指针
7.6.2字符指针数组
7.7指向指针的指针
7.8函数型指针
7.9实战
7.9.1用指针实现数据交换
7.9.2使用指针实现整数排序
7.10疑难解惑
7.10.1指针类型和指针所指向的类型是一样的吗
7.10.2指针运算与取地址运算符有何联系
7.10.3空指针有何意义
7.11小结
第8章 结构体和共用体
8.1本章知识体系
8.2结构体
8.2.1结构体类型的概念
8.2.2结构体变量的定义
8.2.3结构体类型的几点说明
8.2.4结构体变量的引用
8.2.5结构体变量的初始化
8.3结构体数组
8.3.1定义结构体数组
8.3.2初始化结构体数组
8.4结构体指针
8.4.1指向结构体变量的指针
8.4.2指向结构体数组的指针
8.4.3结构体作函数参数
8.5包含结构的结构
8.6链表
8.6.1什么是链表
8.6.2创建动态链表
8.6.3链表相关操作
8.7共用体
8.7.1什么是共用体
8.7.2共用体变量的定义和引用
8.7.3共用体类型的初始化
8.8实战
8.8.1约瑟夫环
8.8.2计算开机时间
8.9疑难解惑
8.9.1定义结构体对结构体成员的类型是否有限制
8.9.2成员运算符()和指向结构体成员的运算符(->)有何区别
8.9.3结构体和联合体有什么区别和联系
8.10小结
第9章 文件
9.1本章知识体系
9.2文件概述
9.3文件基本操作
9.3.1文件的打开
9.3.2文件的关闭
9.4文件的读写
9.4.1 fputc 函数
9.4.2 fgetc函数
9.4.3 fread函数和fwrite函数
9.5文件的定位
9.5.1 rewind函数
9.5.2 ftell函数
9.5.3 fseek函数
9.6出错检测
9.6.1 ferror函数
9.6.2 clearerr函数
9.7实战
9.7.1读取磁盘文件
9.7.2将数据写入磁盘文件
9.8疑难解惑
9.8.1标准文件和一般文件有什么区别
9.8.2 C语言的常用库文件包含哪些
9.8.3为什么文件打开以后要及时关闭
9.9小结
第10章 预处理
10.1本章知识体系
10.2不带参数的宏定义
10.3带参数的宏定义
10.4 #include命令
10.5条件编译
10.5.1 #if命令
10.5.2 #ifdef及#ifndef命令
10.5.3 #undef命令
10.5.4 #line命令
10.5.5 #pragma命令
10.6 实战
10.6.1利用宏计算两个数的乘积
10.6.2利用宏求3个数中的最小数
10.7疑难解惑
10.7.1 C语言中包括哪些预处理功能
10.7.2使用宏时需要注意些什么
10.7.3文件包含可以嵌套吗
10.8小结
第11章 存储管理
11.1本章知识体系
11.2内存组织方式
11.2.1内存组织方式
11.2.2堆与栈
11.3分配内存函数(malloc和calloc)
11.3.1 malloc函数
11.3.2 calloc函数
11.4修改已分配内存(relloc函数)
11.5释放内存——free函数
11.6谁偷了我的内存
11.7实战
11.7.1为具有3个元素的数组分配内存
11.7.2为二维数组动态分配内存并释放
11.8疑难解惑
11.8.1什么是“内存泄露”
11.8.2内存耗尽了怎么办
11.8.3常见的内存管理错误有哪些
11.9小结
范例演练篇
第12章 排序
12.1选择排序
12.1.1范例功能演示
12.1.2开发思路指引
12.1.3专家难点解析
12.1.4设计过程详解
12.1.5范例开发手记
12.1.6进阶与提高
12.2冒泡排序
12.2.1范例功能演示
12.2.2开发思路指引
12.2.3专家难点解析
12.2.4设计过程详解
12.2.5范例开发手记
12.2.6进阶与提高
12.3插入排序
12.3.1范例功能演示
12.3.2开发思路指引
12.3.3专家难点解析
12.3.4设计过程详解
12.3.5范例开发手记
12.3.6进阶与提高
12.4希尔排序
12.4.1范例功能演示
12.4.2开发思路指引
12.4.3专家难点解析
12.4.4设计过程详解
12.4.5范例开发手记
12.4.6进阶与提高
12.5快速排序
12.5.1范例功能演示
12.5.2开发思路指引
12.5.3专家难点解析
12.5.4设计过程详解
12.5.5范例开发手记
12.5.6进阶与提高
第13章 查找
13.1顺序查找
13.1.1范例功能演示
13.1.2开发思路指引
13.1.3专家难点解析
13.1.4设计过程详解
13.1.5范例开发手记
13.1.6进阶与提高
13.2折半查找
13.2.1范例功能演示
13.2.2开发思路指引
13.2.3专家难点解析
13.2.4设计过程详解
13.2.5范例开发手记
13.2.6进阶与提高
13.3分块查找
13.3.1范例功能演示
13.3.2开发思路指引
13.3.3专家难点解析
13.3.4设计过程详解
13.3.5范例开发手记
13.3.6进阶与提高
13.4哈希查找
13.4.1范例功能演示
13.4.2开发思路指引
13.4.3专家难点解析
13.4.4设计过程详解
13.4.5范例开发手记
13.4.6进阶与提高
第14章 数据压缩
14.1 RLE算法实现数据压缩
14.1.1范例功能演示
14.1.2开发思路指引
14.1.3专家难点解析
14.1.4设计过程详解
14.1.5范例开发手记
14.1.6进阶与提高
14.2 LZW算法实现数据压缩
14.2.1范例功能演示
14.2.2开发思路指引
14.2.3专家难点解析
14.2.4设计过程详解
14.2.5范例开发手记
14.2.6进阶与提高
第15章 图形编程
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进阶与提高
16.5文件加密
16.5.1范例功能演示
16.5.2开发思路指引
16.5.3专家难点解析
16.5.4设计过程详解
16.5.5范例开发手记
16.5.6进阶与提高
项目实战篇
第17章 五子棋游戏开发
17.1概述
17.2需求分析
17.3系统设计
17.3.1设计目标
17.3.2开发及运行环境
17.4程序预览
17.5 graphics.h文件
17.6设计思路
17.7预处理
17.7.1文件引用
17.7.2宏定义
17.8声明变量
17.9函数声明
17.10主要功能实现
17.10.1主函数
17.10.2开始游戏
17.10.3绘制棋盘
17.10.4绘制棋子
17.10.5清除棋子
17.10.6游戏过程
17.10.7判断胜负结果
17.11开发总结
第18章 商品信息管理系统(txt)
18.1概述
18.1.1需求分析
18.1.2功能结构图
18.2预处理
18.2.1文件引用
18.2.2宏定义
18.3声明结构体
18.4函数声明
18.5功能选择界面
18.5.1功能概述
18.5.2主函数
18.5.3自定义菜单功能函数
18.6录入商品信息
18.7查询商品信息
18.8 删除商品信息
18.9修改商品信息
18.10插入商品信息
18.11统计商品数
18.12开发总结
第19章 网络通信编程
19.1网络通信系统概述
19.1.1开发背景
19.1.2需求分析
19.1.3功能结构图
19.2技术攻关
19.2.1 TCP/IP协议
19.2.2 IP地址
19.2.3数据包格式
19.2.4建立连接
19.2.5套接字库函数
19.3网络通信系统主程序
19.4点对点通信
19.5服务器中转通信
19.6程序调试与错误处理
19.7开发总结
第20章 联系人管理系统(嵌入式)
20.1联系人管理系统概述
20.1.1系统分析
20.1.2总体设计
20.2技术攻关
20.2.1嵌入式
20.2.2超级终端通信
20.2.3烧写与编译
20.3联系人管理系统主程序
20.4添加联系人模块
20.5查找联系人模块
20.6删除联系人模块
20.7浏览联系人模块
20.8联系人详情
20.9程序调试与错误处理
20.10开发总结
第21章 图书管理系统(MySQL)
21.1概述
21.1.1需求分析
21.1.2开发工具选择
21.2系统设计
21.2.1系统目标
21.2.2系统功能结构
21.2.3系统预览
21.2.4开发及运行环境
21.3数据库设计
21.3.1安装MySQL数据库
21.3.2启动MySQL数据库
21.3.3创建数据库
21.3.4数据表结构
21.4 C语言开发数据库程序的流程
21.5 C语言操作MySQL数据库
21.5.1 MySQL常用数据库操作函数
21.5.2连接MySQL数据
21.5.3查询图书表记录
21.5.4插入图书表记录
21.5.5修改图书表记录
21.5.6删除图书表记录
21.6文件引用
21.7变量和函数定义
21.8主要功能模块设计
21.8.1显示主菜单信息
21.8.2显示所有图书信息
21.8.3添加图书信息
21.8.4修改图书信息
21.8.5删除图书信息
21.8.6查询图书信息
21.9程序调试及错误处理
21.9.1解决创建数据表为一个文件的问题
21.9.2在创建数据表时,最后一句结尾没有标点
21.9.3无法启动MySQL服务
21.10项目开发总结