网易在线笔试题目
网易在线笔试会有哪些题目呢?快看一下吧。
网易在线笔试题目:
1. 写出对“知之者不如好之者,好之者不如乐之者”的理解。
了解他不如爱护它,爱护它不如与之为乐
2.用中文写出尽可能多的中文语句,要求包含有“都”的意思(all、both之意),但不能有“都”字。
3.new/delete和malloc/free的区别,并说说你在什么情况下会自另行建立自己的内存分配机制。
malloc和free不知道构造函数和析构函数
malloc/free:只要给出想要的内存的长度就分配,并返加(void*)
new/delete:分配内存同时进行类型检测,内置了sizeof运算,如果分配类的话,自动调用类的构造函数,delete也是,释放内存时调类的析构
为什么有必要写自己的operator new和operator delete?
答案通常是:为了效率。缺省的operator new和operator delete具有非常好的通用性,它的这种灵活性也使得在某些特定的场合下,可以进一步改善它的性能。尤其在那些需要动态分配大量的但很小的对象的应用程序里,情况更是如此。
有这样一个方法来实现你的自定义的operator new:先让缺省operator new分配一些大块的原始内存,每块的大小都足以容纳很多个airplane对象。
4.求极限lim(x-[x]),x趋于-3。
左右极限不一样
从左是:1
从右是:-1
5.比较两个电路的可靠性。
6.编程题:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列。
维持一个FILO队列从1开始入队列并跟踪和sum,到x入队使得sum>=value的`时候
等于则记录队列,大于则队列弹出一个元素,然后x+1入队,
sum小于value则继续入队,大于则出队,等于则记录然后入队
复杂度应该是O(Value)的不知道你是不是这个意思?你好像没用队列而用两个变量代表第
一个和最后一个元素吧这样更好!
void sum(int num)
{
int first = 1;
int end = 2;
int sum = 0;
for(int i = first; i <= end; i++)
sum += i;
while(first <= num)
{
if(sum < num)
{
end++;
sum += end;
}
else if(sum > num)
{
sum -= first;
first++;
}
else
{
for(int i = first; i <= end; i++)
cout << i << " ";
cout << endl;
sum -= first;
first++;
}
}
7.有两个字符串 str1和str2,写一个函数实现在str1中查找str2的初始位置。要求不区分大小写。
8.在字符串S中寻找最长的字符串x,条件是x存在于S中。即是如:abcabcdcd中的abc。
不难用strncmp加二重循环搞定
第一重循环i = strlen(S)/2 to 1 (i代表比较字符串0的长度)
第二重循环j = 0 to strlen(S)-i-i (j代表比较字符串的起始位置)
然后循环体里strncmp(S+j,S+j+i,i);
第一个相等的字符串就是结果了。
void main()
{
char S[] = "1231234123455676456";
for (int i=strlen(S)/2;i>0;i--)
for (int j=0;j
if (strncmp(S+j,S+i+j,i) == 0)
{
S[j+i] = 0;
printf("%s",S+j);
return ;
}
}
9.求Fibonacci数列中第k个与前面所有数互质的数(除前面两个数 1,1 )。
long Fibo1(int n)
{
long n1=1,n2=1;
for(int i=3; i<=n; i++)
{
int temp=n2;
n2=n1+n2;
n1=temp;
}
return n2;
}
bool IsPrime(int m)
{
int t=sqrt(m);
if (m == 1)
return false;
for (int i=2; i<=t; i++)
{
if(m%i == 0)
break;
}
if (i == t+1)
return true;
else
return false;
}
bool IscoP(long a,long b)//辗转相除法判断两数互质,最大公约数为1
{
while(b > 0)
{
int temp=b;
b=a%b;
a=temp;
}
if(a == 1)
return true;
else
return false;
//return a;
}
long FindK(int k)
{
int count = 0;
for (int i=3; ; i++)
{
for (int j=3; j
{
if(!IscoP( Fibo1(i),Fibo1(j) ))break;
}
if(j == i)count++;
if(count == k)
{
return Fibo1(i);
break;
}
}
}
10.有100个真币和一个假币,只知道真币与假币不等重,要求只称两次,得出是真币重还是假币重。
101个钱币中,任取一个,其余100个分为2份,如果重量相同,取出的必定假币,与任何一个真币比较即可。如果重量不等,把重的50枚分为两分,如果不等,则假币重,否则假币轻。把轻的50枚分开称也可以得到结果
11.证明题:给出n个互不相同的分数数列a1/b1, a2/b2… an/bn ,证明(a1 + a2 + … + an) / (b1 + b2 + … + bn) 的值在数列a1/b1, a2/b2… an/bn 数列的最大值和最小值之间。
12. 证明题:在三角形中,假设等角对等边,证明大角对大边。
13. 文学题:在以下的空白中填入相应的词(蔼、断、淡、泰)并解释其含义。
自处超然,处事 然,无事澄言,处事 言,得意 然,失意 然。
淡、泰、蔼、断
14. 问答题:为什么现在的计算机采用二进制?而不是八进制或十六进制?你认为以后的计算机会采用几进制?
前技术水平而言,电位高低区分01逻辑比较简单高效,因而采用2进制。特别是采用刷新机制的大容量集成门电路,在两次刷新之间,电位不断降低,因此通过将电位分级来进行多进制计算就目前而言不可能。除非计算机的硬件技术有质的飞跃。
15.程序设计题:给出若干个单词,组成字典,要求查找速度最快。
以下是第15题的解法,使用小写字母a-z组成单词,用1表示a,一直到26表示z.使用幂乘法表示字母,比如ab为a*26+b,然后用幂乘法算出来的数字对数组大小的两倍值取余得到哈希值.用字母组合aa表示被删除的单词.
16.,有b1/a1,b2/a2,....,bn/an 共n个分数,分母同号,证明:
(b1+b2+...+bn)/(a1+a2+...+an)的值在上面n个分数值最大制和最小值之间.
17.证明:三角形中大边对大角,已知等边对等角
18.为什么计算机中多用二进制,16进制也用在程序中.你认为有没有可能回出现多进制的计算机,为什么
19.一个没有拷贝构造函数和重载=运算符的String类,会出现什么问题,如何解决?
20.编程题.
有篇文章,找出文章中单词在词典中的序号,要求高效率.词典没排序.
21.有一位警长,抓了三个逃犯。现警长决定给他们一次机会。他拿出3顶黑帽子,两顶白帽子,然后往这三个逃犯头上每人戴了一顶帽子,每个逃犯只能看到另外两个逃犯帽子的颜色,不能看到自己帽子的颜色,而且不能进行通讯,不能进行讨论,只能靠自己的推理推出来,如果猜出来了,放一条生路,否则处死。
警长先问第一逃犯,结果第一逃犯猜错了,被杀掉了。
警长问第二个逃犯,结果还是猜错了,同样被杀掉了。
警长再问第三个逃犯,结果第三个逃犯猜对了。
说明一下,每个逃犯在回答问题时,其他逃犯是听不到的。
为什么第三个一定能猜中,请你给出解释。
如果A看到另外两个人都带白色帽子,那么自己肯定带黑色帽子。
如果A看到另外两个帽子一白一黑,而黑色帽子的那个人死了(一白一黑都死了),那么自己肯定不是白帽子,而是黑帽子。
如果A看到另外两个帽子都是黑色的,而第二个黑帽子也死了(如果A带白帽子,那么地一个黑帽子死了,第二个黑帽子应该知道自己帽子的颜色),那么A肯定不是带白帽子,而是带黑帽子。
【网易在线笔试题目】相关文章:
网易笔试题目07-21
网易运营笔试题目07-18
网易策划 笔试题目07-24
网易android笔试题目07-20
网易产品运营笔试题目07-20
网易测试笔试题目07-21
网易校招笔试题目07-19
2015网易java笔试题目02-01
2016年网易笔试题目06-29