一些腾讯笔试题目
2008-09-07 21:30
1。有一栋十层楼的楼,在每个电梯门口放上一颗钻石,这些钻石的大小不同,一人坐电梯从一楼,电梯每到一层楼都开一次门,而且这个人能准确的分辨钻石的大小,请问怎么样能拿到最大的钻石,只有一次机会(就是出了电梯门就进不来了)
2。请估计广州中信大厦是否坚固,写出推理过程。
请问各位如何作答,探讨一下。
基本都是基础题目,看来腾讯不准备放弃那些有思想但是
还没有开始苦练基本功的人,只涉及到语言问题和简单的
数据结构,其他的操作系统,编译原理,离散数学,软件
工程,计算机原理,体系结构等等无一涉及,题目很多,
有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);的运行结果
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 把字符串转换为整数 例如:”-123″ -> -123
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;
}
附加题:
1 linux下调试core的命令,察看堆栈状态命令
2 写出socks套接字 服务端 客户端 通讯程序
3 填空补全程序,按照我的理解是添入:win32调入dll的函数名 查找函数入口的函数名 找到函数的调用形式 把formView加到singledoc的声明 将singledoc加到app的声明
4 有关系 s(sno,sname) c(cno,cname) sc(sno,cno,grade)
1 问上课程 “db”的学生no
2 成绩最高的学生号
3 每科大于90分的人数
一共有上下两排数,上排的十个数是【0,1,2,3,4,5,6,7,8,9】
针对上排的每个数,在其对应的下面位置填写一个数,该数表示其在下面出现的次数。
给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中
题目:
class AAA
{
int a;
char b[5];
short c;
int d;
};
AAA* pA = 0×10000000;
问1: pA + 10=
问2:(char*) pA + 10 =
问3: (int*) pA + 10 =
回答:
1: 0×10000000 + 10 * 16 //双字节对齐
2: 0×10000000 + 10
3: 0×10000000 + 10 * 4
题目二:有一个集合,由0-1000的数字组成,要求写下列方法insert, erase, find, size, begin, end.要求性能最好。
memcpy函数的实现。
回答:
申请一个1001字节大小的数组,这就,要存放的数字与数组的下标就对应起来了,即:
1->a[1]
2->a[2]
另外,还要一个1000字节大小的数组b,b[1]里面存放值为a[1]的数据个数,b[2]里面存放值为a[12]的数据个数……
#include
using namespace std;
const int ELEM_NUM = 1001;
int elemArr[ELEM_NUM] = {0};
void insert(const int nNum)
{
elemArr[nNum]++;
}
void erase(const int nNum)
{
if (elemArr[nNum] > 0)
{
elemArr[nNum]–;
}
}
bool find(const int nNum) //const
{
if (elemArr[nNum] > 0)
return true;
else
return false;
}
改为:
int find (int nNum)
{
return elemArr[nNum]; //即可以知道nNum是否存在,还知道存在多个少!
}
int begin() //const
{
int i = 0;
for (; elemArr[i] == 0 && i < ELEM_NUM; i++);
if (i == ELEM_NUM )
return -1;
else
return i;
}
int next(const int nNum) //const
{
int i = nNum + 1;
for (; elemArr[i] == 0 && i < ELEM_NUM; i++);
if (i == ELEM_NUM )
return -1;
else
return i;
}
int main()
{
int i = 0;
cout << “initiate the array please: \n”;
while (i != -1)
{
cin >> i;
insert (i);
}
for (int i=begin(); i!=-1; i=next(i))
{
cout << i << ‘ ‘;
}
cout << “\ndelete some element: \n”;
i = 0;
while (i != -1)
{
cin >> i;
erase (i);
}
cout << “find some element: \n”;
i = 0;
while (i != -1)
{
cin >> i;
if (find (i))
cout << “elem found\n”;
else
cout << “sorry, nothing found\n”;
}
system (“pause”);
}
笔试说起。我只说我应聘的技术支持类,其他的不知道。腾讯的笔试题不是很难,大家把书看一遍,谁都会做。还有就是自由发挥的题了,比如一台计算机上不了网,他让你写出排除故障的思路及步骤,大家平时注重点都会做的.这些考察的是知识的广度。所以应聘类似的职位,知识广度很重要。当然基础也不能不扎实哦~最后一道题是shell编程,额额额,我不会做,汗~~
笔试过后,剩下50多个人了。。
接下来是面试。这个问题大家比较关注,因为你要和面试官面对面的交流,出错了就肯定BYEBYE了。
面试中最重要的应该是自我介绍,我觉得,这个把握好了,你能脱颖而出,即使你在技术或者学历,或者学校的牌子等方面处于下风。自我介绍中最多说一个姓名就行了,别说那些性别呀年龄呀的废话。
大家要明白企业招聘人才是招最合适的,不一定是最优秀的。所以自我分析就变得相当重要。简历就能体现出一个人是否对自己进行了深刻的分析,这也决定了你能不能在面试的过程针对自己的