本书从初学者的角度出发,以通俗易懂的语言、丰富多彩的实例,详细地介绍了使用C语言进行程序开发所需要掌握的知识和技术。本书共分为13章,内容包括C语言概述、算法、C程序设计基础、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、指针、预处理命令、用户自定义数据类型、文件和综合实例——学生信息管理系统。
本书可作为各类院校和培训机构C语言程序设计课程的专用教材,也可供程序设计爱好者自学使用。
基础知识篇
第1章 C语言概述
学习目标
1.1 C语言的发展
1.2 C语言的特点
1.3 第一个C语言程序
1.3.1 最简单的C语言程序结构
1.3.2 C语言程序的格式特点
1.4 C程序的开发步骤
1.5 开发环境
1.5.1 Visual C++ 6.0
1.5.2 Visual C++ 2010
1.6 常见错误分析
本章小结
思考与练习
第2章 算法
学习目标
2.1 算法的概念
2.2 算法的特点
2.3 算法的表示
2.3.1 自然语言
2.3.2 流程图
2.3.3 N-S流程图
2.4 应用举例
2.4.1 判断是否闰年
2.4.2 斐波那契数列
本章小结
思考与练习
第3章 C程序设计基础
学习目标
3.1 C程序组成元素
3.1.1 关键字
3.1.2 变量与常量
3.1.3 标识符
3.1.4 数据类型
3.2 常量
3.2.1 整型常量
3.2.2 实型常量
3.2.3 字符型常量
3.2.4 符号常量
3.3 变量
3.3.1 整型变量
3.3.2 实型变量
3.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.6 常见错误分析
本章小结
思考与练习
第4章 顺序结构程序设计
学习目标
4.1 C语句概述
4.2 格式输入输出
4.2.1 格式输出——printf函数
4.2.2 格式输入——scanf函数
4.3 字符输入输出
4.3.1 字符输出——putchar函数
4.3.2 字符输入——getchar函数
4.4 应用举例
4.4.1 输出字符表情
4.4.2 大小写字母转换
4.4.3 求三角形的面积
4.5 常见错误分析
本章小结
思考与练习
第5章 选择结构程序设计
学习目标
5.1 关系运算符和关系表达式
5.1.1 关系运算符
5.1.2 关系表达式
5.2 逻辑运算符和逻辑表达式
5.2.1 逻辑运算符
5.2.2 逻辑表达式
5.3 if语句的基本形式
5.3.1 if语句形式
5.3.2 if-else语句形式
5.3.3 if-else-if语句形式
5.4 嵌套的if语句
5.5 条件运算符和条件表达式
5.6 switch语句
5.7 应用举例
5.7.1 判断是否闰年
5.7.2 加油站加油问题
5.7.3 随机数算术运算
5.8 常见错误分析
本章小结
思考与练习
第6章 循环结构程序设计
学习目标
6.1 while循环语句
6.2 do-while循环语句
6.3 for循环语句
6.3.1 for语句的一般形式
6.3.2 for语句的说明
6.4 三种循环语句的比较
6.5 循环嵌套
6.6 转移语句
6.6.1 break语句
6.6.2 continue语句
6.6.3 goto语句和标号
6.7 应用举例
6.7.1 斐波那契数列
6.7.2 四方定理
6.7.3 口算题卡
6.8 常见错误分析
本章小结
思考与练习
核心技术篇
第7章 数组
学习目标
7.1 一维数组
7.1.1 一维数组的定义
7.1.2 一维数组的引用
7.1.3 一维数组的初始化
7.1.4 一维数组应用举例
7.2 二维数组
7.2.1 二维数组的定义
7.2.2 二维数组的引用
7.2.3 二维数组的初始化
7.2.4 二维数组应用举例
7.3 字符数组和字符串
7.3.1 字符数组的定义和引用
7.3.2 字符数组的初始化
7.3.3 字符串
7.3.4 字符数组的输入输出
7.3.5 字符串处理函数
7.3.6 字符数组应用举例
7.4 常见错误分析
本章小结
思考与练习
第8章 函数
学习目标
8.1 函数概述
8.1.1 库函数
8.1.2 用户自定义函数
8.2 函数定义
8.3 函数的调用
8.3.1 函数的调用形式
8.3.2 函数声明
8.3.3 函数的参数传递
8.3.4 返回语句和函数返回值
8.4 函数的嵌套调用
8.5 函数的递归调用
8.6 数组作为函数的参数
8.6.1 数组元素作为函数参数
8.6.2 数组名作为函数参数
8.7 局部变量和全局变量
8.7.1 局部变量
8.7.2 全局变量
8.8 变量的存储类别
8.8.1 局部变量的存储类别
8.8.2 全局变量的存储类别
8.8.3 存储类别小结
8.9 内部函数和外部函数
8.9.1 内部函数
8.9.2 外部函数
8.10 应用举例
8.10.1 哥德巴赫猜想
8.10.2 快速排序
8.10.3 简易存取款程序
8.11 常见错误分析
本章小结
思考与练习
第9章 指针
学习目标
9.1 指针的概念
9.2 指针变量
9.2.1 指针变量定义
9.2.2 指针变量初始化
9.2.3 指针变量引用
9.2.4 空指针与void指针
9.3 指针与数组
9.3.1 指针与一维数组
9.3.2 指针与二维数组
9.3.3 指针与字符串
9.4 指针与函数
9.4.1 指针变量作为函数参数
9.4.2 指针作为函数的返回值
9.4.3 函数的指针
9.5 指针数组和指向指针的指针
9.5.1 指针数组
9.5.2 指向指针的指针
9.5.3 指针数组作为main函数的形参
9.6 应用举例
9.6.1 删除有序数组中重复元素
9.6.2 字符串中求单词个数
9.7 常见错误分析
本章小结
思考与练习
高级应用篇
第10章 预处理命令
学习目标
10.1 宏定义
10.1.1 不带参数的宏定义
10.1.2 带参数的宏定义
10.1.3 撤销宏定义命令
10.2 文件包含命令
10.3 条件编译命令
10.4 常见错误分析
本章小结
思考与练习
第11章 用户自定义数据类型
学习目标
11.1 结构体
11.1.1 结构体类型声明
11.1.2 结构体变量定义
11.1.3 结构体变量初始化
11.1.4 结构体变量引用
11.2 结构体数组
11.2.1 结构体数组定义
11.2.2 结构体数组初始化
11.2.3 结构体数组应用举例
11.3 结构体指针
11.3.1 指向结构体变量的指针
11.3.2 指向结构体数组的指针
11.3.3 结构体作为函数参数
11.3.4 结构体指针的应用举例
11.4 链表
11.4.1 链表概述
11.4.2 处理动态链表的函数
11.4.3 建立动态链表
11.5 共用体
11.6 枚举类型
11.7 用typedef声明新类型名
11.8 常见错误分析
本章小结
思考与练习
第12章 文件
学习目标
12.1 文件概述
12.2 文件基本操作
12.2.1 文件类型指针
12.2.2 文件打开——fopen函数
12.2.3 文件关闭——fclose函数
12.3 文件读写
12.3.1 字符读写——fgetc和fputc函数
12.3.2 字符串读写——fgets和fputs函数
12.3.3 格式化读写——fscanf和fprintf函数
12.3.4 数据块读写——fread和fwrite函数
12.4 文件定位
12.5 应用举例
12.5.1 文件内容复制
12.5.2 将计算结果保存到文件
12.6 常见错误分析
本章小结
思考与练习
第13章 综合实例——学生信息管理系统
学习目标
13.1 开发背景
13.2 开发环境
13.3 系统功能设计
13.4 预处理模块和结构体
13.5 函数设计
13.5.1 主函数
13.5.2 录入记录模块
13.5.3 查找记录模块
13.5.4 删除记录模块
13.5.5 修改记录模块
13.5.6 插入记录模块
13.5.7 记录排序模块
13.5.8 记录个数显示模块
13.5.9 记录显示模块
本章小结
附录
附录1 常用字符与ASCII代码对照表
附录2 运算符的优先级和结合性表
附录3 常用标准库函数
参考文献