第四范式2019校园招聘后端笔试题

得分为78分,还有待提高。有些简单的概念题需要加强牢固。还有一些靠猜的更需要去深度的了解它。

1、下列哪一个选项按照顺序包括了OSI模型的七个层次

C、物理层 链路层 网络层 传输层 会话层 表示层 应用层

2、某递归算法的递归关系式为T( n ) = 2*T(n/2) + O( n ),那么它所对应的时间复杂度为

B、O(n*log n)

3、如果计算机A和B的IP地址分别为10.105.1.113和10.105.1.91,并使用相同的子网掩码。如果A和B需要属于同一个网络,那么不能使用以下哪个子网掩码(   )

D、255.255.255.224

113 = (01110001)B

扫描二维码关注公众号,回复: 5316860 查看本文章

91 = (01011011)B

224 = (11100000)B

由于113和91的二进制中的前三位数字不同,所以224不能使用。

4、有12枚硬币,其中11枚真币重量相同,有1枚假币重量与真币不同,现在有一架天平,最少称多少次可以保证一定能找出这枚假币(   )

B、3

以错误的理解答对的。12枚分成2份 一次,  6枚分成2份 两次,3枚中分成3份,第三次称时恰好一样,那么第三枚就是假币。

5、class A { int a; short b; int c; char d; }; class B { double a; short b; intc; char d; }; 在32位机器上用gcc编译以上代码,求sizeof(A),sizeof(B)分别是多少。 a、12 16 b、12 12 c、 16 24 d、16 20

C、16 24

class A {

  int a;  4

  short b; 1+3

  int c; 4

  short d; 1+3

};

class B { 

  double a;  8

  short b; 1+7

  int c;  4

  char d; 1+3

};

6、n个节点的二叉树,最多可以有多少层?

B、log(n)

7、下面那几个函数是public void method(){̷}的重载函数?()

A、public void method( int m){}

8、TCP通信建立在连接的基础上,TCP连接的建立要使用几次握手的过程。

B、3

9、LDAP是什么?   

C、是一种访问协议

10、设x为int型变量,则执行以下语句段后,x的值为:

x=10;

x+=x-=x-x;   

B、20

11、Linux namespace不包含:

D、Cgroup

12、python中, 进行下列算式时, 可能为假的是:

C、3.2 + 3.2 == 6.4

13、下列不能被压缩的内容是:

B、一次性密码本

14、32位操作系统能识别的最大内存上限是:

C、4G

15、下面的排序算法中,初始数据集的排列顺序对算法的性能无影响的是:

B、堆排序

16、到商店里买200的商品返还100的优惠券(可以在本商店代替现金)。如果使用优惠券买东西不能获得新的优惠券,那么买200返100优惠券,实际上省多少?

 B、33%

17、一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是该栈输出序列的是

A、5 4 1 3 2

18、进程间通讯方式描述正确且效率最高的是

A、共享内存

19、已知一棵二叉树,如果先序遍历的节点顺序是: SDCEFGHB ,中序遍历是: CDFEGHSB ,则后序遍历结果为:

 D、CFHGEDBS

20、Unix系统中,哪些可以不能用于进程间的通信?

C、磁盘文件

21、供Java存取数据库能力的包是

A、java.sql

22、以下关于主键和唯一索引的区别错误的是?

B、主键不能空,唯一索引可以为空

23、以下描述中,对抽象类和接口的区别描述正确的是

A、抽象类可以有构造方法,接口不能有构造方法;

24、有关线程的哪些叙述是错的

A、一旦一个线程被创建,它就立即开始运行。

25、以下方式无法保证线程安全的是

B、将共享变量定义为static

26、对文件权限信息 drwxr-xr-x 描述不正确的是

A、文件一个文件

27、以下http状态码表示重定向的是

D、302

28、下列叙述正确的是

C、算法的有穷性是指算法必须能在执行有限个步骤之后终止

29、下列那个同步元语适合于对运行时间较长的任务的保护

D、信号量 (Semaphore)

30、国内从 14 年起各大型网站纷纷迁移到 HTTPS 安全协议,从而一定程度上避免了火绵羊为代表的互联网流量安全危机,下列哪一项不是使得这件事情成功的原因

C、与标准差异的浏览器份额下降

31、

给定一个字符串(数字或大小写字母), 找出最长的对称的子串(如有多个,输出任意一个)。
例如:
输入:“abbaad”
输出:“abba”
 
 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <string.h>
 4 using namespace std;
 5 const int N = 1e5+10;
 6 char s[N];
 7 int dp[N];
 8 int main() {
 9     scanf("%s",s+1);
10     int len = strlen(s+1);
11     int MAX = -1, index = -1;
12     for(int now = 1; now <= len; now ++) {
13         int MAXLEN = 1;
14         while(now-MAXLEN >= 1 && now+MAXLEN <= len) {
15             if(s[now-MAXLEN] == s[now+MAXLEN]) MAXLEN++;
16             else break;
17         }
18         if(MAX < 2*MAXLEN-1) {
19             MAX = 2*MAXLEN-1;
20             index = now;
21         }
22         MAXLEN = 1;
23         while(now-MAXLEN+1 >= 1 && now+MAXLEN <= len) {
24             if(s[now-MAXLEN+1] == s[now+MAXLEN]) MAXLEN++;
25             else break;
26         }
27         if(MAX < 2*MAXLEN-2) {
28             MAX = 2*MAXLEN-2;
29             index = now;
30         }
31     }
32     index -= (MAX-1)/2;
33     for(int i = index; i < index+MAX; i ++)
34         printf("%c",s[i]);
35     return 0;
36 }
第31题

32、给定两个数字(0-9)字符串(长度不限)求它们的乘积。

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <string.h>
 4 using namespace std;
 5 const int N = 1e5+10;
 6 char s1[N], s2[N];
 7 int num[N*2];
 8 int mul(char *s, char *ss,int *num) {
 9     int len1 = strlen(s);
10     int len2 = strlen(ss);
11     int len3 = len1+len2;
12     for(int i = 0; i < len1/2; i ++) swap(s[i],s[len1-i-1]);
13     for(int i = 0; i < len2/2; i ++) swap(ss[i],ss[len2-i-1]);
14     for(int i = 0; i < len1; i ++) {
15         for(int j = 0; j < len2; j ++) {
16             num[i+j] += (s[i]-'0')*(ss[j]-'0');
17         }
18     }
19     for(int i = 0; i < len3; i ++) {
20         if(num[i] >= 10) {
21             num[i+1] += num[i]/10;
22             num[i] %= 10;
23         }
24     }
25     while(num[len3] == 0 && len3 >= 0) len3--;
26     len3++;
27     for(int i = 0; i < len3/2; i ++) {
28         swap(num[i], num[len3-i-1]);
29     }
30     if(!len3) len3++;
31     return len3;
32 }
33 int main() {
34     scanf("%s%s",s1,s2);
35     int len = mul(s1,s2,num);
36     for(int i = 0; i < len; i ++) printf("%d",num[i]);
37     return 0;
38 }
第32题

猜你喜欢

转载自www.cnblogs.com/xingkongyihao/p/10432420.html