2016-08-30
程序是如何运行的 试卷一
- CPU中不含有以下选项中的:答 : C
A: 运算器
B: 寄存器
C: 内存
D: 时钟
- CPU中负责计时的部件是:答 : F
E: 程序计数寄存器
F: 时钟
G: 控制器
H: 靠人来计时
- 对于汇编以下说法正确的是: 答: J
I: 汇编需要编译成机器码
J: 汇编是助记符,和机器码一一对应
K: 汇编是给CPU看的
L: 编译器编译出来的是汇编
- 以下哪个寄存器名是错的: 答: D
A: 累加寄存器
B: 程序计数器
C: 标志寄存器
D: 控制寄存器
- 以下哪个说法是错误的:答 : C
A: 计算机能够执行分支是因为标志寄存器
B: 计算机能够执行循环是因为程序计数器
C: 控制器控制程序的分支及循环运行
D: 标志寄存器负责保存计算后结果的状态
- 请写出二进制,八进制,十进制,十六进制(9之后使用字母顺序)
二进制 |
八进制 |
十进制 |
十六进制 |
0000 0000 |
00 |
0 |
0x0000 |
0000 0001 |
01 |
1 |
0x0001 |
0000 0010 |
02 |
2 |
0x0002 |
0000 0011 |
03 |
3 |
0x0003 |
0000 0100 |
04 |
4 |
0x0004 |
0000 0101 |
05 |
5 |
0x0005 |
0000 0110 |
06 |
6 |
0x0006 |
0000 0111 |
07 |
7 |
0x0007 |
0000 1000 |
010 |
8 |
0x0008 |
0000 1001 |
011 |
9 |
0x0009 |
0000 1010 |
012 |
10 |
0x000A |
0000 1011 |
013 |
11 |
0x000B |
0000 1100 |
014 |
12 |
0x000C |
0000 1101 |
015 |
13 |
0x000D |
0000 1110 |
016 |
14 |
0x000E |
0000 1111 |
017 |
15 |
0x000F |
0001 0000 |
020 |
16 |
0x0010 |
0001 0001 |
021 |
17 |
0x0011 |
0001 0010 |
022 |
18 |
0x0012 |
0001 0011 |
023 |
19 |
0x0013 |
0001 0100 |
024 |
20 |
0x0014 |
- 请使用公式写出二进制数 011100001100000111000对应的十进制,需要解题步骤:
答 : 0 1110 0001 1000 0011 1000
=2^3+2^4+2^5+2^11+2^12+2^17+2^18+2^19
=8+16+32+……
=923704
老师举例是以16进制转换0 1110 0001 1000 0011 1000
0 E 1 8 3 8
= 8 + 3 * 16 + 8 * 16^2 + 1*16^3 + 14*16^4
- 假设一个32位带符号(有负数)的二进制数 0111 0010 1110 1111 0011 1111 0000 1100,请写出对应的十进制数
答:符号位为零,那么这个数字是正的 1928281868
- 假设一个32位带符号(有负数)的二进制数 1111 0010 0010 1111 0011 0110 0000 1100,请写出对应的十进制数
答:符号位为1,那么,这个数是负数的补码,那么就要先减去1取反,得出- 231786996
- 假设二进制数(16位)0101 1111 0000 1111左移3位,结果是:
二进制:1111 1000 0111 1000
十进制:63608
十六进制:F878
- 假设二进制数(16位)0101 1111 0000 0000逻辑右移3位,结果是:
二进制:0000 1011 1110 0000
十进制 3040
十六进制:BE0
- 假设二进制数(16位)0101 1111 0000 0000算数右移3位,结果是:
二进制:0000 1011 1110 0000
十进制 3040
十六进制:BE0
- 假设二进制数(16位)1101 1111 0000 0000算数右移3位,结果是:
二进制:1111 1011 1110 0000
十进制 -1071
十六进制: -42F
- 请问以下代码输出的结果是
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
答:C
- 内存为什么有地址,我们是通过什么计算出内存的大小的?
答:内存因为分成很多个的空间,所以要用地址标记,以方便存储
我们是通过内存地址引脚数乘以数据引脚数来得出内存大小
- 编程时读取和写入内存速度最快的数据结构是: 答:A
A: 数组
B: 栈
C: 队列
D: 链表
- 请说明下上一题中几种数据结构的优势
答:数组,读取速度快
栈,有记录,可回溯
链表:删除,插入,添加 速度快
队列:便于连续数据的操作。
- 程序是在内存中执行的: 答:A
A: 对
B: 错
- 所有的数据都是一直(包括关机时)存储在:C
A: 内存
B: CPU
C: 硬盘
D: 我脑子里