第1章 应试指南 1
1.1 二级C语言考试大纲(最新版) 1
1.1.1 公共基础知识 1
1.1.2 C语言程序设计 2
1.2 笔试方法和技巧 4
1.3 机试方法和技巧 7
第2章 数据结构与算法 9
2.1 算法的基本概念 10
2.1.1 考点1:算法的定义 10
2.1.2 考点2:算法复杂度 10
2.2 数据结构的定义 11
2.2.1 考点1:什么是数据结构 11
2.2.2 考点2:数据结构的图形表示 13
2.3 线性表 13
2.3.1 考点1:线性表 13
2.3.2 考点2:线性表的顺序存储结构 14
2.3.3 考点3:线性表的插入和删除操作 14
2.4 栈 14
2.4.1 考点1:什么是栈 15
2.4.2 考点2:栈的顺序存储结构 15
2.4.3 考点3:栈的插入和删除运算 15
2.5 队列 16
2.5.1 考点1:什么是队列 16
2.5.2 考点2:队列的顺序存储结构 16
2.5.3 考点3:队列的插入和删除运算 17
2.6 线性单链表、双向链表与循环链表 17
2.6.1 考点1:线性单链表 17
2.6.2 考点2:循环链表 18
2.6.3 考点3:双向链表 18
2.6.4 考点4:链表的基本操作 18
2.7 树 19
2.7.1 考点1:树的定义 19
2.7.2 考点2:二叉树的定义 20
2.7.3 考点3:二叉树的顺序存储结构 21
2.7.4 考点4:二叉树的链式存储结构 21
2.7.5 考点5:二叉树的遍历 22
2.8 查找算法 23
2.8.1 考点1:顺序查找 23
2.8.2 考点2:二分查找 24
2.9 排序算法 24
2.9.1 考点1:排序概述 25
2.9.2 考点2:插入类排序 25
2.9.3 考点3:交换类排序 25
2.9.4 考点4:选择类排序 26
2.10 小结 27
2.11 同步训练 27
2.11.1 选择题 27
2.11.2 填空题 29
2.12 同步训练答案 29
2.12.1 选择题 29
2.12.2 填空题 29
第3章 程序设计基础 30
3.1 程序设计 30
3.1.1 考点1:程序设计的方法 31
3.1.2 考点2:程序设计的风格 31
3.2 结构化程序设计 33
3.2.1 考点1:结构化程序设计的提出 33
3.2.2 考点2:结构化程序设计的基本特征 34
3.2.3 考点3:结构化程序设计的3种基本结构 34
3.2.4 考点4:结构化程序设计方法 37
3.2.5 考点5:结构化程序设计方法的原则 37
3.3 面向对象程序设计 38
3.3.1 考点1:面向对象程序设计方法的提出 38
3.3.2 考点2:面向对象程序设计方法的基本概念 38
3.3.3 考点3:面向对象程序设计的基本思想和方法 39
3.4 小结 40
3.5 同步训练 40
3.5.1 选择题 40
3.5.2 填空题 42
3.6 同步训练答案 42
3.6.1 选择题 42
3.6.2 填空题 42
第4章 软件工程基础 43
4.1 软件工程的基本概念 44
4.1.1 考点1:软件与软件工程概述 44
4.1.2 考点2:软件生命周期 45
4.1.3 考点3:软件工具与软件开发环境 46
4.2 结构化分析方法 46
4.2.1 考点1:结构化分析方法概述 46
4.2.2 考点2:数据流图 47
4.2.3 考点3:数据字典 49
4.2.4 考点4:软件需求规格说明书 50
4.3 软件设计 50
4.3.1 考点1:概要设计 50
4.3.2 考点2:详细设计 53
4.4 软件测试 55
4.4.1 考点1:软件测试的目的 56
4.4.2 考点2:测试方法 56
4.4.3 考点3:测试用例设计 57
4.4.4 考点4:软件测试策略 59
4.5 程序调试 61
4.5.1 考点1:静态调试 62
4.5.2 考点2:动态调试 62
4.5.3 考点3:调试策略 62
4.6 软件维护 63
4.7 小结 64
4.8 同步训练 64
4.8.1 选择题 64
4.8.2 填空题 66
4.9 同步训练答案 66
4.9.1 选择题 66
4.9.2 填空题 66
第5章 数据库设计基础 67
5.1 数据库基础知识 68
5.1.1 考点1:数据库 68
5.1.2 考点2:数据库管理系统 69
5.1.3 考点3:数据库系统 69
5.1.4 考点4:数据管理技术的发展 70
5.2 数据模型 71
5.2.1 考点1:数据模型的概述 71
5.2.2 考点2:实体联系模型及E-R图 72
5.2.3 考点3:层次、网状、关系模型 75
5.2.4 考点4:从E-R图导出关系数据模型 76
5.3 关系运算 77
5.3.1 考点1:关系代数 77
5.3.2 考点2:传统的集合运算 78
5.3.3 考点3:专门的关系运算 79
5.4 数据库设计 81
5.4.1 考点1:数据库设计概述 81
5.4.2 考点2:数据库设计方法 81
5.4.3 考点3:数据库设计步骤 82
5.4.4 考点4:数据库的规范化 82
5.5 小结 83
5.6 同步训练 84
5.6.1 选择题 84
5.6.2 填空题 85
5.7 同步训练答案 86
5.7.1 选择题 86
5.7.2 填空题 86
第6章 C程序设计的初步知识 87
6.1 C程序简介 87
6.1.1 考点1:C源程序编译与执行 87
6.1.2 考点2:程序设计步骤 88
6.2 C程序构成与格式 88
6.2.1 考点1:C程序构成和格式 88
6.3 数据类型 89
6.3.1 考点1:标识符 89
6.3.2 考点2:常量 90
6.3.3 考点3:变量 90
6.3.4 考点4:整型数据 90
6.3.5 考点5:实型数据 91
6.3.6 考点6:字符型数据 91
6.4 运算符和表达式 92
6.4.1 考点1:算术运算符 92
6.4.2 考点2:算术表达式 93
6.4.3 考点3:赋值表达式 93
6.4.4 考点4:自加、自减运算符 94
6.4.5 考点5:逗号运算符和逗号表达式 95
6.5 同步训练 95
6.5.1 选择题 95
6.5.2 填空题 100
6.6 同步训练答案 102
6.6.1 选择题 102
6.6.2 填空题 102
第7章 顺序结构程序设计 103
7.1 基本概念 103
7.1.1 考点1:顺序程序概述 103
7.1.2 考点2:赋值语句、复合语句和空语句 104
7.2 数据输出 105
7.2.1 考点1:单字符输出函数putchar 105
7.2.2 考点2:字符串输出函数puts 106
7.2.3 考点3:格式输出函数printf 106
7.3 数据输入 108
7.3.1 考点1:字符输入函数getchar 108
7.3.2 考点2:字符串输入函数gets 109
7.3.3 考点3:格式输入函数scanf 110
7.4 同步训练 111
7.4.1 选择题 111
7.4.2 填空题 114
7.5 同步训练答案 115
7.5.1 选择题 115
7.5.2 填空题 115
第8章 选择结构程序设计 116
8.1 基本概念 116
8.1.1 考点1:关系运算和逻辑运算 116
8.2 if语句与条件表达式 118
8.2.1 考点1:if语句及条件表达式 118
8.3 switch语句与goto语句 120
8.3.1 考点1:switch语句使用 120
8.3.2 考点2:goto语句 122
8.4 同步训练 123
8.4.1 选择题 123
8.4.2 填空题 125
8.5 同步训练答案 126
8.5.1 选择题 126
8.5.2 填空题 126
第9章 循环结构程序设计 127
9.1 while和do-while循环结构 127
9.1.1 考点1:while语句 127
9.1.2 考点2:do-while语句 129
9.2 for循环结构 129
9.2.1 考点1:for语句的基本用法 129
9.3 循环结构嵌套及流程控制 132
9.3.1 考点1:循环结构嵌套 132
9.3.2 考点2:break语句的使用 133
9.3.3 考点3:continue语句的使用 134
9.4 同步训练 135
9.4.1 选择题 135
9.4.2 填空题 139
9.5 同步训练答案 141
9.5.1 选择题 141
9.5.1 填空题 141
第10章 函数 142
10.1 函数基本概念 142
10.1.1 考点1:函数的概念 142
10.1.2 考点2:函数的定义 143
10.1.3 考点3:函数的调用方式 144
10.2 函数调用中的数据传递 145
10.2.1 考点1:参数的传递 145
10.2.2 考点2:函数的返回值 146
10.3 函数的递归调用 149
10.3.1 考点1:函数的嵌套调用 149
10.3.2 考点2:函数的递归调用 149
10.4 函数的存储分类和变量的存储分类 151
10.4.1 考点1:内部函数和外部函数 151
10.4.2 考点2:局部变量和全局变量 151
10.4.3 考点3:变量的存储类型 152
10.5 同步训练 156
10.5.1 选择题 156
15.2.2 填空题 164
10.6 同步训练答案 165
10.6.1 选择题 165
10.6.2 填空题 165
第11章 指针与数组 166
11.1 指针基础知识 166
11.1.1 考点1:地址、指针和指针变量 166
11.1.2 考点2:指针变量的定义与引用 167
11.2 指针在函数数据传递中的应用 170
11.2.1 考点1:指针变量作为函数参数 170
11.2.2 考点2:指向函数的指针 172
11.3 数组基础知识 173
11.3.1 考点1:一维数组的定义与初始化 174
11.3.2 考点2:一维数组的引用 174
11.3.3 考点3:二维数组的定义与初始化 176
11.3.4 考点4:二维数组的引用 178
11.4 数组与指针 180
11.4.1 考点1:指针与变量的地址 180
11.4.2 考点2:指针与一维数组 180
11.4.3 考点3:指针与二维数组 184
11.4.4 考点4:指针数组与指向指针的指针 186
11.5 数组与函数参数 187
11.5.1 考点1:数组元素作为函数参数 187
11.5.2 考点2:数组名作为函数参数 187
11.6 字符数组与字符串 189
11.6.1 考点1:字符数组与字符串 189
11.6.2 考点2:字符指针变量与字符串 191
11.6.3 考点3:典型字符串处理函数 193
11.6.4 考点4:字符数组与字符串的应用 194
11.7 同步训练 196
11.7.1 选择题 196
11.7.2 填空题 208
11.8 同步训练答案 212
11.8.1 选择题 212
11.8.2 填空题 212
第12章 编译预处理与动态存储分配 213
12.1 编译预处理 213
12.1.1 考点1:预处理概述 213
12.1.2 考点2:宏定义 214
12.1.3 考点3:文件包含 215
12.1.4 考点4:条件编译 217
12.2 动态存储分配 218
12.2.1 考点1:动态存储分配常用函数 218
12.3 同步训练 219
12.3.1 选择题 219
12.3.2 填空题 222
12.4 同步训练答案 223
12.4.1 选择题 223
12.4.2 填空题 223
第13章 结构体与共用体 224
13.1 类型定义符 224
13.1.1 考点1:typedef 224
13.2 结构体 225
13.2.1 考点1:结构变量说明 225
13.2.2 考点2:结构变量的赋值和初始化 228
13.2.3 考点3:结构指针变量 230
13.2.4 考点4:结构数组 232
13.2.5 考点5:利用结构体变量构成链表 234
13.3 联合体 241
13.3.1 考点1:联合的定义和联合变量的说明 241
13.4 同步训练 243
13.4.1 选择题 243
13.4.2 填空题 252
13.5 同步训练答案 254
13.5.1 选择题 254
13.5.2 填空题 254
第14章 位运算 255
14.1 位运算符 255
14.1.1 考点1:常用位运算符 255
14.2 位运算操作 256
14.2.1 考点1:移位运算 256
14.2.2 考点2:按位逻辑运算 256
14.3 同步训练 257
14.3.1 选择题 257
14.3.2 填空题 258
14.4 同步训练答案 258
14.4.1 选择题 258
14.4.2 填空题 258
第15章 文件操作 259
15.1 文件指针 259
15.1.1 考点1:文件基本概念 259
15.1.2 考点2:文件类型指针 260
15.2 文件打开与关闭 260
15.2.1 考点1:文件的打开 260
15.2.2 考点2:文件的关闭 261
15.3 文件的读写 262
15.3.1 考点1:字符的读写 262
15.3.2 考点2:字符串的读写 262
15.3.3 考点3:格式化读写 262
15.3.4 考点4:成块读写 262
15.4 文件的定位 263
15.4.1 考点1:文件的定位 263
15.5 同步训练 263
15.1.1 选择题 263
15.1.2 填空题 265
15.6 同步训练答案 266
15.6.1 选择题 266
15.6.2 填空题 266
第16章 笔试模拟试卷及解析 267
16.1 模拟试题一 267
16.2 模拟试题二 276
16.3 模拟试题三 285
16.4 模拟试题四 295
16.5 模拟试题五 305
16.6 答案与解析 313
16.6.1 模拟试题1 313
16.6.2 模拟试题2 320
16.6.3 模拟试题3 326
16.6.4 模拟试题4 332
16.6.5 模拟试题5 338
第17章 机试指导、分类解析及模拟 345
17.1 机试纪律及步骤 345
17.1.1 上机考试纪律 345
17.1.2 操作步骤及考试规则 345
17.2 机试分类解析 348
17.2.1 程序填空题 348
17.2.2 程序修改题 354
17.2.3 程序设计题 358
17.3 机试全真模拟 365
模拟试题1 上机模拟1 365
模拟试题2 上机模拟2 367
模拟试题3 上机模拟3 368
模拟试题4 上机模拟4 370
模拟试题5 上机模拟5 372
模拟试题6 上机模拟6 374
模拟试题7 NCRE2 376
模拟试题8 NCER6 378
模拟试题9 380
模拟试题10 381
17.4 参考答案 382
模拟试题1 382
模拟试题2 383
模拟试题3 383
模拟试题4 383
模拟试题5 384
模拟试题6 384
模拟试题7 385
模拟试题8 385
模拟试题9 385
模拟试题10 386
附录A C语言运算符及优先级 387
附录B C语言库函数 389
附录C 2007年上半年笔试试卷及解析 393
附录D 2007年下半年笔试试卷及解析 412