第一篇 基础知识篇
第1章 初识C语言——什么是C语言
1.1 什么是C语言
1.1.1 C语言的产生
1.1.2 C语言的特点
1.1.3 C语言程序的构成
1.2 熟悉C语言开发环境
1.2.1 GNU GCC
1.2.2 Visual C++6.0
1.2.3 动手编写Hello World!程序
1.3 上机实践
1.3.1 熟悉开发工具
1.3.2 编写一个简单的小程序
1.4 小结
1.5 习题
第2章 程序的灵魂——算法
2.1 什么是算法
2.1.1 算法有哪些特性
2.1.2 如何衡量算法的优劣
2.2 怎样表示一个算法
2.2.1 自然语言表示算法
2.2.2 流程图表示算法
2.2.3 N-S流程图表示算法
2.2.4 伪代码表示算法
2.2.5 计算机语言表示算法
2.3 结构化程序设计方法
2.4 小结
2.5 习题
第一篇 基础知识篇
第1章 初识C语言——什么是C语言
1.1 什么是C语言
1.1.1 C语言的产生
1.1.2 C语言的特点
1.1.3 C语言程序的构成
1.2 熟悉C语言开发环境
1.2.1 GNU GCC
1.2.2 Visual C++6.0
1.2.3 动手编写Hello World!程序
1.3 上机实践
1.3.1 熟悉开发工具
1.3.2 编写一个简单的小程序
1.4 小结
1.5 习题
第2章 程序的灵魂——算法
2.1 什么是算法
2.1.1 算法有哪些特性
2.1.2 如何衡量算法的优劣
2.2 怎样表示一个算法
2.2.1 自然语言表示算法
2.2.2 流程图表示算法
2.2.3 N-S流程图表示算法
2.2.4 伪代码表示算法
2.2.5 计算机语言表示算法
2.3 结构化程序设计方法
2.4 小结
2.5 习题
第3章 基础是一切技能的本源——基本数据类型
3.1 数据是如何分类的——数据类型
3.2 最常用的程序元素——常量与变量
3.2.1 整型常量
3.2.2 整型变量
3.2.3 浮点型常量
3.2.4 浮点型变量
3.2.5 字符型常量
3.2.6 字符型变量
3.2.7 转义字符
3.2.8 符号常量
3.3 类型转换
3.4 输入输出
3.4.1 字符输入
3.4.2 字符输出
3.4.3 格式输入
3.4.4 格式输出
3.5 上机实践
3.5.1 计算长方形的面积
3.5.2 使用字符型变量输出字符串
3.5.3 将大写字母转换为小写字母
3.6 小结
3.7 习题
第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.7 位逻辑运算符与表达式
4.7.1 位逻辑运算符
4.7.2 位逻辑表达式
4.8 复合赋值运算符
4.9 条件运算符
4.10 运算符的结合性和优先级
4.11 上机实践
4.11.1 读程序写结果
4.11.2 计算3个数中的最小值
4.11.3 编写简单的计算加班工资的程序
4.12 小结
4.13 习题
第5章 体验逻辑之美——程序结构
5.1 飞流直下——顺序结构
5.2 条件判断——分支结构
5.2.1 if语句
5.2.2 switch语句
5.3 百转千回——循环结构
5.3.1 while语句
5.3.2 do-while语句
5.3.3 for语句
5.3.4 循环结构中的break与continue语句
5.3.5 循环语句的嵌套
5.3.6 跳转语句——goto
5.4 上机实践
5.4.1 判断点与圆的关系
5.4.2 判断成绩的等级
5.4.3 打印大写字母ASCII码对照表
5.4.4 输出0~100之间不能被3整除的数
5.5 小结
5.6 习题
第二篇 核心技术篇
第6章 串起数据的珍珠链——数组及其应用
6.1 数组的概念
6.1.1 数组的分类
6.1.2 数组的维数
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.4.1 字符数组的定义和引用
6.4.2 字符数组的初始化
6.4.3 字符数组的结束标志
6.4.4 字符数组的应用
6.5 让字符舞动起来——字符处理
6.5.1 字符数组的输出
6.5.2 字符数组的输入
6.5.3 输出完整的带有空格的字符串
6.5.4 字符串的复制
6.5.5 字符串的连接
6.5.6 字符串的比较
6.5.7 字符串大小写转换
6.5.8 获得字符串长度
6.6 多维数组
6.7 数组应用实例
6.7.1 反转输出字符串
6.7.2 使用选择排序算法对数据排序
6.7.3 字符串的加密和解密
6.8 上机实践
6.8.1 实现strcpy函数的功能
6.8.2 统计字符中各元素的个数
6.8.3 重新排列字符串
6.9 小结
6.10 习题
第7章 化整为零——函数及其应用
7.1 什么是函数
7.2 函数的定义与声明
7.3 返回语句与返回值
7.4 函数的参数
7.4.1 形式参数与实际参数
7.4.2 数组作为函数参数
7.4.3 main函数的参数
7.5 如何调用函数
7.5.1 函数的调用方式
7.5.2 嵌套调用
7.5.3 递归调用
7.6 内部函数与外部函数
7.6.1 内部函数
7.6.2 外部函数
7.7 局部变量和全局变量
7.7.1 局部变量
7.7.2 全局变量
7.8 变量是如何存储的
7.8.1 动态存储与静态存储
7.8.2 auto变量
7.8.3 static变量
7.8.4 register变量
7.8.5 extern变量
7.9 上机实践
7.9.1 求出10个学生的平均成绩
7.9.2 验证6174
7.9.3 用静态局部整型变量计算1~10的阶乘
7.10 小结
7.11 习题
第8章 无比灵活却难以理解——指针及其应用
8.1 指针的概念
8.1.1 地址与指针
8.1.2 变量与指针
8.1.3 指针变量
8.1.4 指针自增自减运算
8.2 指针与数组
8.2.1 指针与一维数组
8.2.2 指针与二维数组
8.2.3 指针字符串
8.2.4 字符串数组
8.3 指向指针的指针
8.4 指针与函数
8.4.1 指针做函数参数
8.4.2 指针做函数返回值
8.4.3 指针数组作为main函数的参数
8.4.4 指向函数的指针
8.5 上机实践
8.5.1 反转字符串
8.5.2 调整字符串
8.5.3 使用指针实现字符串连接
8.6 小结
8.7 习题
第三篇 高级编程篇
第9章 兵马未动,粮草先行——预处理
9.1 宏定义
9.2 文件包括——#include指令
9.3 条件编译
9.3.1 #if命令
9.3.2 #ifdef及#ifndef命令
9.3.3 #undef命令
9.3.4 #line命令
9.3.5 #pragma命令
9.4 上机实践
9.4.1 求两个数相乘的积
9.4.2 交换两个数的值
9.4.3 从3个数中找出最大数
9.5 小结
9.6 习题
第10章 顶级管理学的巅峰——内存管理
10.1 内存组织方式
10.1.1 内存的组织方式
10.1.2 堆与栈
10.2 动态管理
10.2.1 动态分配一段内存空间——malloc函数
10.2.2 动态分配连续内存空间数组——calloc函数
10.2.3 改变ptr指针指向空间大小——realloc函数
10.2.4 内存回收——free函数
10.3 内存泄漏
10.4 上机实践
10.4.1 为数组动态分配内存
10.4.2 为二维数组动态分配并释放内存
10.4.3 为数组动态分配内存
10.5 小结
10.6 习题
第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.6.3 共用体变量初始化
11.6.4 共用体类型的数据特点
11.7 枚举类型
11.8 typedef定义类型
11.9 上机实践
11.9.1 统计候选人的得票
11.9.2 师生信息存储系统
11.9.3 计算学生的综合成绩
11.10 小结
11.11 习题
第12章 数据交互的管道——文件操作
12.1 文件概述
12.2 文件的基本操作
12.3 文件指针
12.4 文件的打开
12.4.1 文件的打开
12.4.2 文件的关闭
12.5 文件的读写
12.5.1 写字符函数——fputc函数
12.5.2 读字符函数——fgetc函数
12.5.3 写字符串函数——fputs函数
12.5.4 读字符串函数——fgets函数
12.5.5 格式化写入函数——fprintf函数
12.5.6 格式化读取函数——fscanf函数
12.5.7 数据块读写函数——fread函数和fwrite函数
12.6 定位文件
12.6.1 随机读写操作——fseek函数
12.6.2 返回位置指针——rewind函数
12.6.3 ftell函数
12.7 上机实践
12.7.1 复制文件内容
12.7.2 保存学生信息
12.7.3 给文件添加行号
12.8 小结
12.9 习题
第四篇 项目实战篇
第13章 非一般的感觉——使用数据库
13.1 MySQL数据库的下载与安装
13.1.1 安装MySQL数据库
13.1.2 启动MySQL数据库
13.2 MySQL数据库的常用命令
13.2.1 创建数据库
13.2.2 创建数据表
13.2.3 插入数据
13.2.4 查询数据
13.2.5 修改数据
13.2.6 删除数据
13.2.7 更改数据表
13.2.8 删除数据表
13.2.9 删除数据库
13.3 C语言开发数据库程序的流程
13.3.1 引入头文件
13.3.2 引入库函数
13.4 C语言操作MySQL数据库
13.4.1 MySQL常用数据库操作函数
13.4.2 连接MySQL数据库
13.4.3 查询记录
13.4.4 插入记录
13.4.5 修改记录
13.4.6 删除记录
13.5 上机实践
13.5.1 查阅库函数的用法,编写函数连接数据库
13.5.2 编写函数查询数据库
13.5.3 将函数修改为删除数据
13.6 小结
13.7 习题
第14章 综合实战——学生信息管理系统
14.1 概述
14.1.1 需求分析
14.1.2 开发工具选择
14.2 系统设计
14.2.1 系统目标
14.2.2 系统功能结构
14.2.3 系统预览
14.3 功能设计
14.3.1 显示主菜单模块
14.3.2 添加学生信息
14.3.3 查询学生信息
14.3.4 修改学生信息
14.3.5 删除学生信息
14.3.6 显示学生总数
14.3.7 显示所有学生的信息
14.3.8 保存学生数据
14.3.9 读取文件数据
14.4 小结
第15章 综合实战——车辆信息管理系统
15.1 概述
15.1.1 需求分析
15.1.2 开发工具选择
15.2 系统设计
15.2.1 系统目标
15.2.2 系统功能结构
15.2.3 系统预览
15.3 数据库设计
15.4 功能设计
15.4.1 显示主菜单模块
15.4.2 添加车辆信息
15.4.3 查询车辆信息
15.4.4 修改车辆信息
15.4.5 删除车辆信息
15.4.6 连接数据库
15.5 小结
附录 常用的函数库