招聘笔试题

搜狗笔试题和面试题答案

1、关于C++标准模板库,下列说法错误的有哪些:【多选】(AD)

A、std::auto_ptr类型的对象,可以放到std::vector>容器中

B、std::shared_ptr类型的对象,可以放到std::vector>容器中

C、对于复杂类型T的对象tObj,++tObj和tObj++的执行效率相比,前者更高

D、采用new操作符创建对象时,如果没有足够内存空间而导致创建失败,则new操作符会返回NULL

A中auto是给别人东西而自己没有了。所以不符合vector的要求。而B可以。C不解释。new在失败后抛出标准异常std::bad_alloc而不是返回NULL。

2、以下哪些做法是不正确或者应该极力避免的:【多选】(AC)

A、构造函数声明为虚函数

B、派生关系中的基类析构函数声明为虚函数

C、构造函数调用虚函数

D、析构函数调用虚函数

3、下面程序执行结果为【说明:X86_64环境】(D)

A、16000 1101 13002 2

B、4 2 3 60

C、16000 2 3 2

D、4 1101 13002 60

4、请问程序的输出结果是(30)

#define DOUBLE(x) x+x // x2

int i = DOUBLE(5)5;

cout<

5、 p1为指向一维数组的指针,所以a + 1指向{50,60,70,80}这一维的地址。减一则为4的地址;同理第二个输出1101。同理,由于数组的列是4,所以(p2 - 1) + 16就相当于(p2) + 12,所以第三个输出13002。

第四个由于p1是指针,所以sizeof(p1)为8(68位的系统),所以第四个输出60。

6、在32位操作系统gcc编译器环境下,下面的程序的运行结果是(A)

A、12 12

B、8 8

C、9 9

D、12 16

大家都在看