青少年编程能力等级测评CPA C++五级试卷(1)

青少年编程能力等级测评CPA C++五级试卷(1)

一、单项选择题(共15题,每题3分,共45分)

CP5_1_1.下列有关类的重用意义的叙述中,不正确的是(  )。                

A.类的重用有利于代码结构的维护

B.类的重用有利于减少代码的冗余

C.类的重用有利于提升程序的执行效率

D.类的重用有利于提升程序的可扩展性和灵活性

CP5_1_2.类的组合,其核心特征是(  )。

A.一个类内嵌其他类作为成员

B.一个类内嵌其他类的私有成员作为成员

C一个类内嵌其他类的保护成员作为成员

D.一个类内嵌其他类的对象作为成员

CP5_1_3.执行下列代码,输出结果是(  )。

#include <iostream>

using namespace std;

class Point {

public:

    Point(int a) :x(a+1) {};

    void print() {

        cout << "x:" << x <<" ";

    }

private:

    int x;

};

Point& re_p(int a) {

    Point* res = new Point(a+1);

res->print();

    return *res;  

}

int main(){

    Point& a = re_p(2);

    a.print();

return 0;

}

A.x:2 x:2

Bx:2 x:3

C.x:3 x:4

Dx:4 x:4

CP5_1_4.执行下列代码,输出结果是(  )。

#include <iostream>

using namespace std;

class B;

class A {

  public:

char ia;

    A() {ia = 'A';}

    B *b;

};

class B {

  public:

char ib;

    B() {ib = 'B';}

    A oa;

};

int main() {

  A t1;

  t1.b = new B();

  B t2;

  cout << t1.ia <<t1.b->ib;

  cout << t2.ib<<t2.oa.ia<<endl;

  return 0;

}

A.ABBA

B.AABB

C.BBAA

D.BAAB

CP5_1_5.在C++中,类的默认继承方式是(   )。

A.公有继承

B.私有继承

C.保护继承

D.多态继承

CP5_1_6.执行下列代码,输出结果是(  )。    

#include <iostream>

using namespace std;

class Person{

public:

   void Print(){cout<<'P';}

   void Output(){cout<<1;}

   virtual ~Person(){cout<<3; }

};

class Tom:public Person{

public:

    void Print(){cout<<'T';}

};

int main(){

Tom a;

a.Output();

a.Print();

return 0;

}

A.1T   

B.1P    

C.1T3    

D.1P3

CP5_1_7.在公有继承的情况下,允许派生类中新定义的成员函数直接访问的基类成员是(  。   

A.公有成员和保护成员

B.公有成员

C.保护成员和私有成员

D.公有成员、保护成员和私有成员

CP5_1_8.有如下类的声明,则在创建一个类 C 的对象时,输出的信息是( )。

class A{

public:

A(){ cout<<'A';}

};

class B{

public:

B(){ cout<<'B';}

A aa;

};

class C:public B{

public:

C(){ cout<<'C'; }

};

A.ABC

B.BAC

C.BCA

D.CBA

CP5_1_9.C++要实现运行时多态性,需使用的是(   )。       

A.构造函数

B.析构函数

C.虚函数

D.重载函数

CP5_1_10.有如下类声明,则下列叙述正确的是(  )。       

class A{

  public:

  virtual void fun1(){}

  void fun2(){}

};

class B:public A{

  public:

      virtual void fun2(){cout <<"fun2";}

  void fun1(){cout<<"fun1";}

};

A. A::fun2()和B::fun1()都不是虚函数     

B. A::fun2()和B::fun1()都是虚函数     

C. A::fun2()是虚函数,而B::fun1()不是虚函数     

D. A::fun2()不是虚函数,而B::fun1()是虚函数

CP5_1_11.下列关于模板的叙述中,错误的是(  )。

A.模板形参只能由关键字 typename 声明

B.函数模板中可能含有虚拟类型参数

C类模板的成员函数都是模板函数

D.满足一定条件时可以省略模板实参

CP5_1_12.下列代码是函数模板声明及变量定义,则下列调用语句错误的是(  )。

template <class T1, class T2, class T3> T1 sum(T2,T3);

double d1,d2;

A.sum<double,double>(d1,d2);

B.sum<double>(d1,d2);

C.sum<double,double,double>(d1,d2);

D.sum(d1,d2);

CP5_1_13.下列有关类模板的叙述中,错误的是(  )。

A.类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化

B.可以为类模板参数设置默认值

C.类模板描述了一组类

D.一个类模板中只允许有一个类型参数

CP5_1_14.运行下列代码,若能够输出3.8,则/**(1)**/处应填写的语句是( )。

#include<iostream>

using namespace std;

template <class T>

class A{

  private:

     T a1,a2;

  public:

    A(T aa1,T aa2){

      a1=aa1;

      a2=aa2;

    }

  T add(){

    T sum;

    sum=a1+a2;

    return sum;

   }

};

int main(){

  /**(1)**/

  cout<<a.add()<<endl;

  return 0;

}

A. A a(1.5,2.3);

B. A<double> a(1.5,2.3);

C. <double> A a(1.5,2.3);

D. double A a(1.5,2.3);

CP5_1_15.STL引入C++后,新增的编程模式是(   )。

A.泛型程序设计

B.面向过程程序设计

C.数据抽象程序设计

D.面向对象程序设计

二、多项选择题(共5题,每题2分,共10分)

CP5_1_16.下列有关类的组合和继承的叙述中,正确的有(  )。         

A.组合和继承都是类重用的实现方法之一

B.类的组合,整体类自动获得局部类的全部接口

C.类的继承,子类可自动继承父类的接口

D.组合关系和继承均破坏了类的封装性

CP5_1_17.下列有关派生类的叙述中,正确的有(  )。           

A.一个派生类可以作为另一个派生类的基类

B.派生类至少有一个基类

C.派生类只继承了基类的公有成员和保护成员

D.派生类默认的继承方式是private

CP5_1_18.执行下列代码,若输出结果为:“2023-3-20”,则/***code***/处可以填写的代码有(   )。

#include<iostream>

#include<string>

using namespace std;

class Date{

protected:

    int day,month,year;

public:

    Date(int day,int month,int year){

        this->day=day;

        this->month=month;

        this->year=year;

    }

    friend ostream& operator<<(ostream &os,const Date &d);

};

ostream& operator<<(ostream &os,const Date &d){

        cout<<d.year<<"-"<<d.month<<"-"<<d.day<<endl;

        return os;

    }

int main(){

    /***code***/

    cout<<d<<endl;

}

A.string d="2023-3-20";

B.string d="2023,3,20";

C.Date d(20,3,2023);

D.Date d(20.,3.,2020.);

CP5_1_19.设有如下模板定义,则对func的调用,正确的有(  )。       

Template <class T>

T func(T x ,T y) {return x*x+y*y;}

A. func(3,5)     

B. func<>(3,5)     

C. func(3,5.5)     

D. func<int>(3,5.5)

CP5_1_20.下列基本容器,属于STL标准模板库中关联容器的有(  )。

A.双端队列

B.集合

C.单向链表

D.映射

三、编程题(共3题,每题15分,共45分)

CP5_1_21.编写程序实现如下功能:

通过定义组合类,输入平面直角坐标系上的一个坐标点(x,y),求该坐标点到坐标原点的距离。

说明:

(1)定义坐标点是Point类对象。使用Dis()函数获得坐标点到圆心的距离。点到圆心间的距离公式:

 。

(2)编程过程中对于程序给定的部分不允许修改,考生仅允许在/****code****/提示行区间内作答。

#include <iostream>

#include <cmath>

using namespace std;

class Point{                 //坐标点

/*********code*********/

/************code***********/

};

class Distance{                      //坐标点到圆心的距离

/***************code****************/

   /****************code**************/  

    private:

Point t;  //组合类成员

};

int main()

{

float x,y;

cin>>x>>y;

Distance D;

cout << "Distance="<<D.Dis(x,y)<<endl;

return 0;

}

样例1:

输入:1  1

输出:Distance=1.41421

样例2

输入:-3 -4

输出:Distance=5

CP5_1_22.编写程序实现如下功能:

输入圆的半径,求球体表面积及体积。球体看作由圆继承而来,定义圆类Circle作为基类,Sphere类为派生类。在派生类中对虚函数area()和volume()重新定义,求球体的表面积和体积。

说明:

(1)球体表面积=4*π*r2 ;  球体体积=4/3*(π*r3)。

(2)编程过程中对于程序给定的部分不允许修改,考生仅允许在/****code****/提示行区间内作答。

#include <iostream>          

using namespace std;      

const double PI=3.14;      

class Circle{

//基类:定义一个数据成员radius作为半径,两个虚函数area()和volume()     

  /************code************/

 /****************code************/

};      

class Sphere:public Circle{  

//派生类Sphere 求圆的表面积和体积    

  /*************code****************/

 /**************code****************/

};      

    

int main(){

   double r;

   cin>>r;

   Sphere s(r);

   cout <<s.area() << endl;

   cout << s.volume() << endl;      

   return 0;      

}

样例1:

输入:1.0

输出:12.56

4.18667

样例2

输入:2.5

输出:78.5

65.4167

CP5_1_23.编写程序实现如下功能:

通过编写函数模板,实现求解3个数值从小到大的排序。3个值可以是整型、浮点型或者字符型。

说明:编程过程中对于程序给定的部分不允许修改,考生仅允许在/****code****/提示行区间内作答。

#include <iostream>

using namespace std;

template <class T>

/****************code****************/

/***************code*****************/

int main(){

int Int[3],m=0;

char Char[4]="";

double Double[3];

//输入一个整数:1代表整数排序;2代表字符排序;3代表浮点数排序

cin>>m;

switch(m)

{case 1: cin>>Int[0]>>Int[1]>>Int[2];

         MinToMax(Int);

 break;

 case 2: cin>>Char[0]>>Char[1]>>Char[2];

     MinToMax(Char);

 break;

 case 3: cin>>Double[0]>>Double[1]>>Double[2];

     MinToMax(Double);

 break;

 default: return 0;

}

    return 0;

}

样例1:

输入:1

12 2 -9

输出:-9 2 12

样例2

输入:2

D e C

输出:C D e

样例3:

输入:3

2.3 4.5 1.2

输出:1.2 2.3 4.5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/57695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

栈(数据结构)——C语言

1 概念与结构 栈&#xff1a;⼀种特殊的线性表&#xff0c;其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作 的⼀端称为栈顶&#xff0c;另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#…

如何动态改变本地的ip

在当今数字化时代&#xff0c;网络连接已成为我们日常生活和工作中不可或缺的一部分。无论是出于隐私保护、突破地域限制&#xff0c;还是为了测试和优化网络应用&#xff0c;动态改变本地IP地址的需求日益增多。本文将详细介绍如何安全、有效地实现这一目标&#xff0c;旨在帮…

Linux巡检利器xsos的安装和使用

一、 一般项目基本完成的时候&#xff0c;后期运维工作的重点就是及时的&#xff0c;合理的频率巡检了&#xff0c;巡检的目的主要是及时发现各种各样的问题 那么&#xff0c;自己编写shell脚本是大部分人的第一选择&#xff0c;这里有个比较麻烦的地方&#xff0c;shell脚本…

升级phpcmsV9系统的jquery版本引起的问题处理

前言&#xff1a; 如果jquery文件名修改了&#xff0c;/phpcms/modules/admin/templates/header.tpl.php文件中的jquery名称需要对应修改 一、后台输入框的验证问题 /statics/js/formvalidator.js文件调整为&#xff1a;点击下载 二、后台全选失效问题 1、/phpcms/modules/…

通过 Lighthouse 和 speed-measure-webpack 插件分析优化构建速度与体积

一、Lighthouse Lighthouse是 Google Chrome 推出的一款开源自动化工具&#xff0c;谷歌浏览器中已经集成&#xff0c;它可以搜集多个现代网页性能指标&#xff0c;分析 Web 应用的性能并生成报告&#xff0c;为开发人员进行性能优化的提供了参考方向。 Lighthouse会生成一份报…

Aatrox-Bert-VITS2部署指南

一、模型介绍 【AI 剑魔 ①】在线语音合成&#xff08;Bert-Vits2&#xff09;&#xff0c;将输入文字转化成暗裔剑魔亚托克斯音色的音频输出。 作者&#xff1a;Xz 乔希 https://space.bilibili.com/5859321 声音归属&#xff1a;Riot Games《英雄联盟》暗裔剑魔亚托克斯 …

分布式IO模拟量模块:多领域应用的高效能解决方案

分布式IO模拟量模块是分布式IO系统中的重要组件&#xff0c;用于实现现场设备或过程的模拟量信号的采集、监视和控制。该模块通常与现场总线耦合器配合使用&#xff0c;能够接收来自现场设备的模拟量信号&#xff08;如电流、电压等&#xff09;&#xff0c;并将其转换为数字信…

谷歌地图 | 与 Android 版导航 SDK 集成的最佳实践

谷歌最近宣布了导航 SDK&#xff0c;它可以让您将熟悉的 Google 地图逐向导航体验无缝集成到您的 Android 和 iOS 应用程序中。 这篇博文概述了一些最佳实践&#xff0c;您可以使用这些实践为您的 Android 应用程序使用导航 SDK 构建流畅、一致且可靠的导航体验。 与导航地图…

Linux系统安装软件的4种方式【源码配置编译安装、yum安装、rpm包安装、二进制软件包安装(.rpm/.tar.gz/.tgz/.bz2)】

一.源码安装 linux安装软件采用源码安装灵活自由&#xff0c;适用于不同的平台&#xff0c;维护也十分方便。 &#xff08;一&#xff09;源码安装流程  源码的安装一般由3个步骤组成&#xff1a; 1.配置&#xff08;configure&#xff09; Configure是一个可执行脚本…

5586 直播获奖(live)

经验值&#xff1a;1200 时间限制&#xff1a;1000毫秒 内存限制&#xff1a;256MB 全国2020CSP-J普及组试题 不许抄袭&#xff0c;一旦发现&#xff0c;直接清空经验&#xff01; 题目描述 Description NOI2130 即将举行。为了增加观赏性&#xff0c;CCF 决定逐一评出每个…

YOLOv11在目标检测中的应用及其与PaddleDetection的对比

近年来&#xff0c;目标检测模型在诸如自动驾驶、安全监控等应用中发挥了关键作用。众多模型中&#xff0c;YOLO&#xff08;You Only Look Once&#xff09; 系列凭借其在速度和精度之间的良好平衡脱颖而出。YOLOv11 作为该系列的最新版本之一&#xff0c;凭借其多项创新&…

Vue.js 入门教程

Vue.js 入门教程 一、引言 Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。与其他重量级框架不同&#xff0c;Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层&#xff0c;并且非常容易上手&#xff0c;同时也很容易与其他库或已有项目整合。本文将引导…

FPGA秋招必看基础 | FPGA设计流程

关注&#x1f446; 望森FPGA &#x1f446; 查看更多FPGA资讯 这是望森的第 30 期分享 作者 | 望森 来源 | 望森FPGA 目录 摘要 1 明确需求、设计系统架构 2 RTL 输入 3 功能仿真&#xff08;Behavioral Simulation&#xff09; 4 综合&#xff08;Synthesis&#xff09;…

Qgis 开发初级 《符号化》

本章主要简介Qgis 的矢量图层的符号化。Qgis的符号化具体作用于每个图层&#xff0c;图层通过具体的方法设置符号化样式。 1、QgsFeatureRenderer Qgs的符号化类主要是QgsFeatureRenderer&#xff0c;这是一个抽象类&#xff0c;它派生出了许多类&#xff0c;如下所示。常用的…

self-supervised learning(BERT和GPT)

1芝麻街与NLP模型 我們接下來要講的主題呢叫做Self-Supervised Learning&#xff0c;在講self-supervised learning之前呢&#xff0c;就不能不介紹一下芝麻街&#xff0c;為什麼呢因為不知道為什麼self-supervised learning的模型都是以芝麻街的人物命名。 因為Bert是一個非常…

使用Bert+BiLSTM+CRF训练 NER任务

使用的数据集在这里E-Commercial NER Dataset / 电商NER数据集_数据集-阿里云天池 针对面向电商的命名实体识别研究&#xff0c;我们通过爬取搜集了淘宝商品文本的标题&#xff0c;并标注了4大类&#xff0c;9小类的实体类别。具体类型及实体数量如下 针对面向电商的命名实体…

iptables防火墙总结

iptables防火墙总结 四表五链 P 默认策略&#xff0c;-p 协议 出口防火墙&#xff0c;默认配置&#xff0c;使用Forword&#xff0c;采用-P 例题&#xff1a;设置iptables防火墙默认不允许任何数据包进入&#xff0c;相应命令是&#xff1a; Iptables -t filter -P FORWORD -j…

undertow服务器初始化

springboot整合undertow服务器的源码从老生常谈的createWebServer方法谈起。spring会在生成所有bean后到创建web容器&#xff0c;此时会到容器找到ServletWebServerFactory接口bean&#xff0c;spring会根据引入的框架确定生成的ServletWebServerFactory&#xff0c;我们在mave…

【数据结构】五分钟自测主干知识(十一)

上回&#xff08;半年前&#xff09;我们讲了二叉树&#xff0c;如果我们要找到二叉树某序遍历下的前驱和后继&#xff0c;我们需要对其作动态遍历求得&#xff0c;比较费时&#xff1b;或者给每个结点增加两个指针域prior和next&#xff0c;但比较费空间。 有没有既能省时间&…

docker部署SQL审核平台Archery

1、概述 Archery 是一个开源的 SQL 审核平台,专为数据库的 SQL 运维和管理而设计,广泛应用于企业的数据库运维工作中。其主要功能是帮助数据库管理员和开发人员实现 SQL 审核、SQL 执行、在线执行、查询、工单管理、权限控制等数据库管理相关的操作。 Archery 的主要功能包括…