阿里巴巴校园招聘笔试题和面试题答案目(2)

招聘笔试题2018-11-22王新老师

  16、下列代码编译时会产生错误的是()

  1. #include

  2. using namespace std;

  3. struct Foo

  4. {

  5. Foo() { }

  6. Foo(int) { }

  7. void fun() { }

  8. };

  9. int main(void)

  10. {

  11. Foo a(10); //语句1

  12. a.fun(); //语句2

  13. Foo b(); //语句3

  14. b.fun(); //语句4

  15. return 0; 16. }

  A、语句1 B、语句2 C、语句3 D、语句4

  17、在32位机器上,下列代码中

  #pragma pack(2)

  •class A

  •{

  • int i;

  • union U

  • {

  • char buff[13];

  • int i;

  • }u;

  • void foo() { }

  • typedef char* (*f)(void*);

  • enum{red, green, blue} color;

  •}a;

  sizeof(a)的值是()

  A、20 B、21 C、22 D、24 E、非以上选项

  18、下面描述中,错误的是()

  A、基类定义的public成员在公有继承的派生类中可见,也能在类外被访问

  B、基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问

  C、基类定义的public和protected成员在保护继承的派生类中不可见

  D、基类定义的protected成员在protected继承的派生类中可见,也能在类外被访问

  19、当很频繁地对序列中部进行插入和删除操作时,应该选择使用的容器是()

  A、vector B、list C、deque D、stack

  20、判断一个单向链表中是否存在环的最佳方法是()

  A、两重遍历 B、快慢指针 C、路径记录 D、哈希表辅助

  21、给你1、2、3 这三个数字可以使用C的各种运算符你能表示的最大的整数是()

  A、2*3*sizeof(1) B、3<<(2<

  -1的二进制形式就是全1表示

  22、下面代码的输出是多少?

  1. class A

  2. {

  3. public:

  4. A() { cout<<"A"<

  5. ~A() { cout<<"~A"<

  6. };

  7.

  8. class B:public A

  9. {

  10. public:

  11. B(A &a):_a(a)

  12. {

  13. cout<<"B"<

  14. }

  15. ~B()

  16. {

  17. cout<<"~B"<

  18. }

  19. private:

  20. A _a;

  21. };

  22.

  23. int main(void)

  24. {

  25. A a; //很简单,定义a的时候调用了一次构造函数

  26. B b(a); //这里b里面的_a是通过成员初始化列表构造起来的

  27. //而且是通过copy constructor构造的是b的成员对象_a的,这里是编译器默认的,因此在构造好_a前,先调用基类构造函数

  28. //然后才是构造自身,顺序就是A()->_a->B()(局部)

相关推荐

猜你喜欢

大家正在看

换一换