一篇完整的网易笔试题.docx
《一篇完整的网易笔试题.docx》由会员分享,可在线阅读,更多相关《一篇完整的网易笔试题.docx(6页珍藏版)》请在冰豆网上搜索。
一篇完整的网易笔试题
一篇完整的网易笔试题
A卷(研发类题)
第一部分(必做):
计算机科学基础
1.(单选)软件设计中模块划分应该遵循的准则是:
A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合
2.(单选)最坏情况下时间复杂度不是n(n-1)/2的排序算法是:
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
3.哈希表中解决冲突的方法通常可以分为openaddressing和chaining两类,请分别解释这两类冲突解决方法的大致实现原理
4.简单的链表结构拥有很好的插入删除节点性能,但随机定位(获取链表第n个节点)操作性能不佳,请你设计一种改进型的链表结构优化随机定位操作的性能,给出设计思路及其改进后随机定位操作的时间复杂度
5.什么是NP问题?
列举典型的NP问题(至少两个)?
对于一个给定的问题你通常如何判断它是否为NP问题?
6.以下是一个tree的遍历算法,queue是FIFO队列,请参考下面的tree,选择正确的输出.
1
/\
2 3
/\/\
4567
queue.push(tree.root)
while(true){
node=queue.pop();
output(node.value);//输出节点对应数字
if(null==node)
break;
for(child_nodeinnode.children){
queue.push(child_node);
}
}
A.1234567
B.1245367
C.1376254
D.1327654
第二部分(选作):
C/C++程序设计
1.有三个类ABC定义如下,请确定sizeof(A)sizeof(B)sizeof(C)的大小顺序,并给出理由
structA{
A(){}
~A(){}
intm1;
intm2;
};
structB{
B(){}
~B(){}
intm1;
charm2;
staticcharm3;
};
structC{
C(){}
virtual~C(){}
intm1;
shortm2;
};
2.请用C++实现以下print函数,打印链表I中的所有元素,每个元素单独成一行
voidprint(conststd:
:
listintI){
}
3.假设某C工程包含a.c和b.c两个文件,在a.c中定义了一个全局变量foo,在b.c中想访问这一变量时该怎么做?
4.C++中的new操作符通常完成两个工作,分配内存及其调用相应的构造函数初始化
请问:
1)如何让new操作符不分配内存,只调用构造函数?
2)这样的用法有什么用?
5.下面这段程序的输出是什么?
为什么?
classA{
public:
A(){p();}
virtualvoidp(){print(A)}
virtual~A(){p();}
};
classB{
public:
B(){p();}
voidp(){print(B)}
~B(){p();}
};
intmain(int,char**){
A*a=newB();
deletea;
}
6.什么是C++Traits?
并举例说明
第三部分(选作):
JAVA程序设计
1.(单选)以下Java程序运行的结构是: