中科院计算机所试题

  • 格式:docx
  • 大小:34.07 KB
  • 文档页数:20

1 / 20

中科院计算机所试题

中科院计算所2003年考研试题

第一部分编译(40’)

一、(1/01)*0*说明是什么语言画出DFA(10?)

二、S→过程调用语句/数组的赋值语句(10?)

过程调用语句为:id(id,id,…,id)

赋值语句: id(id,…,id):=id(id,…,id)

(a)写一个LR(1)方法(产生式不大于6个)

(b)若在LR分析同时完成语义分析,中间代码生成,基于你的文法有什么困难?

三、E→E*E/+E/-E/unsigned-integer

为上面表达式产生栈机器代码,代码执行后,表达式值留在栈上,自己设计所需栈机器指令,并写清指令含义。(10?)

四、C语言中,a表示数组首址,而

A * func ( )

{

return(a);

}

在linux上用gcc编译报告:第6行warning: return from incompatible

pointer type

(2) typedef int A[10][20]

A a;

A *func( )

{

return(

}

无类型方面错误

(3) typedef int A[10][20]

typedef int B[20]

A a;

B *func( )

{

return(a);

}

无类型方面错误

(4) typedef int A[10][20]

A a;

func( )

{

Printf(“%d,%d,%d/n,a,a+1,

}

main( )

{ 2 / 20

func( );

}

结果:134518112,134518192,134518912

第二部分操作系统(40’)

五. 1、操作系统内核有强内核和微内核,unix是前者,windowsNT是后者,简介微内核比强内核的优点。(4?)

(强内核:弱内核:各自优缺点:)

2、若只有进程控制,其独立性表现在?引入线程后,独立性有何改变?(4?)

3、请求调页存储系统确定页面大小的标准(4?)

六、1.死锁的证明,在m个同类资源,n个进程共享它,每次进程只能获得或释放至多一个资源,问会不会

发生死锁,若:(1)、设每个进程所需资源数为ri 1rlink=restore

(5)+k,rpos+1,n-1-k);

Return ptr;

}

postorder(TNODE*ptr)

{

if(ptr=NULL) return;

postorder(ptr->llink);

postorder(ptr->rlink);

printf(“%c”,ptr->info);

}

四.(10分)已知有如下定义的静态链表:

TYPE component=Record

Data:elemtp;

Next:0..maxsize

End

V AR STALIST:array[0..maxsize] of component;

以及三个指针:aV指向头结点,p指向当前结点,pre指向的前驱结点,现要求静态链表中next域中的内容,使得该静态链表有双向链表功能,从当前结点P既能往后查找,也能往前查找

(1)定义next中的内容。(用老的next中的值表示):

(2)如何得到当前结点p的前驱(pre)的前驱,给出计算式;

3)如何得到p的后继,给出计算式;

五、(5分)试求有n个叶结点的非满的完全二叉树的高度;

六、(15分)试以逆邻接表为存储结构,通过每次删除出度为要顶点及其入边来写一拓扑排序算法,要求输出的顶点序列是拓扑有序序列。

七、(15分)设A[1¨100]是一个记录构成的数组,B[1..100]是一个整数组,其值介于1至100之间,现要求按B[1··100]的内容调整A中记录的次序,比如当B[1]=ll时,则要求将A[1]的内容调整到A[11]中去。规定可使用的附加空间为o(1).

八、(15分)在用除余法作为散列函数、线性探测解决冲突的散列表中,写一删除关键字的算法,要求将所有可以前移的元素前移去填充被删除的空位,以保证探测序列不致于断裂。 3 / 20

中科院计算机技术研究所1999年硕士生入学试题

数据结构与程序设计

一、选择题.(20分,每空2分)

1.___ 的遍历仍需要栈的支持。

(1).前序线索树(2).中序线索树(3).后序线索树

2.若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为___.

(1)n-1 (2)|_n/m_|-1 (3)上取整(n-1)/(m-1)4)[上取整n/(m-1)]-1

(5)[上取整(n+1)/(m+1 )]-1

3.最优二叉树(哈夫曼树),最优查找树均为平均查找路径长度wihi最小的树,其中对最优二叉树,n表示___,对最优查找树,n表示____;构造这两种树均为——。

(1)结点数(2)叶结点数(3)非叶结点数(4)度为2的结点数(5)需要一张N个关键字的有序表(6)需要对N个关键字进行动态插入(7)需要N个关键字的查找概率表(8)不需要任何前提。

4.对于前序遍历与中序遍历结果相同的二叉树为_____;对于前遍历和后序遍历结果相同的二叉为_____.

一般二叉树(2) 只有根结点的二叉树(3)根结点无左孩子的二叉树(4)根结点无右孩子的二叉树(5)所有结点只有左子数的二叉树(6)所有结点只有右子树的二叉树.

5.M路B+树是一棵_____,其结点中关键字最多为___个,最少为___个.

M路平衡查找树(2)M路平衡索引树(3) M路TRIE 树(4)M路键树(5)M-1

(6)M (7)M+1 (8)上取整(M/2)-1 (9) 上取整(M/2) (10) 上取整(M/2)+1

二、填空题(10分,每空1分)

1.对于给定的N个元素,可以构造出的逻辑结构有___._____. _____.. ____四种.

2.具有N个关键字的B-树的查找路径长度不会大于________.,

3.克鲁司卡尔算法的时间复杂度为____________,它对____________图较为适合.

4.深度为可(设根的层数为一)的完全二叉树至少有______个结点,至多有_____个结点,K和结点数N之间的关系是_____.

三、问答题(10分,每题5分)

1. 一棵非空的有向树中恰有一个顶点入度为0,其他顶点入度为1.但一个恰有一个顶点的入度为0,其他顶

点入度为一的有向图却不一定是一棵有向树。请举例说明之。

2. 若有n个元素以构成一个小根堆,那么如果增加一个元素为K(n+1),请用文字简要说明你如何在log2(n) 的时间内将其重新调整为一个堆?

阅读下述程序,指出程序输出。(10分)

void g(int**);

main() {

int line[100],i;

int *p=line;

for (i=0; iS(S),

S->ε /*空产生式*/

试写出一个语法制导定义,它输出配对的括号个数. 4 / 20

五.(10分)已知某语言L={a^(m)b^(n)|n>m>=0}.试写出产生该语言的两个文法G1和G2,其中G1是LR(1)文法,G2是非LR(1)和非二义性文法.

六.填空(每空一分,共20分)

1.现代操作系统的两个最基本的特征是_______和______.

2.进程控制块的初始化工作包括____,____和____。

3.在操作系统中引入线程概念的主要目的是___.

4.unix系统v中,系统向用户提供的用于创建新进程的系统调用是____________;用于建立无名管道的系统调用是______________;用于创建有名管道的系统调用是____________.

5.unix系统v中,引起进程调度的原因有_________,____________,_____________和_____________等.

6.在分区分配算法中,首次适应算法倾向于优先利用内存中__部分的空闲分区,从而保留了___部分的大空闲区.

7.进行设备分配时所需的数据表格主要有___________,__________,___________和________________等.

8.利用符号链实现文件共享时,对文件主删除了共享文件后造成的指针悬空问题,解决的方法是__________.

七.(8分)在消息传递通信方式下,

A.发送进程和接收进程在通信过程中可以采用那三种同步方式?

B.试以下面给出的发送进程和接收进程(将接收到的数据存入S)为例,说明当接收进程执行到标号为L2的语句时,采用这三种同步方式,X的值可能各是多少?

发送进程P: 接收进程Q:

M=10;

L1: send M to Q; L1: receive S from P;

L2: M=20; L2: X:=S+1;

goto L1;

八.(8分)一系统具有150个存储单元,在T0时刻按下表所示分配给3个进程:

进程Maximum demand Current allocation

P1 70 25

P2 6040

P3 6045

对下列请求应用银行家算法分析判定是否是安全的:

A.第4个进程P4到达,最大需求60个存储单元,当前请求分配25个单元.

B.第4个进程P4到达,最大需求50个存储单元,当前请求分配35个单元.

如果是安全的请给出一个可能的进程安全执行序列.如果是不安全的,请说明原因。

九、(14分)设正在处理器上执行的一个进程的页表如下.页表的虚页号和物理块号是十进制数,起始页号(块号)均为0.所有的地址均是存储器字节地址,页的大小为1024字节.

A.详述在设有快表的请求分页存储管理系统中,一个虚地址转换成物理内存地址的过程.