2021-08-12c++考试题目

2023-11-11

一、选择题(每题3分)

1.关于虚函数,正确的描述是() 

A 构造函数不能是虚函数

B 析构函数不能是虚函数    

C 虚函数可以是友元函数

D 虚函数可以是静态成员函数

2.在32位操作系统g++编译器环境下,下面程序的运行结果为()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#include <iostream>

using namespace std;

class A {

public:

    int b;

    char c;

    virtual void print() {

        cout << "this is father’s fuction! " << endl;

    }

};

class B: public A {

public:

    virtual void print() {

        cout << "this is children’s fuction! " << endl;

    }

};

int main(int argc, char * argv[]) {

    cout << sizeof(A) << "" << sizeof(B) << endl;

    return 0;

}

A 12 12

B 8 8

C 9 9

D 12 16

3. 下面描述正确的是

1

2

int *p1 = new int[10]; 

int *p2 = new int[10]();

正确答案:

A p1和p2申请的空间里面的值都是随机值

B p1和p2申请的空间里的值都已经初始化

C p1申请的空间里的值是随机值,p2申请的空间里的值已经初始化都初始化 0

D p1申请的空间里的值已经初始化,p2申请的空间里的值是随机值

4.若char是一字节,int是4字节,指针类型是4字节,代码如下:

1

2

3

4

5

6

7

8

9

10

11

13

class CTest

{

    public:

        CTest():m_chData(‘\0’),m_nData(0)

        {

        }

        virtual void mem_fun(){}

    private:

        char m_chData;

        int m_nData;

        static char s_chData;

};

char CTest::s_chData=’\0’;

问:

(1)若按4字节对齐sizeof(CTest)的值是多少?

(2)若按1字节对齐sizeof(CTest)的值是多少?

请选择正确的答案。正确答案:   

16 4

16 10

12 9

10 10

5.已知obj是一个对象,下面哪一个表达式是不可能出现的?()
[A] obj.100 [B]  !obj [C] obj++ [D] obj,100 。

6.下述程序中,类C的public各有哪些属性成员(  )。

class B1

{

public:

int i ;

protected :

int k ;

};

class B2

{

public:

int l ;

private:

int m;

protected :

int q ;

};

class B3

{

public:

int p1;

};

class C: public B2, protected B1, private B3

{

public:

int c;

};

[A] i/l/p1     [B] c/l     [C] c/l/q     [D] i/l/q

7.下述程序运行后,显示结果为( )。

class B1  

{

public:

B1(int i) {cout<<"constructing B1 "<<i<<endl;}

~B1( ) {cout<<"destructing B1 "<<endl;}

};

class B2

{

public:

B2(int j) {cout<<"constructing B2 "<<j<<endl;}

~B2( ) {cout<<"destructing B2 "<<endl;}

};

class B3

{

public:

B3( ){cout<<"constructing B3 *"<<endl;}

~B3( ) {cout<<"destructing B3 "<<endl;}

};

class C: public B2, public B1, public B3

{

public:

C(int a, int b, int c, int d):

     B1(a),memberB2(d),memberB1(c),B2(b){}

private:

B1 memberB1;

B2 memberB2;

B3 memberB3;

};

void main( )

{ C obj(1,2,3,4);   }

[A] constructing B2 2                 [B] constructing B1 1

constructing B1 1 constructing B2 2

constructing B3 * constructing B3 *

constructing B1 3 constructing B1 3

constructing B2 4 constructing B2 4

constructing B3 * constructing B3 *

destructing B3 destructing B3

destructing B2 destructing B2

destructing B1 destructing B1

destructing B3 destructing B3

destructing B1 destructing B1

destructing B2 destructing B2

[C] constructing B2 2 [D] constructing B2 2

constructing B1 1 constructing B1 1

constructing B3 * constructing B3 *

constructing B1 3 constructing B3 *

constructing B2 4 constructing B1 3

constructing B3 * constructing B2 4

destructing B3 destructing B3

destructing B2 destructing B2

destructing B1 destructing B1

destructing B3 destructing B3

destructing B2 destructing B1

destructing B1 destructing B2

8.下列关于C++中类的析构函数,说法正确的是(  )

[A] 析构函数必须自己实现

[B] 析构函数不能自己实现

[C] 析构函数不需要明确调用,系统会自动调用

[D] 析构函数的调用顺序和构造函数的调用顺序相同

9.如果派生类以proctected方式继承基类,则原基类的protected和public成员在派生类的访问性分别是(  )

[A] public和public

[B] public和protected

[C] protected和public

[D] protected和protected

  10.有如下头文件:

int F1();//普通的全局函数

static int F2();//静态函数

class CA

{

public:

int F3();//普通的成员函数

static int F4();//静态成员函数

};

在所描述的函数中,具有隐含this指针的是(  )

[A] F1 [B] F2

[C] F3 [D] F4

 11.已知Value是个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是(  )

[A] Value operator+(Value v, int i); [B] Value operator+(Value v=value, int i);

[C] Value operator+(Value v, int i=0); [D] Value operator+(Value v=value, int i=0);

 12.有如下类的定义:

Class MyClass

{

int value;

public:

MyClass(int n):value(n){}    

int getValue() const {return value;}

};

则类Myclass的构造函数的个数是:(  )

[A] 1个 [B] 2个

[C] 3个 [D] 4个

  13. 有如下类的定义:

class Constants

{

public:

static double GetPI(void){return 3.14159;}

};

Constants constants;

下列各组语句中,能输出3.14159的是(  )

[A] cout<<constants->GetPI();和cout<<Constants::GetPI();

[B] cout<<constants.GetPI();和cout<<Constants.GetPI();

[C] cout<<constants->GetPI();和cout<<Constants->GetPI();

[D] cout<<constants.GetPI();和cout<<Constants::GetPI();

14. #include <iostream>

using namespace std;

class VAC

{

public:

int f() const{return 3;}

int f(){return 5;}

};

int main()

{

VAC v1;

const VAC v2;

cout<<v1.f()<<v2.f();

return 0;

}

运行时的输出结果是(  )

[A] 53 [B] 35

[C] 55 [D] 33

15. 下面说法错误的是:()

  1. 在C++中多态的实现是通过虚函数表实现的。
  2. 当类中仅含有虚析构函数,不含有其它虚函数时,不产生虚函数表
  3. 每个类只有一份虚函数表,所有该类的对象共用同一张虚函数表
  4. 两张虚函数表中的函数指针可能指向同一个函数
  • 判断题(每题2分)
  1. 执行语句A * p=new A[100];时,类A的构造函数会被调用100次。 //
  2. 一个类中的成员函数重载(overload)可以用const修饰符、函数原型的参数个数、对应位置的参数的类型和返回值类型为依据。//
  3. 实例化派生类对象时,一定会调用到基类的某一个构造函数。//
  4. 如果类A是类B的友,类D以public继承方式从类B继承,则类A也是类D的友//
  5. 在同一个类中,可以定义重载的成员函数 void f(int& anInt);和void f(int anInt);。//
  6. 在public继承方式下,基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问。//
  7. C++中标识符内的大小写字母是没有区别的。//
  • 简答题(每题5分)

1.题:若char是1字节  int是4字节  指针是4字节

class CTest

{

public:

    CTest():m_chData('\0'),m_nData(0)

    {

        cout<<"11"<<endl;

    }

    

private:

    char m_chData;

    int m_nData;

    static int a;

};

int CTest::a = 10;

问:

1)若按4字节对齐,sizeof(CTest)值是多少     

2)若按1字节对齐,sizeof(CTest)值是多少   

2.题:设已经有A B C D四个类的定义,程序中A B C D析构函数的调用顺序为?

C c;

void main()

{

A* pa = new A();

B b;

static D d;

delete pa;

}

答:构造C A B D

析构 A B D C

3.题:

#include <iostream>

using namespace std;

class MyClass

{

public:

    MyClass(int i = 0)

    {

        cout<<i;

    }

    MyClass(const MyClass& other)//同类型的一个对象初始化另一个对象时调用

    {

        cout<<2;

    }

    MyClass &operator=(const MyClass& other)//给对象赋值时调用

    {

        cout<<3;

        return *this;

    }

    ~MyClass()//删除对象时调用

    {

        cout<<4;

    }

};

int main()

{

MyClass obj1(1), obj(2);//

  MyClass obj3 = obj1;//

  return 0;

}

程序运行结果:

答:

4.题:

#include <iostream>

using namespace std;

class A

{

private:

    int value;

public:

    A(int n)

    {

        value = n;

    }

    A(A other)

    {

        value = other.value;

    }

    void Print()

    {

        std::cout << value << std::endl;

    }

};

int main()

{

    A a = 10;//隐式转换  调用只有一个int类型参数的构造函数

    A b = a;//企图调用拷贝构造函数

    b.Print();

    return 0;

}

以上代码,分析编译运行的结果

答:

5.题:

#pragma pack(2)

class BU

{

    int number;     

union UBffer    

{

        char buffer[13];

        int number;

    }ubuf;

    void foo(){}  

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

enum{hdd,ssd,blueray}disk;   

}bu;

sizeof(bu)值是多少

答:

6.题:简述引用和指针的不同

答:

7.题:简述对多态的理解

答:

  • 编程题(6分)

编写程序,编写类String的构造函数、析构函数和赋值函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021-08-12c++考试题目 的相关文章

  • Maven本地仓库有jar包却无法导入项目

    本地的maven仓库有jar包 setting文件配置没问题 仓库路径没问题 但是无法导入到项目中 任务中总是显示在下载 从网上找了各种方法 其中一个 将本地仓库中的所有 remote repositories 文件删除 解决了问题 记录一
  • layuiajax提交表单控制层代码_表单提交中的post方法和get方法

    我们在Web表单提交 常常需要选择提交方法 这时我们会用到GET和POST方法 但关于它们之间的区别你又知道多少 今天我们就来了解它们 这两方法其实是HTTP协议中的请求方法 关于HTTP协议可以阅读之前我写的 解密Web通信协议 超文本传
  • Qt/GUI/布局/实现窗口折叠效果/且在操作时父窗口尺寸跟随变动

    文章目录 概述 无法resize到小尺寸 可行方案 其他方案 概述 本文旨在 实现如下所示的显示或隐藏 附加选项 的效果 以折的不常用信息和操作项 减少普通用户负担 提升用户体验 在某些软件中此类窗口折叠效果 常用 按钮 来触发 另一种折叠
  • 软考知识:有关ftp协议 的20端口和21端口的作用和区别

    转载 FTP服务器端口详解 搭建ftp的工具有哪些 贝锐花生壳官网 1 FTP服务器 file transfer protocol server 是在互联网上提供文件存储和访问服务的计算机 他们依照ftp协议提供服务 简单地说 支持FTP协
  • UE4地形简单材质球制作,及地形变黑处理办法

    UE4地形简单的材质球制作 及地形变黑处理办法 2 制作地貌材质球 别忙着创建地貌 在之前你得准备制作一个地貌材质球 新建材质 放到Material里面 找几张你会需要到的贴图 任意张 拖到材质球里面去 鼠标右键输入LandscapeLay
  • 感应(异步)电机磁场定向控制MATLAB/Simulink建模

    电机控制系列文章 感应 异步 电机磁场定向控制电流环PI控制参数设计 感应 异步 电机磁场定向控制速度环PI控制参数设计 目录 电机控制系列文章 前言 一 控制器与被控对象的采样周期 二 系统解算器设置 三 被控对象建模 四 控制器建模 1
  • Linux环境打包Qt程序并部署到Docker容器

    Linux环境打包Qt程序并部署到Docker容器 根据项目需要 将UKylin版本的qt应用程序打包并且部署到docker容器中 系统版本 UKylin版本 Ubuntu18 04 Docker镜像 Ubuntu latest 一 打包Q
  • 轴承剥离型故障对应的特征频率

    包络分析技术是轴承早期故障检测和诊断领域的一种非常有效的信号分析技术 这种技术最早由Mechanical Technology 公司于 1970 年代提出 最初叫做高频共振技术 由于这种技术非常有效 很快就获得了广泛的使用 这种技术还被称作
  • Liunx(一)VMware虚拟机安装学习--Liunx学习的准备

    虚拟机安装 初衷 一 安装前的准备 二 虚拟机硬件配置 2 1 打开VMware 选择 创建新的虚拟机 2 2典型安装与自定义安装 2 3 虚拟机兼容性选择 2 4 选择稍后安装操作系统 2 5操作系统的选择 2 6 虚拟机位置与命名 2
  • sqlmap使用教程

    目录 sqlmap基础使用 1 判断是否存在注入 2 判断文本中的请求是否存在注入 3 查询当前用户下的所有数据库 4 获取数据库中的表名 5 获取表中的字段名 6 获取字段内容 7 获取数据库所有用户 8 获取数据库用户的密码 9 获取当
  • 【廖雪峰python入门笔记】tuple_创建

    tuple 1 是另一种有序的列表 中文翻译为 元组 2 tuple 和 list 非常类似 但是 tuple一旦创建完毕 就不能修改了 同样是表示班里同学的名称 用tuple表示如下 t Adam Lisa Bart 创建tuple 创建
  • 小米笔记本电脑Ruby-15.6 2018/2019款【完美黑苹果MacOS 12 Monterey】

    小米笔记本电脑Ruby 15 6 2018 2019 完美黑苹果 MacOS 12 Monterey XiaoMi Book Ruby 15 6 已完美驱动 扬声器 WiFi 蓝牙 触摸板 开关按F9 有线网络 内置读卡器 因影响白果卡蓝牙
  • 【华为OD机试】数组拼接(C++ Python Java)2023 B卷

    题目描述 有多组整数数组 把他们按如下规则拼接成一个新的数组 从每个数组中按顺序取出固定数列的内容 合并到新数组中 已取出的内容将从原始数组中去除 如果该行不足固定长度或者已经为空 则直接取出剩余部分放到新数组中 继续下一行 输入描述 第一
  • 【多模态】8、MDETR

    文章目录 一 背景 二 方法 2 1 DETR 2 2 MDETR 三 效果 3 1 预训练调整后的检测器 3 2 下游任务 论文 MDETR Modulated Detection for End to End Multi Modal U
  • 图标生成器

    https icon wuruihong com 转载于 https www cnblogs com zhaoxinmei 123 p 11083478 html
  • Tensorflow(1)进行多维矩阵的拆分与拼接

    最近在使用tensorflow进行网络训练的时候 需要提取出别人训练好的卷积核的部分层的数据 由于tensorflow中的tensor和python中的list不同 无法直接使用加法进行拼接 后来发现一个函数可以完成tensor的拼接 函数
  • SaToken踩坑记录

    最近在工作过程中频繁使用satoken做权限认证 很好用 但是也带来了一些坑 一 与knife4j搭配使用 问题描述 使用satoken做权限认证后 knife4j的doc html页面无法打开 解决方案 satoken将knife4j的d
  • 使用python自动回复微信消息(基于图像识别无封号风险)

    不同于其他的外挂思路 不使用 itchat 不使用 itchat 不使用 itchat 这个网页登录的渠道已经被微信关闭了 直接正常登录你的电脑微信 然后使用图像识别微信的消息图标 收到消息后可以根据自定义的接口或者字典自动回复消息 这个程
  • 网站下方版权信息的正规写法

    文章目录 格式 其中需注意 一个特别 教科书 版的例子 来自菜鸟教程最下方版权信息 其他写法 写在最后 虹棠包有话说 格式 Copyright 年份 名称 网站首页网址 All Rights Reserved 备案号 其中需注意 年份可以是
  • 计算机信息安全技术课后习题答案3-4章

    目录 第三章 信息认证技术 一 选择题 二 填空题 三 简答题 第四章 计算机病毒 一 选择题 二 填空题 三 简答题 第三章 信息认证技术 一 选择题 身份认证是安全服务中的重要一环 以下关于身份认证的叙述不正确的是 B A 身份认证是授

随机推荐

  • 马来西亚理科大学 计算机 校区,马来西亚理科大学在马来西亚是一个怎样的存在?...

    原标题 马来西亚理科大学在马来西亚是一个怎样的存在 马来西亚理科大学成立于 1969 年 马来西亚理科大学是大马建立的第二所国立大学 也是马来西亚五所研究密集型大学之一 马来西亚理科大学是一所全球排名前 1 的顶尖大学 它的医学 理学 工程
  • 【Unity】虚拟现实 VRTK插件使用教程(六)VR UI (UGUI和VRTK的事件处理机制)

    文章目录 UI 2D UI 画布设置 相机设置 用途 3D UI 画布设置 交互 UGUI事件处理流程 VRTK事件处理流程 VRTK源码解析 UI UI通常按类别分为三种 即2D UI 3D UI 模型UI 2D UI 2D UI固定在屏
  • 设计模式之迭代器模式

    迭代器模式 1 需求 编写程序展示一个学校院系结构 一个学校中有多个院 一个学院中有多个系 效果图 2 解决方案 使用迭代器模式进行遍历 将数据的存储和数据的遍历进行分离 3 迭代器模式的简单介绍 迭代器模式 Iterator Patter
  • 使用sql语句对数据库脱敏

    最近帮领导整理了一下数据库 给数据库的某些字段进行脱敏 现在整理一下 嘻嘻 1 姓名脱敏 update table set 列 REPLACE 列 SUBSTR 列 2 1 姓名脱敏之后的效果 2 手机号脱敏 UPDATE table SE
  • mongo简介——update & findAndModify

    由于发现mongo更新太快 跟我之前所学有很多差异 尤其是聚合操作 比较早的版本只有group和mapreduce两个函数 不支持avg max min sum这些操作 现在除了增加了这些常用操作以外还提供了更加丰富的聚合功能 从这一篇开始
  • 制作插件以及用插件克隆物体

    using System Collections using System Collections Generic using UnityEditor using UnityEngine using UnityEngine UI publi
  • uboot命令使用学习(2)

    学习目标 uboot命令使用学习 2 学习内容 学习使用了正点原子的I MX6ULL教程及开发平台 使用uboot的内存操作命令 直接对DRAM进行读写操作 1 md 2 nm 3 mm 4 mw 5 cp 6 cmp 学习时间 2022
  • CVPR 2022 论文列表(持续更新)

    本文包括论文链接及代码 关注公众号 AI基地 及时获取最新资讯 学习资料 GitHub链接 GitHub gbstack cvpr 2022 papers CVPR 2022 papers with code 因为CSDN的markdown
  • Unity中Pivot和Center的区别与应用

    Pivot指的是轴心 是模型在建模软件中构建时指定的 可以在建模软件中进行更改 如果选择了场景中的多个物体的话 则坐标是第一个选中的物体的Pivot坐标 Center指的是中心 是在Unity中根据模型的mesh信息计算得到的中心位置 是所
  • QML学习二:Doxygen为qml工程生成代码文档

    效果如下 设置后能够支持 js和 qml文档 QML学习二 Doxygen为工程生成注释文档 前言 一 安装doxyqml 二 Doxygen设置 1 文档目录设置 2 文档目录设置 三 添加注释 总结 前言 好的代码必须配一个好的文档说明
  • linux named dns中继,菜鸟linux DNS搭建问题,请指教

    下面是相关配置文件内容 ip为192 168 247 168 root localhost named root localhost named root localhost named cat etc resolv conf Genera
  • KEGG_cnetplot绘制基因—通路图(展示想要的通路)——R

    以KEGG富集结果为例 首先进行KEGG富集分析 library clusterProfiler de ekp lt enricher gene TERM2GENE pathway2gene TERM2NAME pathway2name p
  • 多路转接IO/多路复用 select 、poll、 epoll

    多路转接IO 1 多路复用 多路转接 2 作用 I0多路转接可以完成大量描述符的监控 监控的事件 可读事件 可写事件 异常事件 3 当使用多路转接的时候 多路转接接口发现了某一一个文件描述符就绪的时候 就会通知进程 让进程针对某一个描述符进
  • Qt安装教程

    Qt 实际上是一个 C 的桌面图形窗口类库 就是一些 lib 跟 dll 只要把这些 类库引入自己的项目 就能调qt类库做一些操作 例如创建窗口 所以你可以把 这些 qt 的 类库配置在 vs2019 clion 里面使用都是可以的 Qt
  • numpy回忆

    numpy对矩阵操作后 输出的形状与想象的不一样 记个笔记代码 点乘的padding操作容易出错 开发时间 4 24 import numpy as np Data np array 1 2 255 255 0 255 255 0 0 3
  • 墨刀使用笔记

    一 拖动的集中方式 1 按住空格键拖动 2 按住鼠标中间键拖动 3 永久拖动 按住空格键 Alt a 注 必须启动微信 按住空格键拖动即可取消永久拖动
  • wind10生成 SSH 公钥---实现github本地部署、上传

    wind10生成 SSH 公钥 实现github本地部署 上传 1 Git 生成 SSH 公钥 如前所述 许多 Git 服务器都使用 SSH 公钥进行认证 为了向 Git 服务器提供 SSH 公钥 如果某系统用户尚未拥有密钥 必须事先为其生
  • Java的常考问题

    Java的垃圾回收机制 http www importnew com 26821 html https www cnblogs com andy zcx p 5522836 html Java语言支持的8种基本类型是 整数型 byte sh
  • vue路由history模式刷新404问题解决方案

    server listen 8888 默认端口是80 如果端口没被占用可以不用修改 server name localhost root E vue my project dist vue项目的打包后的dist location try f
  • 2021-08-12c++考试题目

    一 选择题 每题3分 1 关于虚函数 正确的描述是 A 构造函数不能是虚函数 B 析构函数不能是虚函数 C 虚函数可以是友元函数 D 虚函数可以是静态成员函数 2 在32位操作系统g 编译器环境下 下面程序的运行结果为 1 2 3 4 5