您好,欢迎来到小侦探旅游网。
搜索
您的当前位置:首页腾讯笔试题

腾讯笔试题

来源:小侦探旅游网
一些腾讯笔试题目

1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 2、如何输出源文件的标题和目前执行行的行数 3、两个数相乘,小数点后位数没有,请写一个高精度算法 4、写一个病毒 5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需

1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 #define MAX(A,B) (fabs(A-B)==(A-B))?A:B 2、如何输出源文件的标题和目前执行行的行数

cout<<\" Filename \"<<__FILE__<<\" Line \"<<__LINE__<5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥? 2005年腾讯招聘 选择题(60)

c/c os linux 方面的基础知识 c的Sizeof函数有好几个! 程序填空(40) 1.(20) 4空x5

不使用额外空间,将 A,B两链表的元素交叉归并 2.(20) 4空x5

MFC 将树序列化 转存在数组或 链表中!

1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 2、如何输出源文件的标题和目前执行行的行数

3、两个数相乘,小数点后位数没有,请写一个高精度算法 4、写一个病毒

5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥? 2005年腾讯招聘 选择题(60)

c/c++ os linux 方面的基础知识 c的Sizeof函数有好几个! 程序填空(40)

1.(20) 4空x5

不使用额外空间,将 A,B两链表的元素交叉归并 2.(20) 4空x5

MFC 将树序列化 转存在数组或 链表中!

1.请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 // 这样转向定义应该不算违规吧!^_^

#include \"stdafx.h\" #include #include

using namespace std;

#define Cmp(x,y) compare(x,y)

int compare(int a,int b)

{

a^=(1<<31); b^=(1<<31);

int i=31;

while((i^-1) && !((a&(1<>i)&1)?1:-1):0; }

int _tmain() {

int c;

c = Cmp(5,4); cout<return 0;

}

2.如何输出源文件的标题和目前执行行的行数(不晓得怎么搞,在等兄弟给我答案在!)

3.两个数相乘,小数点后位数没有,请写一个高精度算法 算法提示:

//想法来自北师大一个同学给我看的另一个题目以及他的java程序。 输入 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, 计算c=a*b; (要么用java的BigInterger搞, 要么自己用C++写高精度数乘法,超过百万位,用FFT,我就不细说,这都预先写过就别做了)

4, 输出c,(注意在输出倒数第l个数时,输出一个小数点。若是输出的数少于l个,就补0)

4.写一个病毒(没搞过,^_^)

5.让你在100000000个浮点数中找出最大的10000个,要求时间复杂度优。 //本算法使用快排,O(n*lg(n))

//最低可以找到线性算法,使用预先区域统计划分!类试于构造Quad Trees! 写起来代码会长些!

#include #include

#define Max 100000000 int a[Max+10];

int cmp(const void *a, const void *b) {

int *x = (int *) a; int *y = (int *) b; return *x-*y; } int main() {

int n=0;

while(scanf(\"%d\ n++; qsort(a,n,4,cmp);

for(int i=0;i<3;i++) printf(\"%d\ return 1;

}

5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?

Solution:

The First Time: A(1)和B(2)过桥,A(1)返回 Cost:1+2 The Second Time: C(5)和D(10)过桥,B(2)返回 Cost:10+2 The Third Time A(1)和B(2)过桥 Cost:2 Total Time Cost: (1+2)+(10+2)+2=17 minutes

转载请注明出自应届生求职招聘论坛 http://bbs.yingjiesheng.com/,本贴地址:http://bbs.yingjiesheng.com/thread-14395-1-1.html

C++笔试题(二)

1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 2、如何输出源文件的标题和目前执行行的行数

3、两个数相乘,小数点后位数没有,请写一个高精度算法 4、写一个病毒

5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?

2005年腾讯招聘 选择题(60)

c/c++ os linux 方面的基础知识 c的Sizeof函数有好几个! 程序填空(40) 1.(20) 4空x5

不使用额外空间,将 A,B两链表的元素交叉归并 2.(20) 4空x5

MFC 将树序列化 转存在数组或 链表中!

1.请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 // 这样转向定义应该不算违规吧!^_^

#include \"stdafx.h\"

#include

#include using namespace std;

#define Cmp(x,y) compare(x,y)

int compare(int a,int b)

{

a^=(1<<31); b^=(1<<31);

int i=31;

while((i^-1) && !((a&(1<>i)&1)?1:-1):0;

}

int _tmain()

{

int c; c = Cmp(5,4);

cout<return 0; }

jruv (~~~一叶落而知天下秋~~~) 的答案:

#define COMPARE(a,b) ((a)-(b)) //<0: a0:a>b 2.如何输出源文件的标题和目前执行行的行数

cout << \"Filename \" << __FILE__ << \" Line \" << __LINE__ << endl;

3.两个数相乘,小数点后位数没有,请写一个高精度算法 算法提示:

输入 string a, string b; 计算string c=a*b; 返回 c;

, 纪录小数点在a,b中的位置l1,l2, 则需要小数点后移动位置数为l=length(a)+length(b)-l1-l2-2; , 去掉a,b中的小数点,(a,b小数点后移,使a,b变为整数)

, 计算c=a*b; (同整数的大数相乘算法)

, 输出c,(注意在输出倒数第l个数时,输出一个小数点。若是输出的数少于l个,就补0) du51(郁郁思扬)的答案:

变为整数求就行了.输入的时候记一下,小数点位置..输出再做点文章就行了. 下面的是大整数的运算. #include using namespace std; #define MAX 10000 struct Node{ int data; Node *next; };

void output(Node *head) {

if(!head->next&&!head->data)return; output(head->next); cout<data; }

void Mul(char *a,char *b,int pos)

{

char *ap=a,*bp=b; Node *head=0;

head=new Node;head->data=0,head->next=0; //头 Node *p,*q=head,*p1; int temp=0,temp1,bbit;

while(*bp) //若乘数不为空 ,继续. {

p=q->next;p1=q;

bbit=*bp-48; //把当前位转为整型 while(*ap||temp) //若被乘数不空,继续 {

if(!p) //若要操作的结点为空,申请之 {

p=new Node; p->data=0; p->next=0; p1->next=p; }

if(*ap==0)temp1=temp;

else { temp1=(p1->data)+(*ap-48)*bbit+temp;ap++; } p1->data=temp1%10; //留当前位

temp=temp1/10; //进位以int的形式留下. p1=p;p=p->next; //被乘数到下一位 }

ap=a;bp++;q=q->next; //q进下一位 } p=head;

output(p); //显示 cout<while(head) //释放空间 {

p=head->next; delete head; head=p; } }

int main()

{

cout<<\"请输入两个数\"<上面大整数已经写了.你加几个东西就行了. #include using namespace std; #define MAX 10000 struct Node{ int data; Node *next; };

void output(Node *head,int pos) {

if(!head->next&&!head->data)return; output(head->next,pos-1); cout<data; if(!pos)cout<<\".\"; }

void Mul(char *a,char *b,int pos) {

char *ap=a,*bp=b; Node *head=0;

head=new Node;head->data=0,head->next=0; //头 Node *p,*q=head,*p1; int temp=0,temp1,bbit;

while(*bp) //若乘数不为空 ,继续. {

p=q->next;p1=q;

bbit=*bp-48; //把当前位转为整型 while(*ap||temp) //若被乘数不空,继续 {

if(!p) //若要操作的结点为空,申请之

{

p=new Node; p->data=0; p->next=0; p1->next=p; }

if(*ap==0)temp1=temp;

else { temp1=(p1->data)+(*ap-48)*bbit+temp;ap++; } p1->data=temp1%10; //留当前位

temp=temp1/10; //进位以int的形式留下. p1=p;p=p->next; //被乘数到下一位 }

ap=a;bp++;q=q->next; //q进下一位 } p=head;

output(p,pos); //显示 cout<while(head) //释放空间 {

p=head->next; delete head; head=p; } }

int main() {

cout<<\"请输入两个数\"<cin.getline(test1,MAX,'\\n'); cin.getline(test2,MAX,'\\n'); if(p=strchr(test1,'.')) {

pos+=strlen(test1)-(p-test1)-1; do { p++; *(p-1)=*p;

}while(*p); }

if(p=strchr(test2,'.')) {

pos+=strlen(test2)-(p-test2)-1; do { p++; *(p-1)=*p; }while(*p); }

Mul(strrev(test1),strrev(test2),pos); system(\"PAUSE\"); return 0; }

4.写一个病毒

cout<<\"一个病毒\"<(开玩笑的,没搞过,^_^)

5.让你在100000000个浮点数中找出最大的10000个,要求时间复杂度优。

//本算法使用快排,O(n*lg(n))

//最低可以找到线性算法,使用预先区域统计划分!类试于构造Quad Trees! 写起来代码会长些!

#include

#include

#define Max 100000000

int a[Max+10];

int cmp(const void *a, const void *b)

{

int *x = (int *) a; int *y = (int *) b;

return *x-*y;

}

int main()

{

int n=0;

while(scanf(\"%d\

qsort(a,n,4,cmp);

for(int i=0;i<3;i++) printf(\"%d\

return 1;

}

5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?

Solution:关键是时间最长的两个人必须同时过桥

The First Time: A(1)和B(2)过桥,A(1)返回 Cost:1+2

The Second Time: C(5)和D(10)过桥,B(2)返回 Cost:10+2 The Third Time A(1)和B(2)过桥 Cost:2

Total Time Cost: (1+2)+(10+2)+2=17 minutes

腾讯笔试题

本文是从我的朋友的U盘考过来的,不知道原著是谁,所以无法写上来源!

主要是c/c++、数据结构、操作系统等方面的基础知识。好像有sizeof、树等选择题。填空题是补充完整程序。附加题有写算法的、编程的、数据库sql语句查询的。还有一张开放性问题。

请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 #define Max(a,b) ( a/b)?a:b

如何输出源文件的标题和目前执行行的行数 int line = __LINE__; char *file = __FILE__;

cout<<\"file name is \"<<(file)<<\

两个数相乘,小数点后位数没有,请写一个高精度算法

写一个病毒 while (1) {

int *p = new int[10000000]; }

不使用额外空间,将 A,B两链表的元素交叉归并 将树序列化 转存在数组或 链表中 struct st{ int i; short s; char c; };

sizeof(struct st); 8 char * p1; void * p2; int p3;

char p4[10];

sizeof(p1...p4) =?

4,4,4,10

二分查找 快速排序

双向链表的删除结点

________________________________________

面试基本上都是和项目相关的,并当场说几个程序题的输出,不能用草稿纸 最大的部分是《数据结构和算法》,都是以C语言为基础的。

一些常用的算法,查找,排序等必须熟练掌握。数据结构中,二叉树必须非常了解。 附加题中,数据库有一道题,但是很简单,考得是大家经常做的那种,一个学生信息表,一个教师信息表,一个选课表。然后查找学生中选择某门课程的姓名等。在分类查询某课程中上了90分的学生名单什么的。

此外还考了一道UNIX的(我完全没有接触过),一道MFC,一道算法,让你在100000000个浮点数中找出最大的10000个,要求时间复杂度优。

第一部分:基本都是数据结构题+1,2道操作系统和数据库相关的(比较基本)

有印象的:

1,为节省空间,两个栈共用一个空间,栈底在两边,问什么时候表明空间用完 答案:栈顶相遇时

这道题就是很基础的一个题目,因为是第一道题,所以印象比较深^_^

2,char A[5]; char* B =\"abcdefg\"; void * C; C = new char[100]; sizeof(A) sizeof(B) size(C)

刚在vc上试了下,分别为5,4,4; 这个把我迷糊了...不扎实

3,爸爸,妈妈,妹妹,小强,至少两个人同一生肖的概率是多少 1- 12*11*10*9/12*12*12*12 = 43% ,我忘用1减了....

然后还有几个看程序给结果的题,考察了类,指针的内容

第二部分:程序填空

主要要能看出他的思路

第三部分:写代码

1,关于mfc的,一个控件,显示时间,1s钟刷新一次

2,SQL语言进行简单的数据库操作,建表,查询,求平均工资等

不记得语言了,因此只好自创....ft

3,Unix进程通信有哪些方式,各有什么特点?

(其中A卷给的是道网络编程题目)

第四部分:主观题

考rp的,比较无聊,手都写酸了....

夜里,有ABCD四个人,过桥,A过需1分钟,B要2分钟,CD分别要5和10分钟,现在四人只有一支手电筒,而桥只允许一次过2人;请问如何安排才能使得四人在17分钟内全部过桥?

1. 请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 2.如何输出源文件的标题和目前执行行的行数

3.两个数相乘,小数点后位数没有,请写一个高精度算法

4.写一个病毒

有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟

,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内 这四个人都过桥?

腾讯公司移动kjava开发人员笔试题 待遇:硕士年薪10万,本科年薪7万

1)笔试: C++,基础题目与程序员考试水平相当。

附加题:

1.有10亿个浮点数,从中找出1万个最大的数。写一个高性能的算法 2.Unix后台进程的实现

3.MFC的多文档模板的加载 4.数据库SQL语句查询

2)面试

技术1面:感觉腾讯的面试安排不是很合理,进去之后有12个面试官,随便找一个面。面我的是个铁面判官,问了几个问题,DirectX技术有没有接触过? 2D,3D引擎原理?我一头雾水,跟他没什么好谈的,感觉,彼此都不感兴趣。然后他就问了一个很基础的问题,写一个程序:从双向循环链表中删除一个节点。这个当然没有什么问题。不过出来后感觉就没戏

3. 判断一个数是否是回文数 (曾出现于腾讯笔试题)

这个题可谓老掉牙。但不少教科书是把原数的各位数字取出,然后比较。另外一种更方便的解法是:把原数倒过来,看它和原数是否相等。 如1234,倒过来是4321,二者不相等;而对于回文数12321,倒过来是12321,二者相等。 某人去玩具店买小熊,单价30元 付给玩具店老板100元 玩具店老板没零钱 去水果店换了100元零钱 回来找给那人70元 那人走后 水果店老板找到玩具店老板说刚才的100元是假币 玩具店老板赔偿了水果店老板100元 问:玩具店老板损失了多少钱 (腾讯面

试题) 考考你的逻辑推理能力

腾讯2005招聘试题 zz from www.heiyou.com 选择题(60)

c/c++ os linux 方面的基础知识 c的Sizeof函数有好几个! 程序填空(40) 1.(20) 4空x5

不使用额外空间,将 A,B两莲表的元素交叉归并 2.(20) 4空x5

MFC 将树序列化 转存在数组或 连表中!

腾讯笔试题解

笔试题-腾讯数据库笔试题:

在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存为 2G。只写出思路即可。

腾讯笔试题解答(Peak Wong):

1,把整数分成256M段,每段可以用位整数保存该段数据个数,256M*8 = 2G内存,先清0

2,读10G整数,把整数映射到256M段中,增加相应段的记数

3,扫描256M段的记数,找到中位数的段和中位数的段前面所有段的记数,可以把其他段的内存释放

4,因中位数段的可能整数取值已经比较小(如果是32bit整数,当然如果是bit整数的话,可以再次分段),对每个整数做一个记数,再读一次10G整数,只读取中位数段对应的整数,并设置记数。

5,对新的记数扫描一次,即可找到中位数。

如果是32bit整数,读10G整数2次,扫描256M记数一次,后一次记数因数量很小,可以忽略不记。

解释一下:假设是32bit整数,按无符号整数处理

整数分成256M段? 整数范围是0 - 2^32 - 1 一共有4G种取值,4G/256M = 16,每16个数算一段 0-15是1段,16-31是一段,...

整数映射到256M段中? 如果整数是0-15,则增加第一段记数,如果整数是16-31,则增加第二段记数,...

其实可以不用分256M段,可以分的段数少一些,这样在扫描记数段时会快一些,还能节省一些内存。

搜集的一些腾讯笔试题

1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 2、如何输出源文件的标题和目前执行行的行数

3、两个数相乘,小数点后位数没有,请写一个高精度算法 4、写一个病毒

5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?

2005年腾讯招聘 选择题(60)

c/c++ os linux 方面的基础知识 c的Sizeof函数有好几个! 程序填空(40) 1.(20) 4空x5

不使用额外空间,将 A,B两链表的元素交叉归并 2.(20) 4空x5

MFC 将树序列化 转存在数组或 链表中!

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的声明方式

15 1-20的两个数把和告诉A,积告诉B,A说不知道是多少,

B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少 大题:

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分的人数 --

8、学校里成绩的高低好坏,对人生来说还言之过早。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务