【第三次】21级计科计算机组成原理课外练习

【第三次】21级计科计算机组成原理课外练习

  • 一、单选题
  • 二、填空题
  • 三、程序填空题

一、单选题

2-1假设变量x的位数为n(n>=8),x的最低有效字节不变,其余各位全变为0,则对应C语言表达式为。
A.x | ~ 0xFF
B.x ^ 0xFF
C.x | 0xFF
D.x & 0xFF

2-2 假定变量i、f的数据类型分别是int、float。已知i=12345,f=1.2345e3,则在一个32位机器中执行下列表达式时,结果为“假”的是
A.f==(float)(double)f
B.i==(int)(double)i
C.f(float)(int)f==
D.i==(int)(float)i

2-3 假定某计算机按字节编址,采用小端方式,有一个float型变量x的地址为0xffffc000,x=12345678H,则在内存单元0xffffc001中存放的内容是
A.00110100B
B.0101B
C.0001001000110100B
D.01010110B

2-4 已知 float 型变量用 IEEE 754 单精度浮点数格式表示。若 float 型变量 x 的机器数为 8020 0000H,则 x 的值是:
A. − 2 − 128 −2^{−128} 2128
B. − 1.01 × 2 − 127 −1.01×2^{−127} 1.01×2127
C. − 1.01 × 2 − 126 −1.01×2^{−126} 1.01×2126
D.非数(NaN)

2-5 下列数值中,不能用 IEEE 754 浮点格式精确表示的是:
A.1.2
B.1.25
C.2.0
D.2.5

2-6 -0.4375 的 IEEE 754 单精度浮点数表示为:
A.BEE0 0000H
B.BF60 0000H
C.BF70 0000H
D.C0E0 0000H

2-7 两个4位二进制数分别为 1101、0111,则这两个数码距为( )。
A.1
B.2
C.3
D.4

2-8 有以下由1个字节组成的合法编码集{0xA9,0xC7,0xDF,0xBE},该编码集的最小码距是( )。
A.1
B.2
C.3
D.4
E.5
F.6

二、填空题

4-1
32位IEEE 754浮点数为41AB8000H, 则对应的真值的小数部分的数值为 4375 。(注:只需要填小数点后面的阿拉伯数字,0和小数点均不需要填写)

4-2
假定编译器规定int和short类型长度分别为32位和16位,执行下列C语言语句:

unsigned short x = -865365530;
unsigned int uy = x;
int y = x;

那么,请回答:
(1)得到x的机器数为 91e6 H。(填写十六进制数,字母全部大写或者全部小写,注意补满位数)
(2)uy/y = 1 。(填写阿拉伯十进制数,只填写整数部分,小数部分直接舍弃,不需要作四舍五入)
(3)y/uy = 1。(填写阿拉伯十进制数,只填写整数部分,小数部分直接舍弃,不需要作四舍五入)

4-3
(1)若浮点数x的32位IEEE754标准的十六进制存储格式为(C2F70000)H,其对应的十进制真值为 -123.5

(2)若浮点数为5.625,其对应的32位IEEE754标准的十六进制存储格式为0x 40B40000 。(十六进制字母需用大写表示,小写字母不得分)

4-4
已知int数据类型为32位,当int x = 0x 80000000 时,能使得C程序逻辑表达式(x<=0)&&(x-1>=0)的值为TRUE。(答案要求使用十六进制表示,字母用大写表示)

4-5
码长为八位时,-108的原码是 11101100 、反码是 10010011 、补码是 10010100 、移码是 00010100 。(填写成8位二进制数)

4-6
假定编译器规定int和short类型长度分别为32位和16位,执行下列C语言语句:unsigned short x=65531;unsigned int y=x;得到y的机器数为 0000FFFFB H

4-7
由4个“1”和4个“0”组成的8位二进制补码,能表示的最大整数是 120(填写十进制数)

4-8
由4个“1”和4个“0”组成的8位二进制补码,能表示的最小整数是 -121(填写十进制数)

三、程序填空题

5-1 利用C语言程序输出某些特定的数字

这是一道利用C语言程序输出某些特定的数字,以复习计算机组成原理中常见的概念。

(1)输出整数a的补码(十六进制,前缀带0x;若a的值为0则直接输出0);

(2)输出单精度浮点数对应的IEEE754标准编码十进制数;

(3)保留整数c第2位到第7位的结果,其他位全部置0,输出变换后的十进制数(设最低位为第1位);

(4)将整数c第2位到第7位全部置1,其他位全部保留,输出变换后的十进制数(设最低位为第1位);

(5)判断a乘以c的符号,如果是乘积为正则输出0;如果是乘积为负则输出1。

温馨提示:
【第三次】21级计科计算机组成原理课外练习_第1张图片

表2 移位运算符

【第三次】21级计科计算机组成原理课外练习_第2张图片

#include
int main()
{
    int a;
    float b;
    int c ;
    while(~scanf("%d %f %x",&a,&b,&c))
    {
        printf("%#x\n",a);
        printf("%d\n",*(int*)& b);
        printf("%d\n", 0x7E& c);
        printf("%d\n", 0x7E| c);
        printf("%d\n",(a^c) >>31&0x1 );
    }
    return 0;
}

输入样例

-1 11.375 0x8fa

输出样例

0xffffffff
1094057984
122
2302
1

5-2 破译情报
2021年7月1日是我国第100个建党节,也是“两个一百年”中的第一个一百年——到建党一百年时,使国民经济更加发展,各项制度更加完善。
【第三次】21级计科计算机组成原理课外练习_第3张图片

然而中国共产党于1921年7月23日成立后,在反动军阀政府的残暴统治之下,只能处于秘密状态,没有公开进行活动的环境,远程的秘密情报需要通过电报+“密码本”的方式才能完成高效加密传递。
【第三次】21级计科计算机组成原理课外练习_第4张图片

下面的“数字密码本”是根据七段数码管(共阴极)的原理制成的,现在亟需你发现其中的规律,将密码本中所有内容补充完成,以获得前方破获的敌军电话重要情报。
【第三次】21级计科计算机组成原理课外练习_第5张图片
【第三次】21级计科计算机组成原理课外练习_第6张图片

#include
char findmima(short i)
{
    switch(i)
    {
        case 0x3f:return '0';/*0x3f是'0'的密码,下同*/
        case 0x06:return '1';
        case 0x5b:return '2';
        case 0x4f:return '3';
        case 0x66:return '4';
        case 0x6d:return '5';
        case 0x7d:return '6';
        case 0x07:return '7';
        case 0x7f:return '8';
        case 0x6f:return '9';
    
    }
     return 0;
}
int main()
{
    int i;
    short telephone[]={0x06,'5'(该处替换成'5'的密码),0x4f,'2'(该处替换成'2'的密码),0x7d,'8'(该处替换成'8'的密码),0x6f,'2'(该处替换成'2'的密码),0x6f,0x07,0x4f};
    short size=sizeof(telephone)/sizeof(telephone[0]);
    for( i = 0 ; i < size ; i++)
    {
        printf("%c",findmima(telephone[i]));
    }
  return 0;
}

你可能感兴趣的:(计组原理,算法)