计算机在进行浮点数的相加(减)运算之前先进行对阶操作,若x的阶码大于y的阶码,
则应将()。
A.x的阶码缩小至与y的阶码相同,且使x的尾数部分进行算术左移
B.x的阶码缩小至与y的阶码相同,且使x的尾数部分进行算术右移
C.y的阶码扩大至与x的阶码相同,且使y的尾数部分进行算术左移
D.y的阶码扩大至与x的阶码相同,且使y的尾数部分进行算术右移
【解析】正确答案:D。
本题考查浮点数的运算特点。
浮点数的表示由阶和尾数两部分组成,其一般表示形式如下所示(不同系统的具体安排
可能不同),阶码通常为带符号的纯整数,尾数为带符号的纯小数。
设有浮点数X=MX2i,Y=NX2j,求X±Y的运算过程如下。
①对阶:使两个数的阶码相同。令K=|i-j|,将阶码小的数的尾数右移K位,使其阶码加
上K。
②求尾数和(差)。
③结果规格化并判溢出:若运算结果所得的尾数不是规格化的数,则需要进行规格化处
理。当尾数溢出时,需要调整阶码。
④舍入:在对结果右规时,尾数的最低位将因移出而丢掉。另外,在对阶过程中也会将
尾数右移使最低位丢掉。这就需要进行舍入处理,以求得最小的运算误差。
第2题
统一过程(UP)的基本特征是“用例驱动、以架构为中心的和受控的迭代式增量开发”。
UP将一个周期的开发过程划分为4个阶段,其中()的提交结果包含了系统架构。
A.先启阶段
B.精化阶段
C.构建阶段
D.提交阶段
【解析】正确答案:B。
一个UP可分为若干个周期,每个周期的开发过程被分为4个阶段,每个阶段可进行若
干次迭代。
UP将一个周期的开发过程划分为如下的4个阶段。
(1)先启阶段(Inception):该阶段的主要意图是建立项目的范围和版本,确定业务
实现的可能性和项目目标的稳定性。提交结果包括原始的项目需求和业务用例。
(2)精化阶段〔Elaboration):该阶段的主要意图是对问题域进行分析,建立系统的需
求和架构,确定技术实现的可行性和系统架构的稳定性.提交结果包括系统架构及其相
关文档、领域模型、修改后的业务用例和整个项目的开发计划.
(3)构建阶段(Construction):主要意图是增量式地开发一个可以交付用户的软件
产品。
(4)提交阶段(Transition):主要意图是将软件产品提交用户。
第3题
简单算术表达式的结构可以用下面的上下文无关文法进行描述(E为开始符号),()
是符合该文法的句子。
E→T|E+T
T→F|T*F
F→-F|N
N→0|1|2|3l4|5|6|7|8|9
A.2--3*4
B.2+-3*4
C.(2+3)*4
D.2*4-3
一个上下文无关语法定义一个语言,其主要思想是从文法的开始符号出发,反复连续使
用产生式,对非终结符进行替换和展开。
第4题
迪杰斯特拉(Dijkstra)算法用于求解图上的单源点最短路径。该算法按路径长度递增次
序产生最短路径,本质上说,该算法是一种基于()策略的算法。
A.分治
B.动态规划
C.贪心
D.回溯
【解析】正确答案:C。
分治法:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则
直接解决;否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形
式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。
动态规划法:这种算法也用到了分治思想,它的做法是将问题实例分解为更小的、相似
的子问题,并存储子问题的解而避免计算重复的子问题。
贪心算法:它是一种不追求最优解,只希望得到较为满意解的方法。贪心算法一般可以