今天学习的数据库工程师 2006试卷问题记录
今天开始正式看数据库工程师的试卷,目的是初步了解一下题型。把2006年的试卷一些不太明白的题目的解析,记录下来以便复习时观看。
上午卷
试题1:
两个同符号的数相加或异符号的数相减,所得结果的符号位SF和进位标志CF进行(52) 运算为l时,表示运算的结果产生溢出。
(52)A.与 B.或 C.与非 D.异或
答:解答这道题,我们首先需要清楚一个概念,即什么是溢出。溢出,是指运算结果超出机器数的表示范围。从这个概念我们可以了解到,两个异号数相加不会产生溢出,仅两个同号数相加时才有可能产生溢出。两个正数相加而绝对值超出允许的表示范围时称为正溢,两个负数相加而绝对值超出允许的表示范围时则称为负溢。一旦溢出,溢出的部分将丢失,留下来的结果将不正确。如果只有一个符号位,溢出将使结果的符号位产生错乱。因此,一般计算机中都设置了溢出判断逻辑,如果产生溢出,将停机并显示“溢出”标志。
现在我们来看几个典型的例子,从中我们可以总结出判断溢出的方法。其实在平时的学习当中,大家也应该尽可能多地自己总结规律,而不要光看书上的判断方法。
在下面的4个例题中,二进制数首位为符号位,后面4位为数据位,采用补码运算。
例1: |
例2: |
例3: |
例4: |
看完上面的4个运算式,我们可以开始总结规律了。由于上面的计算,是对两个4位的带符号二进制数进行运算,运算结果仍是一个4位带符号二进制数。所以其运算结果的范围应是:-16 ~ +15,非常明显,上面的例2和例4的结果溢出了。接下来,我们对这几个例题进行详细分析。
为了便于分析,令两个操作数的符号位分别为Sa和Sb。结果的符号位为Sf。符号位直接参与运算,所产生的符号位进位为Cf。将符号位之后的A1和B1称为最高有效位,它产生的进位为C。在例3中,C=1,但并未溢出,所以进位不等于溢出,不能简单地根据单个进位信号去判断有无溢出,而应当从几个相关信号之间的关联去进行溢出判断。
在双符号位中,高位就是符号位的进位Cf;而低位就是结果的符号位Sf。当Cf与Sf不同时,表示溢出;而相同时,表示操作正常。能达到此效果的运算为异或运算。
例题30答案
(52)D
试题2 若浮点数的阶码用移码表示,尾数用补码表示。两规格化浮点数相乘,最后对结果规格化时,右规的右移位数最多为___(2)___位。
(4)A.488888 B.388888 C.288888 D.188888
主存容量为256MB,每块1MB,则主存可以分为256/1=256=28块,即块号为8位,则主存地址的高8位是88H,对应地址更换表,高速缓存地址为188888H。
主存容量为 256MB表示由28个二进制数地址也对应由7个十六进制数8888888H ,每块 IMB说明块内地址是20位二进制数也就是5位十六进制数88888,剩下的2位十六进制数88H代表块地址,查表可知主存地址88H对应高速缓存地址1,所以高速缓存地址为188888H(1MB=2^20,8888888H右移20位(5位16进制)得88H, 查表1-> 88H 得地址188888H)解析:(1)D 这是一道命中率的计算题.设命中率为x,根据题意可以得到3x+30(1-x)=3.27得出:x=0.99
(2).D这道题一个是考查直接映像、全相联、组相联,以及在具体映射时候是如何实现的。这里有个基本的计算,那就是1M=10 00 00H
这样是不是就比较醒目了:
内存地址范围 Cache地址范围
3800000H-38FFFFFH 000000H-0FFFFFH
8800000H-88FFFFFH 100000H-1FFFFFH
5900000H-59FFFFFH 200000H-2FFFFFH
6700000H-67FFFFFH 300000H-3FFFFFH
rsa算法是非对称算法, 加密密钥和解密密钥不一样,一般加密密钥称为私钥,解密密钥称为公钥,私钥加密后只能用公钥解密, 当然也可以用公钥加密,用私钥解密.
试题16 耦合度描述了模块之间互相关联的程度
试题18 内聚是一种指标,表示一个模块代码功能的集合程度
试题22 总所周知,继承性是面向对象程序设计语言不同于其他语言,类库是他是否成熟的重要标志之一
试题24,25 为了解决进程间的同步和互斥问题,通常采用一种称为 (1) 机制的方法。若系统中有5个进程共享若干个资源R,每个进程都需要4个资源R,那么使系统不发生死锁的资源R的最少数目是 (2) 。
(1)A.调度 B.信号量 C.分派 D.通讯
(2)A.20 B.18 C.16 D.15
答:为了解决进程间的同步和互斥问题,通常采用一种称为信号量机制的方法。若系统中有5个进程共享若干个资源R,每个进程都需要4个资源R,那么使系统不发生死锁的资源R的最少数目是16个。因为如果系统有16个资源,可以给每个进程先分配3个资源(分配策略是轮流为每个进程分配资源)。此时还余下1个资源,这个资源无论分配给哪个进程,都能完成该进程的运行,当此进程运行完毕可以将其所有资源释放,所以这样系统不可能产行死锁。
若题目这么问:使系统不可能发生死锁的资源R的最少数目是?这样更明确。事实上,该题使用的是鸽巢原理:如果有n个鸽巢,而有n*k+1个鸽子,那么不管怎么分配,至少有一个鸽巢里面至少有k+1个鸽子。