第一章 程序设计基本概念
1.1 程序和程序设计
1.1.1 C程序
1.1.2 程序设计
1.2 算法
l.3 结构化程序设计和模块化结构
1.3.1 结构化程序
1.3.2 模块化结构
习题
第二章 C程序设计的初步知识
2.1 简单C语言程序的构成和格式
2.2 常量、变量和标识符
2.2.1 标识符
2.2.2 常量
2.2.3 用定义一个符号名的方法来代表一个常量
2.2.4 变量
2.3 整型数据
2.3.1 整型常量
2.3.2 整型变量
2.3.3 整型数据的分类
2.3.4 整数在内存中的存储形式
2.4 实型数据
2.4.1 实型常量
2.4.2 实型变量
2.5 算术表达式
2.5.1 基本的算术运算符
2.5.2 运算符的优先级、结合性和算术表达式
2.5.3 强制类型转换表达式
2.6 赋值表达式
2.6.1 赋值运算符和赋值表达式
2.6.2 复合的赋值表达式
2.6.3 赋值运算中的类型转换
2.7 自加、自减运算符和逗号运算符
2.7.1 自加运算符(++)和自减运算符(一一)
2.7.逗号运算符和逗号表达式
习题
第三章 顺序结构
3.1 赋值语句
3.2 数据输出
3.2.1 printf函数的一般调用形式
3.2.2 printf函数中常用的格式说明
3.2.3 调用printf函数时的注意事项
3.3 数据输入
3.3.1 scanf函数的一般调用形式
3.3.2 scanf函数中常用的格式说明
3.3.3 通过scanf函数从键盘输入数据
3.4 复合语句和空语句
3.4.1 复合语句
3.4.2 空语句
3.5 程序举例
习题
第四章 选择结构
4.1 关系运算和逻辑运算
4.1.1 C语言中的逻辑值
4.1.2 关系运算符和关系表达式
4.1.3 逻辑运算符和逻辑表达式
4.2 if语句和用if语句构成的选择结构
4.2.1 if语句
4.2.2 嵌套的if语句
4.3 条件表达式构成的选择结构
4.4 switch语句以及用switch语句和break语句构成的选择结构
4.4.1 switch语句
4.4.2 switch语句的执行过程
4.4.3 在switch语句体中使用break语句
4.5 语句标号和goto语句
4.5.1 语句标号
4.5.2 goto语句
习题
第五章 循环结构
5.1 while语句和用while语句构成的循环结构
5.1.1 while循环的一般形式
5.1.2 while循环的执行过程
5.2 do.while语句和用d0.while语句构成的循环结构
5.2.1 do.while语句构成的循环结构
5.2.2 do.while循环的执行过程
5.3 for语句和用for语句构成的循环结构
5.3.1 for语句构成的循环结构
5.3.2 for循环的执行过程
5.3.3 有关for语句的说明
5.4 循环结构的嵌套
5.5 break和continue语句在循环体中的作用
5.5.1 break语句
5.5.2 continue语句
5.6 程序举例
习题
第六章 字符型数据
6.1 字符型常量
6.1.1 字符常量
6.1.2 转义字符常量
6.1.3 字符串常量
6.1.4 可对字符量进行的运算
6.2 字符变量
6.3 字符的输入和输出
6.3.1 调用printf和scanf函数输出和输入字符
6.3.2 调用putchar和getchar函数输出和输入字符
6.4 程序举例
习题
第七章 函数
7.1 库函数
7.2 函数的定义和返回值
7.2.1 函数定义的语法
7.2.2 函数的返回值
7.3 函数的调用
7.3.1 函数的两种调用方式
7.3.2 函数调用时的语法要求
7.4 函数的说明
7.4.1 函数说明的形式
7.4.2 函数说明的位置
7.5 调用函数和被调用函数之间的数据传递
7.6 程序举例
习题
第八章 指针
8.1 变量的地址和指针
8.2 指针变量的定义和指针变量的基类型
8.3 给指针变量赋值
8.3.1 给指针变量赋地址值
8.3.2 给指针变量赋“空”值
8.4 对指针变量的操作
8.4.1 通过指针来引用一个存储单元
8.4.2 移动指针
8.4.3 指针比较
8.5 函数之间地址值的传递
8.5.1 形参为指针变量时,实参和形参之间的数据传递
8.5.2 通过传送地址值,在被调用函数中直接改变调用函数中变量的值
8.5.3 函数返回地址值
习题
第九章 数组
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.2.4 用带下标的指针变量引用一维数组元素
9.3 函数之间对一维数组和数组元素的引用
9.3.1 数组元素作实参
9.3.2 数组名作实参
9.3.3 数组元素地址作为实参
9.3.4 函数的指针形参和函数体中数组的区别
9.4 一维数组应用举例
9.5 二维数组的定义和二维数组元素的引用
9.5.1 二维数组的定义
9.5.2 二维数组元素的引用
9.5.3 二维数组的初始化
9.5.4 通过赋初值定义二维数组的大小
9.5.5 二维数组的定义和数组元素引用举例
9.6 二维数组和指针
9.6.1 二维数组和数组元素的地址
9.6.2 通过地址来引用二维数组元素
9.6.3 通过建立一个指针数组来引用二维数组元素
9.6.4 通过建立一个行指针来引用二维数组元素
9.7 二维数组名和指针数组作为实参
9.7.1 二维数组名作为实参时,实参和形参之间的数据传递
9.7.2 指针数组作为实参时,实参和形参之间的数据传递
9.8 二维数组程序举例
习题
第十章 字符串
10.1 用一个一维字符数组来存放字符串
10.1 一通过赋初值的方式给一维字符数组赋字符串
10.1.2 在c程序执行过程中给一维字符数组赋字符串
10.2 使指针指向一个字符串
lO.2.1 通过赋初值的方式使指针指向一个字符串
lO.2.2 通过赋值运算使指针指向一个字符串
10.2.3 用字符数组作为字符串和用指针向的一个字符串之间的区别
10.3 字符串的输入和输出
10.3.1 输入和输出字符串时的必要条件
10.3.2 用格式说明符%进行整串输入和输出
10.3.3 调用gets、puts函数,从终端
进行字符串行的输入和输出
10.4 字符串数组
10.5 用于字符串处理的函数
10.6 程序举例
习题
第十一章 对函数的进一步讨论
11.1 传给main函数的参数
l1.2 通过实参向函数传递函数名或指向函数的指针变量
11.3 函数的递归调用
习题
第十二章 C语言中用户标识符的作用域和存储类
12.1 局部变量、全局变量和存储分类
12.1.1 用户标识符的作用域
12.1.2 局部变量、全局变量和存储分类
12.2 局部变量及其作用域和生存期
12.2.1 auto变量
12.2.2 register变量
12.2.3 静态存储类的局部变量
12.3 全局变量及其作用域和生存期
12.3.1 全局变量的作用域和生存期
12.3.2 在同一编译单位内用extem说明符来扩展全局变量的作用域
12.3.3 在不同编译单位内用extern说明符来扩展全局变量的作用域
12.3.4 静态全局变量
12.4 函数的存储分类
12.4.1 用extem说明函数
12.4.2 用static说明函数
习题
第十三章 编译预处理和动态存储分配
第十四章 结构体、共用体和用户定义类型
第十五章 位运算
第十六章 文件
附录