又刷了一套题

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

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

  1. class A
  2. {
  3. public:
  4. A() { }
  5. ~A()
  6. {
  7. cout<<"~A"<<endl;
  8. }
  9. };
  10.  
  11. class B:public A
  12. {
  13. public:
  14. B(A &a):_a(a)
  15. {
  16.  
  17. }
  18. ~B()
  19. {
  20. cout<<"~B"<<endl;
  21. }
  22. private:
  23. A _a;
  24. };
  25.  
  26. int main(void)
  27. {
  28. A a; //非常easy,定义a的时候调用了一次构造函数
  29. B b(a);
  30. }

A.      ~B

B.     ~B~A

C.    ~B~A ~A

D.    ~B~A ~A ~A

答案:D

要搞懂构造和析构的循序

构造顺序:

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

析构顺序:

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

12.下面程序的结果?

  1. void foo(int *a, int *b)
  2. {
  3. *a = *a + *b;
  4. *b = *a - *b;
  5. *a = *a - *b;
  6. }
  7. void main()
  8. {
  9. int a = 1, b = 2, c = 3;
  10. foo(&a, &b);
  11. foo(&b, &c);
  12. foo(&c, &a);
  13. printf("%d, %d, %d", a, b, c);
  14. }

A.     1,2,3

B.     1,3,2

C.    2,1。3

D.    3,2,1

答案:B

水题。。。

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

  1. #include "stdio.h"
  2. class Base
  3. {
  4. public:
  5. int Bar(char x)
  6. {
  7. return (int)(x);
  8. }
  9. virtual int Bar(int x)
  10. {
  11. return (2 * x);
  12. }
  13. };
  14. class Derived : public Base
  15. {
  16. public:
  17. int Bar(char x)
  18. {
  19. return (int)(-x);
  20. }
  21. int Bar(int x)
  22. {
  23. return (x / 2);
  24. }
  25. };
  26. int main(void)
  27. {
  28. Derived Obj;
  29. Base *pObj = &Obj;
  30. printf("%d,", pObj->Bar((char)(100)));
  31. printf("%d,", pObj->Bar(100));
  32. }

A.    100。-100

B.    100。50

C.    200,-100

D.    200。50

答案:B

  1. printf("%d,", pObj->Bar((char)(100)));
  2. 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.下列代码的输出为:

  1. class CParent
  2. {
  3. public:
  4. virtual void Intro()
  5. {
  6. printf( "I'm a Parent, " );
  7. Hobby();
  8. }
  9. virtual void Hobby()
  10. {
  11. printf( "I like football!" );
  12. }
  13. };
  14. class CChild : public CParent
  15. {
  16. public:
  17. virtual void Intro()
  18. {
  19. printf( "I'm a Child, " );
  20. Hobby();
  21. }
  22. virtual void Hobby()
  23. {
  24. printf( "I like basketball!\n" );
  25. }
  26. };
  27. int main( void )
  28. {
  29. CChild *pChild = new CChild();
  30. CParent *pParent = (CParent *) pChild;
  31. pParent->Intro();
  32. return(0);
  33. }

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

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

  1. CParent *pParent = (CParent *) pChild;
  2. CParent *pParent = pChild;

的输出结果是一样的

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

  1. char array[12] = {0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08};
  2. short *pshort = (short *)array;
  3. int *pint = (int *)array;
  4. int64 *pint64 = (int64 *)array;
  5. 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

水题,用过就知道

C/C++综合測试题(四)的更多相关文章

  1. (各个公司面试原题)在线做了一套CC++综合測试题,也来測一下你的水平吧(二)

    刚才把最后的10道题又看了下.也发上来吧. 以下给出试题.和我对题目的一些理解 前10道题地址 (各个公司面试原题)在线做了一套CC++综合測试题.也来測一下你的水平吧(一) 11.设已经有A,B,C ...

  2. C/C++综合測试题(三)

    又刷了一套题 这些题都是百度.阿里巴巴.腾讯.网易.新浪等公司的面试原题,有一定的难度.只是确实相当有水平,能够通过做题来查漏补缺. 1.补充以下函数代码: 假设两段内存重叠,用memcpy函数可能会 ...

  3. JAVA 综合面试题

    JAVA 综合面试题 2007-08-12 目录 TOC \o "1-3" \h \z \u Java面试题整理 9 Java面向对象 9 1. super()与this()的区别 ...

  4. 当当网-前端project师測试题

                                     前端project师測试题(笔试时间20分钟.面试时间20分钟)   一.笔试 1.基础问题 (1)前端页面有哪三层构成,各自是什么? ...

  5. php面试题四

    php面试题四 一.总结 二.php面试题四 01. 输出为 Mozilla/4.0(compatible;MSIE5.01;Window NT 5.0)时,可能的输出语句是:   A.$_S ...

  6. kali渗透综合靶机(十四)--g0rmint靶机

    kali渗透综合靶机(十四)--g0rmint靶机 靶机下载地址:https://www.vulnhub.com/entry/g0rmint-1,214/ 一.主机发现 1.netdiscover - ...

  7. 多测师讲解第一个月 _综合面试题_高级讲师肖sir

    第一个月综合面试题 1.  冒烟测试是什么意思?  对主要的用例测试 2.你们公司的项目流程是什么? 3.你们公司的bug分几个级别?  4个 4.你对外键是怎么理解的? 你会使用外键吗?给一个表添加 ...

  8. JAVA组程序优化综合考试试题

    题目原型: 有一张标准的树状结构表,里面有Structure_Id和 Parent_Id两个关键列,记录了结点的父子关系.现在要求添加一个字段为 Structure_Code ,标记为 三位一个节点关 ...

  9. U3D面试题四

    1.配置Unity3D调试环境 在windows环境下,设置unity3d的编辑器调试环境方法: 点击“Edit‘---”Preferences“,弹出如下窗口 选择MonoDeveop即可. 在编辑 ...

随机推荐

  1. OpenFlow_tutorial_1_Introduce

    tutorial出处:https://github.com/mininet/openflow-tutorial/wiki OpenFlow是用于远程控制交换机流表(forwarding tables) ...

  2. IIS HTTP 错误 401.3的解决办法

    目标网站添加新用户Everyone,选上需要的Everyone用户权限

  3. Java之Servlet文件下载20190228

    jsp页面: <%@ page language="java" contentType="text/html; charset=utf-8" pageEn ...

  4. 02CSS基本语法

    CSS基本语法 id选择符 在HTML文档中,需要唯一标识一个元素时,就会赋予它一个id标识,以便在对整个文档进行处理时能够很快地找到这个元素. 而id选择符就是用来对这个单一元素定义单独的样式.#号 ...

  5. linux 服务脚本

    #!/bin/bash # # chkconfig: # description: my_SERVICE_NAME is a my Service # # common function . /etc ...

  6. IO之BufferedStream缓冲流举例

    import java.io.*; public class TestBufferStream1 { public static void main(String[] args) { try { Fi ...

  7. [Python3网络爬虫开发实战] 1.3.3-pyquery的安装

    pyquery同样是一个强大的网页解析工具,它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器,使用非常方便.本节中,我们就来了解一下它的安装方式. 1. 相关链接 GitHub:h ...

  8. openwrt 配置samba && ubuntu 配置samba

    前言:在修改opkg update的下载目录,公司里不能连外网,尝试用samba. 配置samba很简单,修改/etc/config/samba文件,拷贝一下share项,再改一下name就可以了. ...

  9. linux ping-测试主机之间网络的连通性

    博主推荐:更多网络测试相关命令关注 网络测试  收藏linux命令大全 ping命令用来测试主机之间网络的连通性.执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问 ...

  10. 关于Google浏览器Unable to preventDefault inside passive event listener due to target being treated as passive.的解决方案

    最近写react项目的时候,引用了antd-mobile,在使用滚动组件的时候,发现谷歌浏览器会报以下警告 最初我以为是antd-mobile的问题导致的,然后我就无查看了之前的vue的项目,发现了类 ...