作者 | 梁唐
出品 | 公众号:Coder梁(ID:Coder_LT)
大家好,我是梁唐。
今天我们继续来看校招笔试题,这次选中的是shopee的2022秋招提前批SRE笔试题。
这套笔试题涵盖了Java、C 、go、算法、客户端等多个职位:
基本上技术岗中除了前端都囊括在内了,这次的考察注重基础,难度适中,总体来说质量很不错。
同样,题目来源于牛客网,感兴趣的同学可以点击https://www.nowcoder.com/login?callBack=/test/question/63c056ea69f14a3cba248840c0556f6d?pid=32331975&tid=51750907&headNav=www跳转。
第一题
关系数据库中的数据逻辑结构是
这道题有点坑,老梁一开始选错了。
问题问的是关系数据库中数据逻辑结构,这里说的是逻辑结构,而非底层数据结构。我们知道关系型数据库大多是基于B树或者是B 树实现的,因此底层是树结构。但这里问的是数据的逻辑结构,那自然是二维的表结构。一行代表一条数据,一列代表一个逻辑字段。
第二题
现有3个开发任务需要分配给5个组内成员来完成,不同的任务分配方式有多少种
,关键点在于题目没说每个人只能分配一个任务,所以每个任务都有5种可能,故选A。
第三题
设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6依次通过栈S,每一个元素出栈后立即进入队列Q,若6个元素出队列的序列是e2、e4、e3、e6、e5、e1,则栈S的容量至少应该是
数据结构题,考察的是对栈和队列的基本理解。由于队列先进先出,所以出队列的顺序即为进队列的顺序,也就是出栈的顺序。
所以问题可以转换成给定出栈顺序,要求栈的容量。
第一个出栈的是e2,此时栈中元素为[e1, e2]。第二个出栈元素为e4,此时栈中元素为[e1, e3, e4]。第三个出栈元素为e3,栈为[e1, e3],第四个出栈元素是e6,此时栈为[e1,e5,e6]。e5出栈时栈为[e1, e5],e1出栈时:[e1]。
所以栈中元素最多只有3个,所以长度为3足够。
第四题
若变量已正确定义,有下列程序段:
代码语言:javascript复制int a=3,b=5,c=7;
if(a>b) a=b; c=a;
if(c!=a) c=b;
printf("%d,%d,%dn", a, b, c);
代码题,坑点在于if (a>b) a=b; c=a;
在这一语句当中a=b后面用的是分号,所以当if成立时,只会执行a=b,而之后的c=a虽然写在同一行,但会被视为两行语句,并不和if判断逻辑挂钩。也就是说,即使if不成立,c=a同样会执行。
注意了这点之后,不难选出答案。
第五题
设有一张商品表(商品号,商品名,属地,价格),其中商品号是主键。现要查询属地为“中国”的价格为100的商品数量,下列语句中能正确完成该查询要求的是
数据库基础题,其实只需要根据属地和价格两个条件同时满足必须要使用and,就可以选出正确答案。
可能有同学看到select count(属地)
有些不敢选,单纯的count并不会去重,计算的就是指定列的值的数量。如果是select count(distinct 属地)
则计算的是不同值的数量。
第六题
给定如下SQL语句
代码语言:javascript复制CREATE VIEW test.V_test
AS
SELECT * FROM test.students WHERE age < 19;
该语句的功能是
create view很明显是创建视图操作,所以排除BD。
如果熟悉数据库语法的话,很明显test不是表名而是数据库名,所以A错误,选C。
第七题
linux系统中如果要列出一个目录下的所有文件,可以使用下面哪个命令 参数
考察的是基本的linux命令ls的用法。
其中-l表示列出长数据,显示文件属性以及权限等信息。-a表示列出所有文件,包含隐藏文件。-d表示仅仅列出目录本身,-t表示按照修改时间排序。
如果清楚以上参数的含义,不难选出正解B。
第八题
局域网的网络地址192.168.1.0/24,局域网连接其他网络的网关地址是192.168.1.1。该局域网下一台主机192.168.1.2需要访问172.16.1.0/22网络,其路由设置正确的是:
这题考察的是对网关和子网掩码的基础知识。
其中添加路由的命令为:roote add -net 目标网址 gw 网关 netmask 子网掩码 metric 1-9999
。通过对比命令可以排除C,这里的metric表示的是路由的成本,即到达目标节点所需要经过的跃点数量。好在这里的所有选项metric都是1,所以不必纠结。
重点是确定命令中的子网掩码,由于目标ip是172.16.1.0/22,这里的/22给出了子网掩码。子网掩码是一串连续的01二进制值,由若干连续的1和连续的0构成,0和1的总数为32。/22表示连续1的数量,转化成二进制位11111111,11111111,11111100,00000000,对应的10进制表示为255.255.252.0。
故选A。
第九题
运行以下python代码
>>> map(lambda x: x 1, range(6))
输出正确的是
Python语法题,考察的是对Python语法的掌握。
一步一步来看,首先是range(6)返回的是一个0到5的列表:[0, 1, 2, 3, 4, 5]。接着是map,map(f, l)表示对列表l当中的每个元素执行函数f。这里的函数是一个匿名函数lambda x: x 1
,也就是将每个元素 1,所以选C。
第十题
小虾以200元一颗的价格从黑商那里买了一些珍珠,现在拿去卖给店铺,如果是真货则以1700元一颗卖出。据统计,大约只有10%的珍珠是真货,则小虾平均每颗损失多少元
数学题,平均损失即期望损失。
卖出一颗珍珠的收益期望为:E = np = 10% * 1700 = 170 ,由于每一颗珍珠的成本是200,所以差值是30,选B。
这一次的选择题难度不算很大,基本上考察的都是一些基础知识点,但涉及的知识面比较广,想要做出好成绩也并不那么容易。最后,感谢大家的阅读,希望能给正在准备这方面的同学一点帮助。