分享

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

xioaxu790 发表于 2014-11-21 20:54:57 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 0 13050
本帖最后由 xioaxu790 于 2014-11-21 22:27 编辑
问题导读
1、vector在erase之后,指向下一个元素的位置的流程是怎样的?
2、hash冲突时候的解决方法有哪些?
3、如何快速访问ipv6地址呢?ipv6地址如何存放的思想是怎样的?







本文接上一篇:十月下旬腾讯,网易游戏,百度迅雷校园招聘笔试题集锦(第271-330题)(1)

盛大游戏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!\n");  
  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



后续整理
1、12个工厂分布在一条东西向高速公路的两侧,工厂距离公路最西端的距离分别是0、4、5、10、12、18、27、30、31、38、39、47.在这12个工厂中选取3个原料供应厂,使得剩余工厂到最近的原料供应厂距离之和最短,问应该选哪三个厂 ?

2、
12.gif


3、hash冲突时候的解决方法?
1)、开放地址法
2)、再哈希法
3)、链地址法
4)、建立一个公共溢出区
  1. int main()
  2. {
  3.   if()
  4.   {   
  5.     printf("Hello ");
  6.   }
  7.   else
  8.   {
  9.     printf("World !!!");
  10.   }
  11.   return 0;
  12. }
复制代码

在if里面请写入语句 使得打印出  hello  world。


5、今天10.19西山居笔试题:
分别写一个宏和函数来获取元素个数 如count(a) 会得到a数组元素个数 。

6、平均要取多少个(0,1)中的随机数才能让和超过1。(答案: e 次,  其中e是自然对数的底数)
1.gif



7、今天支付宝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 ....


8、socket编程的问题
TCP连接建立后,调用send 5次,每次发100字节,问recv最少要几次,最多要几次?


9、迅雷笔试题:
下面的程序可以从1....n中随机输出m个不重复的数。请填空
  1. knuth(int n, int m)
  2. {
  3.     srand((unsigned int)time(0));
  4.     for (int i=0; i<n; i++)
  5.         if (            )
  6.         {
  7.            cout<<i<<endl;
  8.             (                 );
  9.         }
  10. }
复制代码


10、四个线程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....
怎么实现同步可以让线程并行工作?

11、比如一个数组[1,2,3,4,6,8,9,4,8,11,18,19,100]
前半部分是是一个递增数组,后面一个还是递增数组,但整个数组不是递增数组,那么怎么最快的找出其中一个数?


12、今日10.21迅雷笔试题:
  1、一棵二叉树节点的定义(和平时我们定义的一样的) 它给出了一棵二叉树的根节点 说现在怀疑这棵二叉树有问题 其中可能存在某些节点不只有一个父亲节点 现要你编写一个函数判断给定的二叉树是否存在这样的节点  存在则打印出其父亲节点返回true 否则返回false
打印节点形式:
[当前节点][父亲节点1][父亲节点的父亲节点][。。。]
[当前节点][父亲节点2][父亲节点的父亲节点][。。。]
  2、有一亿个整数,请找出最大的1000个,要求时间越短越好,空间占用越少越好

13、在频繁使用小内存时,通常会先申请一块大的内存,每次使用小内存时都从大内存里取,最后大内存使用完后一次性释放,用算法实现。

14、今天亚马逊A卷校招笔试题:
输入一个字符串,如何求最大重复出现的字符串呢?比如输入ttabcftrgabcd,输出结果为abc,canffcancd,输出结果为can。

15、今天10.22盛大:删除模式串中出现的字符,如“welcome to asted”,模式串为“aeiou”那么得到的字符串为“wlcm t std",要求性能最优。

16、数组中的数分为两组,让给出一个算法,使得两个组的和的差的绝对值最小
数组中的数的取值范围是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}。

17、百度北京研发一道系统设计题,如何快速访问ipv6地址呢?ipv6地址如何存放?

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

19、
  1. #include <iostream>
  2. using namespace std;
  3. class A
  4. {
  5. public:
  6.         A(){cout<<"A"<<endl;}
  7.         ~A(){cout<<"~A"<<endl;}
  8. };
  9. class B
  10. {
  11. public:
  12. B(A &a):_a(a)
  13. {
  14.         cout<<"B"<<endl;
  15. }
  16. ~B(){cout<<"~B"<<endl;}
  17. private:
  18.         A _a;
  19. };
  20. int main()
  21. {
  22.         A a;
  23.         B b(a);
  24.         return 0;
  25.         //         构造次序和析构次序是对称的,这种题解答都是有技巧的.               
  26.         //                 拷贝构造就不说了,构造过程是:               
  27.         //                 A A B ,那么析构必然是对称的:B A A。
复制代码
1.gif





本文转载自:http://blog.csdn.net/v_july_v/article/details/6880698
作者:结构之法 算法之道

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条