第1章 C语言概述 1
1.1 计算机程序设计语言的发展 1
1.2 C语言的发展及特点 2
1.2.1 C语言的发展 2
1.2.2 C语言的特点 3
1.3 C程序的基本结构和组成 4
1.3.1 C程序的基本结构 4
1.3.2 C程序的基本组成 5
1.4 C语言的基本标识符 6
1.5 运行C语言程序的步骤 6
1.5.1 运行C语言程序的一般过程 6
1.5.2 运行C语言程序的一个实例 7
本章小结 9
习题一 10
第2章 数据类型与表达式 12
2.1 C语言数据类型简介 12
2.2 常量和变量 13
2.3 整数类型 14
2.4 实数类型 18
2.5 字符类型 20
2.6 数据类型转换 23
2.7 运算符与表达式 24
2.7.1 C语言运算符简介 24
2.7.2 算术运算符和算术表达式 25
2.7.3 赋值运算符 27
2.7.4 逗号运算符 28
2.7.5 位运算符 29
本章小结 31
习题二 32
第3章 语句与流程控制 34
3.1 算法基础 34
3.1.1 算法的定义 34
3.1.2 算法的描述方法 34
3.1.3 算法设计的要求 39
3.2 基本输入与输出语句 39
3.2.1 常用的输入函数 39
3.2.2 常用的输出函数 41
3.2.3 输入函数和输出函数举例 42
3.3 顺序结构 43
3.4 选择结构 44
3.4.1 if语句 44
3.4.2 switch语句 49
3.4.3 程序应用举例 50
3.5 循环结构 53
3.5.1 while语句 53
3.5.2 do-while语句 54
3.5.3 for语句 55
3.6 控制转移语句 58
3.7 算法综合实例分析 59
本章小结 62
习题三 62
第4章 函数 67
4.1 概述 67
4.2 函数定义 69
4.2.1 无参函数的定义形式 69
4.2.2 有参函数的定义形式 70
4.2.3 函数的返回值 70
4.3 调用函数 71
4.3.1 函数调用的形式 71
4.3.2 形式参数和实际参数 72
4.3.3 被调用函数的声明和函数原型 74
4.4 函数的嵌套调用 76
4.5 递归函数 77
4.6 局部变量和全局变量 81
4.6.1 局部变量 81
4.6.2 全局变量 83
4.7 变量的存储类别 86
4.7.1 动态存储方式与静态存储方式 86
4.7.2 变量的存储类别 86
4.7.3 用extern声明外部变量 89
4.8 外部函数和内部函数 90
4.9 编译预处理 92
4.9.1 宏定义 92
4.9.2 文件包含 98
本章小结 100
习题四 100
第5章 数组 105
5.1 数组的概念 105
5.2 一维数组 105
5.2.1 一维数组声明 105
5.2.2 一维数组使用 106
5.2.3 一维数组初始化 107
5.2.4 一维数组应用示例 109
5.3 二维数组 111
5.3.1 二维数组声明 111
5.3.2 二维数组使用 112
5.3.3 二维数组初始化 112
5.3.4 二维数组程序举例 113
5.4 字符数组与字符串 115
5.4.1 字符数组声明 115
5.4.2 字符数组初始化 115
5.4.3 字符数组的输入/输出 117
5.4.4 字符串处理函数 118
5.5 数组作为函数参数 122
5.5.1 数组元素作为函数实参 122
5.5.2 数组元素作为函数实参 123
5.6 数组应用举例 125
本章小结 132
习题五 132
第6章 指针 137
6.1 指针的概念 137
6.2 指针变量的定义与运算 139
6.2.1 指针变量的定义 139
6.2.2 指针变量的运算 141
6.3 指针与数组 144
6.3.1 指针与一维数组 144
6.3.2 指针与二维数组 148
6.3.3 指针与字符串 152
6.4 指针与函数 156
6.4.1 指针变量作为函数参数 156
6.4.2 用指向函数的指针变量作为函数参数 158
6.4.3 返回指针的函数 160
6.5 动态内存管理 161
6.5.1 什么是动态内存管理 162
6.5.2 动态内存管理函数 162
6.5.3 动态内存管理应用举例 166
6.6 指针应用举例 168
本章小结 173
习题六 176
第7章 用户自己建立数据类型 182
7.1 结构体类型变量的定义 182
7.1.1 结构体类型的概念及定义 182
7.1.2 结构体类型变量的定义 184
7.1.3 结构体类型变量的引用 185
7.2 使用结构体数组 188
7.2.1 结构体数组的定义及初始化 188
7.2.2 结构体数组的应用举例 190
7.3 结构体指针 192
7.3.1 结构体指针的定义及初始化 192
7.3.2 指向结构体数组的指针 193
7.3.3 结构体变量和指向结构体变量的指针作为函数参数 195
7.4 结构体与链表 197
7.4.1 链表概述 197
7.4.2 静态链表的建立 198
7.4.3 动态链表的创建和输出 199
7.4.4 动态链表的综合操作 201
7.5 共用体类型 203
7.5.1 共用体概述 204
7.5.2 共用体变量的引用 205
7.5.3 共用体综合应用 207
7.6 枚举类型数据 208
7.6.1 枚举类型概述 208
7.6.2 枚举类型应用举例 209
7.7 用typedef声明自定义类型数据 211
本章小结 211
习题七 212
第8章 文件 216
8.1 文件的基本知识 216
8.1.1 文件概述 216
8.1.2 C文件结构及其指针 216
8.1.3 文件系统的缓冲性 217
8.2 文件的打开与关闭 218
8.2.1 文件的打开函数fopen() 218
8.2.2 文件的关闭函数fclose() 220
8.3 文件的读写操作 220
8.3.1 读/写字符函数fgetc()和fputc() 220
8.3.2 读/写字符串函数fgets()和fputs() 221
8.3.3 读/写数据块函数fread()和fwrite() 221
8.3.4 读/写格式化函数fscanf()和fprintf() 222
8.4 文件的定位和随机读写 222
8.5 文件检测函数 223
8.6 应用举例 224
本章小结 225
习题八 225
附录A ASCII码表 227
附录B C语言常用关键字 228
附录C C语言常用库函数 229
参考文献 236