【期末不挂科-C++考前速过系列P3】大二C++第3次过程考核(20道选择题&12道判断题&2道代码题)【解析,注释】

前言

大家好吖,欢迎来到 YY 滴C++考前速过系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
主要内容含:
在这里插入图片描述

欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!

  • YY的《C++》专栏
  • YY的《C++11》专栏
  • YY的《Linux》专栏
  • YY的《数据结构》专栏
  • YY的《C语言基础》专栏
  • YY的《初学者易错点》专栏
  • YY的《小小知识点》专栏
  • 更加详细和全面的C++知识讲解——>可关注 YY的《C++》专栏
  • 此系列主打期末复习速过,一些基本知识点会略过(例如虚函数具体原理等等)

目录

  • 一.选择题(20)
  • 二.判断题(12)
  • 三.代码题(2)
    • 例题1:
    • 例题2:

一.选择题(20)

  1. 类模板的模板参数( )。D
    A.只可作为数据成员的类型
    B.只可作为成员的返回值类型
    C.只可作为成员函数的参数类型
    D.以上三者皆可
  1. 如果有如下函数模板的定义:C
    A.func (3, 5) ;
    B.func<>(3,5)
    C.func(3, 2.5)
    D.func<int>(3 2.5):
  1. 如果try中不抛出异常,那么try块执行完后控制权会转向何处? A
    A.catch后的第一条语句
    B.catch语句块的第一条语句
    C.throw语句
    D.退出程序
  1. 模板的使用是为了( )。A
    A.提高代码的可至用性
    B.提高代码的运行效率
    C.加强类的封装性
    D.实现多态性
  1. C++处理异常的机制是由( )3部分组成。C
    A.编辑、编译和运行
    B.编辑、编译和捕获
    C.检查、抛出和捕获
    D.检查、抛出和运行

6.下面的那一条不是面向对象的重要特性?D
A.抽象和封装
B.多态
C.继承
D.对象

解析:

  • 面向对象的重要特性分别为:抽象、封装、继承、多态。
  1. 重载函数在调用时选择的依据,()是错误的B
    A.参数的类型
    B.参数的返回值类型
    C.参数的个数
  1. 【类和对象定义细节】类的成员访问限定符不包含( )。D
    A.private:限定成员称为私有成员:私有成员的数据或区数使用受到类的限制,本类的成员函数可以访问,但类外不能访问
    B.public:限定成员称为公有成员:公有成员的数据或函数不受类的限制,可以在类内或类外自由使用,本类的成员函数可以访问,类外也能访问
    C.proteted:限定成员为保护成员,只允许在类内及该类的派生类中使用保护的数据或函数,即保护成员的作用域是该类及该类的派生类
    D.const: 限定类的成员为常类型,不允许修改数据的值
  1. 【类和对象定义细节】以下有关类与结构体的叙述不正确的是( )C
    A.结构体中只包含数据:类中封装了数据和操作
    B.结构体的成员对外界通常是开放的;类的成员可以被隐藏
    C.用struct不能声明一个类型名;而class可以声明一个类名
    D.结构体成员默认为public;类成员默认为private
  1. 以下不属于构造函数特征的是( )。D
    A.构造函数名与类名相同
    B.构造函数可以重载
    C.构造函数可以设置默认参数
    D.构造函数必须指定函数类型
  1. 下列关于构造函数的说法错误的是( )。B
    A.构造函数的名字必须与类的名字相同
    B.构造函数可以定义为void类型
    C.构造函数可以重载、可以带有默认参数
    D.构造函数可以由用户自定义也可以由系统自动生成
  1. ( )的功能是对象进行初始化。C
    A.析构函数
    B.数据成员
    C.构造函数
    D.静态成员函数
  1. 类的析构函数的作用是()。D
    A.一般成员函数
    B.类的初始化
    C.对象初始化
    D.删除对象
  1. 继承具有( ),即当基类本身也是某一类的派生类时,底层的派生类也会自动继承间接基类的成员。B
    A.规律性
    B.传递性
    C.重复性
    D.多样性
  1. 基类中的( )不允许外界访问,但允许派生类的成员函数访问,这样既有一定的隐藏能力,又提供了开放的接口。D
    A.公有成员
    B.私有成员
    C.私有成员函数
    D.保护成员
  1. 动态多态的调用是指( )。C
    A.以任何方式调用一个虚函数
    B.以任何方式调用一个纯虚函数
    C.借助于指向对象的基类指针或引用调用一个虚函数
  1. 虚函数必须是类的( )。D
    A.友元函数
    B.构造函数
    C.析构函数
    D.成员函数
  1. 下列各函数的说明中,( )表示纯虚函数。C
    A.virtual int vf(int);
    B.void vf(int)=0.8;
    C.virtual void vf0=0;
    D.virtual void vf(int);
  1. 下列关于纯虚函数与抽象类的描述中,( )是错误的。C
    A.抽象类是指具有纯虚函数的类
    B.纯虚函数是一个特殊的虚函数,它没有具体的实现
    C.一个基类中具有纯虚函数,该基类的派生类一定不再是抽象类
    D.抽象类只能作为基类来用,其纯虚函数的实现由派生类给出
  1. 下列描述中,( )是抽象类的特征。D
    A.可以说明虚函数
    B.可以进行构造函数重载
    C.可以定义友元
    D.不能定义其对象

二.判断题(12)

  • PS:解析与答案在下面
  1. 函数模板又称为泛型函数、通用函数。
  2. 当程序中同时重载有函数模板和非函数模板时,编译器会优先选用模板函数。
  3. 可以从类模板派生出类模板,但不可以从类模板派生出非类模板。
  4. 函数模板可以重载。
  5. 类模板可以作为函数模板的返回类型。
  6. 一个try块可与多个catch语句(称为异常处理器)联系,每个catch语句处理一种类型的异常信息。
  7. 若没有catch语句与抛出异常的类型相匹配,则程序继续运行。
  8. 抛出异常的程序模块一旦抛出了异常,在处理完异常后,继续执行throw后面的语句。
  9. throw语句的一般形式为 throw 表达式; 也可以不带表达式 throw;
  10. 一个try块可与多个catch语句(称为异常处理器)联系,找到一个类型匹配的catch语句后,继续匹配后面的catch语句,可能执行多个catch语句。
  11. 构造函数和析构函数的执行顺序为先构造的后析构,后构造的先析构
  12. 析构函数是特殊的成员函数,它的作用与构造函数相反,完成程序结束前的清理工作。
  1. ×
  2. ×
  3. ×
  4. ×
  5. ×

三.代码题(2)

例题1:

  • 编写一个函数模板,使用冒泡排序将数组内容由小到大排列并打印出来,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整型,也可以是双精度型。
#include <iostream>

template <typename T>
void bubbleSort(T arr[], int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                T temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    
    for (int i = 0; i < size; i++) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;
}

int main() {
    int intArray[] = {5, 3, 8, 2, 1, 6};
    double doubleArray[] = {5.6, 3.2, 8.9, 2.1, 1.5, 6.7};
    
    std::cout << "Sorted intArray: ";
    bubbleSort(intArray, 6);
    
    std::cout << "Sorted doubleArray: ";
    bubbleSort(doubleArray, 6);
    
    return 0;
}

例题2:

  • 定义员工类Employee,具有私有数据成员name,age,salary。
    在Employee类中设计一个input()成员函数,用于输入员工的name,age,salary,当age大于60小于18时,抛出一个异常。在catch()中显示相应的出错信息。
#include <iostream>
#include <string>

class Employee {
private:
    std::string name;
    int age;
    double salary;

public:
    void input() {
        std::cout << "Enter name: ";
        std::cin >> name;
        std::cout << "Enter age: ";
        std::cin >> age;
        if (age > 60 || age < 18) {
            throw "Invalid age";
        }
        std::cout << "Enter salary: ";
        std::cin >> salary;
    }
};

int main() {
    Employee emp;
    try {
        emp.input();
    }
    catch (const char* msg) {
        std::cerr << "Error: " << msg << std::endl;
    }
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux中断 -- 中断应答、嵌套、

接上文&#xff0c;本文继续介绍Linux软件部分逻辑。 参考内核版本&#xff1a;kernel-4.19 目录 1.中断信号在各级中断控制器中的应答 2.supports_deactivate_key意义 3.中断嵌套 1.中断信号在各级中断控制器中的应答 本章主要从内核软件层面来看各中断控制器对中断信号处…

self-attention机制详解

目前&#xff0c;对于我们的network&#xff0c;给定的input大都是一个向量&#xff1a; 但是对于更复杂的情况&#xff0c;我们的input是a set of vec: 举例&#xff1a; nlp中的句子&#xff0c;对于每个word都是一个word embedding&#xff1a; 图学习中每个节点有一个e…

SpringBoot3.X源码分析(启动流程)

SpringBootApplication(scanBasePackages {"com.javaedge.base"} ) public class BaseApplication {public BaseApplication() {}public static void main(String[] args) {SpringApplication.run(BaseApplication.class, args);} } 1 启动入口 静态辅助类&#x…

【从0上手cornerstone3D】如何渲染一个基础的Dicom文件(含演示)

一、Cornerstone3D 是什么&#xff1f; Cornerstone3D官网&#xff1a;https://www.cornerstonejs.org/ 在线查看显示效果&#xff08;加载需时间&#xff0c;可先点击运行&#xff09;&#xff0c;欢迎fork 二、代码示例 了解了Cornerstone是什么&#xff0c;有什么作用后&…

SpringBoot3自动配置原理

​​​​​​自动配置 遵循约定大约配置的原则&#xff0c;在boot程序启动后&#xff0c;起步依赖中的一些bean对象会自动注入到ioc容器 看一下我们前面写的代码有没有达到自动配置的效果呢&#xff1f; 没有自动&#xff0c;我们写了配置类&#xff0c;写了Import注解&#…

解释程序基本原理

解释程序基本原理 1、解释程序的基本结构2、高级语言编译与解释方式的比较 语言处理程序是一类系统软件的总称&#xff0c;其主要作用是将高级语言或汇编语言编写的程序翻译成某种机器语言程序&#xff0c;使程序可在计算机上运行。语言处理程序主要分为汇编程序、编译程序和解…

匠心科技BLDC开发板原理图讲解

匠心科技BLDC开发板资料 链接&#xff1a;https://pan.baidu.com/s/1s5YjzRSDLKQvl86lBVAqKA?pwda6cx 提取码&#xff1a;a6cx 解压密码&#xff1a;JXKJ_RALDNWB站视频讲解&#xff08;&#xff09; 链接: 匠心科技直流无刷电机开发板原理图讲解 BLDC的开发板主要分为四个模…

Docker登录MySQL,密码正确却提示密码错误

当我输入了正确的MySQL密码的时候确提示我密码错误&#xff1a; ERROR 1045 (28000): Access denied for user rootlocalhost (using password: YES) docker run --name mysql_master \ -e MYSQL_ROOT_PASSWORD123123 \ -v /root/mysql_master/data:/var/lib/mysql \ -v /root…

Vulnhub-GoldenEye

一、信息收集 nmap探测&#xff1a;nmap -p 1-65535 -T4 -A -v 192.168.1.9 PORT STATE SERVICE VERSION 25/tcp open smtp Postfix smtpd |_smtp-commands: ubuntu, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN |_…

【Git】本地仓库文件的创建、修改和删除

目录 一、基本信息设置 1、设置用户名2、设置用户名邮箱 二、Git仓库操作介绍 1、创建一个新的文件夹2、在文件内初始化git仓库&#xff08;创建git仓库&#xff09;3、向仓库中添加文件 1.创建一个文件2.将文件添加到暂存区3.将暂存区添加到仓库 4、修改仓库文件 1.修改文件2.…

imgaug库指南(20):从入门到精通的【图像增强】之旅

引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此&#xff0c;数据增强技术应运而生&#xff0c;成为了解决这一问题的…

紫光展锐T770安卓核心板_展锐T770 5G核心板规格参数

紫光展锐T770安卓核心板是一款高性能的5G安卓智能模块&#xff0c;拥有先进的6nm制程工艺和强大的性能。板载8GB Ram 256GBROM的内存单元&#xff0c;支持4K H.265/ H.264视频编解码&#xff0c;搭载Android 13以上操作系统&#xff0c;功能丰富。除了支持5G NSA和SA双模式向下…

大数据赋能电竞出海企业发展

近几年电竞行业发展迅速&#xff0c;我国单2022年新增近4万家电竞相关企业&#xff0c;竞争十分激烈。中国电竞市场规模在全球占比19%左右&#xff0c;海外有巨大的增量市场&#xff0c;特别是东南亚、中南亚和拉丁美洲是电竞市场增长最快的地区&#xff0c;在2020至2025年期间…

Hive基础知识(十二):Hive的基本查询

1. 全表和特定列查询 0&#xff09;数据准备 原始数据 dept: 10 ACCOUNTING 1700 20 RESEARCH 1800 30 SALES 1900 40 OPERATIONS 1700 emp&#xff1a; 7369 SMITH CLERK 7902 1980-12-17 800.00 20 7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30 7521 WARD SALESM…

【如何使用iPad通过Code App+cpolar实现公网地址远程访问vscode】

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 1. 在iPad下载Code APP2.安装cpolar内网穿透2.1 cpolar 安装2.2 创建TCP隧道 3. iPad远程vscode4. …

Pytorch的默认初始化分布 nn.Embedding.weight初始化分布

一、nn.Embedding.weight初始化分布 nn.Embedding.weight随机初始化方式是标准正态分布 &#xff0c;即均值$\mu0$&#xff0c;方差$\sigma1$的正态分布。 论据1——查看源代码 ## class Embedding具体实现&#xff08;在此只展示部分代码&#xff09; import torch from t…

如何在 SwiftUI 中实现音频图表

文章目录 前言DataPoint 结构体BarChartView 结构体ContentView 结构体实现协议实现线图总结 前言 在可访问性方面&#xff0c;图表是复杂的事物之一。iOS 15 引入了一项名为“音频图表”的新功能。 下面我们将学习如何通过使用 accessibilityChartDescriptor 视图修饰符为任…

数据结构与算法教程,数据结构C语言版教程!(第三部分、栈(Stack)和队列(Queue)详解)五

第三部分、栈(Stack)和队列(Queue)详解 栈和队列&#xff0c;严格意义上来说&#xff0c;也属于线性表&#xff0c;因为它们也都用于存储逻辑关系为 "一对一" 的数据&#xff0c;但由于它们比较特殊&#xff0c;因此将其单独作为一章&#xff0c;做重点讲解。 使用栈…

Histone H3K4me2 Antibody, SNAP-Certified™ for CUTRUN

EpiCypher是一家为表观遗传学和染色质生物学研究提供高质量试剂和工具的专业制造商。EpiCypher推出的CUT&RUN级别的Histone H3K4me2 Antibody符合EpiCypher的批次特异性SNAP-CertifiedTM标准&#xff0c;在CUT&RUN中具有特异性和高效的靶点富集。通过SNAP-CUTANA™K-Me…

智能分析网关V4基于AI视频智能分析技术的周界安全防范方案

一、背景分析 随着科技的不断进步&#xff0c;AI视频智能检测技术已经成为周界安全防范的一种重要手段。A智能分析网关V4基于深度学习和计算机视觉技术&#xff0c;可以通过多种AI周界防范算法&#xff0c;实时、精准地监测人员入侵行为&#xff0c;及时发现异常情况并发出警报…