一点资讯后端方向工程师笔试题第二批

时间:2022-09-10 03:46:53

一、不定项选择题

1、关于HTTP Cookie的描述正确的是?

A. Cookie的超时时间通过服务端设置

B. Session只能通过Cookie的形式进行传递

C. 一台计算机上安装了多个浏览器,每个浏览器的Cookie是单独存储的

D. Cookie通过HTTP Header从浏览器发送到服务端

 

2、给定下面程序代码,

cal(“yidianzixun”,“liyueaoyunhui”)
int cal(String a,String b){
int la=a.length(),lb=b.length();
int[][] f=new int[la+1][lb+1];
for(int i=1; i<=la; i++){
for(intj=1; j<=lb; j++){
if(a.charAt(i-1)==b.charAt(j-1)){
f[i][j]=f[i-1][j-1]+1;
}else{
f[i][j]=Math.max(f[i-1][j],f[i][j-1]);
}
}
}
return f[la][lb];
}

A. 4

B. 6

C. 8

D. 10

 

3、阅读以下foo函数,请问它的时间复杂度是:

int foo(intarray[], int n, int key)
{
int n1=0,n2=n-1,m;
while(n1<=n2)
{
m=(n1+n2)/2;
if(array[m]==key)
returnm;
if(array[m]>key)
n2=m-1;
else
n1=m+1;
}
return -1;
}

A. O(n2)

B. O(n)

C. O()

D. O(n)

 

4、初始序列为{1,8,6,2,5,4,7,3}的一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为

A. 8 2 3 5 1 4 7 6

B. 3 8 2 5 1 6 7 4

C. 3 2 8 5 1 4 6 7

D. 8 3 2 5 1 6 4 7

 

答案D

 

5、设有一段程序:cpu计算40ms,对内存写入25ms,网络传输50ms,请问当有两个cpu,一个内存,五个网卡时,每秒最多执行多少次程序?

A. 25

B. 100

C. 40

D. 50

 

6、抛掷一枚硬币直到连续出现两次正面为止,请问平均需要抛掷多少次?

A. 10

B. 8

C. 6

D. 4

 

7、若有4个进程共享同一程序段,而且每次最多允许3个进程进入该程序段,则信号量的变化范围是?

A. 2, 1, 0, -1, -2

B. 4, 3, 2, 1, 0

C. 3, 2, 1, 0, -1

D. 3, 2, 1, 0

 

8、下列哪个命令可以查看一台linux主机的当前网络连接?

A. ss

B. netstat

C. htop

D. top

 

9、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法?

A. 基于数据的数据流开发方法

B. 基于对象的面向对象的方法

C. 基于需求动态定义的原型化方法

D. 基于瀑布模型的结构化方法

 

10、在请求分页式存储管理中,假设一次内存访问时间为100ns,一次快表(TLB)访问时间为20ns,地址转换计算时的快表命中率为80%,请计算平均有效内存访问时间为多少ns?若缺页率为1%,且每次缺页中断处理时间为20ms,请计算平均有效内存访问时间为多少ns?

A. 136ns, 20140ns

B. 136ns, 20136ns

C. 140ns, 20136ns

D. 140ns, 20140ns

 

二、编程题

1. 题目描述

给定一个长度为n的整数序列,可以将该序列的前缀和后缀中的每个数字都乘以-1。前缀和后缀可以交叉也可以为空。求能得到的最大连续序列和是多少。

 

输入描述:

输入为两行。
第一行一个整数n(1<=n<=100),表示一共有n个元素
第二行为n个数,即每个元素,每个整数都在32位int范围内。以空格分隔。

输出描述:

输出最大连续序列和

输入例子:

6
-3 5 -2 6 8 -3

输出例子:

23

2. 题目描述

有N个丧尸围成一圈攻击你,攻击是回合制的(你攻击一次后,丧尸一起攻击你),每个当前存活丧尸一轮对你造成的伤害是Ki,你有一把散弹枪可以一次干掉3个相邻的丧尸(不足3个时,一起干掉),问使自己受到的最小伤害值是多少?

 

输入描述:

输入为两行。
第一行一个整数n(1<=n<=20),表示一共有n个元素
第二行为n个数,即每个元素,每个整数都在32位int范围内。以空格分隔。

输出描述:

输出自己受到的最小伤害值是多少

输入例子:

7
3 4 2 2 1 4 1

输出例子:

9

三、问答题

题目描述:

在长度为n的整数序列中,找出k个不相同的长度在l-r之间的连续子序列,使得权值和最大(n<=500000,k<=500000)

输入:

第一行四个整数n,k,l,r
第二行n个整数,即题中序列

输出:

权值和

样例

4 3 2 3
3 2 -6 8

样例结果:

<span style="font-size:14px;">11</span>