小白的CTF学习之路6——阶段测评

Posted xiaoshenlong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白的CTF学习之路6——阶段测评相关的知识,希望对你有一定的参考价值。

刚才考了自己一次,下面我把题和答案放到下面

CPU中不含有以下选项中的  C

A:     运算器   

B:      寄存器

C:     内存

D:     时钟

这是一道送分题,CPU包含以下几种原件

寄存器

控制器

运算器

时钟

 

CPU中负责计时的部件是  G

 

E:      程序计数寄存器

 

F:      时钟

 

G:     控制器

 

H:     靠人来计时

其实这个答案我本人也是存疑的,目前网上没有关于这方面的资料,但是肯定不会选F了,时钟是决定CPU运算速度的部件

 

对于汇编以下说法正确的是  L

 

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

 

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

 

K:      汇编是给CPU看的

 

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

没涉及到,暂且不说

 

以下哪个寄存器名是错的  D

 

A:     累加寄存器

 

B:      程序计数器

 

C:     标志寄存器

 

D:     控制寄存器

CPU寄存器分为以下几种:

  • 累加寄存器
  • 标志寄存器
  • 程序计数器
  • 基址寄存器
  • 变址寄存器
  • 指令寄存器
  • 通用寄存器

 

以下哪个说法是错误的  C

 

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

 

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

 

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

 

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

控制分支是标志寄存器的任务,循环运行是程序计数器的作用,控制器负责控制数据读取,写出,更换等操作

 

请写出二进制,八进制,十进制,十六进制(9之后使用字母顺序)

 

1   1

 

10  2

 

11  3

 

100 4

 

101 5

 

110 6

 

111 7

 

1000 8

 

1001 9

 

1010 10

 

1011 11

 

1100 12

 

1101 13

 

1110 14

 

1111 15

 

10000 16

 

10001 17

 

10010 18

 

10011 19

 

10100 20

只学了二进制和十进制,转换方法很简单,不说了

请使用公式写出二进制数 011100001100000111000对应的十进制,需要解题步骤:

011100001100000111000=2^3+2^4+2^5+2^11+2^12+2^13+2^18+2^19=8+16+32+2048+4096+131072+262144=923704

这个也没什么可说的,有个计算器就能做到

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

 开头数字为0说明为正数,正常求和

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

开头字母为1说明为负数,减一之后取反再做运算

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

1111 1000 0111 1000

没什么好说的

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

0000 1011 1110 0000

题目说了逻辑右移,那就正常位移就可以了

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

0000 1011 1110 0000

虽说算术右移,但首位是0,无需加一

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

1111 1011 1110 0000

此二进制首位为1,需要进行补一

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

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

前面一章重点讲过此环节,计算机在做浮点数运算时很容易出误差,解决方法一忽略,二将浮点数变为整数运算

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

内存中有许多空间,地址的存在可以让cpu更快捷的找到所需数据的位置

由他的寻址位数*数据得出

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

A:     数组

B:     

C:     队列

D:     链表

之前说过计算机在做累加运算时是最快的,数组正好符合这一要求

 

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

 

数组,读取速度快

 

栈,有记录,可回溯

 

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

 

程序是在内存中执行的 A

 

A:    

 

B:     

 

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

 

A:     内存

 

B:      CPU

 

C:     硬盘

 

D:     我脑子里

常识问题

 

 

 

 

 

 

 

 

 

 

以上是关于小白的CTF学习之路6——阶段测评的主要内容,如果未能解决你的问题,请参考以下文章

小白的CTF学习之路1——程序与CPU

小白的CTF学习之路2——二进制数据基础与运算(上)

CTF 小白教程《从0到1:CTFer成长之路》SQL - 2 解题过程

CTF 小白教程《从0到1:CTFer成长之路》SQL - 2 解题过程

python小白学习之路--01

USB小白学习之路端点IN/OUT互换