第一部分 公共基础知识 1
第1章 软件工程基础 1
1.1 软件工程基本概念 1
1.1.1 软件定义与软件特点 1
1.1.2 软件危机与软件工程 2
1.1.3 软件工程的目标与原则 4
1.1.4 软件工程过程与软件生命周期 5
1.1.5 软件工程工具 6
1.2 结构化分析方法 7
1.2.1 需求分析与需求分析方法 7
1.2.2 结构化分析方法 8
1.2.3 结构化分析工具 8
1.2.4 软件需求规格说明书 12
1.3 结构化设计方法 13
1.3.1 软件设计的基本概念 13
1.3.2 概要设计 15
1.3.3 详细设计 19
1.4 软件测试 22
1.4.1 软件测试的目的 22
1.4.2 软件测试的准则 23
1.4.3 软件测试技术与方法综述 23
1.4.4 软件测试的实施 27
1.5 程序的调试 30
1.5.1 基本概念 30
1.5.2 软件调试方法 32
习题一 33
2.1 程序设计方法与风格 35
第2章 程序设计基础 35
2.2 结构化程序设计 36
2.2.1 结构化程序设计的原则 36
2.2.2 结构化程序的基本结构与特点 37
2.2.3 结构化程序原则和方法的应用 37
2.3 面向对象的程序设计(OOP) 38
2.3.1 关于面向对象方法 38
2.3.2 面向对象方法的基本概念 40
习题二 44
3.1 算法 45
3.1.1 算法的基本概念 45
第3章 数据结构与算法 45
3.1.2 算法复杂度 48
3.2 数据结构的基本概念 50
3.2.1 什么是数据结构 50
3.2.2 数据结构的图形表示 52
3.2.3 线性结构与非线性结构 53
3.3 线性表及其顺序存储结构 54
3.3.1 线性表的基本概念 54
3.3.2 线性表的顺序存储结构 55
3.4 栈和队列 55
3.4.1 栈及其基本运算 55
3.4.2 队列及其基本运算 56
3.4.3 线性链表的基本概念 58
3.5.1 树的基本概念 60
3.5 树与二叉树 60
3.5.2 二叉树及其基本性质 62
3.5.3 二叉树的存储结构 65
3.5.4 二叉树的遍历 65
3.6 查找技术 66
3.6.1 顺序查找 66
3.6.2 二分法查找 67
3.7 排序技术 67
3.7.1 交换类排序法 67
3.7.2 插入类排序法 69
3.7.3 选择类排序法 70
习题三 72
4.1.1 数据、数据库和数据库管理系统 74
4.1 数据库系统的基本概念 74
第4章 数据库设计基础 74
4.1.2 数据库系统的发展 78
4.1.3 数据库系统的基本特点 79
4.1.4 数据库的内部结构 80
4.2 数据模型 81
4.2.1 数据模型的基本概念 81
4.2.2 E-R模型 82
4.2.3 层次模型 86
4.2.4 网状模型 86
4.2.5 关系模型 87
4.3 关系代数 89
4.4.2 数据库设计的需求分析 95
4.4.1 数据库设计概述 95
4.4 数据库设计与管理 95
4.4.3 数据库概念设计 96
4.4.4 数据库的逻辑设计 99
4.4.5 数据库的物理设计 101
4.4.6 数据库管理 101
习题四 102
第二部分 C程序设计习题 104
第5章 C语言基础知识 104
第6章 C语言控制结构 123
第7章 数组 147
第8章 函数与预处理 160
第9章 指针、结构体与共用体 189
第10章 文件操作和位运算 225
第三部分 模拟试题及真题汇编 240
模拟试题一 240
模拟试题二 251
模拟试题三 262
模拟试题四 274
模拟试题五 287
模拟试题六 301
模拟试题七 313
模拟试题八 327
2005年4月二级C笔试试题 339
2005年9月二级C笔试试题 352
附录 二级C语言程序设计考试大纲 366