四、问答题(本大题共3小题,每小题5分,共15分)
35.对如题35图所示的树结构,回答问题:
(1)树的度是多少?
(2)树的高度是多少?36.数据库的排序和索引有什么不同?
37.黑盒法测试常用的方法有哪几种?
五、阅读理解题(本大题共3小题,每小题6分,共18分)
38.设有关系 与
对其作集合运算,写出运算(1)R-S(2) =′b1′(R-S)的结果。
39.有进程P1和P2共享变量Q,这两个进程对变量Q的操作是互斥的,以下是两个进程的程序段:其中信号灯S的初值为1,Q的初值为0。假设P1正在执行Q++时,P2也开始执行,试给出P2执行完成后Q的值和打印结果。
P1() p2()
{ …; {…;
p(S); P(S);
Q++; printf(“Q=n%d”,Q);
V(S); Q++;
…; V(S);
} …;
}
40.下面是将一个单链表L(至少有一个结点)逆置的算法,即将最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点,如此等等,其头结点指针为head。试在算法中的空格处填上正确的内容,完成该算法。
typedef struct snode
{
int data;
struct snode * link;
}NODE;
void count(NODE * head)
{
NODE * p,* q,* r;
P=head;
q=(1) ;
while(q!=NULL)
{
r=q->link;
q->link=p;
p= (2) ;
q=r;
}
head->link=NULL;
head= (3) ;
}
六、设计题(本大题共1小题,9分)
41.用一个循环数组q[m]表示队列,队列元素均为字符型。假设该队列只有头指针front,头指针指向当前队首元素的前一个位置;队列不设尾指针rear,而设一个计数器count,用count记录队列中当前元素的个数。编写一个取队首元素赋给x的算法。
七、应用题(本大题共2小题,每小题8分,共16分)
42.某系统采用页式虚拟存储管理,页的大小为4096字节,有一用户程序的页表如下。试将逻辑地址4688、1638转换成内存物理地址。
逻辑页号 主存块号 标志 磁盘上的位置
0 0 0 245
1 10 1 126
2 16 1 467
3 0 0 23
43.设有一个管理系统,涉及三个实体集:DEPT(部门)、EMP(职工)和PROD(产品)。
DEPT有属性;DNO(部门号)、DNA(部门名)、DH(部门经理)
EMP有属性:ENO(职工号)、ENA(职工名)、ET(职称)
PROD有属性:PNO(产品号)、PNA(产品名)
每个部门有许多职工,他们负责某些产品的生产,有的职工是某些产品的技术负责人,要求画出实体—联系模型,其中应有实体、实体间的联系、联系的类型和实体的属性。