名词解释和名词比较(每题5分,共30分)
1. 树
2. 虚拟存储管理
3. 管理
信息系统
4. 计算机病毒
5. 比较数据与信息
6. 比较投影运算和选择运算
简答题(每题10分,共60分)
7. 给定一个不8. 带头结点的线性链表(头指9. 针为head),10. 如何实现在一个结点p的前面插入一个结点s?要求写出具体的实现算法,11. 描述语言采用类C语言。
12. 在一个任意二叉树中,13. 若有n0个叶子结点,14. n2个度为2的结点,15. 请问n0 和n2之间存在什么关系?要求给出证明过程。
16. 操作系统中,17. 产生死锁的原因和必要条件分别是什么?
18. 软件工程中,19. 为什么采用原型法作为系统分析与设计的一个工具?实现原型的一般途径是什么?
20. 简要说明开放系统互联参考模型OSI各层协议的功能。
21. 计算机网络安全要求包括几个方面?
综合题(第1题25分,第2题20分,第3题15分,共60分)
22. 假设有三个分别命名23. 为a、b、c的塔座,24. 在塔座a上插有3个直径大小各不25. 相同26. 、依小到大编号为1,27. 2,28. 3的圆盘。现要求将塔座a上的3个圆盘移至塔座c上并且仍按同29. 样顺序叠排。圆盘移动时必须遵守下列规则:
1)每次只能移动一个圆盘;
2) 圆盘可以插在a、b、c中的任一塔座上;
3) 任何时刻都不4) 能将一个较大的圆盘压在较小的圆盘之上。
下面给出了符合上述要求的实现圆盘的移动操作的类C语言算法。
void hanoi(int n, char x, char y, char z)
//注释:将塔座x上按直径由小到大且自上而下编号为1至n的n个圆盘按规则搬到塔//座z上,y用作辅助塔。搬动操作move(x,n,z)定义为将编号为n的圆盘从x移到z。
1 {
if (n==1)
move(x,1,z);
4 else {
5 hanoi(n-1,x,z,y);
6 move(x,n,z);
7 hanoi(n-1,y,x,z);
8 }
9 }
请根据以上说明完成下述要求:
用图示方式给出hanoi(3,a,b,c)执行时,递归调用过程中栈的变化情况和塔的变化状态,并配以简单的说明。栈中存放的内容应包括:调用结束后的返回地址和调用函数的参数。返回地址用上述算法中的语句行号表示,hanoi(3,a,b,c)执行结束后的返回地址规定为0。调用函数的参数指hanoi函数中的参数,如hanoi(3,a,b,c)执行时,要调用hanoi(2, …),则在调用之前,要将hanoi(3,a,b,c)的参数(3,a,b,c)入栈。
2. 在一个学生学籍管理系统中,有三个实体:专业、学生和课程。假设一个专业可以有多个学生,一个学生只能属于一个专业;一个学生可以选修多门课程,一门课程可以被多个学生选修。学生的属性包括:学号(主关键字)、姓名和年龄。专业的属性包括:专业编号(主关键字)、名称。课程的属性包括课程编号(主关键字)、名称、先行课。请完成下列题目:
在关系数据库中如何实现上述实体间的一对多联系和多对多联系,并给出示意图。
假设在系统中有一个记载学生成绩的关系REL1,其关系模式如下:REL1(学号,姓名,课程编号,课程名称,课程成绩)。该关系的主关键字为“学号+课程号”,请问该关系模式满足第二范式吗?请给出具体说明。
3. 管理信息系统的结构是什么?构成的原则是什么?每一种构成原则的特点是什么?