中国科学院计算技术研究所
一九九六年招收硕士学位研究生入学考试试题答案
试题名称:软件基础
Program SEQUENCE(input , output);
var i , k , l , m , n : integer ;
BEGIN
read(n);
i := 1;
write(i);
IF n <> 1 THEN
BEGIN
k := 2;
m :=1;
FOR l=1 to n-1 DO
BEGIN
i := i + m;
IF i=1 THEN
BEGIN
k := k + 1;
m := -m;
END
IF i=k THEN
m := -m;
write(i);
END
END
END.
算法要点:从n个点中任选两条构成一条直线,用“两点式”写出该直线方程。将其余的点代入方程,记录满足此方程的点数。这样的直线共有n(n-1)/2条,从中选出最多点数。
过程中的x[i]和y[i]分别表示第i个点的横坐标和纵坐标。
(假定前面有类型说明:type T = array [1..100] of real;)
function maxpoint(var x,y:T;n:integer):integer;
var i,j,k,m,mmax:integer;
begin
mmax:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
begin
m:=2;
for k:=j+1 to n do
if (x[i]-x[j])*(y[j]-y[k]) = (x[j]-x[k])*(y[i]-y[j])
then m := m + 1;
if m>mmax then mmax := m
end;
maxpoint := mmax;
end.
句子aabbab有两种不同的推导:
S ( aB ( aaBB ( aabB ( aabbS ( aabbaB ( aabbab;
S ( aB ( aaBB ( aabSB ( aabbAB ( aabbaB ( aabbab;
S aBS | bAS | aB | bA
B aBB | b
A bAA | a
D’ { D.num = 0} D
D attrlist { namelist.num = D.num + attrlist.num}
namelist
D attrlist { D1.num = D.num + attrlist.num}
( D1 )
namelist id { addattr(id.entry , namelist.num) }
namelist id , { namelist1.num = namelist.num }
namelist1 { addattr(id.entry , namelist.num) }
attrlist A attrlist1 { attrlist.num = attrlist1.num + 1}
attrlist A { attrlist.num = 1}
C编译是不作调用时的形参和实参一致性检查的。由于整数有short、int和long三种类型,实数有float和double两种类型,C的调用是传值的。一个整形表达式的值究竟应按short、int还是long方式传递呢。显然,这儿约定为取size最大的方式,即long方式;实数用double方式。虽然按最大size方式传递,被调用函数中形式参数(局部量)是按自己类型size取值(但要考虑边界对齐)。short型的形参是取long值4字节中的后两字节内容,float型的形参是取double值字节的前4字节。这样才出现这四个形参地址的上面结果。
“扩充”内存的一种手段。将内存中处于睡眠状态的进程暂时换到磁盘对换区,将内存区让位于就绪的进程;
管理采用的数据结构为“对换映射表”:
maddr —— 可用盘区始址;
misize —— 该区的可用盘块数。
采用分区分配和首次适应分配算法。释放时要进行相邻区的合并。
UNIX系统V提供的工具有:
Sleep/Wakeup:核心态进程的同步;
软中断信号机制(signal/kill):同一用户进程间的通讯(小数据量);
基于文件系统的pipe机制:进程间大数据量的通讯;
共享存储器、信号量集和消息传递机制。
采用全路径名访问他人文件。共享时间短;
采用目录表项之间的链接。即使一个用户目录中的表项直接指向另一个目录中的表项。长久共享。
采用基本文件目录和符号文件目录的组织方式,便于用户文件的共享。
它代表解决死锁问题的一种策略。在实施资源分配之前,先计算该次分配后所产生的状态是否安全,即是否存在一种顺序,使所有进程都能执行结束。若安全,则分配;否则,拒绝分配;
该算法虽有很好的理论意义,但在实际系统中却很难使用。因为算法所假设的条件,如:进程可知申请资源的最大数目、系统中进程数目固定等,在实现环境中并不成立,所以由不成立的前提导出的结果很难说明正确的。
平均周转时间
T = 22;
T = 19.2;
T = 19.2;
T = 14。