搜狗笔试题和面试题答案

来源:解志愿时间:

  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 // x*2

  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

中国点击率最高的一篇文章 !