首页 > 代码库 > 考试一

考试一

   说要考试,我们都不信,才上了三课,有什么可以考的?但是呢?考完才知道,19道题目,我一个小时完成还觉得时间紧,没时间检查。考完老师在群里发彪了。

 今天晚上上课可有得说道了。惶惶之下,分析下考卷 

 

  

程序是如何运行的   试卷一

  1. CPU中不含有以下选项中的:答 : c

A:     运算器   

B:      寄存器

C:     内存

D:     时钟

分析:这第一道题目就是送分的,还有一个:麻痹我们,啊,好简单,好简单,简单的不要不要的,mark老师太可奈了……

 

 

  1. CPU中负责计时的部件是:答 : G   群里说是F

E:      程序计数寄存器

F:      时钟

G:     控制器

H:     靠人来计时

分析:H选项“靠人来计时”,这是mark老师的冷幽默,首先就出局。

  F:时钟,讲时钟部件的时候,貌似没有讲负责计时,时钟部件,是cpu的动力,它的单位是GHZ,来表示cpu运行频率的。犹豫之下,这会不会是mark老师的坑点,时钟就一定会计时?

  E:程序计数寄存器,记录的是程序下一步执行的地址。出局。

  G:控制器?   貌似靠谱。

存疑——再去看看课程中,关于cpu的部件部分去……

 

  

 

 

  1. 对于汇编以下说法正确的是: 答: L   群里有人说正确答案是J

I:       汇编需要编译成机器码

J:       汇编是助记符,和机器码一一对应

K:      汇编是给CPU看的

L:      编译器编译出来的是汇编

分析:I: 汇编需要编译成机器码      

    J: 汇编是助词符,和机器码一一对应           这里是对的

         K:  汇编是给CPU看的    我毫不犹豫的选择了这个,回头又把题目默念一遍:这个啊,人也能看啊,不通,还有,0101才是给cpu的菜,不通不通。但回头再一想,如果前面的IJ都不对的话,那K应该成立啊……


        

    L:编译器编译出来的是汇编  这是被坑了吗?这个也貌似不对啊,编译出来的,貌似要加个参数才能汇编显示,编译出来的就是汇编?

存疑——回头再去看看课程。汗一个~~~~~~~

 

 

 

 

  1. 以下哪个寄存器名是错的: 答: D

A:     累加寄存器

B:      程序计数器

C:     标志寄存器

D:     控制寄存器

分析:貌似想混淆cpu中的部件控制器和各种寄存器,差点就成功了都。汗~~~没有控制寄存器

 

 

  1. 以下哪个说法是错误的:答 : C

A:     计算机能够执行分支是因为标志寄存器

B:      计算机能够执行循环是因为程序计数器

C:     控制器控制程序的分支及循环运行

D:     标志寄存器负责保存计算后结果的状态

分析:A:计算机能够执行分支是因为标志寄存器   这个对的

   B:计算机能够执行循环是因为程序计数器   这个啊,程序计数器,是记录下一跳程序的地址的,循环?貌似没错

     C:  控制器控制程序的分支及循环运行?    控制器是cpu的内部部件之一,能控制分支及循环?那也要寄存器和运算器的配合。

   D:  标志寄存器负责保存计算后结果的状态,这个对的。

存疑:回头看CPU的部件部分

 

 

  1. 请写出二进制,八进制,十进制,十六进制(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

 

  1. 请使用公式写出二进制数 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   更正

  1. 假设一个32位带符号(有负数)的二进制数 0111 0010 1110 1111 0011 1111 0000 1100,请写出对应的十进制数

答:符号位为零,那么这个数字是正的 1928281868

 

 

  1. 假设一个32位带符号(有负数)的二进制数 1111 0010 0010 1111 0011 0110 0000 1100,请写出对应的十进制数                 

答:符号位为1,那么,这个数是负数的补码,那么就要先减去1取反,得出- 231786996

 

 

 

  1. 假设二进制数(16位)0101 1111 0000 1111左移3位,结果是:

二进制:1111 1000 0111 1000

十进制:63608

十六进制:F878

 

  1. 假设二进制数(16位)0101 1111 0000 0000逻辑右移3位,结果是:

二进制:0000 1011 1110 0000

十进制  3040

十六进制:BE0

 

 

 

  1. 假设二进制数(16位)0101 1111 0000 0000算数右移3位,结果是:

二进制:0000 1011 1110 0000

十进制   3040

十六进制:BE0

 

 

 

 

  1. 假设二进制数(16位)1101 1111 0000 0000算数右移3位,结果是:

二进制:1111 1011 1110 0000

十进制  -1071

十六进制: -42F

 

 

  1. 请问以下代码输出的结果是

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

 

  1. 内存为什么有地址,我们是通过什么计算出内存的大小的?

答:内存因为分成很多个的空间,所以要用地址标记,以方便存储

我们是通过寻址能力乘以cpu一次性访问的位宽来计算内存大小

 分析:以上回答有问题,当时可能脑子有问题。内存的大小,应该是由它的寻址位数*数据的位数得出

 回头再看内存物理部分,以加深理解。

 

  1. 编程时读取和写入内存速度最快的数据结构是:  答:A

A:     数组

B:      栈

C:     队列

D:     链表

  1. 请说明下上一题中几种数据结构的优势

答:数组,读取速度快

栈,有记录,可回溯

链表:删除,插入,添加  速度快

队列:说不上来,忘记了。

 存疑:队列的好处答不出来。回头看内存逻辑部分。

 

 

  1. 程序是在内存中执行的: 答:A

A:     对

B:      错

  1. 所有的数据都是一直(包括关机时)存储在:C

A:     内存

B:      CPU

C:     硬盘

D:     我脑子里

考试一