计算机系统基础(一):程序的表示、转换和链接---第二周
1.108对应的十六进制形式是( )。
A.B4H
B.5CH
C.6CH
D.63H
2.–1029的16位补码用十六进制表示为( )。
A.8405H
B.0405H
C.FBFBH
D.7BFBH
3.考虑以下C语言代码:
short si=–8196;
unsigned short usi=si;
执行上述程序段后,usi的值是( )。
A.57340
B.57339
C.34572
D.8196
解析: A、-8196=-(8192+4)=-10 0000 0000 0100B,因此,si和usi的机器数都为1101 1111 1111 1100,按无符号整数解释,其值为65535-3-8192=65535-8195=57340。
4.考虑以下C语言代码:
short si=–32768;
unsigned short usi=si;
执行上述程序段后,usi的值是( )。
A.65535
B.–32768
C.65536
D.32768
解析: D、-32768=-1000 0000 0000 0000B,因此,si和usi的机器数都为1000 0000 0000 0000,按无符号整数解释,其值为32768。
5.考虑以下C语言代码:
unsigned short usi=65535;
short si=usi;
执行上述程序段后,si的值是( )。
A.1
B.–1
C.–65535
D.65535
解析: B、65535=1111 1111 1111 1111B,因此,usi和si的机器数都为1111 1111 1111 1111,按带符号整数解释,其值为-1。
6.在ISO C90标准下执行以下关系表达式,结果为“真”的是( )。
A.(unsigned) –1 > –2
B.–1 < 0U
C.2147483647 < (int) 2147483648U
D.2147483647 > –2147483648
解析: A、-1的机器数为全1,-2的机器数为11┅10,按无符号整数比较,显然全1比任何数大,即结果为“真”。 B、-1的机器数为全1,按无符号整数比较,全1是最大的数,显然比0大,即结果为“假”。 C、2147483647的机器数为011┅1,在C90中为int型;2147483648的机器数为100┅0,在C90中为unsigned型,强制类型转换为int后,按带符号整数比较,显然011┅1比100┅0大,即结果为“假”。 D、2147483647的机器数为011┅1,在C90中为int型;2147483648的机器数为100┅0,在C90中为unsigned型,-2147483648的机器数通过对100┅0各位取反末位加一得到,因此,机器数还是100┅0。011┅1和100┅0按无符号整数比较,显然011┅1比100┅0小,即结果为“假”。
7.–1028采用IEEE 754单精度浮点数格式表示的结果(十六进制形式)是( )。
A.44C04000H
B.C4808000H
C.44808000H
D.C4C04000H
8.假定变量i、f的数据类型分别是int、float。已知i=12345,f=1.2345e3,则在一个32位机器中执行下列表达式时,结果为“假”的是( )。
A.i==(int)(float)i
B.i==(int)(double)i
C.f==(float)(int)f
D.f==(float)(double)f
解析: A、12345<1024x16=2^14,因此,12345对应的二进制数的有效位数一定小于14,更小于IEEE 754单精度格式的有效位数24,因而转换为float型后,不会发生有效数字丢失,也即能够精确表示为float型,再转换为int型后,数值是一样的。 B、任何int型数的有效位数不会超过31位,因此都能精确转换为具有53位有效位数的double型。 C、f=1234.5,转换为int型数后,小数点后面的数字被丢失,因此与原来的f不相等。 D、double型数的有效位数比float型数大得多,因而f转换为double类型后不会发生有效数字丢失。
9.假定某计算机按字节编址,采用小端方式,有一个float型变量x的地址为0xffffc000,x=12345678H,则在内存单元0xffffc001中存放的内容是( )。
A.0001001000110100B
B.0101B
C.00110100B
D.01010110B
解析: A、因为按字节编址,所以某一个单元内只能存放8位数字。 B、因为按字节编址,所以某一个单元内存放一个8位数字。 C、00110100B=34H,小端方式下,78H存在0xffffc000单元中,34H存在0xffffc002单元中,即结果错误。 D、01010110B=56H,小端方式下,78H存在0xffffc000单元中,56H存在0xffffc001单元中,即结果正确。
10.下面是关于计算机中存储器容量单位的叙述,其中错误的是( )。
A.最基本的计量单位是字节(Byte),一个字节等于8bit
B.一台计算机的编址单位、指令字长和数据字长都一样,且是字节的整数倍
C.“主存容量为1KB”的含义是指主存中能存放1024个字节的二进制信息
D.最小的计量单位为位(bit),表示一位“0”或“1”
格物致知