【期末不挂科-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;
}

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

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

相关文章

行为型设计模式——状态模式

状态模式 状态模式是比较简单的设计模式&#xff0c;它的主要作用是减少代码中大量的 if-else 或者 switch-case 等逻辑判断&#xff08;俗称屎山&#xff09;。它将每个状态定义为一个类&#xff0c;而每个状态类有自己对应的方法&#xff0c;因此当需要根据状态执行逻辑代码…

开源Bluespec bsc编译器和可重用示例设计

这篇介绍Bluespec以及设计示例的文章&#xff0c;是在2021年ICCAD&#xff08;International Conference On Computer-Aided Design&#xff09;发布的论文。达坦科技的open-rdma项目和推广的MIT体系结构学习社区都用到Bluespec&#xff0c;因此将此论文翻译成中文&#xff0c;…

app跳转小程序免登录

app跳转小程序二次登录&#xff1a; app跳转小程序&#xff0c;第一种做法是 点击 app 页面 --> 跳转到对应小程序的路径 --> 登录小程序 --> 使用功能。这种做法&#xff0c;在 app跳转小程序后&#xff0c;需要二次登录&#xff0c;用户体验不是很好。 app跳转小…

【JVM】垃圾回收 GC

一、前言 垃圾回收&#xff08;Garbage Collection&#xff0c;GC&#xff09;是由 Java 虚拟机&#xff08;JVM&#xff09;垃圾回收器提供的一种对内存回收的一种机制&#xff0c;它一般会在内存空闲或者内存占用过高的时候对那些没有任何引用的对象不定时地进行回收。以避免…

C#进阶-IIS服务器发布ASP.NET项目

对于云服务器&#xff0c;程序员一般不会陌生&#xff0c;如果项目需要发布到现网&#xff0c;那么服务器是必不可缺的一项硬性条件&#xff0c;那么如何在云服务器上部署一个项目&#xff0c;需要做哪些配置准备&#xff0c;下面就由本文档为大家讲解&#xff0c;本篇以 IIS服…

封装数据访问通用类DbHelper

为什么要封装通用类&#xff1f; 数据交互&#xff1a;增上改查 相同的事情&#xff1a;连接 T-SQL命令&#xff0c;Command 执行命令&#xff0c;选择执行方式 得到相应结果 关闭连接 将一些从重复的逻辑进行封装&#xff0c;达到通用的目的 提高复用率…

[redis] redis高可用之持久化

一、Redis 高可用的相关知识 1.1 什么是高可用 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中&#xff0c;高可用的含义似乎要宽泛一些&#xff0c;…

Sip - Ubuntu 配置 miniSIPServer 服务器(测试用)

客户提供的账号过期了&#xff0c;简单搭建 SIP 服务器&#xff0c;以便测试使用。个人认为这个配置起来最为简单&#xff0c;且测试功能足够。 官网miniSIPServer - 基于 Windows 以及 Linux 平台的 VoIP (SIP) 服务器软件. miniSIPServer 可能是最容易使用的 VoIP(SIP) 服务器…

android studio设置gradle和gradle JDK版本

文章目录 1.gradle JDK版本2.gradle版本 1.gradle JDK版本 file -> project structure -> SDK Location -> Gradle Settings -> Gradle JDK -> Download JDK 2.gradle版本 file -> project structure -> Project

milvus安装及langchain调用

milvus安装及langchain调用 安装milvus安装docker-compose安装milvus安装可视化界面attu 通过langchain调用milvus安装langchain安装pymilvus调用milvus 安装milvus 安装docker-compose 下载文件 curl -L https://github.com/docker/compose/releases/download/1.21.1/docke…

ME6211C33M5G-N 输出3.3V 500mA 线性稳压器LDO 参数

描述 ME6211系列是高精度&#xff0c;低噪声&#xff0c;CMOS LDO电压调压器。ME6211系列提供低输出噪声&#xff0c;高纹波抑制率&#xff0c;低辍学率和非常快速的开启时间&#xff0c;ME6211系列是当今最前沿的手机的理想选择。ME6211内部包括参考电压源、误差放大器、驱动…

如何设置gitlab.rb 将所有数据运行目录放置到指定目录

如何设置gitlab.rb 将所有数据运行目录放置到指定目录 在GitLab中&#xff0c;要将所有数据目录&#xff08;包括仓库、日志和其他配置文件&#xff09;移动到一个自定义位置&#xff0c;你需要编辑GitLab的配置文件 /etc/gitlab/gitlab.rb。这里主要关注的是 git_data_dir 配置…

Android APP修改为鸿蒙APP需要注意的问题

将Android应用修改为鸿蒙&#xff08;HarmonyOS&#xff09;应用需要注意一些关键问题&#xff0c;以确保应用在新平台上的顺利运行。以下是在修改Android应用为鸿蒙应用时需要考虑的一些重要问题&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软…

基于opencv的指针式仪表的识别与读数

对于指针式仪表的识别与读数&#xff0c;可以通过以下步骤使用OpenCV实现&#xff1a; 读取图像&#xff1a;使用cv2.imread()函数读取要处理的仪表图像。 灰度转换&#xff1a;使用cv2.cvtColor()函数将彩色图像转换为灰度图像。这是因为灰度图像只有一个通道&#xff0c;便…

使用Navicat导入csv数据至mysql

问题 使用Navicat导入csv数据至mysql 详细问题 笔者有已进行数据处理的csv&#xff0c;需要将数据信息导入mysql中 解决方案 步骤1、建立数据表&#xff0c;字段信息&#xff08;最好&#xff09;与csv字段信息保持一致&#xff0c;方便后续导入。 具体的&#xff0c;双击…

基于SpringBoot+Thymeleaf的医院挂号管理系统(有文档、Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

C++|44.智能指针

文章目录 智能指针unique_ptr特点一——无法进行复制 shared_ptr特点一——可复制特点二——计数器&#xff08;用于确定删除的时机&#xff09; 其他 智能指针 通常的指针是需要特殊地去申请对应的空间&#xff0c;并在不使用的时候还需要人工去销毁。 而智能指针相对普通的指…

统计学-R语言-3

文章目录 前言给直方图增加正态曲线的不恰当之处直方图与条形图的区别核密度图时间序列图洛伦茨曲线计算绘制洛伦茨曲线所需的各百分比数值绘制洛伦茨曲线 练习 前言 本篇文章是介绍对数据的部分图形可视化的图型展现。 给直方图增加正态曲线的不恰当之处 需要注意的是&#…

NVMe over TCP高性能文件存储,让未来照进现实,400us

你真的懂NVMe吗&#xff1f; 在说NVMe之前&#xff0c;我们觉得有必要先聊一聊NVM&#xff08;Non-Volatile Memory&#xff09;&#xff0c;即非易失性内存。从名字上看就知道&#xff0c;NVM是一种类内存式&#xff08;访问及寻址方式类似&#xff09;的设备&#xff0c;它必…

STM32 SPI通信协议3——读取MAX6675温度传感器

在上两章中&#xff0c;我们已经配置了相应的GPIO和SPI功能。这里说一下MAX6675如何读取温度。 从MAX6675手册中我们可以看到&#xff0c;当0的时候SCK启动&#xff0c;数据线开始发送信息&#xff0c;此时可以读取数据&#xff0c;当数据读完后&#xff0c;再拉高电平停止发送…