zoukankan      html  css  js  c++  java
  • 十月下旬腾讯,网易游戏,百度迅雷校园招聘笔试题集锦(第271-330题)

    十月下旬腾讯,网易游戏,百度最新校园招聘笔试题集锦(第271-330题)

    引言

        此文十月百度,阿里巴巴,迅雷搜狗最新面试十一题已经整理了最新的面试题70道,本文依次整理腾讯,网易游戏,百度等各大公司最新校园招聘的笔试题,后续将继续整理十月下旬的笔/面试题。

    腾讯2011.10.15校园招聘会笔试题

    1、下面的排序算法中,初始数据集的排列顺序对算法的性能无影响的是(B

    A、插入排序                      B、堆排序                    C、冒泡排序                     D、快速排序

    2、以下关于Cache的叙述中,正确的是(B

    A、CPU中的Cache容量应大于CPU之外的Cache容量

    B、Cache的设计思想是在合理成本下提高命中率

    C、Cache的设计目标是容量尽可能与主存容量相等

    D、在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素

    3、数据存储在磁盘上的排列方式会影响I/O服务的性能,一个圆环的磁道上有10个物理块,10个数据记录R1------R10存放在这个磁道上,记录的安排顺序如下表所示:

    物理块

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    逻辑记录

    R1

    R2

    R3

    R4

    R5

    R6

    R7

    R8

    R9

    R10

    假设磁盘的旋转速度为20ms/周,磁盘当前处在R1的开头处,若系统顺序扫描后将数据放入单缓冲区内,处理数据的时间为4ms(然后再读取下个记录),则处理这10个记录的最长时间为(C

    A、180ms                           B、200ms                          C、204ms                             D、220ms

    4、随着IP网络的发展,为了节省可分配的注册IP地址,有一些地址被拿出来用于私有IP地址,以下不属于私有IP地址范围的是(C)(私网IP地址:10.0.0.0- 10.255.255.255;172.16.0.0 -   172.31.255.255;192.168.0.0-192.168.255.255。故选C)

    A、10.6.207.84                              B、172.23.30.28                      C、172.32.50.80               D、192.168.1.100

    5、下列关于一个类的静态成员的描述中,不正确的是(D

    A、该类的对象共享其静态成员变量的值                              B、静态成员变量可被该类的所有方法访问                 

    C、该类的静态方法只能访问该类的静态成员变量                 D、该类的静态数据成员变量的值不可修改

    6、已知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key) = key%7计算散列地址,并散列存储在散列表A【0....6】中,若采用线性探测方法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为(C

    A、1.5                  B、1.7                           C、2.0                       D、2.3

    依次进行取模运算求出哈希地址:

    A

    0

    1

    2

    3

    4

    5

    6

    记录

    63

    48

     

    38

    25

    74

    52

    查找次数

    1

    3

     

    1

    1

    2

    4

    74应该放在下标为4的位置,由于25已经放在这个地方,所以74往后移动,放在了下标为5的位置上了。

    由于是等概率查找,所以结果为:1/6*(1+3+1+1+2+4)= 2.0

    7、表达式“X=A+B*(C--D)/E”的后缀表示形式可以为(C

    A、XAB+CDE/-*=                     B、XA+BC-DE/*=                      C、XABCD-*E/+=                         D、XABCDE+*/=

    8、(B)设计模式将抽象部分与它的实现部分相分离。

    A、Singleton(单例)                   B、 Bridge(桥接)                     

    C、 Composite(组合)                                   D、 Facade(外观)

    9、下面程序的输出结果为多少?

    1. void Func(char str_arg[100])  
    2. {  
    3.     printf("%d ",sizeof(str_arg));  
    4. }  
    5.   
    6. int main(void)  
    7. {  
    8.     char str[]="Hello";  
    9.     printf("%d ",sizeof(str));  
    10.     printf("%d ",strlen(str));  
    11.     char *p = str;  
    12.     printf("%d ",sizeof(p));  
    13.     Func(str);  
    14. }  

    输出结果为:6   5     4      4

    对字符串进行sizeof操作的时候,会把字符串的结束符“”计算进去的,进行strlen操作求字符串的长度的时候,不计算的。

    数组作为函数参数传递的时候,已经退化为指针了,Func函数的参数str_arg只是表示一个指针,那个100不起任何作用的。

    10、下面程序的输出结果为多少?

    1. void Func(char str_arg[2])  
    2. {  
    3.     int m = sizeof(str_arg);     //指针的大小为4  
    4.     int n = strlen(str_arg);     //对数组求长度,str_arg后面的那个2没有任何意义,数组已经退化为指针了  
    5.     printf("%d ",m);  
    6.     printf("%d ",n);  
    7. }  
    8. int main(void)  
    9. {  
    10.     char str[]="Hello";  
    11.     Func(str);  
    12. }  

    输出结果为:      4         5

    strlen只是对传递给Func函数的那个字符串求长度,跟str_arg中的那个2是没有任何关系的,即使把2改为200也是不影响输出结果的。。

    11、到商店里买200的商品返还100优惠券(可以在本商店代替现金)。请问实际上折扣是多少?

    算法编程题

    1、给定一个字符串,求出其最长的重复子串。
    思路:使用后缀数组,对一个字符串生成相应的后缀数组后,然后再排序,排完序依次检测相邻的两个字符串的开头公共部分。
    这样的时间复杂度为:

    生成后缀数组 O(N)
    排序 O(NlogN*N) 最后面的 N 是因为字符串比较也是 O(N)
    依次检测相邻的两个字符串 O(N * N)
    总的时间复杂度是 O(N^2*logN), 

    网易游戏2011.10.15校园招聘会笔试题

    1、对于一个内存地址是32位、内存页是8KB的系统。0X0005F123这个地址的页号与页内偏移分别是多少。

    2、如果X大于0并小于65536,用移位法计算X乘以255的值为:-X+X<<8

    X<<8-X是不对的,X<<8,已经把X的值改变了(订正:X<<8是个临时变量,不会改变X的值,就像a+1不会改变a一样)。

    3、一个包含n个节点的四叉树,每个节点都有四个指向孩子节点的指针,这4n个指针中有   3n+1   个空指针。

    4、以下两个语句的区别是:

    1. int *p1 = new int[10];  
    2. int *p2 = new int[10]();  

    5、计算机在内存中存储数据时使用了大、小端模式,请分别写出A=0X123456在不同情况下的首字节是,大端模式:0X12           小端模式:0X56           X86结构的计算机使用  小端    模式。

    一般来说,大部分用户的操作系统(如windows, FreeBsd,Linux)是小端模式的。少部分,如MAC OS,是大端模式 的。

    6、在游戏设计中,经常会根据不同的游戏状态调用不同的函数,我们可以通过函数指针来实现这一功能,请声明一个参数为int *,返回值为int的函数指针:

    int (*fun)(int *)

    7、在一冒险游戏里,你见到一个宝箱,身上有N把钥匙,其中一把可以打开宝箱,假如没有任何提示,随机尝试,问:

    (1)恰好第K次(1=<K<=N)打开宝箱的概率是多少。

    (2)平均需要尝试多少次。

    百度2011.10.16校园招聘会笔试题

     一、算法设计
    1、设rand(s,t)返回[s,t]之间的随机小数,利用该函数在一个半径为R的圆内找随机n个点,并给出时间复杂度分析。

    2、为分析用户行为,系统常需存储用户的一些query,但因query非常多,故系统不能全存,设系统每天只存m个query,现设计一个算法,对用户请求的query进行随机选择m个,请给一个方案,使得每个query被抽中的概率相等,并分析之,注意:不到最后一刻,并不知用户的总请求量。

    3、C++ STL中vector的相关问题:
        (1)、调用push_back时,其内部的内存分配是如何进行的?
        (2)、调用clear时,内部是如何具体实现的?若想将其内存释放,该如何操作?

    二、系统设计
    正常用户端每分钟最多发一个请求至服务端,服务端需做一个异常客户端行为的过滤系统,设服务器在某一刻收到客户端A的一个请求,则1分钟内的客户端任何其它请求都需要被过滤,现知每一客户端都有一个IPv6地址可作为其ID,客户端个数太多,以至于无法全部放到单台服务器的内存hash表中,现需简单设计一个系统,使用支持高效的过滤,可使用多台机器,但要求使用的机器越少越好,请将关键的设计和思想用图表和代码表现出来。

    三、求一个全排列函数:
    如p([1,2,3])输出:
    [123]、[132]、[213]、[231]、[321]、[323]
     求一个组合函数
    如p([1,2,3])输出:
    [1]、[2]、[3]、[1,2]、[2,3]、[1,3]、[1,2,3]
    这两问可以用伪代码。
     

    迅雷2011.10.21笔试题

    1、下面的程序可以从1....n中随机输出m个不重复的数。请填空

    knuth(int n, int m)

    {

             srand((unsigned int)time(0));

           for (int i=0; i<n; i++)

              {

                     if (            )

                      {

                                    cout<<i<<endl;

                                                             ;

                       }

              }

    }

    分别为:rand()%(n-i)<m  和 m--;

    2、以下prim函数的功能是分解质因数。请填空

    void prim(int m, int n)

    {

        if (m>n)

        {

            while (            ) n++;

                                           ;

           prim(m,n);

           cout<<n<<endl;

        }

    }

    分别为:m%n  和 m/=n

    3、下面程序的功能是输出数组的全排列。请填空

    void perm(int list[], int k, int m)

    {

        if (            )

        {

            copy(list,list+m,ostream_iterator<int>(cout," "));

            cout<<endl;

            return;

        }

        for (int i=k; i<=m; i++)

        {

            swap(&list[k],&list[i]);

                                             ;

            swap(&list[k],&list[i]);

        }

    }

    分别为:k==m 和 perm(list,k+1,m)

    二、主观题:

    1、(40分)用户启动迅雷时,服务器会以uid,login_time,logout_time的形式记录用户的在线时间;用户在使用迅雷下载时,服务器会以taskid,start_time,finish_time的形式记录任务的开始时间和结束时间。有效下载时间是指用户在开始时间和结束时间之间的在线时间,由于用户可能在下载的时候退出迅雷,因此有效下载时间并非finish_time 和 start_time之差。假设登录记录保存在login.txt中,每一行代表用户的上下线记录;下载记录保存在task.txt中,每一行代表一个任务记录,记录的字段之间以空格分开。计算每个用户的有效下载时间和总在线时间的比例。注意:请尽量使用STL的数据结构和算法
    2、(60分)在8X8的棋盘上分布着n个骑士,他们想约在某一个格中聚会。骑士每天可以像国际象棋中的马那样移动一次,可以从中间像8个方向移动(当然不能走出棋盘),请计算n个骑士的最早聚会地点和要走多少天。要求尽早聚会,且n个人走的总步数最少,先到聚会地点的骑士可以不再移动等待其他的骑士。
     从键盘输入n(0<n<=64),然后一次输入n个骑士的初始位置xi,yi(0<=xi,yi<=7)。屏幕输出以空格分隔的三个数,分别为聚会点(x,y)以及走的天数。


    盛大游戏2011.10.22校园招聘会笔试题

    1、下列代码的输出为:

    1. #include "iostream"  
    2. #include "vector"  
    3. using namespace std;  
    4.   
    5. int main(void)  
    6. {  
    7.     vector<int>array;  
    8.     array.push_back(100);  
    9.     array.push_back(300);  
    10.     array.push_back(300);  
    11.     array.push_back(500);  
    12.     vector<int>::iterator itor;  
    13.     for(itor=array.begin();itor!=array.end();itor++)  
    14.     {  
    15.         if(*itor==300)  
    16.         {  
    17.             itor = array.erase(itor);  
    18.         }  
    19.     }  
    20.     for(itor=array.begin();itor!=array.end();itor++)  
    21.     {  
    22.         cout<<*itor<<" ";  
    23.     }  
    24.     return 0;  
    25. }  

    A、100   300   300   500      B、100    300     500       C、100    500      D、程序错误

    vector在erase之后,指向下一个元素的位置,其实进行erase操作时将后面所有元素都向前移动,迭代器位置没有移动。itor=array.erase(itor)  erase返回下一个元素的地址,相当于给itor一个新值。

    2、下列代码的输出为:

    1. class CParent  
    2. {  
    3. public:  
    4.     virtual void Intro()  
    5.     {  
    6.         printf("I'm a Parent, ");  
    7.         Hobby();  
    8.     }  
    9.     virtual void Hobby()  
    10.     {  
    11.         printf("I like football!");  
    12.     }  
    13. };  
    14. class CChild:public CParent  
    15. {  
    16. public:  
    17.     virtual void Intro()  
    18.     {  
    19.         printf("I'm a Child, ");  
    20.         Hobby();  
    21.     }  
    22.     virtual void Hobby()  
    23.     {  
    24.         printf("I like basketball! ");  
    25.     }  
    26. };  
    27. int main(void)  
    28. {  
    29.     CChild *pChild = new CChild();  
    30.     CParent *pParent = (CParent*)pChild;  
    31.     pParent->Intro();  
    32.     return 0;  
    33. }  

    A、I'm a Child,I like football!                            B、I'm a Child,I like basketball!  

    C、I'm a Parent,I like football!                         D、I'm a Parent,I like basketball! 

    3、在win32平台下,以下哪种方式无法实现进程同步?

    A、Critical Section      B、Event      C、Mutex         D、Semaphore

    4、以下哪句的说法是正确的
    A、在页式存储管理中,用户应将自己的程序划分为若干个相等的页
    B、所有的进程都挂起时,系统将陷入死锁
    C、执行系统调用可以被中断
    D、进程优先数是进程调度的重要依据,必须根据进程运行情况动态改变

    5、以下描述正确的是
    A、虚函数是可以内联的,可以减少函数调用的开销提高效率
    B、类里面可以同时存在函数名和参数都一样的虚函数和静态函数
    C、父类的析构函数是非虚的,但是子类的析构函数是虚的,delete子类对象指针会调用父类的析构函数
    D、以上都不对

    简答题:快速排序的思想是递归的,但是它的平均效率却是众多排序算法中最快的,为什么?请结合本例说明你对递归程序的理解。
    算法题:用你熟悉的编程语言,设计如下功能的函数:输入一个字符串,输出该字符串中所有字母的全排列。程序请适当添加注释。
    C++函数原型: void Print(const char *str)
    输入样例: abc
    输出结果: abc、acb、bca、bac、cab、cba

    (以上部分整理自此君博客:http://blog.csdn.net/Hackbuteer1。十分感谢。有何不妥之处,还望海涵海涵。)
     

    后续整理

    1. 12个工厂分布在一条东西向高速公路的两侧,工厂距离公路最西端的距离分别是0、4、5、10、12、18、27、30、31、38、39、47.在这12个工厂中选取3个原料供应厂,使得剩余工厂到最近的原料供应厂距离之和最短,问应该选哪三个厂 ? 
    2. hash冲突时候的解决方法?
       1)、开放地址法
       2)、再哈希法
       3)、链地址法
       4)、建立一个公共溢出区
    3. int main()
      {
        if()
        {   
          printf("Hello ");
        }
        else
        {
          printf("World !!!");
        }
        return 0;
      }
      在if里面请写入语句 使得打印出  hello  world。
    4. 今天10.19西山居笔试题:
      分别写一个宏和函数来获取元素个数 如count(a) 会得到a数组元素个数 。
    5. 平均要取多少个(0,1)中的随机数才能让和超过1。(答案: e 次,  其中e是自然对数的底数)
    6. 今天支付宝10.20笔试题:汉诺塔一共为 2*N,2个一样大小,有编号顺序 每次只能移动一个 大的不能叠在小得上面 移动完之后,相同大小的编号必须和原来一样 问最小要移动多少次? 如 A1 A2  B1 B2 C1 C2 ...... 这样叠,A<B<C....   B不能放A上面,C不能放B A上面,移动到另外一个柱子后,还必须是 A1 A2  B1 B2 C1 C2 ....
    7. socket编程的问题
      TCP连接建立后,调用send 5次,每次发100字节,问recv最少要几次,最多要几次?
    8. 迅雷笔试题:
      下面的程序可以从1....n中随机输出m个不重复的数。请填空
      knuth(int n, int m) 
      {
          srand((unsigned int)time(0));
          for (int i=0; i<n; i++)
              if (            )
              {
                 cout<<i<<endl;
                  (                 );
              }
      }
    9. 四个线程t1,t2,t3,t4,向4个文件中写入数据,t1只能写入1,t2只能写入2,t3只能写入3,t4只能写入4,对4个文件A,B,C,D写入如下内容
      A:123412341234.....
      B:234123412341....
      C:341234123412....
      D:412341234123....
      怎么实现同步可以让线程并行工作?
    10. 比如一个数组[1,2,3,4,6,8,9,4,8,11,18,19,100]
      前半部分是是一个递增数组,后面一个还是递增数组,但整个数组不是递增数组,那么怎么最快的找出其中一个数?
    11. 今日10.21迅雷笔试题:  1、一棵二叉树节点的定义(和平时我们定义的一样的) 它给出了一棵二叉树的根节点 说现在怀疑这棵二叉树有问题 其中可能存在某些节点不只有一个父亲节点 现要你编写一个函数判断给定的二叉树是否存在这样的节点  存在则打印出其父亲节点返回true 否则返回false
      打印节点形式:
      [当前节点][父亲节点1][父亲节点的父亲节点][。。。]
      [当前节点][父亲节点2][父亲节点的父亲节点][。。。]
        2、有一亿个整数,请找出最大的1000个,要求时间越短越好,空间占用越少越好
    12. 在频繁使用小内存时,通常会先申请一块大的内存,每次使用小内存时都从大内存里取,最后大内存使用完后一次性释放,用算法实现。
    13. 今天亚马逊A卷校招笔试题:
      输入一个字符串,如何求最大重复出现的字符串呢?比如输入ttabcftrgabcd,输出结果为abc,canffcancd,输出结果为can。
    14. 今天10.22盛大:删除模式串中出现的字符,如“welcome to asted”,模式串为“aeiou”那么得到的字符串为“wlcm t std",要求性能最优。
    15. 数组中的数分为两组,让给出一个算法,使得两个组的和的差的绝对值最小 
      数组中的数的取值范围是0<x<100,元素个数也是大于0, 小于100 
      比如a[]={2,4,5,6,7},得出的两组数{2,4,6}和{5,7},abs(sum(a1)-sum(a2))=0;
      比如{2,5,6,10},abs(sum(2,10)-sum(5,6))=1,所以得出的两组数分别为{2,10}和{5,6}。
    16. 百度北京研发一道系统设计题,如何快速访问ipv6地址呢?ipv6地址如何存放?
    17. 百度2012校招北京站笔试题系统设计:正常用户端每分钟最多发一个请求至服务端,服务端需做一个异常客户端行为的过滤系统,设服务器在某一刻收到客户端A的一个请求,则1分钟内的客户端任何其它请求都需要被过滤,现知每一客户端都有一个IPv6地址可作为其ID,客户端个数太多,以至于无法全部放到单台服务器的内存hash表中,现需简单设计一个系统,使用支持高效的过滤,可使用多台机器,但要求使用的机器越少越好,请将关键的设计和思想用图表和代码表现出来。 
    18. #include <iostream>
      using namespace std;
      class A
      {
      public:
      A(){cout<<"A"<<endl;}
      ~A(){cout<<"~A"<<endl;}
      };
      class B
      {
      public:
      B(A &a):_a(a)
      {
      cout<<"B"<<endl;
      }
      ~B(){cout<<"~B"<<endl;}
      private:
      A _a;
      };
      int main()
      {
      A a; 
      B b(a); 
      return 0;
      //  构造次序和析构次序是对称的,这种题解答都是有技巧的.
      //  拷贝构造就不说了,构造过程是:
      //  A A B ,那么析构必然是对称的:B A A。
      }
    ....
        ok,以上所有任何参考答案若有问题,欢迎不吝指正。谢谢。日后,继续整理十月下旬的各大IT公司的笔/面试题,持续更新,直到十月月底。祝所有诸君找到自己合适而满意的offer,工作。July、2011.10.17。
  • 相关阅读:
    BZOJ 3992: [SDOI2015]序列统计
    BZOJ 4836: [Lydsy1704月赛]二元运算
    2.Add Two Numbers
    [RN] React Native 调试技巧
    [商业世界] 商业三流:信息流、资金流、物流
    [杂谈] 记 程序员 对抗失眠烦恼的 大法
    [未来成长]让写作成为一种生活习惯
    [未来成长] 分享:《麦肯锡教我的写作武器》如何写出一篇具有逻辑表现力的文案
    [未来成长] 分享:在腾讯的八年,我的职业思考
    [PHP]:AES对称加密 -- 支持PHP7
  • 原文地址:https://www.cnblogs.com/ainima/p/6331181.html
Copyright © 2011-2022 走看看