快手2020校园招聘秋招笔试--工程B试卷

  1. 攻击者使用无效IP地址,利用TCP连接的三次握手过程,连续发送会话请求,使受害主机处于开放会话的请求之中,直至连接超时,最终因耗尽资源而停止响应。这种攻击被称为

A. DNS欺骗攻击
B. DDoS攻击
C. SYN Flooding攻击
D. 重放攻击

  • DNS欺骗攻击:DNS(Domin Name Sever)是域名服务器,作用是把某一台主机发过来地址解析成目标地址的IP地址,再发回给主机,主机拿着这个IP地址去访问。而DNS解析的过程如下:1.拿到地址,去访问权威服务器,拿到com域名权威服务器IP地址,比如A;2.然后向com域名权威服务器询问XXX.com子域DNS服务器的地址,比如B;3.最后向XXX.com子域服务器询问www.XXX.com的IP地址,比如C,把此时的IP地址C返回给主机,主机拿着C去访问。DNS欺骗攻击就是在第三步的时候冒充子域DNS服务器给了一个假的IP地址,如D,最后主机拿着D去访问了。
  • DDoS攻击:Dos攻击叫拒绝服务攻击,如向一台服务器发送大量的IP数据报,使服务器要花很多时间处理所接收到的数据报,导致合法用户被拒绝服务。
  • SYN Flooding攻击:和TCP的三次握手过程有关。三次握手过程大概是:一、客户端发送SYN给服务器,此时服务器内部会建立请求控制块;二、服务器响应SYN/ACK给客户端;三、客户端收到SYN-ACK之后向服务器发送ACK,服务器收到最后一个握手ACK报文后,控制块会转换成为正式的连接控制块。如果迟迟未收到最后的那个ACK报文,服务器会通过定时器重发SYN-ACK,直至超时,销毁请求控制块;SYN Flooding攻击是通过伪造的IP地址,大量的向服务器发送SYN报文,服务器不断的申请资源建立控制块,从而大量占用资源直至资源耗尽,使正常请求服务变慢,或者完全停止服务。
  • 重放攻击:重复的会话请求就是重放攻击,可能是因为用户重复发起请求,也可能是因为请求被攻击者获取,然后重新发给服务器。
  1. A,B两台机器都正常工作,B机器未监听任何端口.如果A机器向B机器80端口发送SYN包,会收到何种类型的回包?

A. RST包
B. ACK包
C. FIN包
D. 无回应

RST包用来强制关闭TCP链接。
什么时候发送RST包:

  1. 建立连接的SYN到达某端口,但是该端口上没有正在监听的服务。
  2. TCP收到了一个根本不存在的连接上的分节。
  3. 请求超时。 使用setsockopt的SO_RCVTIMEO选项设置recv的超时时间,接收数据超时时,会发送RST包。
  1. awk里的内置变量NF指的是

A. 以指定分隔符号作为分隔的列数
B. AWK处理文件的个数
C. 单个输入文件记录的行数
D. 所有输入文件记录的行数

考点:Linux
awk是行处理器,通常用来格式化文本信息,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,
awk处理过程: 依次对每一行进行处理,然后输出
awk 的内置变量 NF、NR、FNR、FS、OFS、RS、ORS

  • NF 字段个数,(读取的列数)
  • NR 记录数(行号),从1开始,新的文件延续上面的计数,新文件不从1开始
  • FS 输入字段分隔符,默认是空格
  • FNR 读取文件的记录数(行号),从1开始,新的文件重新从1开始计数
  • OFS 输出字段分隔符 默认也是空格
  • RS 输入行分隔符,默认为换行符
  • ORS 输出行分隔符,默认为换行符
  1. 堆排序的额外空间复杂度是()

A. O(n)
B. O(logn)
C. O(1)
D. 视情况而定

堆排序构建堆的时间复杂度是O(n);
重建堆的时间复杂度是O(nlogn);
最好,最坏,平均时间复杂度是O(nlogn);
空间复杂度是:O(1),仅用一个用来交换的暂存单元,属于原地排序。

  1. 给定 <div id="a" style="float:left;"><div style="width: 100px"></div></div> <div id="b"><div style="width: 100px"></div></div>div#adiv#b 的宽度分别是【100%即其父容器宽度】

A. 100%, 100%
B. 100px, 100%
C. 100%, 100px
D. 100px, 100px

  1. 以下代码的输出结果是
// counter.js
let counter = 10;
export default counter;

// index.js
import myCounter from "./counter";
myCounter += 1;
console.log(myCounter);

A. 10
B. 11
C. Error
D. NaN

引入的模块是 只读 的: 不能修改引入的模块。只有导出他们的模块才能修改其值。

  1. 对字符串HI_KWAI中的字符进行二进制编码,使得字符串的编码长度尽可能短,最短长度为

A. 7
B. 14
C. 18
D. 22

  1. 统计字符出现个数
    H 1
    I 2
    _ 1
    K 1
    W 1
    A 1
  2. 构造哈夫曼树
    每个人的结果可能不一样,左标0,右标1
    在这里插入图片描述
  3. 得到每个字符对应编码
    H 000
    I 10
    _ 001
    K 010
    W 011
    A 11
  4. 得到原字符串编码
    HI_KWAI:000100010100111110
    共18位
  1. 无向图G有20条边,有4个度为4的顶点,6个度为3的顶点,其余顶点度小于3,则G最多有多少个顶点

A. 14
B. 16
C. 18
D. 20

总度数=边数乘以2=20乘2=40
剩余的度数=总度数-4乘4-6乘3=6
想要顶点最多,应该是一度就分配给一个顶点吧。所以是4+6+6=16顶点

  1. 3的方幂及不相等的3的方幂的和排列成递增序列{1,3,4,9,10,12,13…},则数列第100项是

A. 975
B. 976
C. 981
D. 982

第1位,1的二进制为001,第1位数为3的0次方(1)
第2位,2的二进制为010,第2位数为3的1次方(3)
第3位,3的二进制为011,第3位数为 3的0次方+3的1次方(4)

第100位,100的二进制为1100100,第100位为 3的6次方+3的5次方+3的平方(981)

  1. 最长递增子序列(LIS)问题是指,在一个给定的数值序列中,找到一个子序列,使得这个子序列元素的数值依次递增,并且这个子序列的长度尽可能地大。
    比如{2,1,4,2,3,7,4,7,19} 的LIS是 {1,2,3,4,7,19},长度是6。
    考虑大小为N的数组,获取其LIS的最小时间和空间复杂度分别为:

A. N2,N2
B. NlogN,N2
C. NlogN,NlogN
D. NlogN,N

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章