京东2019秋招算法岗笔试题分享~
单选题:
1.下列关于人脸识别技术说话不正确的是()
A.基于代数特征的表征方法主要是根据人脸器官的形状描述记忆他们之间的距离特征来获得有助于人脸分裂的特征数据
B.人脸识别技术中基于统计形变的校正理论可以优化人脸姿态
C.Adaboost算法可用于人脸检测
D.人脸图像预处理包括光线补偿、灰度变换、直方图均衡化、归一化、几何校正、滤波以及锐化等
2.在考虑到并行计算的前提下,假设初始账户为10美元,阅读如下 Python 代码片段:
def make_withdraw(balance);
def withdraw(amout);
nonlocal balance
if amout > balance
print ('Insufficient funds')
else :
balance = balance - amout
print(balance)
return withdraw
则说话错误的是:
A. 结果可能为Insufficient funds
B. 并行化代码会将代码行分配给多个处理器计算,与变量读写顺序无关
C. 结果可能为2
D. 结果可能为3
3.社交媒体平台是文本数据最直观的表现形式。当给你一批社交媒体数据语料,如何创建一个模型显示标签?
A.利用模型来获取语料库中最重要的单词
B.其他几项都行
C.训练一个N-gram词袋模型来获取top n-gram一单词和他们的组合
D.训练一个词向量模型来学习文本表示
4.对于如下 C++ 程序:
int main(){
int a(1), b(3), c(2)
while( a < b < c)
{
++a;
--b;
--c;
}
cout<<a<<""<<b<<""<<c<<""\n";
return 0;
}
请问输出的结果是()
A. 2 2 1
B. 4 0 -1
C. 3 1 0
D. 1 3 2
5. 有以下程序:
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
ofstream File1("text.txt");
string d("20160314");
string y = d,substr(0, 4);
int k = d.find("2");
int i = d.find(“3”);
string m = d.substr(k + 2, i - k);
string dd = d.substr( i + 1, 2);
string n = dd + m +y;
File1<<n<<endl;
File1.close();
}
文件text.tet 中写入的结果是()
A. 20031416
B. 14032016
C. 20160314
14160312016
6. 有一下程序:
#include<iostream>
using namespace std;
void One(float one)
{
cout<<"1"<<endl;
}
void Two(float two)
{
cout<<"2"<<endl;
}
void Three( float three)
{
cout<<"3"<<endl;
}
int main()
{
float i = 1, j = 2, k =3;
function = One;
function(i);
function = Two;
function(j);
function = Three;
function(k);
}
请为横线处选择合适的程序是的程序的运行结果是123()
A. void (*function)(float);
B. void *function(float)
C. void (*function)();
D. void *function();
7. 对于如下 C++ 程序:
int main()
{
vector<int> vint(1);
cout<<vint[1];
cout<<vint.at(1);
return 0;
}
请问两个 cout 语句分别发生什么情况()
A. 未定义 未定义
B. 抛出异常 未定义
C. 未定义 抛出异常
D. 抛出异常 抛出异常
8.
public class Main{
public static void main(String[], args){
System.out.print(fun1());
}
public static String fun1{
try {
System.out.print("A");
return fun2();
}finally{
System.out.print("B");
}
}
public static String fun2(){
System.out.print("C");
}
}
执行以上程序后,输出结果正确的是:()
A. ABCD
B. ACDB
C. 未确定
D. ACBD
9. 根据类加载器加载类的初始化原理,推断以下代码的输入结果?
public class Test{
public static void main(String[] args) throws Exception{
ClassLoader classLoader = ClassLoder.getSystemClassLoader();
Class clazz = classLoader.loadClass("A");
System.out.print("Test");
clazz.forName("A");
}
}
class A{
static {
System.out.print("A");
}
}
A. Atest
B. TestA
C. Test
D. ATestA
10.JAVA 的类加载器负责整个生命周期内的 class 的初始化和加载工作,就虚拟机的规范来说,以下代码会输出什么结果?
public class Test {
public static void main(String[] args){
System.out.println(Test2.a);
}
class Test2{
static {
System.out.print("OK");
}
public static final String a = new String("JD");
}
试卷中会有三道类似的题目 (代码部分略有不同),请同学务必仔细阅读上述代码,再作答
A. 只有OK
B. 输出KOJD
C. 只有JD
D. 输出 JDOK
11. 继承是JAVA 语言的一个特征, 针对类的继承, 虚拟机会如何进行父类和子类的初始化加载呢?以下代码会输出什么结果?
public class Test {
public static void main(String[] args){
System.out.println(B.c);
}
class A{
public static String c = "C";
static {
System.out.print("A");
}
}
class B extends A{
static {
System.out.print("B");
}
}
试卷中会有二类似的题目 (代码部分略有不同),请同学务必仔细阅读上述代码,再作答
A. BC
B. C
C. ABC
D. AC
12. 若一个学习器的ROC 曲线被另外一个学习器低的曲线完全“包住”,则断言后者的性能由于前者;若两个学习器
的曲线出现交叉,该如何处理最为合适?
A. 通过其他方法判断两个学习器的优劣
B. 使用AUC进行比较
C. 目测进行判断
D. 比较ROC曲线线上的面积
13. 基于神经网络的模型参数量巨大,一个较好的初始化参数可能加速收敛,例如Xavier初始化器。下面选项中满足均值和方差要求的分布是:
A.
B.
C.
D.
14. 将 Person 表中 Name 字段位 “Lilei” 的 AGE 字段递增 1 ,可以使用那个SQL 语句()
A. Alter Person SET AGE + 1 WHERE Name = "Lilei"
B. UPDATE Person SET AGE = AGE + 1 WHERE Name Lilei
C. UPDATE Person SER AGE = AGE + 1 WHERE Name “Lilei”
D. SET AGE = AGE + 1 FROM Person WHERE Name = "Lilei"
15.将编码位gbk的字符串转码为utf-8 编码,以下错做正确的是()
A. s.encode('gbk').decode('utf-8'
B. s.encode('gbk')
C.s.decode('gbk')
D.s.decode('gbk').encode('utf-8')
16. 下列程序打印结果为:()
import re
m = re.search('[0-9]', 'a1b2c3d4')
print(m.group(0))
A. 1
B. 1234
C. 其他几项都不对
D. None
17. 下列程序打印结果为:()
import datetime
t1 = datetime.datetime(2017,10,10,21,40)
t2 = daretime.datetime(2017,10,8,23,40)
tt1 = datetime.datedelta(seconds = 1200)
t2 = daretime.datedelta(week =3)
print( t1 -t2 )
A. 1 day, 02:00:00
B. 600
C. 1 day, 22:00:00
D. 3600
多选题
18. 下列关于图像说法不正确的是:()
A.图像分析主要研究图像传输、存储、增强和复原
B.图像分析主要研究点、线、面和体的表示方法以及视觉他息的显示方法
C.图像分析主要研究对圈像内容的分析、解释和识别
D.图像分析主要研究构造图位的描述方法.更多地用符号表示各种图像
19 在考虑到并行计算的前提下,对于如下代码:
x = 5
x = square(x)
x = x + 1
说法错误的是:
A. x 的值可能是25
B. x 的值可能是26
C. x 的值总会是26
D. x 的值可能是5
20. 当在文本数据上训练一个机器学习模型,构建了一个输入数据的文档-单词矩阵。下面哪些方法可以用于降低数据维度?
1. 潜在狄利克雷分布(LDA)
2. 潜在语义索引
3. 关键词规范化
A. 1,2,3
B. 2,3
C. 只有1
D. 1,3
21.用户表有两列name/country。现在要查询用户表中每个国家(country)的用户人数,应使用以下哪个语句
A. select country from users
B. select name from users where country = 'xx'
C. select count(country) from users
D. select count(*) from group by country
22.多选题 DELETE 和 TRUNCATE TABLE 都是删除表中的数据的语句,它们的不同之处描述正确的是:
A. 再删除是如果遇到任何一行违反约束(主要是外键约束),TRUNCATE TABLE 任然删除,只是表的结构及其列、
约束、索引等保持不变,但 DELETE是直接返回错误
B. 如果想保留标识数值,要用DELETE,因为TRUNCATE TABLE 会对新行标志列使用的技术之重置为该列的种子
C. TRUNCATE TABLE 比 DELETE的速度快
D. 对于被外键约束的表, 不能使用TRUNCETE TABLE , 而应该使用不带WHERE语句的DELETE语句
23. 以下哪种排序算法一趟及术后能够确定一个的最终位置?()
A. 堆排序
B. 简单选择排序
C. 二路归并排序
D. 技术排序
24. 若串 S= “UP! UP! JD” ,则其子串的数目:()
A. 33
B. 39
C. 35
D.37
25.权值分别为9、3、2、8的结点,构造一颗哈夫曼树,该树的带权路径长度是?
A. 46
B. 45
C. 40
D. 36
26. 在()中,只要指出表中任何一个节点的位置,就可以从他出发依次访问到其他的所有节点。
A. 循环链表
B. 线性链表
C. 双向链表
D. 线性单链表
27.关于递归的说法不正确的是()
A. 递归法比递推法的执行效率更高
B. 要消耗大量的内存空间,程序执行慢,甚至无法执行
C. 程序结构更简洁
D. 占用CPU的处理时间更多
28多选题
一台客户端有300个客户与300客户端有300个客户对服务器施压,有什么区别?
A.线程之间可能发生干扰,而产生一些异常
B.所有用户在一个客户端上,不必考虑分布式管理的问题
C.300个用户在一个客户端上,需要更大的带宽
D.用户分布在不同的客户端上,需要考虑使用调度器来整体调配不用客户机上的用户
29多选题
如何在多线程中避免发生死锁?
A.允许进程强行从占有者那里夺取某些资源
B.进程在运行前一次性地像系统申请它所需要的全部资源
C.允许进程同时访问某些资源
D.把资源事先先分类编号,按号分配,使进程在申请,占有资源时不会形成环路
30.字符串“ABCD”和字符串“DCBA”进行比较,如果让比较的结果为真,应选用关系运算符()
A.<
B.>
C.>=
D.=
31.
完全多部图
时间限制:C/C++语言Z000MS:其他语言4000MS
内存限制:C/C++语言65536KB:其他语言589824KB
题目描述:
给定一张包含N个点、M条边的无向图,每条边连接两个不同的点,且任意两点间最多只有一条边。对于这样的简单无向图,如
里能将所有点划分成若若个集合,使得任意两入同一集合内的点之间没有边相连,任意两个不同集合内的点之间有边相连,则
该图为完全多部图。现在你需要判断给定的图是否为完全多部图。
输入
第一行输入一个整数下表示数据组数,1<.
每组数据格式为:
第一行包含两个整数N和M,lN51000,0三M三N(N一1)/2:
接下来M行,每行包含两个整数X和Y,裘示第X个点和第Y个点之间有一条边,15X,YSN.
输出
每组输目占一行,如果给定的图为完全多部图,输出Yes,否则输出NO.
样例输入:
2
5 7
1 3
1 5
2 3
2 5
3 4
4 5
3 5
4 3
1 2
2 3
3 4
样例输出:
Yes
No
31.相似字符串
时间限制:C/C++语言Z000MS:其他语言4000MS
内存限制:C/C++语言65536KB:其他语言589824KB
题目描述:
对于仅由小写字母组成的字符串A和B,如果分别存在一个小写字母a到z的排列,使得将A中所有字母a替换为排列的第一个字母,
所有字母b替换为排列的第二个字母........所有字母z替换为排列的最后个字母之后,A和B完全相同,那么称字符串A和B相似,如abcc和
xyaa。现在给定仅由小写字母组成且长度不超过10的字符串S和T,求S中有多少字串与T相似?
输入
第一行和第二行分别输入字符串S和T。
输出
输出字符串S中与T相似的字串数目。
样例输入
ababcb
xyx
样例输出
3
Hint
样例解释
S中与T相似的字串分别是aba、bab、bcb,总共3个。