内容简介
第1章 为什么要学C语言
1.1引言
1.2游戏、黑客和C语言
1.3 C语言,不老的传说
1.4 C语言的爱与恨
1.5 C语言教给我们的事
1.6什么是“编程”
1.7本章小结
习题1
第2章 C数据类型
2.1常量与变量
2.1.1常量
2.1.2变量
2.2简单的屏幕输出
2.3数据类型
2.4如何计算变量或数据类型所占内存空间的大小
2.5变量的赋值和赋值运算符
2.6本章扩充内容
2.7本章知识点小结
2.8本章常见错误小结
习题2
本章实验题
第3章 简单的算术运算和表达式
3.1C运算符和表达式
3.1.1算术运算符和表达式
3.1.2复合的赋值运算符
3.1.3增1和减1运算符
3.2宏常量与宏替换
3.3 const常量
3.4自动类型转换与强制类型转换运算符
3.5常用的标准数学函数
3.6本章知识点小结
3.7本章常见错误小结
习题3
本章实验题
第4章 键盘输入和屏幕输出
4.1单个字符的输入/输出
4.1.1字符常量
4.1.2字符的输入/输出
4.2数据的格式化屏幕输出
4.3数据的格式化键盘输入
4.4本章扩充内容
4.5本章知识点小结
4.6本章常见错误小结
习题4
本章实验题
第5章 选择控制结构
5.1生活中与计算机中的问题求解方法
5.2算法的概念及其描述方法
5.2.1算法的概念
5.2.2算法的描述方法
5.3关系运算符与关系表达式
5.4用于单分支控制的条件语句
5.5用于双分支控制的条件语句
5.6条件运算符和条件表达式
5.7用于多分支控制的条件语句
5.8用于多路选择的switch语句
5.9逻辑运算符和逻辑表达式
5.10本章扩充内容
5.10.1程序测试
5.10.2对输入非法字符的检查与处理
5.10.3位运算符
5.11本章知识点小结
5.12本章常见错误小结
习题5
本章实验题
第6章 循环控制结构
6.1循环控制结构与循环语句
6.2计数控制的循环
6.3嵌套循环
6.4条件控制的循环
6.5流程的转移控制
6.5.1goto语句
6.5.2 break语句
6.5.3 continue语句
6.5.4穷举法编程实例
6.6本章扩充内容
6.6.1结构化程序设计的核心思想
6.6.2常用的程序调试与排错方法
6.6.3类型溢出
6.7本章知识点小结
6.8本章常见错误小结
习题6
本章实验题
第7章 函数
7.1分而治之与信息隐藏
7.2函数的定义
7.2.1函数的分类
7.2.2函数的定义
7.3向函数传递值和从函数返回值
7.3.1函数调用
7.3.2函数原型
7.3.3函数封装与防御性程序设计
7.3.4函数设计的基本原则
7.4函数的递归调用和递归函数
7.5变量的作用域和存储类型
7.5.1变量的作用域
7.5.2变量的存储类型
7.6模块化程序设计
7.6.1模块分解的基本原则
7.6.2自顶向下、逐步求精
7.6.3模块化程序设计实例
7.7本章扩充内容
7.8本章知识点小结
7.9本章常见错误小结
习题7
本章实验题
第8章 数组
8.1一维数组的定义和初始化
8.2二维数组的定义和初始化
8.3向函数传递一维数组
8.4排序和查找
8.5向函数传递二维数组
8.6本章知识点小结
8.7本章常见错误小结
习题8
本章实验题
第9章 指针
9.1变量的内存地址
9.2指针变量的定义和初始化
9.3间接寻址运算符
9.4按值调用与模拟按引用调用
9.5用指针变量作函数参数的程序实例
9.6函数指针及其应用
9.7本章知识点小结
9.8本章常见错误小结
习题9
本章实验题
第10章 字符串
10.1字符串常量
10.2字符串的存储
10.3字符指针
10.4字符串的访问和输入/输出
10.4.1如何访问字符串中的单个字符
10.4.2字符串的输入/输出
10.5字符串处理函数
10.6向函数传递字符串
10.7从函数返回字符串指针
10.8本章扩充内容
10.9本章知识点小结
10.10本章常见错误小结
习题10
本章实验题
第11章 指针和数组
11.1指针和一维数组间的关系
11.2指针和二维数组间的关系
11.3指针数组及其应用
11.3.1指针数组用于表示多个字符串
11.3.2指针数组用于表示命令行参数
11.4动态数组
11.4.1 C程序的内存映像
11.4.2动态内存分配函数
11.4.3长度可变的一维动态数组
11.4.4长度可变的二维动态数组
11.5本章扩充内容
11.5.1常见的内存错误及其对策
11.5.2缓冲区溢出攻击
11.6本章知识点小结
11.7本章常见错误小结
习题11
本章实验题
第12章 结构体和共用体
12.1从基本数据类型到抽象数据类型
12.2结构体的定义
12.2.1为什么要定义结构体类型
12.2.2结构体变量的定义
12.2.3用typedef定义数据类型
12.2.4结构体变量的初始化
12.2.5嵌套的结构体
12.2.6结构体变量的引用
12.2.7结构体所占内存的字节数
12.3结构体数组的定义和初始化
12.3.1结构体数组的定义
12.3.2结构体数组的初始化
12.4结构体指针的定义和初始化
12.4.1指向结构体变量的指针
12.4.2指向结构体数组的指针
12.5向函数传递结构体
12.6共用体
12.7枚举数据类型
12.8动态数据结构——单向链表
12.8.1问题的提出
12.8.2链表的定义
12.8.3单向链表的建立
12.8.4单向链表的删除操作
12.8.5单向链表的插入操作
12.9本章知识点小结
12.10本章常见错误小结
习题12
本章实验题
第13章 文件操作
13.1二进制文件和文本文件
13.2文件的打开和关闭
13.3按字符读写文件
13.4按格式读写文件
13.5按数据块读写文件
13.6本章扩充内容
13.6.1文件的随机读写
13.6.2标准输入/输出重定向
13.7本章知识点小结
13.8本章常见错误小结
习题13
本章实验题
附录A C关键字
附录B Visual C++下基本数据类型的取值范围
附录C C运算符的优先级与结合性
附录D常用字符与ASCII值对照表
附录E常用的ANSI C标准库函数
参考文献