2016年腾讯校招笔试题(研发岗)

最近互联网笔试较频繁,也跟着师兄一起做了一些公司的笔试题,先将题记录下来吧,答案慢慢补。希望对自己明年找工作有帮助!首先上腾讯的笔试题,腾讯是我的dream offer啊啊啊啊啊啊啊!


一、不定项选择题

30题,共60分,请认真阅读每道题目,并按题目要求进行作答

1. 下面关于DNS说法正确的是()

ADNS的作用是域名和IP地址的相互映射

BDNS协议运行在UDP协议之上

CDNS协议端口号为53

DDNS的默认缓存时间为1小时

 

解析:

A. DNSDomain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

BC.DNS协议运行在UDP协议之上,使用端口号53

D. 浏览器:chrome对每个域名会默认缓存60sIEDNS缓存30minFirefoxDNS缓存功能,但是默认缓存时间只有1分钟,safari约为10s

windows DNS缓存的默认值是MaxCacheTTL,它的默认值是86400s,也就是一天。

浏览器DNS缓存的时间跟ttl值无关,每种浏览器都使用一个固定值。

 

答案ABC

 

2. 文件系统管理的最小磁盘空间单位是()

A、扇区

B、页面

C、簇

D、文件

 

解析:

从应用程序包括用户界面的角度来看,存取信息的最小单位是Byte(字节);

从磁盘的物理结构来看存取信息的最小单位是扇区,一个扇区是512字节;

从操作系统对硬盘的存取管理来看,存取信息的最小单位是簇,簇是一个逻辑概念,一个簇可以是248163264个连续的扇区。一个簇只能被一个文件占用,哪怕是只有1个字节的文件,在磁盘上存储时也要占用一个簇,这个簇里剩下的扇区是无用的。所以,簇可以理解为磁盘存取信息的最小单位。

 

答案D

 

4. 以下代码打印的结果是(假设运行在64位计算机上):

struct st_t
{
int status;
short *pdata;
char errstr[32];
};
st_t st[16];
char *p=(char *)( str[2].errstr + 32 );
printf("%d", (p-(char *)(str)));

A32

B120

C114

D144

 

正确答案D

注意敲到编译器运行的时候加上main函数,struct st_t st[16]定义的时候要加上struct

 

5. 假设就绪队列中有10个线程,系统将时间片设置为200msCPU进行线程切换要花费10ms,则系统开销所占的比例约为:

A0.01

B0.05

C0.1

D0.2

 

6.

int main(void)
{
char *p[] = {"TENCENT","CAMPUS","RECRUITING"};
char **pp[] = { p+2, p+1, p };
char ***ppp = pp;
 
printf("%s", **++ppp);
printf("%s", *++*++ppp);
 
return 0;
}

ACAMPUS RECRUITING

BRECRUITING CAMPUS

CCAMPUS CAMPUS

DRECRUITING RECRUITING

 

正确选项:C

 

7. IP地址为140.123.0.0的地址是B类地址,若要切割为10个子网,而且都要连接上Internet,请问子网掩码应设为()

A255.0.0.0

B255.255.0.0

C255.255.128.0

D255.255.240.0

 

8. 设有2条路由21.1.193.0/2421.1.194.0/24,如果进行路由汇聚,汇聚这两条路由的地址是()

A21.1.200.0/22

B21.1.192.0/23

C21.1.192.0/21

D21.1.224.0/20

 

9. 以下哪些属于线性结构?

A、队列

B、栈

C、线性表

D、树

E、图

 

10. 二叉树的节点的对称序列是ABCDEFG,后序序列是BDCAFGE,则该二叉树的前序序列是:

AEGFACDB

BEACBDGF

CEAGCFBD

DEGACDFB

 

11. Linux上,对于多进程,子进程继承了父进程的下列哪些?

A、进程地址空间

B、共享内存

C、信号掩码

D、已打开的文件描述符

E、以上都不是

 

12. c++语言中,一下说法正确的是:

A、多态是通过虚表实现的

B、构造函数可以声明为虚函数

C、析构函数不可以声明为虚函数

D、抽象类中至少包含一个纯虚函数

 

13.

class Base
{
public:
virtual ~Base() { std::out << "Base Destructor" << std::endl; }
}
class Derived : public Base
{
public:
~Derived() { std::out << "Derived Destructor " << std::endl; }
}
Base* p=new Derived();
delete p;

delete p时,控制台会输出什么内容

ABase Destructor

BDerived Destructor

CBase Destructor

      Derived Destructor

DDerived Destructor

      Base Destructor


15. 以下关于栈的说法错误的是:

A、在栈空的情况下,一定不能作出栈操作,否则产生溢出

B、栈一定是顺序存储的线性结构

C、空栈是所有元素都为0的栈

D、一个栈的输入序列为:A, B, C, D。可以得到输出序列:C, A, B, D

 

16. 下列说法错误的是?

Astruct声明的类型是值类型

B、值类型是在堆上分配的

C、值类型不会被垃圾回收

D、值类型不需要指针来引用

E、引用类型在堆上分配

F、值类型在栈上分配

 

17.

var foo = "Hello";
(function(){
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);

其中alert两次输出结果为?

Ahello world报错

Bhello world hello world

Chello world hello


18. 针对二分查找算法,假设一个有序数组有136个元素,那么要查找到第10个元素,需要比较的元素为:

A68,34,17,9,13,11,10

B68,34,17,8,12,10

C69,35,18,10

D68,34,18,9,13,11,10

 

19. 64位机上,一个结构体有三个成员,分别是charintshort类型,三个成员位于结构体中不同位置时整个结构体的大小可能是下面哪些值?

A12

B7

C8

D16

 

20. 以下代码的运行情况:?

int f(int a, int b, int c)
{
return 0;
}
 
int main()
{
return f(printf("a"), printf("b"), printf("c"));
}

A、编译不过

B、运行错误

Cabc

Dcba

 

21. 那种数据结构用于执行递归调用:

A、数组

B、链表

C、堆栈

D、二叉树

 

22. 若磁头的当前位置在第100磁道,现在有一磁盘读写请求序列如下:23,376,205,132,19,61,190,398,29,4,18,40,若采用最短寻道时间优先算法,则平均寻道长度是多少?

A133

B58.3

C57.7

D70.9

 

23. 1.  下列程序数据结构是多少(大Aascii码是65)?

#include<stdio.h>
enum etest{
eparam1,
eparam2,
eparam3 = 10,
eparam4,
eparam5 = 'a',
eparam6
}epr;
 
int main()
{
printf("%d,%d", eparam4, eparam6);
return 0;
}

A3,98

B11,34

C11,98

D3,34

 

24. 寝室有6个同学打dota,分为对立的两方,一方是天灾军团,一方是近卫军团。现请你设置赛程以及每场的对阵(每方最少1人,最多5人),请问至少地进行多少场比赛,才能使得赛程结束后每位同学都和其他同学做过对手?

A2

B3

C4

D5

 

25. 具有3个节点的二叉树有几种形态?

A3

B4

C5

D6

 

26. 请选择下列程序的输出结果():

#include<stdio.h>
int main()
{
const int N=10;
const int M=2;
int* a=new int[N];
for(int i=0;i<N;++i)
a[i]=(0==i%2)?(i+2):(i+0);
int (*b)[N/M] = (int (*)[N/M])a;
for(int i=0; i<M; ++i)
for(int j=0; j<N/M; ++j)
printf("%d", b[i][j]);
return 0;
}

A21436587109

B224466881010

C03254769811

D21436687101

 

28. 从一幅标准扑克牌中抽牌,抽到黑色牌就继续抽,直至抽到红色牌,则停止,按照概率算,平均下来每次能抽到多少张牌?(也就是三国杀中甄姬的洛神技能,得到牌数的期望值)

A1

B1.2

C0.8

D0.9

 

29. C语言,设有宏定义:

#define A 4+5
#define B A*A

则表达式B*B的值为:

A81

B69

C6561

D33

 

30. 假设有如下这样一个类:

class X
{
public:
void xoo() {}
};

请问sizeof(X)的值为多少?

A0

B1

C2

D4

E8


二、问答题

请认真阅读每道题目,并按题目要求进行作答

1. 小明想自己做一个简单的网上商店,请帮他设计一个最简单的数据库系统,需要具备管理商品、管理客户及订单等功能。

 

 

2. 给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。如,输入为10,程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))

 

答题前请选择使用的编程语言,否则将会被判定为错误答案。自动补全关键字的快捷键是Ctrl+I,撤销快捷键是Ctrl+Z.

 

 

3. geohash编码:geohash常用于将二维的经纬度转换为字符串,分为两步:第一步是经纬度的二进制编码,第二步是base32转码。

此题考察纬度的二进制编码:算法对纬度[-90, 90]通过二分法进行无限逼近(取决于所需精度,本题精度为6)。注意,本题进行二分法逼近过程中只采用向下取整来进行二分,针对二分中间值属于右区间。算法举例如下:

针对纬度为80进行二进制编码过程:

1)区间[-90, 90]进行二分为[-90, 0),[0,90],成为左右区间,可以确定80为右区间,标记为1

2)针对上一步的右区间[0,90]进行二分为[0, 45), [45,90],可以确定80是右区间,标记为1

3)针对[45,90]进行二分为[45,67)[67,90],可以确定80为右区间,标记为1

4)针对[67,90]进行二分为[67,78),[78,90],可以确定80为右区间,标记为1

5)针对[78,90]进行二分为[78,84),[84,90],可以确定80为左区间,标记为0

6)针对[[78,84]进行二分为[78,81),[81,84],可以确定80为左区间,标记为0

已达精度要求,编码为111100

样本输入:80
样本输出:111100

答题前请选择使用的编程语言,否则将会被判定为错误答案。自动补全关键字的快捷键是Ctrl+I,撤销快捷键是Ctrl+Z.

 

 

4. 腾讯大厦有39层,你手里有两颗一模一样的玻璃珠。当你拿着玻璃珠在某一层往下扔的时候,一定会有两个结果,玻璃珠碎了或者没碎。大厦有个临界楼层,低于它的楼层,往下扔玻璃珠,玻璃珠不会碎,等于或高于它的楼层,扔下玻璃珠,玻璃珠一定会碎,玻璃珠碎了就不能再扔。现在让你设计一种方式,使得在该方式下,最坏的情况扔的次数比其他任何方式最坏的次数都少,也就是设计一种最有效的方式。

请给出正确答案,给出算法代码有加分。

 

 网上有类似的题,http://www.cnblogs.com/houkai/p/3973046.html


 

 

 

 

 

 

 

 

 

 

 

 

 

 


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值