2014迅雷校园招聘笔试题

时间:2022-07-22 18:50:33

温馨提示:客观题和主观题得分都要超过一定标准,才能获得面试资格,如果一项得分很高,而另外一项得分很低,可能无法获得面试资格。

一、单选题(20题,每题2分)

1、有变量int i = 0; int a = i++; int b=++a; int c = a+b; 请问表达式 a?b:c 的值是()
A、0    B、1    C、2    D、3

【解析】 B

int i = 0;
int a = i++; //a = 0
int b = ++a;//b = 1 a = 1
int c = a + b;//a = 1 b = 1 c = 2
int d = a?b:c//a = 1 d = b = 1


2、32位环境下,int *p=new int[10];请问sizeof(p)的值为()

A、4   B、10   C、40   D、8

【解析】A

指针就是一个地址值,在32位系统下,占用4个字节,
用sizeof求枚举类型的长度,等于一个int型的长度,而与有几个枚举值无关.所以a也是占4个字节,


3、有语句char str[] = "abcde";请问表达式sizeof(str)的值是()
A、1  B、4  C、5  D、6

【解析】 D

str数组中包含的元素是abcde\0

注意:

char str[] = "abcde";
strlen(str) = 5
sizeof(str) = 6
char str[10] = "abcde";
strlen(str) = 5
sizeof(str) = 10

4、有函数int func(int i)的实现为()

int func(int i)
{
 if(i > 1)
  return i*func(i-1);
 else
  return 1;
}

请问函数调用f(5)的返回值是多少()
A、5   B、15   C、20   D、120

【解析】D

func(5)

         5*func(4)

                      4*func(3)

                                  3*func(2)

                                               2*func(1)

                                                            1

5*4*3*2*1 = 120


 5、请问以下说法,哪个是正确的()
A、每个类都有一个无参数的构造函数
B、每个类都有一个拷贝构造函数
C、每个类能有多个构造函数
D、每个类能有多个析构函数

【解析】C

每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。


6、用class关键字定义的类,其成员默认的访问属性为()
A、private   

B、protected    

C、public    

D、无定义

【解析】 A

class类中默认是private
struct结构中默认是public


7、类的成员有三种访问属性,分别是public、protected、private,子类能够访问的成员是()
A、都能访问
B、public和protected
C、public和private
D、protected和private

【解析】B

public 
公共,加上这个修饰的属性和方法,可以在程序的任何其它地方访问 
private 
私有的,和public相反,加上这个修饰的属性和方法,只允许在自己本身这个类里访问,程序的任何其它地方都不能访问 
protected 
保护,位于public和private中间,加上这个修饰的属性和方法,只能在子类(extends)和同包下的程序访问,别的的地方不能访问。


8、请问对一个排好序的数组进行查找,时间复杂度为()
A、O(n) 

B、O(lgn)

C、O(nlgn) 

D、O(1)

【解析】 B


9、以下二叉树:

2014迅雷校园招聘笔试题

后序遍历的结果是()
A、丙乙丁甲戊己 

B、甲乙丙丁戊己 

C、丙丁乙己戊甲 

D、丙丁己乙戊甲

【解析】 C

后序:左右根     丙丁乙己戊甲

前序:根左右    甲乙丙丁戊己 

中序:左根右    丙乙丁甲戊己 


10、看以下代码:

A *pa = new A[10];

delete pa;

则类A的构造函数和析构函数分别执行了几次()

A、1   1          

B、10   10          

C、1   10                

D、10   1

【解析】 D


11、看以下代码:

class A
{
public:
~A();
};
A::~A()
{
printf("delete A ");
}

class B : public A
{
public:
~B();
};
B::~B()
{
printf("delete B ");
}
请问执行以下代码
A *pa = new B();
delete pa;
输出的串是()
A、delete A      

B、delete B        

C、delete B delete A          

D、delete A delete B

【解析】 A