首页 > 代码库 > 考试一
考试一
说要考试,我们都不信,才上了三课,有什么可以考的?但是呢?考完才知道,19道题目,我一个小时完成还觉得时间紧,没时间检查。考完老师在群里发彪了。
今天晚上上课可有得说道了。惶惶之下,分析下考卷
程序是如何运行的 试卷一
- 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 更正
- 假设一个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
- 内存为什么有地址,我们是通过什么计算出内存的大小的?
答:内存因为分成很多个的空间,所以要用地址标记,以方便存储
我们是通过寻址能力乘以cpu一次性访问的位宽来计算内存大小
分析:以上回答有问题,当时可能脑子有问题。内存的大小,应该是由它的寻址位数*数据的位数得出
回头再看内存物理部分,以加深理解。
- 编程时读取和写入内存速度最快的数据结构是: 答:A
A: 数组
B: 栈
C: 队列
D: 链表
- 请说明下上一题中几种数据结构的优势
答:数组,读取速度快
栈,有记录,可回溯
链表:删除,插入,添加 速度快
队列:说不上来,忘记了。
存疑:队列的好处答不出来。回头看内存逻辑部分。
- 程序是在内存中执行的: 答:A
A: 对
B: 错
- 所有的数据都是一直(包括关机时)存储在:C
A: 内存
B: CPU
C: 硬盘
D: 我脑子里
考试一