今天上午10:30在西交大参加了腾讯2012实习生笔试,感觉此次考试更侧重于考智力,而且组合数学的知识考的比较多。
题目类型:1.选择题(20*3’) 2.填空题(10*4’)3.附加题(2道,分值忘了)。
选择题题目类型:
有1题是考查改变C++运算符的顺序,输出结果是否一致。例:int a1= b * c / d; int a2 = b / d * c; int b1 = x << y >> z; int b2 = x >> y << z; int c1 = a + b -c; int c2 = a - c + b; a1与a2结果是否一致(若b
有1题是考查进程的,主要是考查进程关闭后,A.文件是否自动关闭 B.网络连接是否自动关闭。
有2题是考栈的,类似考研题,很easy,只要知道栈是FILO的性质就OK。
有3题是考组合数学的,比较麻烦。(1)有6*8的表格,求从A->B且不经过C的路径数:(IDK)
B
C
A
(2)有3个人到图书馆还书,还有3个人到图书馆借书,若他们要还和借的书是同一种书且图书馆内现在没有此书,求他们要怎么排队才能保证每个人都能借到书。方案数(IDK)。
(3)“www.qq.com”中子串的数目,字母相同为同一串。(IDK)
有1个考完全二叉树的,给出完全叉树的结点数,求叶子结点数。(记住公式即可)
有2个考排序的,(1)各排序算法的时间复杂度;(2)各排序算法是否是稳定的排序。
有1个考图论的,问从哪个点可以将图一笔画出。(easy)
有1个考数据库操作的,问删除表的SQL语句。(DROP tablename)
有2个考网络的,(1)问TCP连接断开后的操作,比较麻烦,需要搞懂RST,Finished等的含义及操作。(2)计算机中哪些端口是不能被占用的。(应该是0~1024端口,为专有端口)
有3个考编译的,(1)问程序预编译、编译、链接、生成过程相关的问题。(idk)(2)关于编译优化的说法是否正确。(IDK)(2)关于动态链接和静态链接的说法(动态链接或静态链接是否导致可执行文件变大;动态链接或静态链接哪个速度更快)(IDK)
填空题目类型:
第1题是考二进制、十进制和十六进制的运算,会各种进制之间的转换即可。
第2题递归很麻烦,原题如下:
int ack(m,n) { if(m==0) return n+1; else if (n==0) return ack(m-1,1); else return ack(m-1,ack(m,n-1)); }计算ack(3,3)的结果。
分析可以参考:
第3题:有一款网游24小时平均在线人数是5000,平均每人在线2个小时,求平均每分钟有多少人上线。(IDK)
第4题:操作,从帖子列表中查出前20个帖子的,按照时间排序。(SELECT titles FROM posts ORDER BY create_time DESC LIMIT 0, 20)
第5题考查设计模式,是享元模式。
第6题很麻烦,涉及到搜索和概率的知识。(IDK)
下1个题是读程序,写出运算结果(easy)。如下 :
int fun(int m, int n)
{
if(m%n == 0)
return n;
else
return fun(n, m%n);
}
求fun(2012, 2102)的值。(fun是求m、n的最大公约数的算法,因此结果为2)附加题的类型:
1.已知数组a[n],求数组b[n].要求:b[i]=a[0]*a[1]*……*a[n-1]/a[i],不能用除法。
a.时间复杂度O(n),空间复杂度O(1)。 b.除了迭代器i,不允许使用任何其它变量(包括栈临时变量等)。
分析:思路是前累加,后累加,然后相乘。即:令a[i] = a[0]*a[1]*……a[i],b[i] = b[i+1]*b[i+2]*……b[n-1],则b[i] = a[i-1]*b[i]。关键伪代码如下:
int f()
{
b[n-1] = 1;
for(i = n-2; i >= 0; i--) // n >= 2
b[i] = a[i+1]*b[i+1];
for(i = 1; i < n; i++)
a[i] = a[i]*a[i-1];
for(i = 1; i < n; i++)
b[i] = b[i] * a[i-1];
}
注意:经过以上过程,数组a遭到了破坏。2.有一个xx定理,说平均每一个QQ用户可以通过6个其它QQ用户与任一QQ用户发生关系。现有10亿QQ用户的数据,分布在1000台服务器上,好像让你设计一个算法,来查找A用户与B用户是否可以通过6个其它QQ用户发生关系,若是,则通过的最少QQ用户数目是多少。(IDK)参考: