【面试真题】腾讯2018秋招前端正式试题(含答案)

 

参考答案关注公众号,回复“腾讯答案”获取

01

不定向多选

1.    往下面的5阶B树中插入关键吗80后,该B树第二层的节点数为( )。

A.   6

B.   7

C.   8

D.   9

E.   10

2.    设一棵完全二叉树共有1023个结点,则在该二叉树中的叶子结点数为多少?( )

A.    511

B.    512

C.    510

D.    513

3.    如果内存容量为16G,硬盘容量1T,计算机地址寄存器是32位,则虚存的最大容量以下哪个?( )

A.    4G

B.    8G

C.    16G

D.   32G

E.    1T

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

struct st_t

{

        int status;

        char bitset;

        short *pdata;

        char errstr[8];

};

st_t st[16];

char *p = (char *)(st[2].errstr+8);

printf(“%d”, (p-(char*)(st)));

A.    32

B.    64

C.    128

D.   72

 

5.    下面哪些特性可能导致代码体积膨胀?( )

A.    宏定义

B.    lambda表达式

C.    模版函数

D.   内联函数

 

6.    C语言里i=5,j=7,请问i&j等于多少?( )

A.   12

B.   3

C.   5

D.   7

 

7.    以下哪些选项,跨域用来解决跨域的问题?( )

A.    使用document.domain

B.    使用JSONP技术

C.    使用CROS技术

D.   使用PostMessage

E.    使用ajax技术

 

8.  MVC是一种常见的架构。以下描述错误的是( )

A.  只有UIKIT界面开发才能使用MVC

B.  只有能够保存在数据库里面的实体才能称之为模型(Model)

C.  只有以HTML形式显示的页面才是视图(View)

D.  模型变更之后,只有控制器(Controller)才能驱动视图变更或重新渲染视图

 

9.    web框架中关于MVVM,以下说明正确的是( )

A.    MVVM是Model-View-ViewController的简写

B.    流行的MVVM框架有angular、react、vue、bootstrap

C.    MVVM是使用数据绑定基础架构,可以轻松构建UI

D.   MVVM优点是低耦合、可复用、可测试

10.  有下表

create table a1

{

        id int(11) not null,

        name varchar(32) not null,

        age int(11) not null,

        INDEX (id,name)

}

下面查询中,索引无效的有( )。

A.    select * from a1 where name = ‘Jack’;

B.    select * from a1 where name != ‘Jack’;

C.    select * from a1 where id = 1 and name like ‘J%’;

D.   select * from a1 where id <> 1

11.  请问下列代表的输出事多少?( )

#include

int main()

{

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

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

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

        return 0;

}

A.    8

B.    3

C.    7

D.    4

E.    数组越界

12.  div+css的布局较table布局的说法正确的是( )

A.    table布局改版的时候更方便,只要改css文件

B.    div+css页面加载速度更快、结构化清晰、页面显示简洁

C.    div+css布局代码量更少,页面载入得越快

D.   table布局易于优化(seo)搜索引擎更友好,排名更容易靠前

13.  在正方体上任取三个顶点连成三角形,则所得的三角形是直角非等腰三角形的概率为(B)

A.    2/7

B.    3/7

C.    4/7

D.   5/7

 

14.  Win32系统里,下面几个sizeof的运行结果是( )

int intVaule = 1024;

char str[] = “WeChat”;

const char* ch = str;

sizeof(intValue) = __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 = 7, c = 4

D.   a = 4, b = 6, c = 4

15.  在Linux网络编程中的实现I/O复用的系统调用有(ABC)

A.    select

B.    poll

C.    epoll

D.   pselect

16.  以下针对TCP/IP状态中的TIME_WAIT说法正确的是(AD)

A.    主动关闭端进入TIME_WAIT状态

B.    被动关闭端会进入TIME_WAIT状态

C.    通信两端有可能同时进入TIME_WAIT状态

D.   TIME_WAIT的超时时间是2MSL

17.  提升网站访问速度,以下正确的做法有哪些?(ABD)

A.    减少网站http请求

B.    对静态js文件进行压缩

C.    进行seo优化

D.   进行cdn托管

18.  下面函数的运行结果是(A)

function foo()

{

        return 2;

}

console.log(foo());

A.    2

B.    null

C.    undefined

D.   都有可能,视乎执行引擎而定

19.  下面函数的执行结果是( )

function test(){

        console.log(a);

        console.log(foo());

        var a = 1;

        function foo() {

               return 2;

  }

}

test();

A.    undefined和2

B.    运行错误

C.    1和2

D.   undefined 紧接着运行错误

E.    1 紧接着运行错误

02

编程题

 

1. 石子合并

    时间限制:(每个case)2s 空间限制:128MB

    小Q和牛博士在玩一个石子合并的游戏,初始一共有n堆石子,每堆石子有w[i]个石子。小Q和牛博士他们需要对石子堆进行合并,每次他们可以任意选择两堆石子进行合并。一堆有x个石子的石子堆和一堆有y个石子的石子堆合并将得到一堆x+y个石子的石子堆,这次合并得分为x*y,当只剩下一堆石子的时候游戏结束。

     小Q和牛博士希望采取优秀的策略获得最大得分,希望你能来帮他们算算最大得分多少。

    输入:

    输入包括两行,第一行一个正整数n(2<=n<=100)。

第二行包括n个正整数w[i](1<=w[i]<=100),即每堆石子的个数。

    输出:

    输出一个正整数,即小Q和牛博士最大得分是多少。

样例输入:3 1 2 3

样例输出:11

2. 小Q的排序

    时间限制:(每个case)2s 空间限制:128MB

    小Q在学习许多排序算法之后灵机一动决定自己发明一种排序算法,小Q希望能将n个不同的数排序为升序。小Q发明的排序算法在每轮允许两种操作:

1、将当前序列中前n-1个数排为升序

2、将当前序列中后n-1个数排为升序

    小Q可以任意次使用上述两种操作,小Q现在想考考你最少需要几次上述操作可以让序列变为升序。

    输入:

    输入包括两行,第一行包括一个正整数n(3<=n<=10^5),表示数字的个数;第二行包括n个正整数a[i](1<=a[i]<=10^9),即需要排序的数字,保证数字各不相同。

    输出:

    输出一个正整数,表示最少需要的操作次数

样例输入:6 4 3 1 6 2 5

样例输出:2

3.射击训练

    时间限制:(每个case)2s 空间限制:128MB

小Q是一个专业的射击运动员,有一天他像往常一样进行n次射击训练,每次设计他都会有一个得分w[i](1<=i<=n)。小Q之前训练都会取最高的四次得分作为最终得分来衡量他的射击状态,但是今天他制定了一个奇怪的规则:

    在n次射击得分中取出四次得分a,b,c,d,并且满足a*b*c=d作为最终得分来衡量他的射击状态。

    但是小Q发现满足这个条件的(a,b,c,d)可能不止一个,小Q需要你来帮助他计算一共有多少个这种(a,b,c,d)(注意a,b,c,d的相对顺序不能改变)。

如样例所示:有两种满足的(a,b,c,d),分别是(10,2,2,40)和(2,2,40,160)。

    输入:

    输入包括两行,第一行包括一个正整数n(4<=n<=500),表示射击的次数。

第二行n个正整数w[i](1<=w[i]<=10^6),表示每次射击的得分。

    输出:

    输出可以作为最终得分的种数。

样例输入:6 10 2 2 7 40 160

样例输出:2

参考答案关注公众号,回复“腾讯答案”获取

你可能感兴趣的:(面试题)