腾讯责任有限公司历年面试题
2010年腾讯招聘
1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 #define BIG_THAN(a, b) (((b) – (a)&(0x1<<31))>>31) 2、如何输出源文件的标题和目前执行行的行数
int line = __LINE__; char *file = __FILE__;
cout < <\
3、两个数相乘,小数点后位数没有限制,请写一个高精度算法 4、写一个病毒 while(1) {
int *p = new int[10000]; }
5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥? 1,2先过桥,用了2分钟; 2返回送手电,用了2分钟; 5,10再过桥,用了10分钟; 1返回送手电,用了1分钟;
1,2一起回来,用了2分钟;一共用了17分钟 2005年腾讯招聘
选择题(60)
c/c++ os linux 方面的基础知识 c的Sizeof函数有好几个! 程序填空(40) 1.(20) 4空x5
不使用额外空间,将 A,B两链表的元素交叉归并 typedef int dataType; typedef struct node {
dataType data; struct node *next; }Node;
typedef Node *List;
List connect(List aList, List bList) {
Node *p, *pNext; Node *q, *qNext; p = aList; q = bList; pNext = p->next; qNext = q->next;
if(aList==null) return bList; if(bList==null) return aList;
while(q->next != null&&p->next!=null) {
p->next= q->next;
p=pNext;
pNext=pNext->next;
q=qNext;
qNext=qNext->next;
q->next=p;
}
If(qNext==null) qNext->next=pNext; If(pNext==null) pNext->next=qNext; return aList; }
2.(20) 4空x5
MFC 将树序列化 转存在数组或 链表中!
////////////////////////////////////////////////////
基本都是基础题目,看来腾讯不准备放弃那些有思想但是 还没有开始苦练基本功的人,只涉及到语言问题和简单的 数据结构,其他的操作系统,编译原理,离散数学,软件 工程,计算机原理,体系结构等等无一涉及,题目很多, 有1个选择题想不来起来是什么了,题号不与原试题相符 希望师弟师妹可以探讨探讨答案,从中学到笔试的经验
声明:以下问题仅供本校园网校内师弟师妹为了考察自己学习的参考,不要传播
1 计算 a^b << 2 (运算符优先级问题) 2 根据先序中序求后序
3 a[3][4]哪个不能表示 a[1][1]: *(&a[0][0]) *(*(a+1)+1) *(&a[1]+1) *(&a[0][0]+4) 4 for(int i...) for(int j...) printf(i,j); printf(j) 会出现什么问题
5 for(i=0;i<10;++i,sum+=i);的运行结果 55
6 10个数顺序插入查找二叉树,元素62的比较次数 7 10个数放入模10hash链表,最大长度是多少 8 fun((exp1,exp2),(exp3,exp4,exp5))有几个实参 9 希尔 冒泡 快速 插入 哪个平均速度最快
10 二分查找是 顺序存储 链存储 按value有序中的哪些 11 顺序查找的平均时间
12 *p=NULL *p=new char[100] sizeof(p)各为多少
13 频繁的插入删除操作使用什么结构比较合适,链表还是数组 14 enum的声明方式 其他1个选择暂时想不起来了 大题:
1 把字符串转换为小写,不成功返回NULL,成功返回新串 char* toLower(char* sSrcStr) {
char* sDest= NULL; if( __1___) { int j;
sLen = strlen(sSrcStr);
sDest = new [_______2_____]; if(*sDest == NULL) return NULL;
sDest[sLen] = '\\0'; while(_____3____)
sDest[sLen] = toLowerChar(sSrcStr[sLen]); }
return sDest; }
2 把字符串转换为整数 例如:\ main() { .....
if( *string == '-' ) n = ____1______; else
n = num(string); ..... }
int num(char* string) {
for(;!(*string==0);string++) { int k;
k = __2_____; j = --sLen; while( __3__) k = k * 10;
num = num + k; }
return num; }