您的位置:首页 > 其它

20091205中国人民银行笔试题(回忆版)

2009-12-07 20:34 453 查看
一判断(比较简单,内容比较广泛,涉及网络、数据结构、组成原理、离散数学等)
二单选(也比较简单,和判断题差不多)
三简答
1.死锁产生的必要条件,怎么样检测和预防死锁?
答:操作系统中有若干进程并发执行, 它们不断申请、使用、释放系统资源,虽然系统的进程协调、通信机构会对它们进行控制,但也可能出现若干进程都相互等待对方释放资源才能 继续运行,否则就阻塞的情况。此时,若不借助外界因素, 谁也不能释放资源, 谁也不能解除阻塞状态。根据这样的情况,操作系统中的死锁被定义为系统中两个或者多个进程无限期地等待永远不会发生的条件,系统处于停滞状态,这就是死锁。
产生死锁的原因主要是:
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。
如果系统资源充足, 进程的资源请求都能够得到满足,死锁出现的可能性就很低, 否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。
产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件, 只要系统发生死锁, 这些条件必然成立, 而只要上述条件之一不满足,就不会发生死锁。

死锁的解除与预防:
理解了死锁的原因, 尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和解除死锁。所以, 在系统设计、进程调度等方面注意如何不让这四个必要条件成立, 如何确定资源的合理分配算法, 避免进程永久占据系统资源。此外, 也要防止进程在处于等待状态的情况下占用资源。因此,对资源的分配要给予合理的规划。
1、什么是 死锁的检测 :对资源的申请和分配不加限制,只要有剩余的资源就可把资源分配给申请者。这样可能会出现死锁,系统定时运行一个“死锁检测程序”,如果检测到死锁发生,则必须先解除死锁再继续工作。
2、怎样实现死锁的检测:1、每个资源当用中只有一个资源2、资源类中含有若干个资源。
3、 死锁的解除 :一般采用两种方式来解除死锁,一种是终止一个或几个进程的执行以破坏循环等待;另一种是从涉及死锁的进程中抢夺资源。

2.星型,总线型,环型,数型拓扑结构图及特点?

答:最基本的网络拓扑结构有:环形拓扑、星形拓扑、总线拓扑三个。 1. 总线拓扑结构 是将网络中的所有设备通过相应的硬件接口直接连接到公共总线上,结点之间按广播方式通信,一个结点发出的信息,总线上的其它结点均可“收听”到。 优点:结构简单、布线容易、可靠性较高,易于扩充,是局域网常采用的拓扑结构。缺点:所有的数据都需经过总线传送,总线成为整个网络的瓶颈;出现故障诊断较为困难。最著名的总线拓扑结构是以太网(Ethernet)。 2. 星型拓扑结构 每个结点都由一条单独的通信线路与中心结点连结。 优点:结构简单、容易实现、便于管理,连接点的故障容易监测和排除。缺点:中心结点是全网络的可靠瓶颈,中心结点出现故障会导致网络的瘫痪。 3. 环形拓扑结构 各结点通过通信线路组成闭合回路,环中数据只能单向传输。 优点:结构简单,适合使用光纤,传输距离远,传输延迟确定。缺点:环网中的每个结点均成为网络可靠性的瓶颈,任意结点出现故障都会造成网络瘫痪,另外故障诊断也较困难。最著名的环形拓扑结构网络是令牌环网(Token Ring) 4. 树型拓扑结构 是一种层次结构,结点按层次连结,信息交换主要在上下结点之间进行,相邻结点或同层结点之间一般不进行数据交换。优点:连结简单,维护方便,适用于汇集信息的应用要求。缺点:资源共享能力较低,可靠性不高,任何一个工作站或链路的故障都会影响整个网络的运行。 5. 网状拓扑结构 又称作无规则结构,结点之间的联结是任意的,没有规律。优点:系统可靠性高,比较容易扩展,但是结构复杂,每一结点都与多点进行连结,因此必须采用路由算法和流量控制方法。目前广域网基本上采用网状拓扑结构。 6.混合型拓扑结构 就是两种或两种以上的拓扑结构同时使用。优点:可以对网络的基本拓扑取长补短。缺点:网络配置挂包那里难度大。
四:计算
1.写sql语句:求课程号不等于c101的学生的姓名和学号
学生信息表(姓名,学号)和课程信息表(学号,课程号,成绩)
2.给一个函数写输出结果
a[i]={'*','*','*','*','*'};
for(i=0;i<5;i++)
{
for(j=0;j<i;j++)
printf("c%",'');
for(k=0;k<5;k++)
printf("c%",a[k]);
}
以下是java 实现,测试过,是一平行四边形的输出
class testArray
{
public static void main(String [] args)
{
char [] a = new char []{'*','*','*','*','*'};
for(int i=0;i<5;i++)
{
System.out.print("/n");
for (int j=0;j<i ;j++ )
System.out.print(" ");
for (int k=0;k<5;k++ )
System.out.print(a[k]);
}
}
}
3.给一个函数写功能
输入三个数,比较他们的大小,指针实现的。
if(*pa>*pb)
p=pa;pa=pb;pb=p
if(*pa>*pc)
p=pa;pa=pc;pc=p

函数实现的功能是:从小到大比较大小并输出。

4.给中缀表达式,要求写后缀表达式
三小题:
一个中缀式到其他式子的转换方法
这里我给出一个中缀表达式
a+b*c-(d+e)
第一步:按照运算符的优先级对所有的运算单位加括号
式子变成:((a+(b*c))-(d+e))
第二步:转换前缀与后缀表达式
前缀:把运算符号移动到对应的括号前面
则变成:-( +(a *(bc)) +(de))
把括号去掉:-+a*bc+de 前缀式子出现
后缀:把运算符号移动到对应的括号后面
则变成拉:((a(bc)* )+ (de)+ )-
把括号去掉:abc*+de+-
5.给字符的权值,要求最优二叉树(哈夫曼树),求哈夫曼编码,并计算平均查找长度。
八个字符:从A-H,权值为(10,1,2,29,7,10,16,25)

以上部分答案是个人整理,仅供参考!切记!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: