一、单项选择题
1.描述数据元素之间存在的相互关系的方法称为()
A.物理结构 B.逻辑结构 C.结构 D.存储结构
2. 线性表是( )
A.一个有限序列,可以为空 B.一个有限序列,不能为空
C.一个无限序列,可以为空 D.一个无限序列,不能为空
3.在软件开发过程中,产生系统说明书是在()
A.分析阶段 B.设计阶段 C.编写阶段 D.测试阶段
4. 在面向对象的分析方法中,对象的抽象方法有( )
A.类化、一般化和继承、集约化、泛化 B.一般化和继承、集约化、组合化、泛化
C.类化、一般化和继承、集约化、组合化 D.类化、集约化、组合化、泛化
5. 使用黑盒法测试软件时,设计测试用例应根据程序的(C)
A.功能说明 B.逻辑结构 C.输入条件 D.输出结果
二、填空题
1.在程序中被作为一个整体而加以考虑和处理的是__________,它是数据运算的基本单位,并且通常具有完整确定的实际意义。
2.一棵具有257个结点的完全二叉树,它的深度为__________。
3.实时操作系统、分时操作系统、__________操作系统是常用的3种类型的操作系统。
4.互斥条件、不可抢夺条件、__________条件、循环等待条件是产生死锁的必要条件。
5.在软件开发过程中,阶段评审的目的是__________。
6..对数据流图中的每一个元素进行精确描述的文档是_________。
三、名词解释题
1. 二叉排序树
2. 软件工程中的适应性维护
四、问答题
1. 操作系统的设备管理有哪些功能?
2. 在软件测试中,可采用非渐增式方法、渐增式方法进行联合测试。这两种方法分别是如何进行联合测试的?
五、阅读理解题
下面的算法是在已排好序的且不带头结点的单链表(表头指针为head)中插入一个新元素x,使得仍然按关键字从小到大有序。试在算法后的空格中填上正确的内容,完成该算法。
typedef struct snode
{
int data;
struct snode * link;
} NODE;
void insert(head,x)
NODE * head;
int x;
{
NODE * p, * q, * s;
s=(NODE * )malloc (sizeof(NODE));
s—>key=x; s—>link=NULL;
if (head==NULL) (1) ;
else
{
p=head; q=NULL;
while(x>p—>key)& &(p!=NULL)
{
q=p;
(2) ;
}
if(q==NULL)
{s—>link=head;head=s;}
else
{
if(p==NULL) q—>link=s;
else
{
s—>link=q—>link;
(3) ;
}
}
}
}
(1)______________(2)________________(3)________________