第1章 概述 1
1.1 C语言概况 1
1.1.1 C语言的产生与发展 1
1.1.2 C语言的特点 2
1.1.3 C语言程序创建的基本步骤 3
1.2 简单的C语言程序 4
1.2.1 一个简单的C程序 4
1.2.2 C语言程序的基本结构 5
1.2.3 C语言程序的书写规范 6
1.3 算法 6
1.3.1 算法概述 6
1.3.2 算法的表示 8
1.4 使用Visual C++6.0实现C语言程序 10
1.4.1 Visual C++6.0集成编译环境的安装 10
1.4.2 使用Visual C++6.0实现C语言程序的基本步骤 12
1.4.3 程序设计举例 13
本章小结 16
计算机等级考试二级真题解析 16
习题 18
第2章 数据类型、运算符和表达式 19
2.1 C语言的字符集 19
2.2 C语言的关键字和标识符 20
2.2.1 关键字 20
2.2.2 标识符 20
2.3 C语言的数据类型 21
2.4 常量 22
2.4.1 整型常量 23
2.4.2 实型常量 23
2.4.3 字符常量 24
2.4.4 字符串常量 25
2.4.5 符号常量 26
2.5 变量 27
2.5.1 变量的概念 27
2.5.2 变量的定义与初始化 27
2.5.3 整型变量 28
2.5.4 实型变量 28
2.5.5 字符变量 29
2.6 C语言的运算符和表达式概述 31
2.6.1 运算符 31
2.6.2 表达式 31
2.6.3 运算符的优先级和结合性 31
2.7 C语言中基本的运算符和表达式 33
2.7.1 算术运算符和算术表达式 33
2.7.2 赋值运算符和赋值表达式 35
2.7.3 关系运算符和关系表达式 37
2.7.4 逻辑运算符和逻辑表达式 38
2.7.5 条件运算符和条件表达式 40
2.7.6 逗号运算符和逗号表达式 41
2.7.7 强制类型转换运算符 42
2.7.8 其他运算符 43
本章小结 44
计算机等级考试二级真题解析 45
习题 46
第3章 语句及顺序结构控制 48
3.1 C语言的基本语句 48
3.2 数据的输入和输出 49
3.2.1 getchar和putchar函数(字符输入输出函数) 49
3.2.2 printf函数(格式输出函数) 51
3.2.3 scanf函数(格式输入函数) 55
3.3 顺序结构程序设计 58
3.4 程序举例 60
本章小结 61
计算机等级考试二级真题解析 62
习题 65
第4章 选择结构程序设计 66
4.1 选择结构的概念 66
4.2 if语句 67
4.2.1 if语句的三种形式 67
4.2.2 if语句的嵌套 73
4.3 switch语句 75
4.4 程序举例 80
本章小结 85
计算机等级考试二级真题解析 85
习题 89
第5章 循环结构 91
5.1 循环结构的概念 91
5.2 while语句 92
5.3 do…while语句 96
5.4 for语句 97
5.5 break语句 101
5.6 continue语句 104
5.7 循环的嵌套 105
5.8 程序举例 108
本章小结 114
计算机等级考试二级真题解析 115
习题 118
第6章 数组 120
6.1 一维数组 120
6.1.1 一维数组的定义 120
6.1.2 一维数组的引用 121
6.1.3 一维数组的初始化 122
6.1.4 一维数组应用举例 123
6.2 二维数组 123
6.2.1 二维数组的定义 123
6.2.2 二维数组的引用 124
6.2.3 二维数组的初始化 125
6.2.4 二维数组应用举例 126
6.3 字符数组 126
6.3.1 字符数组的定义 127
6.3.2 字符数组的引用与初始化 127
6.3.3 字符串 128
6.3.4 字符数组与字符串的输入与输出 129
6.3.5 字符串处理函数 130
6.4 程序举例 133
本章小结 137
计算机等级考试二级真题解析 138
习题 141
第7章 函数 142
7.1 模块化程序设计思想 142
7.1.1 模块化程序设计与信息隐藏 142
7.1.2 C语言程序设计的方法 143
7.2 函数的定义 143
7.2.1 函数的分类 143
7.2.2 函数的定义 144
7.2.3 函数的返回值 145
7.3 函数的调用 146
7.3.1 函数的调用 146
7.3.2 函数的参数传递 148
7.3.3 函数声明 149
7.4 数组作为函数参数 151
7.4.1 数组元素作为函数参数 151
7.4.2 一维数组作为函数参数 152
7.4.3 二维数组作为函数参数 154
7.5 函数的嵌套调用和递归调用 156
7.5.1 函数的嵌套调用 156
7.5.2 函数的递归调用 157
7.6 局部变量与全局变量 162
7.6.1 局部变量 162
7.6.2 全局变量 163
7.7 变量的存储类型 166
7.7.1 自动变量 166
7.7.2 静态变量 168
7.7.3 寄存器变量 169
7.8 内部函数与外部函数 170
7.8.1 内部函数 170
7.8.2 外部函数 171
本章小结 171
计算机等级考试二级真题解析 172
习题 176
第8章 编译预处理 177
8.1 宏定义 177
8.1.1 不带参数的宏定义及宏替换 177
8.1.2 带参数的宏定义及宏替换 179
8.2 文件包含 180
8.3 条件编译 181
8.4 程序举例 183
本章小结 184
计算机等级考试二级真题解析 185
习题 186
第9章 指针 187
9.1 指针的概念 187
9.1.1 指针、地址和指针变量 187
9.1.2 直接访问和间接访问 187
9.2 指针变量的定义与引用 188
9.2.1 指针变量的定义 188
9.2.2 指针变量的引用 188
9.3 指针变量作为函数参数 192
9.4 数组的指针表示 196
9.4.1 一维数组的指针 197
9.4.2 用指针引用数组元素 198
9.4.3 数组作为函数参数时的指针表示 201
9.4.4 多维数组与指针 204
9.5 通过指针引用字符串 210
9.6 指针数组和指向指针的指针 213
9.6.1 指针数组的概念 213
9.6.2 指针变量的指针 214
9.6.3 main函数的参数 216
9.7 函数指针 217
9.8 指针函数 219
9.9 指针运算 221
本章小结 223
计算机等级考试二级真题解析 224
习题 227
第10章 结构体和共用体 229
10.1 结构体定义和引用 229
10.1.1 概述 229
10.1.2 定义结构体类型变量的方法 230
10.1.3 结构体类型变量的引用 231
10.1.4 结构体类型变量的初始化 232
10.2 结构体数组 234
10.2.1 结构数组的说明 234
10.2.2 结构体数组的定义 235
10.2.3 结构体数组的引用 235
10.2.4 结构体数组的初始化 236
10.3 结构体类型数据的指针 238
10.3.1 指向结构体变量的指针定义和初始化 238
10.3.2 结构体指针变量引用结构体变量中的成员 238
10.3.3 指向结构体数组的指针 240
10.3.4 结构体变量和结构体指针变量作为函数参数 241
10.4 链表 243
10.4.1 链表的基本概念 243
10.4.2 链表的基本操作 245
10.5 共用体 251
10.5.1 共用体变量的定义 251
10.5.2 共用体变量的引用 252
10.5.3 共用体的特点 253
10.6 枚举类型 254
10.7 用typedef定义类型 255
本章小结 256
计算机等级考试二级真题解析 257
习题 258
第11章 位运算 260
11.1 位运算的概念 260
11.2 位运算符 260
本章小结 267
计算机等级考试二级真题解析 267
习题 269
第12章 文件 270
12.1 C文件的概念 270
12.2 文件类型及文件指针 270
12.2.1 文件的类型 270
12.2.2 文件指针 271
12.3 文件的打开和关闭 272
12.3.1 文件的打开 272
12.3.2 文件的关闭 274
12.4 文件的读写 274
12.4.1 fgetc()/getc()和fputc()/putc()函数 274
12.4.2 fgets()和fputs()函数 275
12.4.3 fscanf()和fprinf()函数 276
12.4.4 fread()和 fwrite()函数 277
12.4.5 getw()和 putw()函数 279
12.5 其他和文件有关的库函数 280
12.5.1 件检测函数 280
12.5.2 件定位函数 281
12.6 程序举例 283
本章小结 285
计算机等级考试二级真题解析 285
习题 289
附录A 常用字符与ASCII马对照表 290
附录B 常用标准库函数 291