网易笔试题目

时间:2021-07-05 14:38:14

网易笔试题目
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<strlen(S)-i-i;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<i; 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肯定不是带白帽子,而是带黑帽子。
发信人: xiaosong (松仁玉米), 信区: job
标 题: 网易技术类笔试内容(zz)
发信站: 兵马俑BBS (Fri Dec 17 22:49:29 2004), 转信(bbs.xjtu.edu.cn)
 
华南理工版:
1.给出一个字符串,求一个子串x,令w=xx,表示x的连接,如x=ab则w=abab,w在
给出的字符串中出现并x是最长的。如给出"ababc"则结果是ab。并给出算法的时间复杂度

 
2.Fabonacci数列定义为(1,1,2,3,5,8,.....),即每个元素是前两个元素的和。
如果一个Fabonacci数与所有小于它的Fabonacci数互质,那么称之为Fabonacci质数。
现在求第k个Fabonacci质数是第几个Fabonacci数。
 
3.101个硬币,其中有一个假的,已知假币重量与真币不同,且真币重量都一样,
如何通过无砝码的天平称量两次,知道假币到底是重了还是轻了。
 
中山大学版:
1.给定一个字串X,求它最长字串S,使得S=SR,SR为S的反序,即如果S=abc,则
SR=cba例子:X=abccba,则输出S=abc
 
2.对于Fib(忘了全拼)数列,如果Fib中于它之前的Fib数列均互质,则称为Fib质数
。对于第一个Fib质数为2,第二个为3,第三个为5。。。(Fib数列为,1,1,2,3,5,...)
输入一个数K,则第K个Fib质数所对应的Fib序数是多少?
如第一个Fib质数为2,对应Fib序数为3
 
3.36匹马赛跑,跑道同时只能容许6匹马。而且36匹马速度不同,但是每次跑的速
度恒定。问,跑多少次可以选出第一,第二,第三名
--
8次  
 36分6组       6次  
 6组的第一名比赛     1次  
 6组中第一名比赛的到的名次中,   用其第一名所在队伍的   马2,马3,第二名所在队伍的马1,马2,第3名所在队伍的马1
 
发信人: luoyuan (周星星), 信区: VC
标 题: Baidu之星2005初赛试题
发信站: 武汉白云黄鹤站 (2006年05月25日16:15:34 星期四), 站内信件
 
大赛要求用Linux + gcc调试通过。
 
VC版也一起看看。
 
"程序之美"-百度之星程序设计大赛2005 - 初赛题目
 
第一题(共四题100分):连续正整数(10分)
 
   题目描述:
 
一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:
 
    15=1+2+3+4+5
 
    15=4+5+6
 
    15=7+8
 
    请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整
数序列。
 
   输入数据:
 
一个正整数,以命令行参数的形式提供给程序。
 
   输出数据:
 
在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都
从该序列的最小正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各
序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的
整数用一个空格分隔。如果没有符合要求的序列,输出"NONE"。
 
    例如,对于15,其输出结果是:
 
    1 2 3 4 5
 
    4 5 6
 
    7 8
 
    对于16,其输出结果是:
 
    NONE
 
   评分标准:
 
程序输出结果是否正确。
 
 
 
第二题(共四题100分):重叠区间大小(20分)
 
   题目描述:
 
请编写程序,找出下面"输入数据及格式"中所描述的输入数据文件中最大重叠区间
的大小。
 
    对一个正整数n,如果n在数据文件中某行的两个正整数(假设为A和B)之间,
即A<=n<=B或A>=n>=B,则n属于该行;如果n同时属于行i和j,则i和j有重叠区间;
重叠区间的大小是同时属于行i和j的整数个数。
 
    例如,行(10 20)和(12 25)的重叠区间为[12 20],其大小为9;行(20 1
0)和(12 18)的重叠区间为[10 12],其大小为3;行(20 10)和(20 30)的重叠
区间大小为1。
 
   输入数据:
 
程序读入已被命名为input.txt的输入数据文本文件,该文件的行数在1到1,000,00
0之间,每行有用一个空格分隔的2个正整数,这2个正整数的大小次序随机,每个数
都在1和2^32-1之间。(为便于调试,您可下载测试input.txt文件,实际运行时我
们会使用不同内容的输入文件。)
 
   输出数据:
 
在标准输出上打印出输入数据文件中最大重叠区间的大小,如果所有行都没有重叠
区间,则输出0。
 
   评分标准:
 
程序输出结果必须正确,内存使用必须不超过256MB,程序的执行时间越快越好。
 
  
 
第三题(共四题100分):字符串替换(30分)
 
   题目描述:
 
请编写程序,根据指定的对应关系,把一个文本中的字符串替换成另外的字符串。
 
 
   输入数据:
 
程序读入已被命名为text.txt和dict.txt的两个输入数据文本文件,text.txt为一
个包含大量字符串(含中文)的文本,以whitespace为分隔符;dict.txt为表示字
符串(s1)与字符串(s2)的对应关系的另一个文本(含中文),大约在1万行左右
,每行两个字符串(即s1和s2),用一个/t或空格分隔。dict.txt中各行的s1没有
排序,并有可能有重复,这时以最后出现的那次s1所对应的s2为准。text.txt和di
ct.txt中的每个字符串都可能包含除whitespace之外的任何字符。text.txt中的字
符串必须和dict.txt中的某s1完全匹配才能被替换。(为便于调试,您可下载测试
text.txt和dict.txt文件,实际运行时我们会使用不同内容的输入文件。)
 
   输出数据:
 
在标准输出上打印text.txt被dict.txt替换后了的整个文本。
 
   评分标准:
 
程序输出结果必须正确,内存使用越少越好,程序的执行时间越快越好。
 
 
 
第四题(共四题100分):低频词过滤(40分)
 
   题目描述:
 
请编写程序,从包含大量单词的文本中删除出现次数最少的单词。如果有多个单词
都出现最少的次数,则将这些单词都删除。
 
   输入数据:
 
程序读入已被命名为corpus.txt的一个大数据量的文本文件,该文件包含英文单词
和中文单词,词与词之间以一个或多个whitespace分隔。(为便于调试,您可下载
测试corpus.txt文件,实际运行时我们会使用不同内容的输入文件。)
 
   输出数据:
 
在标准输出上打印删除了corpus.txt中出现次数最少的单词之后的文本(词与词保
持原来的顺序,仍以空格分隔)。
 
发信人: goodstart (jacky), 信区: jobs
标 题: Re: 网易东大笔试答案-C与Java的实现
发信站: 虎踞龙蟠 (Mon Nov 17 10:20:06 2003)
 
/*
网易笔试题
计算得出一个文章中的行数、单词数、字母数。
单词特征是连续的字母组成的字符串,
当第一个字母出现的时候,一个单词开始,
当出现一个非字母字符时,单词结束。
用这个特征来判断字母,可能会出现的问题在于一些特殊情况,
像i'm,we're,pre-emption之类的单词,
这本身是一种特殊情况,到底算一个单词还是两个单词很难说,
我觉得算两个单词没有任何问题。
如果这个问题排除了,下面的程序是正确的,而且是比较容易的
一种实现。
*/
 
#include <stdio.h>
#include <iostream.h>
 
void main()
{
FILE * fp;
char ch;
int lines=1;
int words=0;
int letters=0;
if((fp=fopen("f:/aa.txt","r"))==NULL)
{
cout<<"文件不存在"<<endl;
return;
}
 
int findword=0;
          //由0到1转变的时候,单词开始;由1到0转变的时候,单词结束
while(((ch=fgetc(fp))!=EOF))
{
if(ch=='/n') lines++;
if(((ch>='a')&&(ch<='z'))||((ch>='A')&&(ch<='Z')))
{
if(findword==0) words++;
findword=1;
letters++;
}
else
{  
findword=0;
}
}
cout<<"共有行数:"<<lines<<endl;
cout<<"共有单词数:"<<words<<endl;
cout<<"共有字母数:"<<letters<<endl;
//关闭文件
fclose(fp);
}
 
发信人: hangelwen (我听见海浪的声音), 信区: job
标 题: 网易笔试归来,发题目.
发信站: 兵马俑BBS (Thu Nov 3 11:19:46 2005), 转信(202.117.1.8)
 
技术类的.把自己记得的试题说出来
1,有b1/a1,b2/a2,....,bn/an 共n个分数,分母同号,证明:
(b1+b2+...+bn)/(a1+a2+...+an)的值在上面n个分数值最大制和最小值之间.
2证明:三角形中大边对大角,已知等边对等角
3,为什么计算机中多用二进制,16进制也用在程序中.你认为有没有可能回出现多进制
的计算机,为什么
4,一个格言的题目,忘了
5,一个没有拷贝构造函数和重载=运算符的String类,会出现什么问题,如何解决?
只要类里有指针时,就要写自己版本的拷贝构造函数和赋值操作符函数
6,编程题.
有篇文章,找出文章中单词在词典中的序号,要求高效率.词典没排序.
 
捎带看了下市场的题目,记了几个智力型的
1,地球上有个山谷,正午时太阳高度比日出和日落时低4800km(好象是),问这个山
谷在那里?
2,一个工程师维护15个电话亭,某天主管告诉他前8个电话亭中有5个坏了,让他试着
去修理,他直接走向了8号亭,为什么?
3,有个小岛,周围是湖,湖外是陆地(也就是湖是环行的).小岛上有科树,陆地边上也
有可树,两树相距80米,有个不会游泳的人,有300米长的绳子,现在想去岛上,问有
什么办法
 
可能有些题目表述的不是很清楚,呵呵
 
发信人: avsdecoder (be), 信区: EE
标 题: 网易笔试(技术类)
发信站: 逸仙时空 Yat-sen Channel (Tue Dec 6 18:48:34 2005)
 
1.写出对“知之者不如好之者,好之者不如乐之者”的理解。
2.用中文写出尽可能多的中文语句,要求包含有“都”的意思(all、both之意),但不能
有“都”字
3.new/delete和malloc/free的区别,并说说你在什么情况下会自另行建立自己的内存分配
机制。
4.求极限lim(x-[x]),x趋于-3。
5.比较两个电路的可靠性。
6.编程题:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正
整数序列。
int main(void)
{
    int input = 150;
    int first = 1;
    int end = 2;
    int sum = 3;
    while(first <= input/2 )
    {
       if(sum < input)
           sum += (++ end);
       else if(sum > input)
           sum -= (first++);
       else if(sum == input)
       {
           for (int j = first ; j <= end; j++)
              cout << j << " ";
           cout << endl;
           sum -= first;
       }
      
    }
 
}
7.要求完成一个库函数的编写。(具体要求是一堆英文, 记不清了)

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tvtvtvtv/archive/2006/11/22/1404054.aspx