每日一练20210427

1、TCP建立连接的三次握手中,第二次握手发送的包会包含的标记,==最正确==的描述是?

2021-04-27 12:31:32

  • A、 ACK
  • B、 SYN,ACK
  • C、 SYN,PSH
  • D、 SYN

 回答正确 正确答案: B

解析:

 

第一次握手:Client将SYN(同步序列编号Synchronize Sequence Numbers)置1,随机产生一个初始序列号seq发送给Server,进入SYN_SENT状态;

第二次握手:Server收到Client的SYN=1之后,知道客户端请求建立连接,将自己的SYN置1,ACK(确认字符Acknowledge Character)置1,产生一个acknowledge number=sequence number+1,并随机产生一个自己的初始序列号,发送给客户端;进入SYN_RCVD状态;

第三次握手:客户端检查acknowledge number是否为序列号+1,ACK是否为1,检查正确之后将自己的ACK置为1,产生一个acknowledge number=服务器发的序列号+1,发送给服务器;进入ESTABLISHED状态;服务器检查ACK为1和acknowledge number为序列号+1之后,也进入ESTABLISHED状态;完成三次握手,连接建立。

 

2、以下那些是HTTP2.0加入的新特性?

2021-04-27 12:32:23

  • A、 keep-alive
  • B、 Pipelining
  • C、 server push
  • D、 SSL/TSL

 回答正确 正确答案: C

解析:

 

C选项正确

 

3、在Linux系统上,下面那个命令不可以用来查看文件内容

2021-04-27 12:32:55

  • A、 cat
  • B、 ls
  • C、 less
  • D、 more

 回答正确 正确答案: B

解析:

 

linux 系统可以用来查阅全部文件的三种命令: cat 、 more 、 less

more 命令 :可以让屏幕在显示满一屏幕时,此时可按空格健继续显示下一个画面,或按 Q 键停止显示。

less 命令 :可以分页显示文件,和 more 命令的区别就在于它支持上下键卷动屏幕,当结束浏览时,只要在 less 命令的提示符“ : ”下按 Q 键即可。

ls命令:ls主要用来查看目录清单

 

4、

int main(){
    fork()||fork();
}

共创建几个进程:

2021-04-27 12:33:29

  • A、 1
  • B、 2
  • C、 3
  • D、 4

 回答正确 正确答案: C

解析:

 

fork()给子进程返回一个零值,而给父进程返回一个非零值;

在main这个主进程中,首先执行 fork() || fork(), 左边的fork()返回一个非零值,根据||的短路原则,前面的表达式为真时,后面的表达式不执行,故包含main的这个主进程创建了一个子进程, 由于子进程会复制父进程,而且子进程会根据其返回值继续执行,就是说,在子进程中, fork() ||fork()这条语句左边表达式的返回值是0。

所以||右边的表达式要执行,这时在子进程中又创建了一个进程, 即main进程->子进程->子进程,一共创建了3个进程。

 

5、如果系统的umask设置为244,创建一个新文件后,它的权限:

2021-04-27 21:02:34

  • A、 --w-r--r--
  • B、 -r-xr--r--
  • C、 -r---w--w-
  • D、 -r-x-wx-wx

 回答正确 正确答案: C

解析:

 

Linux中的权限有r(读) w(写) x(执行),分别用数字4,2,1代表。

Umask是设置系统创建文件时的默认权限,是创建文件权限补码,对文件来说最大值是6 Umask设为为244,则创建的文件默认权限是422,文件的第一位是‘-’也就是-r---w--w-

 

6、假设有60行70列的二维数组 a[0 …59, 0…69 ] 以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素 a[ 31,57 ] 的存储地址为

2021-04-27 21:05:39

  • A、 16902
  • B、 16904
  • C、 14454
  • D、 以上答案均不对

 回答正确 正确答案: A

解析:

 

第32行第58列的元素 表示为 a[ 32,58 ] ,但是我们习惯写成a【31】【57】 首先,二维数组可以表示为A【60】【70】 (60行70列) a[ 31,57 ]

以列序为主: (5760+31)2+10000= 16902

以行序为主: (3170+57)2 +10000= 14454

 

7、下面程序的输出是:

#define f(x) x*x
 main (){
    int a=6,b=2,c;
    c=f(a)/f(b);
    printf("%d",c);
 }

2021-04-27 21:06:35

  • A、 3
  • B、 18
  • C、 36
  • D、 9

 回答正确 正确答案: C

解析:

 

将宏表达式展开:c = 6*6/2*2=36.

 

8、在循环队列中, 若尾指针 rear 大于头指针 front, 其元素个数为 rear- front。

2021-04-27 21:06:59

  • A、 正确
  • B、 错误

 回答正确 正确答案: A

解析:

 

正确

 

9、在C语言中,关于静态变量的说法,正确的有( )

2021-04-27 21:08:36

  • A、 函数中的静态变量,在函数退出后不被释放
  • B、 静态变量只可以赋值一次,赋值后则不能改变
  • C、 静态全局变量的作用域为一个程序的所有源文件
  • D、 静态全局变量过大,可能会导致堆栈溢出

 回答正确 正确答案: A

解析:

 

B选项:静态全局变量可以重复赋值

C选项:作用域为当前文件

D选项:静态全局变量不是存在堆栈里的,所以不存在堆栈溢出

 

10、【简答题】(10-10)

简述tcp的流量控制相关算法

简述TCP的流量控制与拥塞控制

 

=====================================================================================================================

 

(并查集预习题)以下关于并查集的说法中,正确的是() ① 并查集是一种数据结构,用于处理一些不相交集合的合并和查询问题。

② 并查集通常支持查询(FIND)和合并(UNION)操作。

③ 并查集通常使用“路径压缩”和“按秩(或深度)合并”这两种优化方式。

④ 经过优化的并查集通常具有O(n)的空间复杂度和O(α(n))的单次操作复杂度。其中,α为反阿克曼函数。

2021-04-27 21:14:45

  • A、 ①②
  • B、 ①②③
  • C、 ①③
  • D、 ①②③④

 回答正确 正确答案: D

解析:

 

以上均正确

 

20210427,一天又快过去了,继续加油鸭~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值