|
五、阅读理解
(
每小题
6
分,共
12
分
)
1.
一个由
3
个页面
(
页号为
0-2)
、每页有
2048
个字节组成的程序,把它装入一个由
8
个物理块
(
块号为
0-7)
组成的存储器中,装入情况如下:
给出下列逻辑地址,请根据页表计算出对应的绝对地址。
2.
请仔细阅读下列程序,写出其功能并说明其原理。
#
define M 500
typedef struct {int key;char info;}NODE;
NODE r
[
M
]
;
sb(NODE r
[]
,int n)
{int i,j,k;
j=n-1
;
k=1;
while ((j>0)&&(k>0))
{k=0;
for(i=1;i<=j;i++)
if(r
[
i+1
]
.key<r
[
i
]
.key)
{k=1;
r
[
0
]
=r
[
i
]
;
r
[
i
]
=r
[
i+1
]
;
r
[
i+1
]
=r
[
0
]
;
}
j--;
}
}
六、编程题
(
每小题
8
分,共
16
分
)
1.
设单链表
head
的结点结构为
typedef struct snode
{ int data;
struct snode *link;
}linklist;
编写算法,在带头结点的单链表
head
中查找第
i
个结点,若找到
(0
≤
i
≤
n)
,则返回该结点的存储位置;否则返回
NULL
。假设该算法的函数名为:
linklist*GET(head,i)
。
2.
在公共汽车上,司机和售票员的活动分别是:
司机的活动:启动车辆;
正常行车;
到站停车。
售票员的活动:关车门;
售票;
开车门。
在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系
?
用信号量和
P
、
V
操作实现它们的同步。
|