第1章 C语言概述 1
1.1 C语言的发展 1
1.2 C语言特点 2
1.3 C语言的基本组成 3
1.3.1 字符集 3
1.3.2 标识符 3
1.4 C语言程序特点与书写风格 4
1.5 运行C程序的步骤与方法 7
1.5.1 Visual C++ 6.0的安装与运行 7
1.5.2 输入与编辑源程序 8
习题1 12
第2章 C语言数据类型、运算符与表达式 13
2.1 C语言的数据类型 13
2.2 C语言常量 13
2.3 变量 16
2.3.1 变量类型 16
2.3.2 类型修饰符 17
2.3.3 访问修饰符 18
2.3.4 变量的定义 18
2.4 类型转化 20
2.4.1 显式类型转化 20
2.4.2 隐式转换 20
2.5 运算符和表达式 21
2.5.1 运算符简介 21
2.5.2 算术运算符和表达式 22
2.5.3 赋值运算符和表达式 25
2.5.4 关系与逻辑运算符和表达式 25
2.5.5 逻辑运算符和表达式 26
2.5.6 其他运算符和表达式 28
2.6 数据类型,运算符与表达式举例 29
习题2 31
第3章 C语言的程序控制和结构化程序设计初步 34
3.1 C语言语句 34
3.2 顺序结构程序设计 35
3.2.1 赋值语句 35
3.2.2 数据输出输入 36
3.3 选择结构程序设计 45
3.3.1 if语句 45
3.3.2 if语句的嵌套 49
3.3.3 switch语句 50
3.4 循环结构程序 53
3.4.1 while语句 53
3.4.2 do...while语句 54
3.4.3 for语句 56
3.4.4 转移语句 59
3.5 举例 61
习题3 63
第4章 编译预处理 67
4.1 宏定义 67
4.1.1 无参数的宏定义 67
4.1.2 带参数的宏定义 70
4.2 文件包含 73
4.3 条件编译 74
习题4 76
第5章 数组 78
5.1 一维数组的定义及应用 78
5.1.1 一维数组的定义 78
5.1.2 一维数组元素的引用 79
5.1.3 一维数组的初始化 79
5.1.4 一维数组的应用举例 80
5.2 二维数组的定义及应用 83
5.2.1 二维数组的定义 83
5.2.2 二维数组元素的引用 84
5.2.3 二维数组的初始化 85
5.2.4 二维数组的应用举例 86
5.3 字符串与字符数组 86
5.3.1 字符串 86
5.3.2 字符数组 87
5.3.3 用于字符处理的函数 90
5.3.4 字符串处理程序设计举例 91
5.4 二维字符数组 93
5.4.1 二维字符数组的初始化 93
5.4.2 二维字符数组的赋值和引用 93
5.4.3 二维字符数组应用举例 93
习题5 94
第6章 函数 98
6.1 函数的定义与调用 98
6.1.1 函数的定义 98
6.1.2 函数调用 100
6.1.3 函数的嵌套调用 102
6.2 递归函数 103
6.2.1 递归的概念 103
6.2.2 递归函数的概念 104
6.3 数组作函数参数 105
6.4 变量的作用域和存储类别 110
6.4.1 变量作用域 110
6.4.2 变量的存储类别 111
6.5 函数的存储类别与作用范围 116
6.5.1 函数的存储类别 116
6.5.2 函数的作用范围 117
6.6 运行一个多文件的程序 119
习题6 119
第7章 指针 125
7.1 指针的概念 125
7.2 指针变量的定义和引用 126
7.2.1 指针变量的定义 126
7.2.2 指针变量的引用 127
7.3 指针变量作为函数参数 129
7.4 指向一维数组的指针变量 131
7.4.1 一维数组指针的概念 131
7.4.2 数组元素地址作实参 132
7.4.3 数组名作函数参数 133
7.4.4 函数的指针形参和函数体中数组的区别 134
7.5 指向二维数组的指针变量 135
7.5.1 二维数组地址的概念 135
7.5.2 通过建立一个行指针来引用二维数组元素 136
7.5.3 二维数组名作为实参时,实参和形参之间的数据传递 137
7.6 字符串与字符串指针变量 139
7.7 指针与函数 141
7.7.1 指向函数的指针变量 141
7.7.2 返回指针值的函数 143
7.8 指针数组 143
7.8.1 指针数组的定义及引用 143
7.8.2 指针数组作为实参时,实参和形参之间的数据传递 144
7.9 指向指针的指针 145
7.10 指针数组作main函数的形参 146
习题7 147
第8章 结构体及共用体 151
8.1 用typedef定义一种新类型 151
8.2 结构体类型 152
8.2.1 结构体类型的说明 153
8.2.2 结构体类型的变量、数组和指针变量的定义 154
8.2.3 对结构体变量的初始化及引用 155
8.2.4 对结构体数组的初始化及引用 157
8.2.5 指向结构体类型数据的指针 158
8.3 结构体变量作为函数参数及返回结构体类型值的函数 160
8.3.1 结构体变量作为函数参数 160
8.4 用指针处理链表 161
8.4.1 动态存储分配和链表的概念 161
8.4.2 利用结构体变量构成链表 162
8.5 共用体 167
8.5.1 共用体类型的说明和变量的定义 167
8.5.2 共用体变量的引用 168
习题8 169
第9章 枚举类型与位运算 172
9.1 枚举 172
9.1.1 枚举的定义枚举类型定义的一般形式 172
9.1.2 枚举变量的说明 172
9.1.3 枚举类型在使用中的规定 173
9.2 位运算 174
9.3 位域 177
9.3.1 位域的定义 177
9.3.2 位域的说明 178
9.3.2 位域的使用 178
习题9 179
第10章 文件 181
10.1 C文件概述 181
10.2 文件指针 182
10.3 文件的打开与关闭 183
10.3.1 文件的打开——fopen函数 183
10.3.2 文件的关闭——fcolse函数 184
10.4 文件的读写操作 185
10.4.1 读写文件中的一个字符 185
10.4.2 读写一个字符串——fgets函数和fputs函数 187
10.4.3 读写一个数据块——fread函数和fwrite函数 189
10.4.4 对文件进行格式化读写——fscanf函数和fprintf函数 190
10.4.5 读写函数的选用原则 191
10.5 位置指针与文件定位 191
10.5.1 位置指针复位函数rewind() 192
10.5.2 随机读写与fseek函数 192
10.5.3 返回文件当前位置的函数ftell() 193
10.6 出错检测 193
10.6.1 ferror函数 193
10.6.2 clearerr函数 194
习题10 194
附录A C语言中的关键字表 197
附录B 运算符与结合性 198
附录C ASCII码字符表 200
附录D VC编译错误信息 201
附录E 国家二级C语言笔试练习题 203
参考文献 251