最近在准备数据分析岗位的笔试,整理了牛客网上的一些试题与答案方便查看。
试卷信息:
客观题:单选20道
主观题:问答1道,编程2道
完成时间: 120分钟
难度系数: 三颗星
总分: 100分
注:省略了编程题
1、已知存在以下表
S 表保存着学生关系,有两列,其中SNO 为学号,SNAME 为姓名
C 表保存着课程关系,有三列,其中CNO 为课程号,CNAME 为课程名,CTEACHER 为老师
SC表保存着选课关系,有三列,其中SNO为学号,CNO为课程号,SCORE 为成绩
(1). 找出没有选“小易”老师课程的所有学生姓名
(2). 列出有三门(包括三门)以上课程分数>90的学生姓名及其平均成绩
答案:无
参考解析:
(1)第一小题两种参考解法:
SELECT
A.SNAME
FROM
S AS A
WHERE
A.SNO NOT IN
(
SELECT
S.SNO
FROM
S JOIN SC ON S.SNO=SC.SNO JOIN C ON SC.CNO=C.CNO
WHERE
C.CTEACHER='小易'
)
SELECT
S.SNO
FROM
S
WHERE
S.SNO NOT IN
(
SELECT
SC.SNO
FROM
SC
WHERE
SC.CNO IN
(
SELECT
C.CNO
FROM
C
WHERE
C.CTEACHER = '小易'
)
)
(2)第二小题两种参考解法
select
t.SNAME
from
(
select
S.SNAME,count(S.SNO) as num
from
S join SC on S.SNO=SC.SNO join C on S.CNO = C.CNO
where
SC.SCORE > 90
group by
S.SNO
) t
where
t.num >=3
select
S.SNAME
from
S join SC on S.SNO=SC.SNO join C on S.CNO = C.CNO
where
SC.SCORE > 90
group by
S.SNO
HAVING
COUNT(S.SNAME)>=3
2、有2堆宝石,A和B一起玩游戏,假设俩人足够聪明,规则是每个人只能从一堆选走1个或2个或3个宝石,最后全部取玩的人获胜,假设2堆宝石的数目为12和13,请问A怎么可以必胜?
答案:让A先取
参考解析:A先拿,拿走13个里的一个, 然后B拿1个,A就拿同堆的3个,B拿2个,A就拿同堆的2个,B拿3个,A就拿同堆的1个
3、从数字集合{1,2,3,4,… ,20}中选出4个数字的子集,如果不允许两个相连的数字出现在同一集合中,那么能够形成多少个这种子集?
答案:2380
参考解析:插空法 ,把4个数插到16个数形成的17个空格中。 C4 17
4、将4个不一样的球随机放入5个杯子中,则杯子中球的最大个数为3的概率是?
答案:16/125
参考解析:
分母:总体情况,每个球都可以任选一个杯子,5*5*5*5
分子:任选一个杯子装任意3个球C51×C43,剩下1个球选剩下4个杯子:5*4*4
5、下面程序的功能是输出数组的全排列,选择正确的选项,完成其功能。
答案:B
参考解析:求解答
6、若有33个长度不等的初始归并段,做7路平衡归并排序,为组织最佳归并树,应增加长度为0的初始归并段的个数是________。
答案:4
参考解析:
在一般情况下,对于 k–路平衡归并来说,若 (m-1)MOD(k-1)=0,则不需要增加虚段;否则需附加 k-(m-1)MOD(k-1)-1 个虚段。其中m=33,k=7, ans = 7-(33-1)Mod(7-1)-1 = 7-32Mod6-1 = 7-2-1 = 4
http://data.biancheng.net/view/79.html
7、将一个整数序列整理为升序,两趟处理后序列变为10,12,21,9,7,3,4,25,则采用的排序算法可能是________。
答案:插入排序
参考解析:
插入排序:第n趟前n+1个有序
选择排序:第n趟前n个位置正确
快速排序:第n趟有n个元素位置正确
堆排序:第n趟前或后n个位置正确
序列最后排序应该为:10,12,21,9,7,3,4,25
序列经两趟排序后为:10,12,21,9,7,3,4,25
即第二趟前3个位置有序,满足插入排序
8、在数理统计中, 一般通过增加抽样次数取平均来使得预估误差减小, 在机器学习中也有类似的模型处理, 如随机森林, 通过引入随机样本并且增加决策树的数据,对于随机森林主要降低预估的哪个方面值
答案:预估方差
参考解析:
增加数据是降低由数据的不稳定性所带来的方差,增加模型复杂度是降低偏差,另外噪音是无法避免的
9、以下不属于非监督学习的为
答案:D
参考解析:
KNN算法又称k近邻分类(k-nearest neighbor classification)算法。它是根据不同特征值之间的距离来进行分类的一种简单的机器学习方法,它是一种简单但是懒惰的算法。他的训练数据都是有标签的数据,即训练的数据都有自己的类别。
10、将当前命令sh test.sh任务在后台执行,下列最优雅的的做法是
答案:nohup sh test.sh &
参考解析:
nohup (no hang up)命令
用途:不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]
例子: nohup sh example.sh &
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示”and”的符号)到命令的尾部。
11、截取logfile文件中含有suc的行,并且只输出最后一列,下列操作正确的是:
答案:C
参考解析:-o 只输出文件中匹配到的部分
12、哪个不是DDL(数据库定义语言)语句?
答案:D
参考解析:
- DDL(Data Denifition Language):数据定义语言关键字:create、drop、alter、rename创建、删除、更改表结构、rename table 旧表名 to 新表名
- DML(Data Manipulation Language):数据操作语言关键字:insert、delete、update插入、删除、更改数据
- DQL(Data Query Language):数据查询语言关键字:select查询数据
- TCL(Trasactional Conrtol Language):事务控制语言关键字:commit、rollback用来提交和回滚事务
- DCL(Data Conrtol Language):数据控制语言关键字:grant、revoke用来设置或更改数据库用户或角色权限
13、对于SQL语句select * from t where a=100 and b=200,哪个索引可以使用到?
答案:D
参考解析:无
14、若要在员工信息表EMP中增加一列WANGYI_NO(网易id),可用( )。
答案:C
参考解析:无
15、在机器学习任务中经常假设矩阵为n×n的对称矩阵A, 则以下说法正确的是
答案:C
参考解析:对称矩阵不一定满秩;不同特征值之间的特征向量一定正交,而同一特征值的特征向量需要借助公式得正交向量
ps:不同特征值对应的特征向量线性无关的证明https://zhuanlan.zhihu.com/p/30454490
16、以下关于python数据结构说法正确的是
答案:D
参考解析:无
17、一个快递公司对同一年龄段的员工,进行汽车,三轮车,二轮车平均送件量的比较,结果给出sig.=0.034,说明
答案:D
参考解析:无
18、小明在一次班干部二人竞选中,支持率为百分之五十五,而置信水平0.95以上的置信区间为百分之五十到百分之六十,请问小明未当选的可能性有可能是
答案:D
参考解析:
置信水平0.95以上的置信区间为50%-60%,则区间[0%, 50%]⋃[60%,100%]的概率为5%。
仅当落在区间区间[0%, 50%]时,小明落选,则概率为
(50-0)((50-0)+(100-60) * 5% = 5/9 * 5% ≈ 2.78% ≈ 3%
19、以下关于最小二乘法正确的是
答案:D
参考解析:
在回归分析中,最小二乘得到无偏估计;若经过收缩,变成了有偏估计,可以降低估计量的方差,从而改善均方误差,提高预测效果!
在回归中,正则化通常用L1(lasso回归),L2(岭回归),实际上完成了向0的收缩!
正则化就是通过收缩的方法,限制了模型变得越来越复杂,不care样本内误差,降低模型参数的误差,从而提高场外预测效果
20、小明在一次班干部二人竞选中,支持率为百分之五十五,而置信水平0.95以上的置信区间为百分之五十到百分之六十,请问小明未当选的可能性有可能是
答案:D
参考解析:
置信水平0.95以上的置信区间为50%-60%,则区间[0%, 50%]⋃[60%,100%]的概率为5%。
仅当落在区间区间[0%, 50%]时,小明落选,则概率为
(50-0)((50-0)+(100-60) * 5% = 5/9 * 5% ≈ 2.78% ≈ 3%
22、设{xn}服从独立同分布, E[xn] = 0, Var[xn]=1, 则当n趋向于无穷大时,下式值为:
答案:1
参考解析:
E(X^2)=E^2(X)+Var(X)=1;
E(Xi, Xi+1)=0;
上下取期望有
原式=(1+0+1+0+...+1+0)/n=1
23、通常可以通过关联规则挖掘来发现啤酒和尿布的关系, 那么如果对于一条规则A →B, 如果同时购买A和B的顾客比例是4/7, 而购买A的顾客当中也购买了B的顾客比例是1/2, 而购买B的顾客当中也购买了A的顾客比例是1/3,则以下对于规则A →B的支持度(support)和置信度(confidence)分别是多少
答案:4/7、1/2
参考解析:
支持度是个百分比,它指的是某个商品组合出现的次数与总次数之间的比例;P(AB)
置信度:它指的就是当你购买了商品 A,会有多大的概率购买商品 P(B|A)
提升度 (A→B)= 置信度 (A→B)/ 支持度 (B)
由已知条件:P(A∪B),P(B|A)=1/2,P(A|B)=1/23
支持度Support(A->B)=P(A∪B)=4/7
置信度Coffidence(A->B)=P(B|A)=1/2
置信度Coffidence(B->A)=P(A|B)=1/3