又刷了一套题

这些题都是百度、阿里巴巴、腾讯、网易、新浪等公司的面试原题。有一定的难度。只是确实相当有水平。能够通过做题来查漏补缺。

11.以下代码的输出是什么?

class A
{
public:
A() { }
~A()
{
cout<<"~A"<<endl;
}
}; class B:public A
{
public:
B(A &a):_a(a)
{ }
~B()
{
cout<<"~B"<<endl;
}
private:
A _a;
}; int main(void)
{
A a; //非常easy,定义a的时候调用了一次构造函数
B b(a);
}

A.      ~B

B.     ~B~A

C.    ~B~A ~A

D.    ~B~A ~A ~A

答案:D

要搞懂构造和析构的循序

构造顺序:

基类构造函数>子类成员变量构造函数 >子类构造函数

析构顺序:

子类析构函数>子类成员变量析构函数 >基类析构函数

12.下面程序的结果?

void foo(int *a, int *b)
{
*a = *a + *b;
*b = *a - *b;
*a = *a - *b;
}
void main()
{
int a = 1, b = 2, c = 3;
foo(&a, &b);
foo(&b, &c);
foo(&c, &a);
printf("%d, %d, %d", a, b, c);
}

A.     1,2,3

B.     1,3,2

C.    2,1。3

D.    3,2,1

答案:B

水题。。。

13.下列一段C++代码的输出是?

#include "stdio.h"
class Base
{
public:
int Bar(char x)
{
return (int)(x);
}
virtual int Bar(int x)
{
return (2 * x);
}
};
class Derived : public Base
{
public:
int Bar(char x)
{
return (int)(-x);
}
int Bar(int x)
{
return (x / 2);
}
};
int main(void)
{
Derived Obj;
Base *pObj = &Obj;
printf("%d,", pObj->Bar((char)(100)));
printf("%d,", pObj->Bar(100));
}

A.    100。-100

B.    100。50

C.    200,-100

D.    200。50

答案:B

printf("%d,", pObj->Bar((char)(100)));
printf("%d,", pObj->Bar(100));

第1句调用Base类的intBar(charx)函数

第2句调用Derived类的intBar(intx)函数

14.C++类体系中。不能被派生类继承的有?

A.    构造函数

B.    静态成员函数

C.    非静态成员函数

D.    赋值操作函数

答案:A

构造函数能够被子类调用,但不能被子类继承,其他的,B、C、D都能够

15.以下有关malloc和new,说法错误的是?

A.    new建立的是一个对象。malloc分配的是一块内存.

B.    new初始化对象。调用对象的构造函数。相应的delete调用相应的析构函数,malloc只分配内存,free只回收内存

C.   new和malloc都是保留字。不须要头文件支持

D.    new和malloc都可用于申请动态内存,new是一个操作符。malloc是是一个函数

答案:C

用过就知道。malloc须要#include<malloc.h>

16.以下有关类的静态成员和非静态成员,说法错误的是?

A.    静态成员存在于内存,非静态成员须要实例化才会分配内存

B.    非静态成员能够直接訪问类中静态的成员

C.    静态成员能訪问非静态的成员

D.    非静态成员的生存期决定于该类的生存期,而静态成员则不存在生存期的概念

答案:C

关键在于分清静态成员和非静态成员的差别

非静态成员必须实例化之后。才是一个实体

而静态成员和类的对象无关,它一直存在于内存中

17.下列代码的输出为:

class CParent
{
public:
virtual void Intro()
{
printf( "I'm a Parent, " );
Hobby();
}
virtual void Hobby()
{
printf( "I like football!" );
}
};
class CChild : public CParent
{
public:
virtual void Intro()
{
printf( "I'm a Child, " );
Hobby();
}
virtual void Hobby()
{
printf( "I like basketball!\n" );
}
};
int main( void )
{
CChild *pChild = new CChild();
CParent *pParent = (CParent *) pChild;
pParent->Intro();
return(0);
}

A.      I'm a Parent。I like football!

B.     I'ma Parent, I like basketball!

C.    I'ma Child, I like basketball!

D.    I'ma Child。 I like football!

答案:C

类中的函数都是虚函数,所以

CParent *pParent = (CParent *) pChild;
CParent *pParent = pChild;

的输出结果是一样的

18.在32位小端的机器上,例如以下代码输出是什么:

char array[12] = {0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08};
short *pshort = (short *)array;
int *pint = (int *)array;
int64 *pint64 = (int64 *)array;
printf("0x%x , 0x%x , 0x%x , 0x%x", *pshort , *(pshort+2) , *pint64 , *(pint+2));

A.    0x201,0x403, 0x807060504030201,
0x0

B.    0x201, 0x605,0x807060504030201。
0x0

C.    0x201。 0x605,0x4030201,
0x8070605

D.    0x102, 0x506,0x102030405060708,
0x0

答案:B

我把int64改成_int64之后,编译器输出的结果是答案C

看了网友的解释,意思是把int64看成是普通的64位整形数。所以答案是B

19.switch(c)语句中,c不能够是什么类型()

A.    int

B.    long

C.   char

D.    float

答案:D

float存在精度问题

20.头文件里的ifndef/define/endif干什么用?

A.     定义常量

B.    标记为特殊的头文件

C.    防止头文件被反复引用

D.    凝视头文件

答案:C

水题,用过就知道

最新文章

  1. Nodejs 创建web服务
  2. javascript 模式(2)——单例模式
  3. 【MVVMLight小记】一.快速搭建一个基于MVVMLight的silverlight小程序
  4. 再谈Bellman-Ford
  5. linux下的磁盘和文件系统管理
  6. c++ for_each()与仿函数
  7. MYbatis调试日记(三)
  8. Jquery 格式化时间
  9. 【转】ant命令总结
  10. wordpress 如何从后台数据库修改theme(图文教程)
  11. .net postsharp编译时生成的代码?
  12. poptest分享计划以及提供的服务
  13. 【翻译】ExtJS vs AngularJS
  14. [luogu P3953] [noip2017 d1t3] 逛公园
  15. HslCommunication组件库使用说明 (转载)
  16. fetch数据请求的封装
  17. ESP32入门示例 - SD卡Web服务器
  18. 关于“.bash_profile”和“.bashrc”区别的总结
  19. 7、zabbix使用进阶(03)
  20. 学会数据库读写分离、分表分库——用Mycat

热门文章

  1. Linux之基础命令——打包压缩
  2. java_线程的通信
  3. MySQL操作数据库和表的基本语句(DDL)
  4. selenium webdriver 常用断言
  5. python闭包浅见
  6. Codeforces Beta Round #1 补题题解
  7. mysql出现问题汇总(持续更新)
  8. python爬取百度文库所有内容
  9. UVA 230 Borrowers (STL 行读入的处理 重载小于号)
  10. Numpy第一课