Po学校——考试一

来源:互联网 发布:韩氏父子 圆号网络 编辑:程序博客网 时间:2024/05/16 09:51


 试卷一
1.CPU中不含有以下选项中的:C
A: 运算器 
B: 寄存器
C: 内存
D: 时钟
2.CPU中负责计时的部件是:F
E: 程序计数寄存器
F: 时钟
G: 控制器
H: 靠人来计时
3.对于汇编以下说法正确的是:J
I: 汇编需要编译成机器码
J: 汇编是助记符,和机器码一一对应
K: 汇编是给CPU看的
L: 编译器编译出来的是汇编
4.以下哪个寄存器名是错的:D
A: 累加寄存器
B: 程序计数器
C: 标志寄存器
D: 控制寄存器
5.以下哪个说法是错误的:C
A: 计算机能够执行分支是因为标志寄存器
B: 计算机能够执行循环是因为程序计数器
C: 控制器控制程序的分支及循环运行
D: 标志寄存器负责保存计算后结果的状态
6.请写出二进制,八进制,十进制,十六进制(9之后使用字母顺序)
二进制         八进制       十进制      十六进制
00000000       00               0              0X0
00000001       01               1              0X1
00000010       02               2              0X2
00000011       03               3              0X3
00000100       04               4              0X4
00000101       05               5              0X5
00000110       06               6              0X6
00000111       07               7              0X7
00001000       010             8              0X8
00001001       011             9              0X9
00001010       012            10             0XA
00001011       013            11             0XB
00001100       014            12             0XC
00001101       015            13             0XD
00001110       016            14             0XE
00001111       017            15             0XF
00010000       020            16             0X10
00010001       021            17             0X11
00010010       022            18             0X12
00010011       023            19             0X13

7.请使用公式写出二进制数 011100001100000111000对应的十进制,需要解题步骤:
先转为十六进制,然后再转十进制:
二进制:     0         1110        0001      1000      0011      1000
十六进制: 0            E              1            8           3            8
十进制:     0 + E*16^4   +   1*16^3 + 8*162 + 3*161 + 8*160
结果:十六进制为0XE1838,十进制结果为923704


8.假设一个32位带符号(有负数)的二进制数 0111 0010 1110 1111 0011 1111 0000 1100,请写出对应的十进制数
    先转为十六进制,然后再转十进制:
    二进制:0111       0010        1110       1111        0011       1111     0000      1100
十六进制:    7             2             E            F              3               F         0            C
十进制:    7*16^7 +2*16^6 + E*16^5 + F*16^4 + 3*16^3 + F*16^2 +  0   +   C*16^0

结果:十六进制为0X72EF3F0C,十进制结果为1928281868


9.假设一个32位带符号(有负数)的二进制数 1111 0010 0010 1111 0011 0110 0000 1100,请写出对应的十进制数
由于最高位是1,二进制为负数,是补码,所以要先求原码:
                  补码:1111      0010      0010      1111      0011      0110      0000      1100
负数的十六进制:   F            2             2             F          3            6            0           C 
补码减一求反码:1111      0010      0010       1111      0011      0110     0000      1011
       取反得原码:0000      1101      1101        0000     1100      1001     1111       0100
  正数十六进制 :    0            D           D              0           C            9           F          4
              十进制:    0 +    13*16^6 + 13*16^5  +   0    +  12*16^3+ 9*16^2+15*16^1+4*16^0
      结果: 最高位是1,二进制为负数,十六进制为0XF22F360C,十进制结果为-231786996


10.假设二进制数(16位)0101 1111 0000 1111左移3位,结果是:
            二进制:0101       1111      0000      1111
          左移3位:1111       1000      0111      1000
 负数十六进制:   F             8            7            8
    减一求反码:1111       1000       0111      0111
    取反得原码:0000       0111       1000      1000
正数十六进制:   0              7             8            8
           十进制:   0   +    7*16^2 + 8*16^1+8*16^0
结果:左移三位后最高位是1,二进制为负数,十六进制为0XF878,十进制为-1928


11.假设二进制数(16位)0101 1111 0000 0000逻辑右移3位,结果是:
                    二进制: 0101       1111       0000       0000
逻辑右移3位二进制: 0000       1011       1110       0000
                十六进制:    0             B             E            0
                    十进制:    0    +  11*16^2 +  14*16^1 + 0
  结果:  十六进制为0XBE0,十进制为3040


12.假设二进制数(16位)0101 1111 0000 0000算数右移3位,结果是:
                    二进制: 0101      1111        0000       0000
算数右移3位二进制: 0000      1011        1110       0000
                十六进制:    0            B              E             0
                    十进制:   0    + 11*16^2 +14*16^1   +   0
  结果:   十六进制为0XBE0,十进制为3040


13.假设二进制数(16位)1101 1111 0000 0000算数右移3位,结果是:
由于最高位是1,二进制为负数,左补1
                    二进制: 1101        1111        0000         0000
算数右移3位二进制: 1111        1011        1110         0000
         负数十六进制:     F             B             E               0
             减一求反码: 1111        1011         1101        1111
             取反得原码: 0000        0100         0010        0000
         正数十六进制:     0              4               2             0
                    十进制:     0  +     4*162     +  2*161  +    0
  结果:   十六进制为0XFBE0,十进制为-1056


14.请问以下代码输出的结果是:C
Int main()
{
     Float sum = 0;
     For( int I = 0; i< 100; i++)
     {
          Sum += 0.1;
     }
     Printf(“%f”,sum);
}
A: 10.0000000
B: 10.0000002
C: 不知道
D: 1.0000000


15.内存为什么有地址,我们是通过什么计算出内存的大小的?
答:内存的物理接口的引脚,是由电源引脚,地址引脚,数据引脚和控制引脚等组成。在逻辑结构上就像一栋楼房,通过地址引脚,给每一楼层一个编号,这个编号方便我们来查找,在计算机中这个编号就是内存地址,方便计算机数据的写入和读取;内存的大小是通过地址引脚和数据引脚来计算的,即:内存的大小=地址引脚*数据引脚


16.编程时读取和写入内存速度最快的数据结构是:A
A: 数组
B: 栈
C: 队列
D: 链表


17.请说明下上一题中几种数据结构的优势
(1)数组:方便存储,这时候内存地址编号就是依次累加,这种架构非常符号内存的结构,而连续的方式的更快。
(2)栈:时间推移来记录数据,从下而上记录数据,跟数组相反,最开始记录,最后才能回溯找出来
(3)队列:从上而下,按照顺序依次存储和读取,先写先读。
(4)链表:会在内存中数据的指针,这种方式内存编号可以不是连续的,通过指针来操作,更方便读取和删除。


18.程序是在内存中执行的:A
A: 对
B: 错


19.所有的数据都是一直(包括关机时)存储在:C
A: 内存
B: CPU
C: 硬盘
D: 我脑子里

0 0