考研帮 > 考研资料

2.5 本章真题解析

2.5 本章真题解析

  在本章的内容中,要求考生重点掌握的是定点数的运算、浮点数的运算,以及ALU的功能。本节按照研究生入学考试的试题样式,参考历年的真题和全国40所高校的研究生入学试题,组织了相关的真题及解析,供读者参考。

2.5.1 单项选择题

  例题1
  
一个C语言程序在一台32位机器上运行。程序中定义了三个变量x、y和z,其中x和z为int型,y为short型。当x=127,y=-9时,执行赋值语句z=x+y后,x、y和z的值分别是(1) 。[2009年试题12]
  (1)A.x=0000007FH,y=FFF9H,z=00000076H
      B.x=0000007FH,y=FFF9H,z=FFFF0076H
            C.x=0000007FH,y=FFF7H,z=FFFF0076H
            D.x=0000007FH,y=FFF7H,z=00000076H
  例题1分析
  
C语言的数据在内存中以补码形式存放,根据题目的条件,可将x、y、z的值由十进制转为二进制补码。
  x为int型,且在32位的机器上运行,因此x字长为32位,转换成二进制为0000 0000 0000 0000 0000 0000 0111 1111,再转换成十六进制为0000007FH。
  y为short型,且在32位的机器上运行,因此y字长为16位,转换成二进制为1111 1111 1111 0111,再转换成十六进制为FFF7H。
  z为int型,且在32位的机器上运行,因此z字长为32位,z=x+y=127-9=118,转换成二进制为0000 0000 0000 0000 0000 0000 0111 0110,再转换成十六进制为00000076H。
  例题1答案
  
(1)D
  例题2
  
浮点数加、减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤。设浮点数的阶码和尾数均采用补码表示,且位数分别为5位和7位(均含2位符号位)。若有两个数则用浮点加法计算X+Y的最终结果是(2)[2009年试题13]
  (2)A.00111 1100010 B.00111 0100010 C.01000 0010001 D.发生溢出
  例题2分析
  
浮点加法的第一步是对阶,对阶原则为小阶向大阶看齐。因此将Y对阶后得到:Y=27×5/32,然后将尾数相加,得尾数之和为34/32。因为这是2个同号数相加,尾数大于1,则需要右规,阶码加1。由于阶码的位数为5位,且含2位符号位,即阶码的表示范围在-8~+7之间。而阶码本身等于7,再加1就等于8。因此,最终结果发生溢出。
  例题2答案
  
(2)D
  例题3
  
假定有4个整数用8位补码分别表示r1=FEH,r2=F2H,r3=90H,r4=F8H,若将运算结果存放在一个8位寄存器中,则下列运算会发生溢出的是(3) 。[2010年试题13]
  (3)A.r1×r2 B.r2×r3 C.r1×r4 D.r2×r4
  例题3分析
  
根据试题已知条件,[r1]补=1111 1110,[r2]补=1111 0010,[r3]补=1001 0000,[r4]补=1111 1000,根据补码乘法运算规则及溢出的判断规则,不难知道发生溢出的是r2×r3。
  例题3答案
  
(3)B
  例题4
  
假定变量i,f,d数据类型分别为int,float和double(int用补码表示,float和double分别用IEEE754单精度和双精度浮点数据格式表示),已知i=785,f=1.5678e3,d=1.5e100。若在32位机器中执行下列关系表达式,则结果为真的是(4) 。[2010年试题14]
  (I)i= =(int) (float)i (II)f= =(float) (int) f (III)f= =(float) (double) f (IV)(d+f)-d= =f
  (4)A.仅I和II   B.仅I和III                C.仅II和III                      D.仅III和IV
  例题4分析
  
在对不同类型数据进行强制转换时,当表示范围小的数据类型转换为表示范围大的类型时,不会发生数据丢失或溢出的情况,而当将表示范围大的数据类型转换为表示范围小的类型时,可能发生溢出或丢失数据。题目中给出的三种数据类型,其表示范围的大小从大到小排列分别为double、float、int。执行题目中给出的四个表达式后,其结果为真的只有I和III。
  例题4答案
  (4)B
  例题5
  
计算机中表示地址时使用 (5)
  (5)A.无符号数 B.原码 C.反码 D.补码
  例题5分析
  
数值数据可以分为有符号数和无符号数。无符号数包括0和正数,这与地址的表示是一致的。而有符号数又可以用不同的机器码来表示,包括原码、反码、补码和移码等,一般不用来表示地址。
  例题5答案
  
(5)A
  例题6
  
在机器数的四种表示方法中, (6) 对0的表示有两种形式。
  (6)A.原码和反码 B.原码和补码 C.反码和补码 D.补码和移码
  例题6分析
  
这是一道概念比较题,它主要考查的是四种编码格式中0的表示法。对于这种题目,实际上只需掌握各种编码的定义,就不难得出正确的答案。如表2-10所示给出了四种编码的比较。

表2-10 四种编码的比较

编    码 特    点 正零表示法 负零表示法
原码 1位符号位,7位编码 0 0000000 1 0000000
反码 正数不变,负数则除符号位外按位取反 0 0000000 1 1111111
补码 正数不变,负数则在反码基础上加1 0 0000000 0 0000000
移码 移码与补码类似,只是符号位表示相反 1 0000000 1 0000000

  例题6答案
  
(6)A
  例题7
  
下面关于浮点运算器的描述中,正确的是 (7)
  (7)A.浮点运算器可用阶码部件和尾数部件实现。
            B.阶码部件可实现加、减、乘、除四种运算。
            C.阶码部件不进行阶码相加、相减和比较操作。
            D.尾数部件只进行乘法和减法运算。
  例题7分析
  
由于浮点运算分阶码和尾数两部分,因此浮点运算器的硬件配置比定点运算器复杂,在浮点运算中,对于阶码只有加减运算,对于尾数则有加、减、乘、除四种运算,浮点运算器主要由两个定点运算部件组成,一个是阶码运算部件,用来完成阶码加减,控制对阶时小阶的尾数右移次数,以及规格化时对阶码的调整;另一个是尾数运算部件,用来完成尾数的四则运算及判断尾数是否已规格化,此外,还需要有判断运算结果是否溢出的电路等。
  例题7答案
  
(7)A
  例题8
  
关于ASCII编码的正确描述是(8)
  (8)A.使用8位二进制代码,最右边一位为1
            B.使用8位二进制代码,最左边一位为0
            C.使用8位二进制代码,最右边一位为0
            D.使用8位二进制代码,最左边一位为1
  例题8分析
  
ASCII字符的编码由7个二进制位表示,从0000000到1111111共128种编码。但由于字节是计算机中的基本单位,ASCII码仍以一个字节来存入一个字符。每个字节中多余的一位(最高位,即最左边的一位)在机器内部保持为0。
  例题8答案
  
(8)B
  例题9
  
下列数据中,最大的数为(9)
  (9)A.(10010101)2 B.(224)5 C.(96)16 D.(147)8
  例题9分析
  
要比较这些数的大小,就需要先将这些数都转换为同一种数制,这样就能直观地得到结果。不妨将题目中所有选项的数值都转换为熟悉的十进制数,然后再比较大小。

  

  例题9答案
  
(9)C
  例题10
  
下列各选项中的数值,与十进制数327.6875等价的是(10)
  (10)A.(123.2345)16     B.(465.8932)8
     C.(**********. 1011)2  D.(**********. 0010)2
  例题10分析
  
要判断两个数是否等级,将两个数转换为同种数制的数据就很容易知道。在做本题时,我们可以采用例题9介绍的方法将各选项中的数转换为十进制数,也可以使用另一种方法,将十进制数分别转换为与各选项相同的数制类型,然后再比较。
  对于十进制整数转换为二进制整数来说,就是用2连续去除十进制整数,直至商等于0为止;然后逆序地排列每次的余数(先取得的余数为低位),便得到与该十进制数相对应的二进制数各位的数值。

  

  对于十进制小数转换为二进制小数来说,就是连续用2去乘十进制小数,直至乘积的小数部分等于0为止;然后顺序地排列每次乘积的整数部分(先取得的整数为高位),便得到与该十进制数相对应的二进制数各位的数值。
  将十进制数0.6875转换成二进制数的过程为:

  

  

  因此,最后将十进制数327.6875转换为二进制数的结果为**********. 1011。同理,可以将该十进制数转换为八进制或十六进制等。
  例题10答案
  
(10)C

关于"最后阶段,真题的正确打开方式_备考经验_考研帮"15名研友在考研帮APP发表了观点

扫我下载考研帮

考研帮地方站更多

你可能会关心:

来考研帮提升效率

× 关闭