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

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

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

CP4_1_1.在面向对象程序设计中,与数据构成一个相互依存的整体的是(  )。

A. 对数据的操作    

B. 对数据的封装      

C. 对数据的隐藏    

D. 对数据的抽象

CP4_1_2.已知定义了类Day,并且在该类之前已经定义了类Week。下列关于类Day的数据成员定义语句,不正确的是(  )。

A.Week weekend;

B.Day  *today;

CDay  yestoday;

Dint  tomorrow;

CP4_1_3.下列有关类与对象的关系叙述中,不正确的是(  )。

A.对象是类的实例

B.一个类只能拥有一个对象

C.一个对象只能属于一个类

D.类是抽象的,不占用内存,而对象是具体的,占用内存

CP4_1_4.若Demo为一个类,则执行Demo sa; 语句时,将自动调用该类的(  )。  

A. 有参构造函数

B. 无参构造函数

C. 拷贝构造函数

D. 赋值重载函数  

CP4_1_5.类的复制构造函数的参数是(  )。

A. 类对象

B. 类对象的成员

C. 类对象的引用

D. 指向类对象的指针

CP4_1_6.执行下列代码,运行结果是(  )。  

#include<iostream>

using namespace std;

class aClass{

public:

    aClass(int n) { i=n; }

    void set(int n){ i=n; }

    int get( ){ return i; }

private:

    int i;

};

void sqr(aClass ob)

{

    ob.set(ob.get()*ob.get());

    cout<<ob.get()<<" ";

}

int main()

{

    aClass obj(10);

    sqr(obj);

    cout<<obj.get( )<<endl;

return 0;

}   

A.10 10

B.100 100

C.10 100

D.100 10

CP4_1_7.执行下列代码,运行结果是(  

#include<iostream>

#include<string>

using namespace std;

class MyBag{

  public:

    MyBag(string br="OK"):brand(br) { cout<<brand<<" "; }

  private:

    string brand;

};

int main(){

  MyBag arrays[2]={MyBag("GO")};

  return 0;

}

A.OK OK

B.GO GO

C.GO OK

D.OK GO

CP4_1_8.执行下列代码,运行结果是(  )

#include <iostream>

using namespace std;

class Member{

public:

    Member(){

        std::cout << "N1 " ;

    }

    ~Member(){

        cout << "N2 " ;

    }

};

class Test{

private:

    Member member;

public:

    Test(){

        cout << "N3 ";

    }

    ~Test(){

        cout << "N4 ";

    }

};

int main(){

    Test* test = new Test();

    delete test;

cout<<endl;

    return 0;

}

A.N1 N2 N3 N4

B.N3 N4 N1 N2

C.N1 N3 N4 N2

D.N3 N1 N2 N4

CP4_1_9.在C++中,结构体是一种特殊的类,其成员默认的访问权限是(  )。       

A.public

B.private

C.static

D.protected

CP4_1_10.下列有关对静态数据成员的叙述中,正确的是(  )。       

A.静态数据成员可以在类体内进行初始化

B.静态数据成员不可以被类的对象调用

C.静态数据成员不受private控制符的作用

D.静态数据成员可以直接用类名调用

CP4_1_11. 执行下列代码,运行结果是(  )。

#include<iostream>

using namespace std;

class Cd{

  public:

     static int cacu();

  private:

     static int sum;    

 };

int Cd::sum=20;

int Cd::cacu(){

   return(sum=sum*3);

}

int main(){

cout<<Cd::cacu()<<","<<Cd::cacu()<< endl;

return 0;

}

A.60,180

B.180,60

C.60,60

D.180,180

CP4_1_12.执行下列代码,运行结果是(  )。       

using namespace std;

#include <iostream>

class Sample{

int n;

public:

  Sample(int i){n=--i;}

  friend int Plus(Sample &s1,Sample &s2);

};

int Plus(Sample &s1,Sample &s2){

   return s1.n*s2.n;

}

int main(){

  Sample s1(5),s2(6);

  cout << Plus(s1,s2)<<endl;

  return 0;

}

A. 20     

B. 24     

C. 25     

D.30

CP4_1_13.下列有关友元成员的叙述中,不正确的是(  )。

A. 友元成员可以声明在类的public部分,也可以声明在private部分

B. 友元成员包括友元函数、友元成员函数和友元类

C. 通过友元成员可以让外部函数直接访问类的私有数据

D. 类之间的友元关系是可以传递的,即是可逆的

CP4_1_14.下列代码定义了两个类,有关这两个类的叙述中,正确的是(  )。

class B{

friend class A;

    public: int x;

    private:int y;

};

class A{

   public: float m;

   private:float n;

};

A.B是A的友元类,B可以访问A中的私有成员

B.B是A的友元类,A可以访问B中的私有成员

C.A是B的友元类,B可以访问A中的私有成员

D.A是B的友元类,A可以访问B中的私有成员

CP4_1_15.下列有关vector容器的定义语句,不正确的是(  )

A. vector <int> v(10);

B. vector <char> v;

C. vector v;

D. vector <double> v;

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

CP4_1_16.下列代码定义了类和对象,能够正确完成函数调用的语句有(  )。

class A{

public:

   A(int x):data(x){}

   int GetData() const{return data;}

   void SetData(int n) {data = n;}

private:

   int data;

};

const  A a(5);

A b(7);

A.a.GetData();

B.a.SetData(8);

C.b.GetData(8);

D.b.SetData();

CP4_1_17.下列代码定义了类MyClass,有关其对象数组的定义语句,正确的有(  )。

class MyClass{

int n;

public:

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

};

A.MyClass x1[2];

B.MyClass x2[2]={new MyClass(1),new MyClass(2)};

C.MyClass *x3[2];

D.MyClass x4[2]={MyClass(1),MyClass(2)};

CP4_1_18.下列有关类的静态成员的叙述中,正确的有(  )。

A.类的静态成员可以解决同一个类的不同对象之间的数据和函数的共享问题

B.类的静态数据成员和静态成员函数的声明均需以关键字static开始

C.类的静态数据成员必须进行初始化,初始化时必须加关键字static

D.类的静态成员函数只能在类体内定义,不可以在类外定义

CP4_1_19.下列有关友元函数的叙述中,正确的有(  )。

A.友元函数可以是不属于任何类的非成员函数

B.友元函数是它声明语句所在类的成员函数

C.友元函数破坏了类的封装性和隐藏性

D.友元函数不能访问类的私有成员

CP4_1_20.下列运算符中,只能作为成员函数重载的运算符有(  )。

A. []

B. ()

C. ->

D. &&

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

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

用户输入圆的半径,通过类的定义和计算,求圆的周长和面积。

说明

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

(2)圆周率的值取3.14。

#include <iostream>

using namespace std;

class Circle

{

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

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

private:

    double m_r;

};

int main(void)

{

    Circle c;

    double r;

    double girth; //周长

    double area;  //面积

    cin >> r;     //输入半径

    c.set(r);

    girth = c.getGirth();

    area = c.getArea();

    

    cout <<  girth << endl;

    cout <<  area << endl;

return 0;

}

样例1:

输入: 1

输出: 6.28

3.14

样例2: 

输入: 2.5

输出: 15.7

       19.625

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

通过类的静态成员实现计数统计。用户输入预构造三角形的数量n(n≤10)以及n个三角形的边长。输出满足可以构建成为三角形的对象的总数。

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

#include <iostream>

using namespace std;

class Triangle

{ /******************************code*****************/

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

};

int Triangle::T_Count = 0; // 初始化类 Triangle 的静态成员

int main( )

{

   int n;

   double c1,c2,c3;    //三角形的三边长度

   Triangle *t[10];

   cin >> n;         // 输入要构造的三角形数量, 小于等于10

   for(int i=0;i<n;i++){

   cin>>c1>>c2>>c3;

   t[i]=new Triangle(c1,c2,c3);

   }

   cout << Triangle::getCount() << endl;  //创建对象之后输出满足要求的对象总数

   return 0;

}

样例1:

输入:3

      1 1 1

      1 2 3

      3.4 4.2 5.6

输出:2

样例2:

输入:1

2.2 5.4 2.3

输出:0

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

定义complex类,通过重载运算符“+”,使之能实现复数的加法运算。用户输入两个复数的实部和虚部值,输出两个复数以及两个复数相加后的结果。

说明:

(1)本程序中,复数的实部和虚部值均为整数;

(2)若虚部的值为0,则该复数即为整数,其输出也是整数的形式,例如4+0j,输出为4。

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

#include<iostream>

using namespace std;

class complex{

private:

   int real;

   int image;

public:

   complex();

   complex(int real_,int image_);

void show();

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

    

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

};

complex::complex(){

real = 0;

image = 0;

}

complex::complex(int real_,int image_){

real = real_;

image = image_;

}

void complex::show(){

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

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

}

int main(){

   int r1,r2,i1,i2; //分别表示两个复数的实部和虚部的值

   complex c;      // 创建complex类的对象

   cin>>r1>>i1;   //输入数1的实部及虚部

   cin>>r2>>i2;  //输入数1的实部及虚部

   complex a(r1,i1); //创建复数a对象

   complex b(r2,i2); //创建复数b对象

   a.show();  //显示复数a

   b.show();  //显示复数b

   c = a + b; // +在复数加中的实现

   c.show(); // 显示相加后的复数c

   return 0;

 }

样例1:

输入:1 2

3 4 

输出:1+2j

3+4j

4+6j

样例2:

输入:1 -2

      1 2

输出:1-2j

1+2j

2

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

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

相关文章

想让前后端交互更轻松?alovajs了解一下?

作为一个前端开发者&#xff0c;我最近发现了一个超赞的请求库 alovajs&#xff0c;它真的让我眼前一亮&#xff01;说实话&#xff0c;我感觉自己找到了前端开发的新大陆。大家知道&#xff0c;在前端开发中&#xff0c;处理 Client-Server 交互一直是个老大难的问题&#xff…

那些年,为了拿高薪看过的面试题

1. 计算机网络 1、什么是计算机网络 2、什么是协议 3、什么是IP地址 4、什么是子网 5、什么是DNS 6、什么是NAT 7、什么是带宽和延迟 8、什么是VPN 9、路由器和交换机的区别 10、OSI与TCP/IP模型 11、TCP与UDP的区别 12、TCP三次握手四次挥手 13、HTTP和HTTPS的区…

member access within null pointer of type ‘ListNode‘

文章目录 前言一、空指针解引用二、访问已释放的内存三、 结构体定义问题四、错误的链表操作五、代码上下文六、示例代码七、调试建议 前言 p -> next p1; p1 p1 -> next; p p->next;runtime error: member access within null pointer of type ListNode如果出现…

编辑器加载与AB包加载组合

解释&#xff1a; 这个 ABResMgr 类是一个资源加载管理器&#xff0c;它用于整合 AB包&#xff08;Asset Bundle&#xff09;资源加载和 编辑器模式资源加载。通过这个管理器&#xff0c;可以根据开发环境选择资源加载方式&#xff0c;既支持 运行时使用Asset Bundle加载&…

leetcode hot100【LeetCode 234. 回文链表】java实现

LeetCode 234. 回文链表 题目描述 请判断一个链表是否为回文链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;false进阶&#xff1a; 你能否用 O(n) 时间复杂度和 O(1) …

【C++训练营】现代C++编程(隐藏)

一、面向对象的特性 1.1 编码规范 1.1.1 效率 时间/空间&#xff1a;计算相关逻辑的时间复杂度和空间复杂度内存&#xff1a;考虑内存占用和cache命中率堆/栈&#xff1a;从生存周期、内存管理复杂性、对象大小等角度来考虑堆栈应用存储&#xff1a;考虑存储护具方式和读取方…

使用docker-compose搭建redis7集群-3主3从

下面是一个用于搭建 Redis 集群的 docker-compose.yml 示例文件&#xff0c;它会启动 6 个 Redis 节点&#xff08;3 主节点 3 从节点&#xff09;来构成一个最小的 Redis 集群。 同一个容器内网通讯没问题&#xff0c;但是你要是需要暴露到外网你需要用第二个yml 内网的 v…

信雅纳Chimera 100G网络损伤仪助力Parallel Wireless开展5G RAN无线前传网络的损伤模拟

背景介绍 Parallel Wireless 为移动运营商提供唯一全覆盖的(5G/4G/3G/2G&#xff09;软件支持的本地 OpenRAN (ORAN) 解决方案。该公司与全球 50 多家领先运营商合作&#xff0c;并被 Telefonica 和 Vodafone 评为表现最佳的供应商。Parallel Wireless 在多技术、开放式虚拟化…

从头学PHP之运算符

关于运算符的图片均来自网络&#xff0c;主要是自己写太麻烦了&#xff0c;程序是个简化自己工作量的方式&#xff0c;能复制粘贴就不要手写了&#xff08;建议初期还是多写写&#xff0c;加深下记忆&#xff09;在这里我就偷个懒&#xff0c;图片涉及到侵权及时&#xff0c;请…

安全见闻(3)——开阔眼界,不做井底之蛙

内容预览 ≧∀≦ゞ 安全见闻三&#xff1a;脚本程序与病毒声明导语脚本语言BAT/PowerShell脚本木马与宏病毒脚本病毒BIOS病毒 结语 安全见闻三&#xff1a;脚本程序与病毒 声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只…

死循环等待 vs 同步锁

在Java并发编程中&#xff0c;破坏占用且等待条件是一种避免死锁的策略。关于你提到的方法和synchronized(Account.class)的比较&#xff0c;这里有一些点需要考虑&#xff1a; 死循环等待 vs 同步锁: 使用死循环等待&#xff08;while(!actr.apply(this, target))&#xff09…

实现酒店搜索框自动补全

前言 现在&#xff0c;hotel索引库还没有设置拼音分词器&#xff0c;需要修改索引库中的配置。但是知道索引库是无法修改的&#xff0c;只能删除然后重新创建。 另外&#xff0c;需要添加一个字段&#xff0c;用来做自动补全&#xff0c;将brand、suggestion、city等都放进去…

小程序无法获取头像昵称以及手机号码

用户在使用小程序的时候&#xff0c;登录弹出获取昵称头像或者个人中心点击默认头像弹窗获取头像昵称的时候&#xff0c;点击弹窗中的头像昵称均无反应&#xff0c; 这个是因为你的小程序隐私政策没有更新&#xff0c;或者老版本没有弹窗让用户同意导致的 解决办法&#xff1…

SpringBoot:举例说明如何使用@ControllerAdvice处理全局异常

使用RestController开发web接口时&#xff0c;需要处理Controller层未捕获的异常&#xff0c;提高系统的健壮性。 一般常用的方式是采用ControllerAdvice和ExceptionHandler&#xff0c;举例如下&#xff1a; ControllerAdvice public class ControllerAdvice {ExceptionHand…

UML外卖系统报告(包含具体需求分析)

1、系统背景 随着互联网技术的快速发展&#xff0c;外卖订餐服务逐渐成为人们生活中的一部分。传统的电话订餐方式面临诸多不便和限制&#xff0c;而基于互联网的外卖订餐系统则提供了更加便捷、快速和高效的订餐服务。这种系统通过将餐厅、顾客和配送人员连接起来&#xff0c…

面试经典算法题62-位1的个数

面试经典算法题62-位1的个数 公众号&#xff1a;阿Q技术站 LeetCode.191 问题描述 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中 设置位 的个数&#xff08;也被称为汉明重量&#xff09;。 示…

截屏工具,

1&#xff0c;pc端的shiftwins&#xff0c;或者是prtsc按钮&#xff0c;但是有时候容易失效 2&#xff0c;第三方工具&#xff1a;Snipaste Snipaste - 截图 贴图 用户手册见Snipaste **常用F2或者是F3快捷键&#xff0c;切换桌面&#xff0c;而不是下端一个一个点击窗口页面…

论文阅读与写作入门

文章目录 1.阅读第一篇论文(1)论文结构(2)目标 2.使用GPT辅助论文的阅读与写作3.专有名词(1)架构(2)网络(3)机器学习 4.文献翻译软件5.从哪里下载文献&#xff1f;6.如何判断(你自己的)研究工作的价值or贡献【论文精读李沐】7.经典论文(1)AlexNet 2012(2)FCN 全卷积 2014(3)Res…

perl批量改文件后缀

perl批量改文件后缀 如题&#xff0c;perl批量改文件后缀&#xff0c;将已有的统一格式的文件后缀&#xff0c;修改为新的统一的文件后缀。 #!/bin/perl use 5.010;print "Please input file suffix which U want to rename!\n"; chomp (my $suffix_old <>)…

【Go语言】语法基础之变量、数据类型详解

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Go语言探索之旅》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Go语言简介 2、Go语言特点 二、变量 1、变量的声明与初始化 2、变量…