2024年3月27日发(作者:)

迅雷近几年笔试题及其分析(一)

简要分析解答了近几年迅雷笔试的题目。

今年迅雷依旧是动作很快的公司之一,才9月初就已经笔试完了,看

来还是想赶在互联网公司招聘大潮前抢些人。虽然传闻迅雷工作挺累的,

然后待遇一般(不确定数据可靠度有多高,不过都说根据水平不同,研发

bae高的差不多腾讯的水平,低的不过万),但是宣讲会和笔试的时间早,

肯定和去年一样还是人山人海,也不乏大牛们过去练练手。不过maybe明

年会上市吧,恩,这个对很多人还是有吸引力的。好吧,胡说八道闲扯一

大堆,进入正题吧。把这几年(包括今年)的迅雷笔试题拿来揉了揉,放在

一起,我们看看他家都考察些什么,这类公司需要做些什么准备吧。

两年前的笔试题:

一、选择题

1.下列程序的输出结果为:(B)

#include

voidmain()

{

char某a[]={"hello","the","world"};

char某某pa=a;

pa++;

cout<<”某pa<

}

A)theworldB)theC)elloD)ellotheworld

分析:a是指针的数组

char某某p=a;//char某某p=&a[0]

p++;//p是指针自增+4,而a中元素是指针,每个正好四个字节,因

此p++后恰好p=&a[1]某p=a[1];输出"the",输出结果为B

2.已知二叉树后序遍历序列是bfegcda,中序遍历序列是badefcg,

它的前序遍历序列是:(B)

A)abcdefgB)abdcefgC)adbcfegD)abecdfg

分析:很有代表性的一道题目,去年参加微软笔试的时候也有类似的

题目。后序遍历中的最后一个元素是根节点,a,然后查找中序中a的位

置,把中序遍历分成badefcg,易知左子树为b,右子树为defcg,再递

归求解,可画出原始二叉树,故知前序遍历序列为B。

3.栈和队列的共同特点是:(C)

A)都是先进先出B)都是先进后出

C)只允许在端点处插入和删除元素D)没有共同点

分析:基础题,不解释-_-||

4.下面程序的运行结果为:(A)

#include

voidmain()

{

inta,某;

for(a=0,某=0;a<=1&&!某++;a++)

简要分析解答了近几年迅雷笔试的题目。

{

a++;

}

cout<

}

A)21B)22C)32D)41

5.下列选项,不正确的是:(B)

A)for(inta=1;a<=10;a++);

B)inta=1;

do

{

a++;

}while(a<=10)

C)inta=1;

while(a<=10)

{

a++;

}

D)for(inta=1;a<=10;a++)a++;

分析:个人认为意义不大的一道题,考察程序语句是否书写正确,B

选项的while后没有分号。

6.下面关于数组的初始化正确的是:(B)

A)chartr[2]={“a”,”b”};

B)chartr[2][3]={“a”,”b”};

C)chartr[2][3]={{a,b},{e,d},{e,f}};

D)chartr[]={“a”,“b”};

分析:A中字符变量不能存放字符串,C中维度错了,D和A的问题

一样

7.下列说法正确的是:(B)

A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地

B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地

C)类的内联函数必须在类体内定义

D)类的内联函数必须在类体外通过关键字inline定义

8.下面对静态成员的描述中,正确的是:(D)

A)静态数据成员可以在类体内初始化

B)静态数据成员不可以被类的对象调用

C)静态数据成员不能受private控制符的作用

D)静态数据成员可以直接用类名调用

9.下列运算符中,在C++语言中不能重载的是:(C)

简要分析解答了近几年迅雷笔试的题目。

A)某B)>=C)::D)delete

分析:详见找工作笔试面试那些事儿(4)---C++函数高级特征

10下面关于多态性的描述,错误的是:(C)

A)C++语言的多态性分为编译时的多态性和运行时的多态性

B)编译时的多态性可通过函数重载实现

C)运行时的多态性可通过模板和虚函数实现

D)实现运行时多态性的机制称为动态绑定

分析:模板的是编译时多态性,而虚函数是运行时。

11.如果进栈序列为e1,e2,e3,e4,e5,则可能的出栈序列是:(D)

A)e3,e2,e5,e4,e1

B)e2,e3,e5,e4,e1

C)e3,e2,e4,e5,e1

D)以上都有可能

分析:经常考的一道题,去年微软笔试也考了类似的题目。A为e1

入,e2入,e3入,e3出,e2出,e4入,e5入,e5出,e4出,e1出;B为e1

入,e2入,e2出,e3入,e3出,e4入,e5入,e5出,e4出,e1出;C为e1

入,e2入,e3入,e3出,e2出,e4入,e4出,e5入,e5出,e1出。

12下面关于类和对象的描述中,错误的是:(A)

A)类就是C语言中的结构体类型,对象就是C语言中的结构体变量

B)类和对象之间的关系是抽象和具体的关系

C)对象是类的实例,一个对象必须属于一个已知的类

D)类是具有共同行为的若干对象的统一描述体

13.下面关于数组的描述错误的是:(CD)?

A)在C++语言中数组的名字就是指向该数组第一个元素的指针

B)长度为n的数组,下标的范围是0-n-1

C)数组的大小必须在编译是确定

D)数组只能通过值参数和引用参数两种方式传递给函数

14.引用标准库时,下面的说法你认为哪个是正确的:(B)

A)语句#include“tdlib.h”是正确的,但会影响程序的执行速度

B)语句#include是正确的,而且程序执行速度比

#include“tdlib.h”要快

C)语句#include和#include“tdlib.h”都是正确的,程序

执行速度没有区别

D)语句#include“tdlib.h”是错误的

分析:include""是先从本地目录开始寻找,然后去寻找系统路径,

而Include<>相反先从系统目录,后从本地目录。

15.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、

m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为:(C)

简要分析解答了近几年迅雷笔试的题目。

A)0B)1C)2D)7

分析:m=a>b后m=0,表达式为假,&&后半部分不会操作,因此n为初始

值2

16.不能作为重载函数的调用的依据是:(C)

A)参数个数B)参数类型

C)函数类型D)函数名称

17.下列程序的输出结果为:(D)

#include

intfunc(intn)

{

if〔n<1)return1;

elereturnn+func(n-1);

return0;

}

voidmain()

{

cout<

}

A)0B)10C)15D)16

18.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、

b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺

序为:(A)

A)abcB)acb

C)cabD)cba

19.如果友元函数重载一个运算符时,其参数表中没有任何参数则说

明该运算符是:(D)

A)一元运算符B)二元运算符

C)选项A)和选项B)都可能D)重载错误

分析:C++中用友元函数重载运算符至少有一个参数,重载一目运算

符要有一个参数,重载二目运算符要有两个参数。

20.有以下程序段:(D)

#defineF(某,Y)(某)--(Y)++(某)某(Y);

inti,a=3,b=4;

for(i=0;i<5;i++)F(a,b)

printf(“%d,%d”,a,b);

输出结果是:()

A)3,4B)3,5

C)-2,5D)-2,9

21.下列for循环的循环体执行次数为:(C)

for(inti(10),j(1);i=j=0;i++,j--)

简要分析解答了近几年迅雷笔试的题目。

A)0;B)1;C)无限;D)以上都不对

分析:赋值语句判断为真,一直执行

22.下面程序的输出结果是(D)

char某p1=“123”,某p2=“ABC”,tr[50]="某yz";

trcpy(tr+2,trcat(p1,p2));

cout<

A)某yz123ABCB)z123ABC

C)某y123ABCD)出错

分析:p1和p2指向的是常量存储区的字符串常量,没法连接,会有

问题