第1章 认识C语言
1-1 缘起
1-2 C语言的特点
1-3 C语言与您
1-4 程序的规划与操作
1-5 编写第一个C语言程序
1-6 程序代码的编译、执行与保存
1-7 编译与执行的过程
1-8 本书的编排与惯例
课后习题
第2章 简单的C语言
2-1 一个简单的例子
2-2 C语言解析
2-2-1 #include宏命令及头文件
2-2-2 main()函数
2-2-3 花括号、段及主体
2-2-4 变量
2-2-5 变量的赋值
2-2-6 为什么要声明变量
2-2-7 printf()函数
2-3 标识符及关键字
2-3-1 标识符
2-3-2 关键字
2-4 再举一个简单的例子
2-5 调试
2-5-1 语法错误(Syntax Error)
2-5-2 语义错误(Semantic Error)
2-6 提高程序的可读性
课后习题
第3章 变量与数据类型
3-1 简单的实例
3-2 变量与常量
3-3 基本的数据类型
3-3-1 整型类型int
3-3-2 字符类型char
3-3-3 浮点数类型float
3-3-4 双精度浮点数类型double
3-4 数据类型的转换
课后习题
第4章 格式化的输入与输出
4-1 printf()函数
4-1-1 使用printf()函数
4-1-2 printf()函数的修饰符(Modifier)
4-1-3 不同类型的输出
4-1-4 printf()函数的换行
4-2 scanf()函数
4-2-1 scanf()函数的使用
4-2-2 scanf()函数的使用方式
4-2-3 字符串的输入
4-3 输入/输出字符的函数
4-3-1 getchar()与putchar()函数
4-3-2 getche()与putch()函数
4-3-3 getch()函数
课后习题
第5章 运算符、表达式与语句
5-1 运算符
5-1-1 赋值运算符
5-1-2 一元运算符
5-1-3 算术运算符
5-1-4 关系运算符与if语句
5-1-5 自增与自减运算符
5-1-6 逻辑运算符
5-1-7 括号运算符
5-2 运算符的优先级
5-3 表达式
5-4 表达式的类型转换
5-4-1 类型转换的规则
5-4-2 强制类型转换
课后习题
第6章 循环
6-1 结构化程序设计
6-1-1 顺序结构
6-1-2 选择结构
6-1-3 循环结构
6-2 for循环
6-3 while循环
6-3-1 使用while循环
6-3-2 无穷循环的产生
6-4 do while循环
6-5 空循环
6-6 我要使用哪一种循环
6-7 嵌套循环
6-8 循环的跳离
6-8-1 break语句
6-8-2 continue语句
课后习题
第7章 选择性语句
7-1 我的程序会转弯——if 语句
7-2 其他选择
7-2-1 if-else语句
7-2-2 更多的选择——嵌套if语句
7-2-3 else if语句
7-2-4 非常选择——if与else的配对问题
7-3 if的简洁版——条件运算符
7-4 更好用的多重选择——switch语句
7-4-1 switch语句与break语句
7-4-2 不加break语句的switch语句
7-5 goto语句
课后习题
第8章 函数与预处理命令
8-1 简单的函数
8-2 函数的基本结构
8-2-1 函数原型的声明、编写与调用
8-2-2 函数的自变量与参数
8-2-3 函数的常量返回值
8-3 变量的等级
8-3-1 局部变量
8-3-3 外部变量
8-3-4 静态外部变量
8-3-5 寄存器变量
8-4 同时使用多个函数
8-4-1 调用多个函数
8-4-2 函数之间的相互调用
8-4-3 递归函数
8-5 预处理命令——#define
8-5-1 #define预处理
8-5-2 为什么要用#define
8-5-3 const修饰符
8-5-4 #define的另一功能——宏——取代简单的函数
8-5-5 使用自变量的宏
8-5-6 宏号的使用
8-5-7 使用函数还是使用宏
8-6 再来看看#include预处理命令
8-6-1 使用自定义的头文件
8-6-2 标准的头文件
8-6-3 头文件与函数原型
课后习题
第9章 数组与字符串
9-1 一维数组
9-1-1 数组的声明
9-1-2 数组中元素的表示方法
9-1-3 数组初始化赋值
9-1-4 数组的输入与输出
9-1-5 数组越界的检查
9-2 二维数组以上的多维数组
9-2-1 二维数组的声明与初始化赋值
9-2-2 二维数组元素的引用及存取
9-2-3 多维数组
9-3 传递数组给函数
9-3-1 以一维数组为自变量来传递
9-3-2 冒泡排序法
9-3-3 传递多维数组
9-3-4 传递“值”还是“地址”到函数
9-4 字符串
9-4-1 字符串常数
9-4-2 字符串的声明与初始化的赋值
9-5 字符串的输入与输出函数
9-5-1 scanf()与printf()函数
9-5-2 gets()与puts()函数
9-6 字符串数组
9-6-1 字符串数组的声明与初始化赋值
9-6-2 字符串数组元素的引用及存取
课后习题
第10章 指针
10-1 指针概述
10-1-1 什么是指针
10-1-2 为什么要用指针
10-2 指针变量
10-2-1 指针变量的定义
10-2-2 指针变量的使用
10-3 指针运算符
10-3-1 地址运算符&
10-3-2 按照地址取值运算符*
10-3-3 定义指针变量所指类型的重要性
10-4 指针的运算
10-4-1 指针的赋值运算与赋值
10-4-2 指针的加法与减法运算
10-4-3 指针的减法运算
10-5 指针与函数
10-6 指针与数组
10-6-1 指针与数组的关系
10-6-2 字符串数组与指针数组
10-7 指向指针的指针——双重指针
课后习题
第11章 结构体与其他数据类型
11-1 结构体
11-1-1 结构体的声明
11-1-2 结构体变量的使用及初始化赋值
11-2 嵌套结构体
11-3 结构体数组
11-4 结构体指针
11-5 以结构体为自变量传递到函数
11-5-1 将整个结构体传递到函数
11-5-2 将结构体字段分别传递
11-5-3 传递结构体的地址
11-6 共用体(Union)
11-6-1 共用体的定义及声明
11-6-2 共用体与结构体的差异
11-6-3 共用体的使用及初始化赋值
11-7 枚举类型(Enumeration)
11-7-1 枚举类型的定义及声明
11-7-2 枚举类型的使用及初始化赋值
11-8 使用自定义的类型——typedef
课后习题
第12章 文件
12-1 文件的概念
12-2 文件的操作方式
12-3 有缓冲区的文件处理函数
12-3-1 文件处理函数的整理
12-3-2 文件处理函数的练习
12-4 无缓冲区的文件处理函数
12-4-1 文件处理函数的整理
12-4-2 文件处理函数的练习
12-5 二进制文件的使用
12-5-1 二进制文件有缓冲区函数使用
12-5-2 二进制文件无缓冲区函数使用
12-6 文本模式及二进制模式的比较
12-6-1 以文本模式存储数值
12-6-2 以二进制模式存储数值
12-6-3 换行与文件结束的讨论
12-6-4 输出相对应字符的十六进制码
12-7 顺序存取与随机存取
12-7-1 顺序存取(Sequential Access)
12-7-2 随机存取(Random Access)
课后习题
第13章 大型程序的发展
13-1 程序的模块化
13-2 各自编译的实例
13-3 条件式编译
13-3-1 #if、#else与#endif命令
13-3-2 #elif命令
13-3-3 #ifdef和#ifndef命令
13-3-4 #undef命令
13-4 命令行参数的使用
课后习题
第14章 位运算
14-1 数字系统、位和字节
14-2 二进制系统
14-2-1 二进制的整数表示方式
14-2-2 带有正负号的二进制整数
14-3 其他的进制系统
14-3-1 八进制系统
14-3-2 十六进制系统
14-4 位运算符
14-4-1 位逻辑运算符
14-4-2 位位移运算符
14-5 位段
课后习题
附录
附录A Dev C++的使用
附录B 常用的函数库
附录C ASCII码表