考试一
说要考试,我们都不信,才上了三课,有什么可以考的?但是呢?考完才知道,19道题目,我一个小时完成还觉得时间紧,没时间检查。考完老师在群里发彪了。
今天晚上上课可有得说道了。惶惶之下,分析下考卷
程序是如何运行的 试卷一2016-08-29
- CPU中不含有以下选项中的:答 : c
A: 运算器
B: 寄存器
C: 内存
D: 时钟
分析:这第一道题目就是送分的,还有一个:麻痹我们,啊,好简单,好简单,简单的不要不要的,mark老师太可奈了……
- CPU中负责计时的部件是:答 : G 老师更正:F
E: 程序计数寄存器
F: 时钟
G: 控制器
H: 靠人来计时
分析:H选项“靠人来计时”,这是mark老师的冷幽默,首先就出局。
F:时钟,讲时钟部件的时候,貌似没有讲负责计时,时钟部件,是cpu的动力,它的单位是GHZ,来表示cpu运行频率的。犹豫之下,这会不会是mark老师的坑点,时钟就一定会计时?
E:程序计数寄存器,记录的是程序下一步执行的地址。出局。
G:控制器? 貌似靠谱。
存疑——再去看看课程中,关于cpu的部件部分去……
- 对于汇编以下说法正确的是: 答: L 老师更正J
I: 汇编需要编译成机器码
J: 汇编是助记符,和机器码一一对应
K: 汇编是给CPU看的
L: 编译器编译出来的是汇编
分析:I: 汇编需要编译成机器码
J: 汇编是助词符,和机器码一一对应 这里是对的
K: 汇编是给CPU看的 我毫不犹豫的选择了这个,回头又把题目默念一遍:这个啊,人也能看啊,不通,还有,0101才是给cpu的菜,不通不通。但回头再一想,如果前面的IJ都不对的话,那K应该成立啊……
L:编译器编译出来的是汇编 这是被坑了吗?这个也貌似不对啊,编译出来的,貌似要加个参数才能汇编显示,编译出来的就是汇编?
存疑——回头再去看看课程。汗一个~~~~~~~
- 以下哪个寄存器名是错的: 答: D
A: 累加寄存器
B: 程序计数器
C: 标志寄存器
D: 控制寄存器
分析:貌似想混淆cpu中的部件控制器和各种寄存器,差点就成功了都。汗~~~没有控制寄存器
- 以下哪个说法是错误的:答 : C
A: 计算机能够执行分支是因为标志寄存器
B: 计算机能够执行循环是因为程序计数器
C: 控制器控制程序的分支及循环运行
D: 标志寄存器负责保存计算后结果的状态
分析:A:计算机能够执行分支是因为标志寄存器 这个对的
B:计算机能够执行循环是因为程序计数器 这个啊,程序计数器,是记录下一跳程序的地址的,循环?貌似没错
C: 控制器控制程序的分支及循环运行? 控制器是cpu的内部部件之一,能控制分支及循环?那也要寄存器和运算器的配合。
D: 标志寄存器负责保存计算后结果的状态,这个对的。
存疑:回头看CPU的部件部分
- 请写出二进制,八进制,十进制,十六进制(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 这里考试的时候多看了一个0 ,考试过后才发现。
=2^3+2^4+2^5+2^11+2^12+2^17+2^18+2^19
=8+16+32+……
=923704 更正 老师讲解:可以用16进制,更便捷!
- 假设一个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
答:B 老师更正 C
- 内存为什么有地址,我们是通过什么计算出内存的大小的?
答:内存因为分成很多个的空间,所以要用地址标记,以方便存储
我们是通过寻址能力乘以cpu一次性访问的位宽来计算内存大小
分析:以上回答有问题,当时可能脑子有问题。内存的大小,应该是由它的寻址位数*数据的位数得出 老师更正:内存的地址引脚数*数据的引脚数
回头再看内存物理部分,以加深理解。
- 编程时读取和写入内存速度最快的数据结构是: 答:A
A: 数组
B: 栈
C: 队列
D: 链表
- 请说明下上一题中几种数据结构的优势
答:数组,读取速度快
栈,有记录,可回溯
链表:删除,插入,添加 读取会慢
队列:说不上来,忘记了。 老师讲解: 便于存储连续的数据
存疑:队列的好处答不出来。回头看内存逻辑部分。
- 程序是在内存中执行的: 答:A
A: 对
B: 错
- 所有的数据都是一直(包括关机时)存储在:C
A: 内存
B: CPU
C: 硬盘
D: 我脑子里