百度2018秋招Java研发笔试题
2、请指出以下代码段使用了何种算法( )
#-*-coding:utf-8-*-
def func1(max_list):
return max(max_list)
def func2(init_list):
if len(init_list)<=2:
printf func1(init_list)
else:
init_list=[init_list[i:i+2]for i in range(0,len(init_list),2)]
max_init_list = []
for_list in init_list:
max_init_list.append(func1(_list))
func2(max_init_list)
if name ==” main “;
test_list = [13,4,11,5,67,7,9,43,24,2]
func2(test_list)
A. 动态规划
B. 回溯算法
C. 贪心算法
D. 分治法
3、小明到集市上套瓷娃娃,有n个瓷娃娃排成,编号为0到n-1,每个瓷娃娃有积分,存在score数组中。套中一个瓷娃娃i可以得到的分数为score[left]*score[i]*score[right],left和right分别表示瓷娃娃i相邻的两个瓷娃娃。当瓷娃娃i被套中撤走后,其左右两个瓷娃娃即为相邻。若要求出套中所有瓷娃娃所能得到的最高积分,则应该使用何种算法?( )
A. 分治法
B. 回溯法
C. 动态规划
D. 贪心算法
4、以下描述正确的是( )
A. 堆排序最好情况和最坏情况下时间复杂度不同
B. PageRank算法总是会收敛
C. 快速排序在被排序的数据完全无序时最容易发挥其长处
D. KMP算法的时间复杂度是O(n)
5、给你2G的数据和2G的内存,以下哪种算法可能导致内存溢出( )
A. 归并排序
B. 冒泡排序
C. 选择排序
D. 堆排序
6、Jack为邮件分类训练了一个决策树模型,但是在训练集和测试集上效果都异常地糟糕。其中实现没有任何问题,那么有什么会导致这种情况?( )
A. 需要提高学习率
B. 其他三项都是
C. 决策树层数较浅
D. 过拟合
7、办公室某计算机配置的首选DNS为61.134.1.4,备用DNS为202.100.2.1;网络管理员测试备用DNS服务器解析www.baidu.com,下列方式正确的是( )
A. nslookup回车
lserver202.100.2.1回车
B. nslookup回车
C. nslookup www.baodu.ocm回车
D. nslookup回车
dnsserver 202.100.2.1回车
8、使用||x||_p来表示一个向量x和p的范数。给定α是一个标量,下列哪项是正确的( )
A. ||x||_p=0表示x是一个零向量
B. 其他三项都对
C. ||αx ||_p=|α| ||x||_p
D. ||x||_p+||y||_p>=||x+y||_p
9、一个有131个元素的顺序表,插入一个新元素并保持原来的顺序不变,平均要移动( )个元素。删除一个元素平均需要移动( )个元素
A. 67 66
B. 65 64
C. 9 8
D. 65.5 65
10、下列程序的运行结果是( )
#include<stdio.h>
void f(int *p)
{
p[0]=*(p+2);
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0},i;
for(i=3;i>=0;i--) f(a+i);
for(i=0;i<10;i++) printf(“%d”,a[i]);
printf(“\n”);
}
A. 3 3 3 4 5 6 7 8 9 0
B. 5 6 5 6 5 6 7 8 9 0
C. 5 5 5 5 5 6 7 8 9 0
D. 4 4 4 4 5 6 7 8 9 0
11、以下程序
#include<stdio.h>
main()
{FILE *fp;int a[5]={2,8,5,3,9},i;
fp=fopen(“date.dat”,”wb”);
fwrite(a,sizeof(int),5,fp);
;
fread(a,sizeof(int),5,fp);
for(i=0;i<5;i++) printf(“%d”,a[i]);
printf(“\n”);
fclose(fp);}
运行后的结果是28539,请为横线处选择适当的程序。( )
A. -fp
B. rewind(fp)
C. fp++
D. fclose(fp)
12、在MapReduce作业运行机制中,( )负责作业的协调运行
A. JobTask
B. TaskTracker
C. JobTracker
D. JobClient
13、一个待散列线性表为K=(27,18,66,57,36,79,94,41),散列函数为H(K)=K MOD 13,与27发生冲突的元素有( )个
A. 2
B. 4
C. 1
D. 3
14、许多单词有多重含义,我们需要选出最合适语句环境的语义,这可以通过下列哪项来解决?( )
A. 其他三项都是
B. 浅层语义分析
C. 词义消歧
D. 模糊逻辑
15、神经网路模型一个sigmoid节点输出什么?( )
A. 在-1到1之间
B. 在0到1之间
C. ***,包括所有整数
D. ***,包括所有实数
16、语言形态中,将受影响的单词归纳到它们的根形式的方法是( )
A. 其他几项均正确
B. Text-Proofing
C. Stemming
D. Rooting
17、已知进程p1为系统进程,p2为用户进程,p3为报警进程,p4为普通进程,p5为I/O繁忙进程,p6为CPU繁忙进程,p7对资源的需求量少而低,p8对资源的需求量多而高,那么以下关于优先数的大小分析正确的是( )
A. p1>p2 p3>p4 p5<p6 p7>p8
B. p1<p2 p3<p4 p5<p6 p7<p8
C. p1<p2 p3<p4 p5>p6 p7<p8
D. p1>p2 p3>p4 p5>p6 p7>p8
19、设有序表有986个元素,则用二分查找元素x最多需要比较( )次
A. 10
B. 986
C. 8
D. 1
20、C4.5决策树算法选择( )作为分类属性的标准
A. 信息增益率
B. 条件熵
C. 信息增益
D. 信息熵
23、已知表长为28的哈希表,用除留余数法,按公式H(key)=key MOD p建立哈希表,则p应取( )
A. 23
B. 17
C. 28
24、神经网络中sigmoid激活函数存在哪些问题?
A. 对于很大或者递归的神经网络会导致梯度消失
B. 使用熵损失函数效果不好
C. 是凸的,并且凸函数不能解决非凸问题
D. 可以存在负值
多选题
1、利用分支限界法可以解决下列哪些问题( )
A. 最大团问题
B. 电路板排列问题
C. 装载问题
D. 批处理作业调度问题
参考:https://wenku.baidu.com/view/21f83c57011ca300a7c3900c.html
2、关于C++ this指针说法正确的是( )
A. this在成员函数的开始前构造,在成员函数的结束后清除
B. 全局函数、静态函数都不能使用this
C. this作用与仅局限于类的内部
D. this指针只存放在栈上
3、
class A
{
int _a;
public:
A(int a): _a(a)
{
}
friend int f1(A &);
friend int f2(const A &);
friend int f3(A );
friend int f4(const A );
};
以下调用正确的是( )
A. f1(0)
B. f4(0)
C. f2(0)
D. f3(0)
4、与SQL相比,HiveQL具有哪些特点( )
A. 不支持批量导入数据
B. 支持类型自动转换
C. 扩展性好
D. 只能对表进行查询
5、数据清洗能够改善数据质量,其清洗内容包括( )
A. 缺失数据处理
B. 逻辑错误检测
C. 异常数据处理
D. 相似重复对象检测
6、页式存储管理下,把由4个页面构成的作业根据页表调入由8个物理块构成的存储器中,设定块长为1024B,则以下推断正确的是( )
A. 若访问的逻辑地址为(2,785),物理地址为6929B,则页表中2号页对应6号块
B. 若访问的逻辑地址为(3,1010),物理地址为3058B,则页表中3号页对应2号块
C. 若访问的逻辑地址为(0,100),物理地址为3172B,则页表中0号页对应3号块
D. 若访问的逻辑地址为(4,21),物理地址为3172B,则页表中0号页对应3号块
参考:https://wenku.baidu.com/view/f755ac06bed5b9f3f90f1c50.html
A:p=0,d=785,1024*x+785=6929,得到x=6,A选项正确。
B:p=0,d=1010,1024*x+1010=3058,得到x=2,B选项正确。
C:p=0,d=100,1024*x+100=3172,得到x=3,C选项正确。
D:p=0,d-21,1024*x+21=3172,得到x=3.007,D选项错误,
7、下列数据挖掘算法中,哪些算法属于监督学习( )
A. K-means算法
B. SVM算法
C. KNN算法
D. EM算法
问答题
1、采样(Sampling)是机器学习各算法中的基本问题,请回答下面两个问题:
1)请解释为什么机器学习中需要采样算法,即较为普适的采样算法主要是为解决何种问题而存在的?指出普适的采样算法的主导思想并解释。
2)请给出至少两个采样算法及其原理。
2、
1)如何用深度神经网络解决NLP情感分类问题。
2)用DNN、CNN或者RNN做情感分类的区别。
编程题
1.一个正整数是素数当且仅当它除了1和自身以外没有其他因子。现在我们定义双素数:一个正整数是双素数当且仅当它本身是个素数,并且将他的十进制表示反转后得到数不等于它自身且也是个素数。如13就是一个双素数,因为13和31不相等且都是素数。现给出一个整数K,你需要找到第K小的双素数。
输入
第一行包含一个整数K。1≤K≤10000
输出
若第K小的双素数不超过106则输出它,否则输出-1。
样例输入
1
样例输出
13
2. 0≤ai≤1000且至少有两个系数严格大于0。分别将n=1,n=2,n=3,...代入以上函数可以得到一个无穷长度的整数序列。即用8个系数a7,a6,...,a0可以唯一确定一个无穷长度的整数序列。现在给出k个通过以上方法定义的无穷序列,你需要求出将这些序列的所有数字放在一起后,第n小的数字是多少。
输入
第一行包含一个整数k。1≤k≤104
接下来k行,每行包含8个整数a7,a6,...,a0表示一个函数的系数。0≤ai≤1000
最后一行包含一个整数n。1≤n≤105
输出
输出对应的答案,保证最后的答案不超过 1017。
样例输入
3
0 0 0 0 1 2 0 0
0 0 0 0 0 0 10 6
0 0 0 0 0 0 25 1
9
样例输出
51