2015 年京东应届生招聘笔试题 A 卷
(笔试时间 90 分钟)
学 校:
学 历:
申请职位:
姓
名:
联系电话:
请同学认真填写申请职位和期望工作地点。详情如下,请填写一个职位和对应一个工作地点
招聘岗位介绍:开发工程师(沈阳,成都,北京,南京,深圳);Web 前端开发工程师(上海,深圳);
安全工程师(北京);测试工程师(北京,上海,深圳);前端开发工程师(北京,成都);数据挖掘
工程师(北京,上海);算法工程师(北京,沈阳,成都);网络工程师(北京);云计算开发工程师
(北京,南京);移动开发工程师(北京)
期望工作地点:
专业:
成绩:
一、客观题:(总分,60 分,每题 4 分共 15 题)请将答案填入下面表格中
1
6
11
2
7
12
3
8
13
4
9
14
5
10
15
)
1. 操作系统死锁的必要条件(多选)(
A. 互斥条件
B. 系统资源有限
2. 定义根结点深度为 1,有 n 个元素的完全二叉树的深度是(
A.
3. 以下函数的时间复杂度(
Void recursive(int n, int m, int o){
B. D(n)=1+log2(n)
D(n)=log2(n)
)
C. 进程调度不合理
C. D(n)=n+log2(n)
D. 环路等待条件
)
D. D(n)=1+n*log2(n)
if (n < = o) {
Printf(“%d, %d\n”,m,o);
}else {
recursive (n-1, m+1, o);
recursive (n-1, m, o+1);
}
)
D. O(n!)
O(n*m*o)
C. O(2^n)
B. O(n^2*m^2)
}
A.
4. 以下关于进程和线程的描述中,正确的一项是(
A. 一个进程就是一个独立的程序
B. 进程间是互相独立的,同一进程的各线程间也是独立的,不能共享所属进程拥有的资源
C. 每个线程都有自己的执行堆线和程序计数器为执行上下文
D. 进程的特征包括动态性、并发性、独立性、同步性
5. 假设你只有 100Mb 的内存,需要对 1Gb 的数据进行排序,最合适的算法是(
A. 归并排序
6. 以下关于 TCP/IP 协议的描述中,不正确的是(
A.TCP 负责将信息拆分为数据包,并在数据包达到目的地后对其进行装配
B.
C.
D.
7.
A.
8. 已知一颗二叉树,其先序序列为 EFHIGJK,中序序列为 HFIEJKG,则该二叉树根节点的右孩子
IP 负责为数据包选择路由以便将其传递到正确的目的地
TCP 协议是可靠地服务,当客户端第一次向服务端发送会话请求的时候,就会把数据传输过去
IP,ICMP 和 IGMP 都是网络层的协议
SQL 语言中,删除一个表的命令是(
CLEAR
C. 快速排序
D.. 冒泡排序
B. 插入排序
D.
REMOVE
B.
DROP
)
)
DELETE
C.
)
为
A.
E
。(
)
J
B.
C.
G
D.
H
9. 俩人玩游戏,在脑门上贴数字(正数字> =1), 只看见对方的,看不见自己的,而且两人的数字
相差 1,要猜自己的数字一下是两人间的对话:
A:我不知道
B:我也不知道
C:我知道了
D:我也知道了
问 A 头上的字是多少?B 头上的字是多少?(
A.
C.
10. 如下的无向图中有多少个不同的最小生成树( )
A 是 3 , B 是 2
A 是 1 , B 是 2
A 是 4 , B 是 3
A 是 2 , B 是 1
B.
D.
)
2
1
1
2
2
1
2
1
2
2
2
1
2
6
4
5
D.
7
)
B .
C .
B. 将析构函数设置为私有
D. 没有办法能做到
A .
11. 在才 C++中,为了让某个类只能通过 new 来创建(即如果直接创建对象,编译器将会报销),应
该(
A. 将构造函数设置为私有
C. 将构造函数和析构函数均设置为私有
12. 内联函数在一下场景中是有用的(
A. 当函数代码较长且有多层嵌套循环的时候。
B. 当函数中有较多的静态变量的时候。
C. 当函数代码较小并且被频繁调用的时候。
D. 以上皆不对。
13. 下面程序的输出结果(
# include
using namespace std;
class A{
public:
)
)
B.
B::print()
C. 编译错误
public static void main(String[] args) {
void print() {cout << “A::print()”;}
void print() {cout << “B::print()”;}
void print() {A::print();}
};
class B: private A {
public:
};
class C: public B {
public:
};
int main() {
C b;
b.print();
A::print()
}
A.
14. 如下代码:
public class Foo{
try {
Return;
} finally {
}
}
System.out.println(“Finally");
}
输出结果是(
A. Finally
15. 使用 7, 7, 7, 1 四数字和加减乘除,计算出 48, 每个数字只能用一次:
C. 代码正常运行但没有任何输出
B. 编译失败
)
D. 运行时抛出异常
二、编程题:(总分,40 分,每题 20 分)
1. 请编写一个函数 func , 输入一个正整数 n ,返回一个最小的正整数 m ( m>9,即 m 至少包含
两位数),使得 m 的各位乘积等于 n, 例如输入 36,输出 49; 输入 100,输出 455,如果对于某个 n 不
存在着这样的 m,请输出-1。语言不限,但不要用伪代码作答,函数输入输出请参考如下函数原型。
C++函数原型:
int func(int n) {
}
2. 非递归方式实现二叉树的先序遍历,并将个节点的值保存在数组中。语言不限,但不要用伪
代码作答,函数输出请参考如下函数原型。
C++ 函数原型 :
struct TreeNode {
int value;
TreeNode* left;
TreeNode* right;
};
void Traverse TreeInPreOrder(std::vector & values, const TreeNode* root) {
}
三、 附加题 :(总分 20 分)
1. 请编写程序计算第 K 个能表示为
i
5*3*2
j
k
的正整数(其中 i,j,k 为整数)。例如前 5
个满足这个条件的数分别是:1,2,3,4,5,6,8,9,10,12,15。语言不限,函数输入输出参考:
C++ 函数原型 :
int KthNumber(int k){
}