2016腾讯笔试真题及答案(8)

2019-08-31 09:23

则是:如果某个瓶子的对应2进制位为1则喂给该小白鼠,如果对应的2进制为则不喂,譬如1号小白鼠,则会喝到1号水瓶,3号水瓶,5号水瓶,......和999号水瓶的混合水。喂完之后就是等结果了。

死了的小白鼠标记1,没死的标记。如果只有1号小白鼠死了,那么就是 1,结果是1号水瓶有毒。如果是8,9号小白鼠死了那么就是 1 1 ,结果是6号水瓶有毒,如果都没死,那就是号水瓶有毒了,显然上面的混合方法里面号水瓶的水没有喂给任何一只小白鼠。为什么这样?其实很容易想明白,有毒的水喂了的小白鼠都死了,其它的都没有死,就这么简单。2016腾讯笔试题礼仪大全。一般在面试的时候没搞这么大的数据,一般是4只老鼠,16瓶水(真心是考思维过程)。

其实这个方法有一个理论算法支撑:Bloom Filter算法。有兴趣的可以查查资料。

附带说再多说一句,小白鼠真惨。

第二道题目,是一个C++基础题目。我常常拿这个题目考那种简历上面写着精通C++的面试者(当然,一般是应届生)。首先准备一页白纸,在它的A面写上这样一段代码: class A

public:

void function(){printf('Hello World');}

A* p1 = NULL;

p1-function();

在它的B面写上同样一段代码,只有一点点差异: class A public:

virtualvoid function(){printf('Hello World');}

A* p1 = NULL;

p1-function();

然后这样开始问,首先拿着A面的程序给面试者,问它程序会怎么样,

面试者可能的答案是:一种是程序直接crash,二种是程序输出Hello World,运行正常,三种是程序输出Hello World,然后crash;然后把纸翻过来,再问面试者,程序会怎么样。如果面试者能把这个问题回答正确,并且解释清楚(关键是解释清楚),说明面试者的C++基础还是不错的。

这个题目的真实答案,就不公布了,知道原因了,很简单,可以看下下面这段程序的汇编代码(一目了然):

#include <stdio.h class A { public:

void function(){printf('Hello World');} }; class B

{ public:

virtual void function(){printf('Hello World');} };

int _tmain(int argc, _TCHAR* argv[]) {

A* p1 = NULL;

p1-function();

B* p2 = NULL;

p2-function();

};复制代码 A* p1 = NULL;

4113FCmov dword ptr [p1],

p1-function();

41143mov ecx,dword ptr [p1]

41146call A::function (411E6h) B* p2 = NULL;

4114Bmov dword ptr [p2],

p2-function();

411412mov eax,dword ptr [p2]

411415mov edx,dword ptr [eax]

411417mov esi,esp

411419mov ecx,dword ptr [p2]

41141Cmov eax,dword ptr [edx]

41141Ecall eax '''


2016腾讯笔试真题及答案(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:廉政谈话材料系列2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: