第1章 引言 1
1.1 程序设计语言 1
1.1.1 低级语言 1
1.1.2 高级语言 2
1.2 程序结构及其特点 3
1.2.1 程序结构 3
1.2.2 程序结构的特点 3
1.2.3 程序书写规则 5
1.2.4 程序保留字 6
1.3 Visual C++6.0的安装及使用 7
1.3.1 Visual C++6.0的安装 7
1.3.2 Visual C++6.0的启动 7
1.3.3 Visual C++6.0上机过程 8
1.3.4 Visual C++6.0的退出 10
1.4 习题 10
1.5 实验 12
第2章 数据类型及基本运算量 17
2.1 数据类型 17
2.1.1 基本数据类型 17
2.1.2 构造数据类型 19
2.1.3 指针类型 19
2.1.4 空类型(void) 19
2.2 常量 20
2.2.1 直接常量 20
2.2.2 符号常量 22
2.3 变量 23
2.3.1 变量的种类 23
2.3.2 变量的定义 24
2.3.3 变量的使用 25
2.4 库函数 26
2.4.1 数学函数 26
2.4.2 输入输出函数 27
2.5 运算符及表达式 27
2.5.1 运算符及表达式简介 28
2.5.2 算术运算符和算术表达式 29
2.5.3 赋值运算符和赋值表达式 33
2.5.4 逗号运算符和逗号表达式 36
2.6 习题 37
2.7 实验 39
第3章 顺序结构程序设计 42
3.1 结构化程序设计 42
3.1.1 结构化程序的特点 42
3.1.2 结构化程序的设计方法 42
3.2 传统流程图及N-S结构化流程图 43
3.3 C语句概述 45
3.4 赋值语句 47
3.5 数据输入输出函数调用语句 48
3.5.1 数据输入输出的方法 48
3.5.2 字符输入输出 48
3.5.3 格式输入与输出 50
3.6 顺序结构程序设计举例 57
3.7 习题 59
3.8 实验 61
第4章 选择结构程序设计 63
4.1 选择结构程序设计概述 63
4.2 关系运算符和表达式 64
4.2.1 关系运算符 64
4.2.2 关系表达式 65
4.3 逻辑运算符和表达式 66
4.3.1 逻辑运算符 66
4.3.2 逻辑表达式 67
4.4 用if语句实现选择结构程序设计 68
4.4.1 if语句的3种形式 68
4.4.2 if语句的嵌套 73
4.4.3 条件运算符和条件表达式 75
4.5 用switch语句实现选择结构程序设计 77
4.6 选择结构程序设计举例 80
4.7 习题 84
4.8 实验 87
第5章 循环结构程序设计 90
5.1 循环结构程序设计概述 90
5.2 用于实现循环结构程序设计的语句 91
5.2.1 用while语句实现循环结构程序设计 91
5.2.2 用do-while语句实现循环结构程序设计 97
5.2.3 用for语句实现循环结构程序设计 103
5.2.4 循环的嵌套 108
5.2.5 几种循环语句的比较 111
5.3 用break和continue语句提前结束循环 111
5.3.1 break语句 111
5.3.2 continue语句 113
5.4 循环结构程序设计举例 115
5.5 习题 118
5.6 实验 122
第6章 数组 126
6.1 数组的概念 126
6.2 数组的定义 127
6.3 数组的初始化 129
6.4 数组元素的使用 131
6.5 数值数组元素的常用操作 134
6.5.1 一维数组元素的常用操作 134
6.5.2 二维数组元素的常用操作 145
6.6 数值数组的应用举例 151
6.6.1 一维数组程序举例 151
6.6.2 二维数组程序举例 155
6.7 字符数组的使用 156
6.7.1 字符串和字符串结束标志 156
6.7.2 字符数组的输入输出 157
6.7.3 字符串处理函数 158
6.8 字符数组应用程序举例 163
6.9 习题 165
6.10 实验 169
第7章 用户自定义函数 173
7.1 用户自定义函数的种类 173
7.2 函数的定义 174
7.3 被调函数的声明 176
7.4 函数的调用 177
7.4.1 函数调用的一般形式 177
7.4.2 函数调用的方式 177
7.4.3 函数调用的参数传递 178
7.5 函数的嵌套调用 180
7.6 函数的递归调用 181
7.7 数组作函数参数 183
7.7.1 数组元素作函数实参 183
7.7.2 数组名作函数参数 184
7.8 变量的作用域 186
7.8.1 局部变量 186
7.8.2 全局变量 187
7.9 变量的存储类别 189
7.9.1 静态存储方式与动态存储方式 189
7.9.2 用auto声明动态局部变量 190
7.9.3 用static声明静态局部变量 190
7.9.4 用register声明寄存器变量 191
7.9.5 用extern声明外部变量 192
7.1 0习题 193
7.1 1实验 198
第8章 预处理命令 202
8.1 宏定义 202
8.1.1 无参宏定义 202
8.1.2 带参宏定义 204
8.2 文件包含 210
8.3 条件编译 211
8.4 习题 213
8.5 实验 214
第9章 用户自定义数据类型 218
9.1 结构体类型 218
9.1.1 结构体类型的定义 218
9.1.2 结构体类型变量的定义 219
9.1.3 结构体类型变量的成员变量的表示方法 220
9.1.4 结构体类型变量的成员变量的使用方法 221
9.1.5 结构体类型变量的初始化及整体赋值 222
9.1.6 结构体类型数组的定义和使用 222
9.2 共用体类型 224
9.2.1 共用体类型的定义 224
9.2.2 共用体类型变量的使用 225
9.3 枚举类型 226
9.3.1 枚举类型的定义 227
9.3.2 枚举类型变量的定义 227
9.3.3 枚举类型变量的使用 228
9.4 类型声明符typedef 230
9.5 习题 231
9.6 实验 235
第10章 指针 238
10.1 指针的基本概念 238
10.2 指向变量的指针变量 238
10.2.1 指针变量的定义 239
10.2.2 指针运算符 239
10.2.3 指针变量作为函数参数 242
10.3 指向数组的指针变量 245
10.3.1 指向数组的指针变量的定义与赋值 245
10.3.2 通过指针变量引用数组元素 246
10.3.3 指向数组的指针变量作函数参数 249
10.3.4 指向多维数组的指针和指向多维数组的指针变量 255
10.3.5 字符串的指针和指向字符串的指针变量 257
10.4 指向函数的指针变量和指针型函数 260
10.4.1 指向函数的指针变量 260
10.4.2 指针型函数 261
10.5 指针型数组和指向指针的指针变量 263
10.5.1 指针型数组的定义及使用 263
10.5.2 指向指针的指针变量 267
10.5.3 main函数的参数 268
10.6 指向结构体的指针变量 270
10.6.1 指向结构体变量的指针变量 270
10.6.2 指向结构体数组的指针变量 272
10.6.3 结构体指针变量作函数参数 273
10.7 动态存储分配 275
10.8 习题 277
10.9 实验 282
第11章 文件 288
11.1 文件的种类 288
11.2 文件指针和文件内部的位置指针 289
11.3 文件的操作 289
11.4 文件的打开与关闭 291
11.4.1 文件打开函数fopen() 291
11.4.2 文件关闭函数fclose() 293
11.5 文件的顺序读写 293
11.5.1 字符读写函数fgetc()和fputc() 293
11.5.2 字符串读写函数fgets()和fputs() 295
11.5.3 数据块读写函数fread()和fwtrite() 298
11.5.4 格式化读写函数fscanf()和fprintf() 299
11.6 文件的随机读写 301
11.6.1 文件的定位 301
11.6.2 文件的随机读写 302
11.7 文件检测函数 303
11.7.1 文件结束检测函数feof() 303
11.7.2 读写文件出错检测函数ferror() 303
11.7.3 清除文件出错标志和结束标志函数clearerr() 303
11.8 习题 304
11.9 实验 306
第12章 位运算 309
12.1 位运算符 309
12.1.1 按位与运算 309
12.1.2 按位或运算 310
12.1.3 按位异或运算 311
12.1.4 按位求反运算 311
12.1.5 左移运算 312
12.1.6 右移运算 312
12.2 位域(位段) 313
12.3 习题 315
附录一 全国计算机等级考试二级C语言考试大纲 318
附录二 全国计算机等级考试二级C语言模拟题(一) 321
附录三 全国计算机等级考试二级C语言模拟题(二) 333
参考文献 344