tencent笔试题
腾讯的流程是一笔和四面。前三次面试都是技术面,hr面基本不刷人。笔试成绩决定面试顺序。技术面可能要写代码,做智力题目。
主要是c/c++、数据结构、操作系统等方面的基础知识。好像有sizeof、树等选择题。填空题是补充完整程序。附加题有写算法的、编程的、数据库sql语句查询的。还有一张开放性问题。
1.请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句。
int
#define Max(a,b) ( a/b)?a:b
2.如何输出源文件的标题和目前执行行的行数
int line= __LINE__;
"<<(file)<<",line is "<<line<<endl;
3.两个数相乘,小数点后位数没有限制,请写一个高精度算法与大数相乘原理一样,只是调整小数点位置,即有效小数个数
算法提示:
输入 string a, string b;计算string c=a*b; 返回 c;
1, 纪录小数点在a,b中的位置l1,l2,则需要小数点后移动位置数为l=length(a)+length(b)-l1-l2-2;
2, 去掉a,b中的小数点,(a,b小数点后移,使a,b变为整数)
3,
4, 输出c,(注意在输出倒数第l个数时,输出一个小数点。若是输出的数少于l个,就补0)
4.写一个病毒
while (1)
{
int[10000000];
上面这个不对,没有传染性,寄生性……
5.sizeof()
struct st{
int i;
short s;
char c;
};
sizeof(struct st);8
char * p1;
4,4,4,10
6.有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?
第一趟过来:一人:花1分钟的人
第二趟过来:一人:花2分钟的人
7.求四位数中因数最多的数。
首先分解因式: x = 2^p1 * 3^p2 * 5^p3 * ...*13^p6
为什么到13就可以了?2*3*5*7*11*13> 10000
如要四位数因数个数最多,因尽量包含前面的质因子。
因数个数 = (p1+1) * (p2+1) * ... * (p6+1),排列组合的问题。
8.找出三位数中满足x = abc + ab +c这种形式的所有数。
把ab看成一个整体:x - c = 10 * ab + c + ab
x - 2 * c = 11 * ab
给定一个数只要能减掉0, 2, 4, 6, 8, 10, 12, 14, 16, 18以后能被11整除两位,那么这个数满足上面的条件。
回来和实验室的师兄们讨论时,这个题可以转换成求11的倍数再加上0, 2, 4, 6, 8, 10后,在100-999范围中的所有数。
9.16匹马,四个跑道,每赛一轮只能得到相对名词,问最好要多少行才能得到前三。