网易笔试+答案.docx
《网易笔试+答案.docx》由会员分享,可在线阅读,更多相关《网易笔试+答案.docx(5页珍藏版)》请在冰豆网上搜索。
网易笔试+答案
网易2017年校园招聘笔试题
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:
:
list&I){
}
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?
并举例说明
第四部分(选作):
Linux应用与开发
1.写出完成以下功能的Linux命令:
1)在当前目录及其子目录所有的.cpp文件中查找字符串"example",不区分大小写;
2)使用sed命令,将文件xyz中的单词AAA全部替换为BBB;
3)用一条命令创建aabbcc三个子目录
4)mountcdrom.iso至/dev/cdrom目录
5)设置ulimit使得程序在Segmentfault等严重错误时可以产生coredump;
2.设umask为002,则新建立的文件的权限是什么?
664
A.-rw-rwr--
B.rwxrwx-w-
C.-------w-
D.rwxrwxr-x
上面第三题,aa bb cc 目录是嵌套的子目录么,要是同一级的话应该下面这样
1 #grep -i -r example ./*.cpp
2 #sed 's/AAA/BBB/g ' xyz
3 #mkdir aa bb cc
4 #mount -o loop ./cdrom.iso /mnt/cdrom
5 C
3.用户HOME目录下的.bashrc和.bash_profile文件的功能有什么区别?
4.写出完成以下功能的gdb命令(可以使用命令简写形式):
1)使用gdb调试程序foo,使用coredump文件core.12023;
2)查看线程信息
3)查看调用堆栈
4)在类ClassFoo的函数foo上设置一个断点
5)设置一个断点,当表达式expr的值被改变时触发
5.
1)例举Linux下多线程编程常用的pthread库提供的函数名并给出简要说明(至少给出5个)
2)pthread库提供哪两种线程同步机制,列出主要API
3)使用pthread库的多线程程序编译时需要加什么连接参数?
3.2 网易2011年校园招聘笔试题
Chararray[]=“abcde”;char*s=array;
Cout<-------------------------------------------------------------------------------------------
什么是用户级线程和内核级线程?
区别。
-------------------------------------------------------------------------------------------
从C++文件到生成exe文件经过哪三个步骤?
-------------------------------------------------------------------------------------------
有个二维数组A(6*8),每个元素占6字节,起始地址为1000,请问最后一个元素A[5][7]的
起始地址为?
?
?
数组A占内存大小为?
?
?
假设以行优先,则A[1][4]起始地址为?
?
?
1.6*8*6=288
2.1000+(5*8+7)*6=1000+(5+7*6)*6=1282
3.1000+(1*8+4)*6=1072
4.1000+(4+7*6)*6=1276
-------------------------------------------------------------------------------------------
用C语言把双向链表中的两个结点交换位置,考虑各种边界问题。
StructNode
{
Node*prev;
Node*next;
}
Voidexchange(Node*node1,Node*node2)
{
}
-------------------------------------------------------------------------------------------
*.dll,*.lib,*.exe文件分别是什么,有什么区别?