腾讯2016校招笔试题

原文链接:http://blog.csdn.net/to_baidu/article/details/52529911

说明:本人报的是“软件开发-移动客户端开发方向”,2016年9月10日下午15:00开始考的。

整个试题分为两个部分,分为“第一部分”和“第二部分”。


第一部分(选择题):


1、有以下代码:

struct A

{

bool b;

int arr[2];

int i;

int j;

};

int main()

{

A a;

a.b=false;

a.arr[0]=1;

a.arr[1]=2;

a.i=20;

a.j=30;

*(a.arr+1)=40;

A* p=0;

unsigned int q=(unsigned int)(&(p->i));

(*(int*)((char*)&a+q))=-50;

return 0;

}

当main函数返回之前,请问以下哪些说法是错误的:

A:a.b的值是false

B:arr[0]的值是1

C:a.i的值是20

D:a.j的值是30


2、关系模式R中的属性全是主属性,则R的最高范式必定是()。

A:1NF

B:2NF

C:3NF

D:BCNF


3、若一颗二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是

A:9

B:11

C:15

D:不确定


4、32位系统下,对于下面的结构体A和B,sizeof(A),sizeof(B)的结果分别是()

#include <stdio.h>

#pragma pack(2)

struct A

{

int a;

char b;

short c;

};

#pragma pack()


#pragma pack(4)

struct B

{

char b;

int a;

short c;

};

#pragma pack()


int main()

{

printf("sizeof(A)=%d,sizeof(B)=%d \n",sizeof(A),sizeof(B));

return 0;

}

A:8,8

B:8,10

C:8,12

D:7,8


5、下列协议或应用,哪些是只使用TCP,而不使用UDP的?

A:QQ

B:FTP

C:HTTP

D:DNS


6、以下属于Android常用的跨进程通信工具有:

A:broadcast

B:AIDL

C:handler


7、定义以下泛型:

internal sealed class DictionaryStringKey<TValue>:Dictionary<String,TValue>{}

哪个选项不会抛出异常?

A:Type t = typeof(Dictionary<,>);

Object o = Activator.CreateInstance(t);

B:Type t = typeof(DictionaryStringKey<>);

Object o = Activator.CreateInstance(t);

C:Type t = typeof(DictionaryStringKey<Guid>);

Object o = Activator.CreateInstance(t);


8、智能手机的手势解锁密码是九宫格3X3的点阵中的一条路径,这条路径最少连接四个点,最多连接九个点,请问总共有多少种解锁密码?

A:1000种量级

B:10000种量级

C:100000种量级

D:500000种以上


9、如输入去,最后输出是什么?

void main()

{

char c;

scanf("%c",&c);

switch(c)

{

case '1':

printf("1");

case '2':

printf("2");

case '3':

printf("3");

default:

printf("error");

}

}

A:1

B:2

C:3

D:123error


10、NumberList是一个顺序容器,以下代码对其执行后,NumberList里的元素依次为:

List<int> NumberList = new List<int>() {2,4,1,3,5};

for (int i = 0; i<NumberList.Count; ++i )

{

int v = NumberList[i];

if(v%2 == 0)

{

NumberList.Remove(v);

}

}

A:2,4,1,3,5

B:2,1,3,5

C:4,1,3,5

D:1,3,5


11、下面哪些项是TCP具有的能力()

A:有链接

B:数据可靠传输

C:数据按序到达

D:端到端流量控制


12、以下属于iOS常用的多线程编程组件有:

A:GCD

B:NSOperationQueue

C:NSThread


13、以下关于死锁,描述正确的有那些?

A:有序分配资源可以预防死锁

B:银行家算法是用于检测死锁的

C:剥夺死锁进程的所有资源可以解除死锁

D:以上描述都不对


14、现有数据库表t_order,主键Forder_id,并在表的Fuin、Fstate、Fcreate_ime建立了复合索引,下列选项中能使用索引的是()

A:select Fmerchant_id, Fuin FROM t_order WHERE Forder_id='270000022016041412037866';

B:select Fmerchant_id, Forder_id FROM t_order WHERE Fuin='42176034' AND Fstate=1;

C:select Fmerchant_id, Fuin, Fstate FROM t_orderWHERE Forder_id LIKE '%20160414%';

D:select Fmerchant_id, Famount FROM t_order WHERE Forder_id='270000022016041412037866' OR Fuin='42176034';


15、有如下一段代码(unit16_t为2字节无符号整数,unit8_t为1字节无符号整数):

union X

{

unit16_t a;

struct Z

{

unit8_t m;

unit8_t n;

}z;

};


union X x;

x.a = 0x1234;

请问x,z,n在大字节序和小字节序机器上的值分别为多少()?

A:0x34,0x12

B:0x12,0x34

C:0x1234,0x1234

D:0x1234,0

E:0,0x1234


16、下列关于栈的叙述中正确的是

A:在栈中只能插入数据

B:在栈中只能删除数据

C:栈是先进先出的线性表

D:栈是先进后出的线性表


17、在公共局域网上ping www.qq.com没有涉及到的网络协议是:

A:TCP

B:DNS

C:ICMP

D:ARP


18、ARP协议实现的功能是()

A:IP地址到物理地址的解析

B:域名地址到IP地址的解析

C:IP地址到域名地址的解析

D:物理地址到IP地址的解析


19、如果主存容量为8G,硬盘容量128G,计算机地址寄存器是32位,则虚存的最大容量是以下哪个?

A:4G

B:8G

C:16G

D:128G

E:136G


20、64位Linux系统里,下面几个sizeof的运行结果是()

int intValue = 1024;

char str[] = "Tencent";

const char* ch = str;

sizeof(intCalue) =    a   ;

sizeof(str) =     b     ;

sizeof(ch) =     c      ;

A:a=1,b=1,c=1

B:a=4,b=4,c=4

C:a=4,b=8,c=4

D:a=4,b=8,c=8


21、程序最后输出什么?

#define Mul(x,y) ++x*++y


void main()

{

inr a=1;

int b=2;

int c=3;


printf("%d",Mul(a+b,b+c));

}

A:14

B:24

C:48

D:18


22、C++定义一个空的类CTest,CTest没有定义任何成员变量和成员函数,在32位机器上,以下结论正确的有:

A:对该类求sizeof,结果为0

B:给CTest添加构造函数,再对CTest求sizeof,结果为1

C:给CTest添加虚函数,再对CTest求sizeof,结果为4

D:给CTest添加虚函数,再对CTest求sizeof,结果为5



23、以下哪些可以用于Linux进程间通讯()?

A:UNIX套接字

B:信号量

C:无名管道

D:文件锁

E::共享内存


24、下面关于数据库唯一索引正确的是()

A:表可以包含多个唯一约束,但只能有一个主键

B:唯一约束列可包含NULL值

C:唯一约束列可修改或更新

D:唯一约束不能用来定义外键


25、Java语言中,String s = new String("xyz");创建了几个String Object?

A:1

B:2

C:3

D:4




26、employee的表结构及数据如图所示,一下语句结果分别为:

IDNameScore
1jack1
2tom1
3rosenull

select count(*) from employee;

select count(1) from employee;

select count(Score) from employee;


A:3,1,3

B:3,3,2

C:3,1,2

D:3,3,1


27、在32位环境下,一下代码输出的是

#include<stdio.h>


class A

{

public:

A() {printf("A");}

~A() {printf(“~A”);}

};


class B: public A

{

public:

B() {printf("B");}

~B() {printf("~B");}

};


int main()

{

A* c = new B[2];

delete[] c;

return 0;

}

A:ABAB~A~A

B:ABAB~B~A~B~A

C:ABAB~B~A

D:ABAB~A~B~A~B


28、下面一段C代码正确输出是

#include<stdio.h>

int main()

{

int *p = NULL;

int a[]={1,2,3,4};


p = a;

*(p++)+ = 100;

printf("%d %d %d %d %d\n",*p,a[0],a[1],a[2],a[3]);

return 0;

}

A:1 101 2 3 4

B:2 101 2 3 4

C:1 102 2 3 4

D:2 102 2 3 4


29、请问下列代码的输出是多少()?

#include <stdio.h>

int main()

{

int m[] = {1,2,3,4,5,6,7,8,9,0};

int (*p)[4] = (int (*)[4])m;

printf("%d",p[1][2]);

reutrn 0;

}

A:7

B:3

C:8

D:4




30、请写出下列代码有几处错误():

#include <stdio.h>


class A

{

public:

virtual void f() {}


public:

~A() 

f();

 }

};


class B1: public A

{

private:

char* _s;


public:

B1()

(

 _s = new char[1024];

)


private:

void f()

{

 delete _s[];

 _s = NULL;

}

};


class B2: public A

{

private:

int* _m;


public:

B2()

{

 _m = new int(2016);

}


private:

virtual void f()

{

 delete _m;

 _m = NULL;

}

};


int main()

{

A* a1 = new B;

A* a2 = new C;

delete a1;

delete a2;

return 0;

}

A:0

B:1

C:2

D:3

E:4



第二部分(问答题,共4题)


1、全民飞机大战是腾讯研发的一款非常好玩的休闲游戏,游戏内的社区“飞行学院”有一个功能是让玩家能获得系统赠送的钻石并以红包形式分享给自己的粉丝。比如系统赠送200钻石,玩家可以把它分成20份并分享给自己的10万个粉丝。假如是你来设计开发这个发红包的功能,你会怎么解决以下问题?

① 钻石的最小单位是1,如何设计钻石分配算法?

② 红包份数有限,高并发情况下怎么解决固定份数和限额的问题?

③ 如果高峰阶段,抢红包的并发请求数可能会达到8000次/秒。使用什么样的存储系统可以支持该方案?



2、游戏里面有很多各式各样的任务,其中有一种任务玩家只能做一次,这类任务一共有1024个,任务ID范围[1,1024]。

请用32个unsigned int 类型来记录着1024个任务是否已经完成。初始状态都是未完成。

输入两个参数,都是任务ID,需要设置第一个ID的任务为已经完成;并检查第二个ID的任务是否已经完成。

输出一个参数,如果第二个ID的任务已经完成输出1,如果未完成输出0。如果第一个或第二个ID不在[1,1024]范围内,则输出-1。

如:

输入:1024 1024

输出:1



3、假定一种编码的编码范围是a~y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下:

a, aa, aaa, aaaa, aaab, aaac, ,,, ,,, ,b, ba, baa, baaa, baab, baac,... ....,yyyw,yyyx,yyyy

其中a的index为0,aa的index为1,aaa的index为2,以此类推。

编写一个函数,输入是任意一个编码,输出这个编码对应的index。如:

输入:baca

输出:16331



4、有一组关键字为{77,28,38,41,45,1,9,31,99,51,23,47,68,61}。

① 请构造一个hash函数,形式为H(key) = key mod p,装填因子a = 0.8,用链地址法解决冲突;

② 计算等概率情况下查找成功平均查找长度;

③ 计算等概率情况下查找失败的平均查找长度(空指针的比较不计入)。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值