【C++笔试强训】第十七天

news2024/11/14 15:06:05

🎇C++笔试强训


  • 博客主页:一起去看日落吗
  • 分享博主的C++刷题日常,大家一起学习
  • 博主的能力有限,出现错误希望大家不吝赐教
  • 分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。

在这里插入图片描述

💦🔥


选择题

💦第一题

假设A为抽象类,下列声明()是正确的

A int fun(A);
B A Obj;
C A fun(int);
D A *p;

抽象类不可以实例化对象,所以和对象有关的都是错误的

D 建立相对应类型的指针,所以只有D是正确的,可以用于实现多态

这道题的答案是D


💦第二题

虚函数可不可以重载为内联?

A 可以
B 不可以
C 语法错误

内联函数不可以当作虚函数,在前几天的题目中我们都有相应的讲解,因为内联函数最后需要展开

这道题的答案是B


💦第三题

下面有关虚函数的描述,说法错误的是?

A 虚函数的作用是实现了继承性
B 虚函数的作用就是实现“动态联编”,也就是在程序的运行阶段动态地选择合适的成员函数
C 和类的静态成员函数与非类的成员函数相比,虚函数的效率较低
D 要正确的实现虚函数,只能用一个基类的指针或者引用来指向派生类对象

A 继承的目的是为了实现多态,关键要靠的是虚函数,反过来是不对的

B 虚函数的作用就是实现“动态联编”,也就是在程序的运行阶段动态地选择合适的成员函数,这就是多态

C 和类的静态成员函数与非类的成员函数相比,虚函数的效率较低,一个类如果有虚函数会产生虚表,我们要先找到虚表才能调动虚函数,所以效率低

D 实现多态需要子类继承父类,父类需要有虚函数,子类需要重写虚函数,如果要调动多态需要父类的指针和引用,用父类的对象不可以

这道题的答案是A


💦第四题

#include <iostream>
#include <vector>
using namespace std;

int main(void)
{
	vector<int>array;
	array.push_back(100);
	array.push_back(300);
	array.push_back(300);
	array.push_back(300);
	array.push_back(300);
	array.push_back(500);
	vector<int>::iterator itor;
	for(itor=array.begin();itor!=array.end();itor++)
	{
		if(*itor==300)
		{
			itor=array.erase(itor);
		}
	}
	for(itor=array.begin();itor!=array.end();itor++)
	{
		cout<<*itor<<"";
	}
	return 0;
}

下面这个代码输出的是()

A 100 300 300 300 300 500
B 100 300 300 300 500
C 100 300 300 500
D 100 300

数据在尾插之后是 100 300 300 300 300 500

通过循环如果迭代器的值等于300就删除,最后把返回值给回,迭代器并不会失效

迭代器删除数据会把后面的值往前移动,然后返回当前位置的迭代器,然后循环会++,指向下一位,所以并不会删除所有的300

最后打印的是 100 300 300 500

这道题的答案是C


💦第五题

在 C++ 中,用于实现动态多态性的是( )。

A 内联函数
B 重载函数
C 模板函数
D 虚函数

这是送分题,内联是提升程序效率,重载和模版都不是实现多态的技术,多态是靠虚函数实现的

这道题的答案是D


💦第六题

调用一成员函数时, 使用动态联编的情况是()

A 通过对象调用一虚函数
B 通过指针或引用调用一虚函数
C 通过对象调用静态函数
D 通过指针或应用调用一静态函数

使用动态联编的情况是多态,实现多态的条件是调用虚函数

这道题的答案是B


💦第七题

下面有关继承、多态、组合的描述,说法错误的是?

A 封装,把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏

B 继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展

C 隐藏是指派生类中的函数把基类中相同名字的函数屏蔽掉了

D 覆盖是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同


A 封装是面向对象的特性之一,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏

B 继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展,这是继承的一大特点,子类可以继承父类从而把父类的所有信息继承下来

C 隐藏我们是指同名隐藏,是指派生类中的函数把基类中相同名字的函数屏蔽掉了

D 覆盖需要相同的虚函数名,函数参数个数和类型也必须相同

这道题的答案是D


💦第八题

“引用”与多态的关系?

A 两者没有关系
B 引用可以作为产生多态效果的手段
C 一个基类的引用不可以指向它的派生类实例
D 以上都不正确

多态必须通过父类的引用获得指针

这道题的答案是B


💦第九题

下面这段程序的输出是什么?

class A{
public:
	A(){p();}
	virtual void p(){print("A")}
	virtual ~A(){p();}
};
class B:public A{
public:
	B(){p();}
	void p(){print("B")}
	~B(){p();}
};
int main(int, char**){
	A* a=new B();
	delete a;
}

A AABB
B BBAA
C ABAB
D ABBA

先构造父类,再构造子类,子类构造完成前virtual无效,析构则会反过来

所以会先打印AB 再打印BA

这道题的答案是D


💦第十题

以下代码的运行结果为()

class Base {
public:
	Base() {
		echo();
	}
	virtual void echo() {
		printf("Base");
	}
};
class Derived:public Base {
public:
	Derived() {
		echo();
	}
	virtual void echo() {
		printf("Derived");
}
};
int main() {
	Base* base = new Derived();
	base->echo();
	return 0;
}

A DerivedDerivedDerived
B DerivedBaseDerived
C BaseDerivedBase
D BaseDerivedDerived

首先声明Base类型的指针指向实际类型为Derived的对象,先调用基类构造函数,再调用派生类构造函数。输出Base, Derived.

base->echo(); 指针是base类型,但是因为有关键词 virtual,所以不是隐藏而是重写.调用的是Derived的方法,输出Derived。

这道题的答案是D


编程题

🔥 第一题

链接:杨辉三角的变形

请添加图片描述

  • 解题思路

按照题目意思,可以发现第n行有2n - 1个元素,第i,j元素等于上一行第j - 2,j - 1,j三列元素之和,每一行的第一列和最后一列都为1,如果是第二列,则只是两个元素之和。

  • 代码演示:
#include <iostream>
using namespace std;

int main() {
    // int n;
    // while(cin >> n)
    // {
    //     代码有点捞,写的高级点
    //     if(n <= 2)
    //         cout << -1 << endl;
    //     else if(n % 4 == 1 || n % 4 == 3)
    //         cout << 2 << endl;
    //     else if (n % 4 == 2)
    //         cout << 4 << endl;
    //     else
    //         cout << 3 << endl;


    // }
    //     高级点
    int n;

    int Index[] = {4, 2, 3, 2};
    while (cin >> n) {
        int res = -1;
        if (n > 2)
            res = Index[(n - 2) % 4];
        cout << res << endl;
    }

    return 0;
}

🔥 第二题

链接:计算某字符出现次数

请添加图片描述

  • 题目描述

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

  • 解题思路

首先,字符串中包含有空格,因此我们使用gets 函数获取一行数据,而不用scanf ,因为scanf 函数会默认以空格截断输入作为输入的结束.

其次,因为在计算字符出现次数中,要求是不区分大小写的,因此在处理过程中,如果输入的是小写字母,

则计数不但要加上小写字母的计数,还要加上大写字母的计数,反之大写字母也是同样如此,而在ascii 表中,大写字母和小写字母的差值是32 ( 'a’的ascii值是97 ; 'A’的ascii值是65 )

最后,实现思路,因为ascii字符只有128 个,他们的实际存储是0~127 ,那么我们只需要定义一个具有128 个整形元素的数组,第0 号下标位置存放0 对应的ascii字符出现次数, 1 号下标位置存放1 对应的ascii字符的次数…以此类推,数组每个位置存放的就是对应ascii字符出现的次数。最终以指定字符为下标获取它出现的次数进行打印。

  • 代码演示
#include<iostream>
using namespace std;
int main(){
    char ch;
    string s;
    getline(cin,s);
    cin>>ch;
    int count = 0;
    for(int i = 0;i<s.length();i++){
        if(s[i]>='A'&&s[i]<='Z'){
            if(s[i]==ch||s[i]+32==ch)
                count++;
        }
        else if(s[i]>='a'&&s[i]<='z'){
            if(s[i]==ch||s[i]-32==ch)
                count++;
        }
        else if(s[i]==ch)
            count++;
    }
    cout<<count;
    return 0;
}


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

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

相关文章

【微服务容器化】第四章-Docker应用部署

&#x1f334;第四章 Docker应用部署&#x1f343;4.1 Mysql部署&#x1f343;4.2 Tomcat部署&#x1f343;4.3 Nginx 部署&#x1f343;4.4 redis 部署&#x1f343;4.1 Mysql部署 分析: 容器内的网络服务和外部机器不能直接通信 外部机器和宿主机可以直接通信 宿主机和容器…

因为有了它,我用舍友玩王者的时间拿到了华为offer

随时随地刷Leetcode题的方法&#xff0c;大学因为这个&#xff0c;我入职大厂! 下面有免费试用网址 目录我如何拿到大厂offer秘密武器使用教程VSCODE云IDE介绍完整功能&#xff0c;兼容VS Code安装的插件没有效果&#xff1f;通过终端启动项目后无法预览&#xff1f;CIDE收费…

sklearn笔记:调参

1 介绍 超参数是不直接在估计器中学习的参数。 在 scikit-learn 中&#xff0c;它们作为参数传递给估计器类的构造函数。 需要搜索超参数空间以获得最佳交叉验证分数。scikit-learn 中提供了两种通用的参数搜索方法&#xff1a; 对于给定的值&#xff0c;GridSearchCV 会详尽地…

客快物流大数据项目(八十四):Impala优化

文章目录 Impala优化 一、​​​​​​​Impala关键配置 二、Impala查询分析

C++ Reference: Standard C++ Library reference: C Library: cstring: strspn

C官网参考链接&#xff1a;strspnhttps://cplusplus.com/reference/cstring/strspn/strspn 函数 <cstring> strspn size_t strspn ( const char * str1, const char * str2 ); 获取字符串中字符集的跨度 返回str1的初始部分的长度&#xff0c;它只包含str2的一部分字符…

FPGA双线性插值图像缩放详细讲解,上板验证稳定通过,提供两套工程源码

开局直接放大招&#xff1a;提供源码及工程&#xff1b; 重点讲解双线性插值图像缩放&#xff1b; 此功能模块使用HLS实现&#xff0c;并已封装导出IP&#xff0c;可在工程中添加并使用&#xff0c;可提供HLS工程源码&#xff1b; 若是用verilog实现双线性插值图像缩放&#xf…

【Java中23种面试常考的设计模式之组合模式(Composite)---结构型模式】

【Java中23种面试常考的设计模式之组合模式(Composite)—结构型模式】 知识回顾: 之前我们讲过的设计模式在这里呦: 【面试最常见的设计模式之单例模式】 【面试最常见的设计模式之工厂模式】 【Java中23种面试常考的设计模式之备忘录模式(Memento)—行为型模式】 【Java中23种…

【每日渗透笔记】后台弱口令+未授权尝试

目录 一、特点&#xff1a; 1.1、特征&#xff1a; 1.2、分析&#xff1a; 1.3、所处情景&#xff1a; 目前&#xff1a; 问题&#xff1a; 二、渗透 一、特点&#xff1a; 1.1、特征&#xff1a; 用户登陆页面 1.2、分析&#xff1a; 毋庸置疑&#xff0c;既然有用户登…

SpringBoot系列之动态生成cron表达式执行定时程序

业务场景 最近需要实现一个功能&#xff0c;根据页面选择的星期&#xff0c;默认是凌晨执行&#xff0c;生成cron表达式&#xff0c;然后定时执行定时程序 环境准备 开发环境 JDK 1.8SpringBoot2.2.1Maven 3.2 开发工具 IntelliJ IDEAsmartGitNavicat15 在IDEA里集成阿里的…

Pycharm 如何自动调整 Python 代码符合 pep8 编码规范

前言 学生时代&#xff0c;写的一手漂亮的好字&#xff0c;能给人留下好的印象。作为 IT 人&#xff0c;写的一手漂亮的代码也会给人留下美好的印象。 代码就是自己的脸面&#xff0c;不管写质量怎样&#xff0c;首先要写的漂亮。Python 有一套 pep8 编码规范标准。 什么是 p…

电感重要参数的理解

电感作为一种储能元件&#xff0c;广泛运用在硬件电路的各个模块。较为常见的有DCDC电路&#xff0c;滤波电路以及振荡电路等。对于电感的选取&#xff0c;大多数人往往只关心感值&#xff0c;感值越大&#xff0c;储能越强&#xff0c;纹波也就越小。然而除了感值以外&#xf…

用Python剪辑视频?太简单了

人生苦短&#xff0c;快学Python&#xff01; 最近我在网上下载一个视频&#xff0c;结果下载到本地是近百个视频片段&#xff0c;为了方便观看只能将这些片段合并为一个视频整体。 不过我并没有搜到能够处理类似情况的小工具&#xff0c;只是发现剪映等软件可以实现视频合并功…

Allegro DFM Ravel Rule丝印文字到测试点pad间距检查

Allegro DFM Ravel Rule丝印文字到测试点pad间距检查 下面介绍丝印到测试点pad间距检查 设置top层丝印文字到孔属性测试点间距,默认值是1mil,可以自己修改这个值 设置bottom层丝印文字到孔属性测试点间距 设置top层丝印文字到通孔pin属性测试点间距 设置bottom层丝印文字…

VAEGAN:理解 VAE 与 GAN【图像生成】

标准VAE(Variational Autoencoder)的原理&#xff1a; 在autoencoder模型中&#xff0c;我们加入一个编码器&#xff0c;它能帮我们把图片编码成向量。然后解码器能够把这些向量恢复成图片。 标准自编码器我们现在获得了一个有点实际用处的网络了。而且我们现在能训练任意多的…

mulesoft Module 4 quiz解析

mulesoft Module 4 quiz1. What is NOT part of a Mule 4 event?2. A Database connector is configured to select rows from a Mysql database.3. What is the minimue required configuration in a flow for a Mule application to compile?4. What is the purpose of the…

Qt读写Excel文件与QXlsx的使用

最近项目比较忙&#xff0c;许久没写博客了&#xff0c;想着还是需要定期整理下学到的和用到的新东西&#xff0c;才有沉淀。刚好最近使用Qt时需要读取excel文件的数据&#xff0c;于是在github找了一个开源库QXlsx&#xff0c;Star数还比较多&#xff0c;应该靠谱&#xff0c;…

【CV】第 2 章:使用本地二进制模式的内容识别

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

MPLS隧道——PE与CE之间运行不同路由协议的情况分析

目录 PE和CE之间运行OSPF路由协议 Ospf的Dmian ID&#xff08;还原属性&#xff09; Ospf的Sham Link属性 OSPF的DN置位与VPN Router Tag PE和CE之间运行BGP路由协议 AS号替换功能 BGP的SoO属性 PE和CE之间可以不同部署不同的路由协议&#xff0c;部署不同的路由协议会存…

量子笔记:多比特量子门

目录 0. 前言 2. 量子多重H门 3. 量子SWAP门 4. 量子CNOT门&#xff08;CX门&#xff09;&#xff1a;受控非门 5. 量子CY和CZ门 6. 量子C*门 6.1 受控S门 6.2 受控H门 6.3 受控Z旋转门 6.4 受控X旋转门 6.4 受控Y旋转门 7. 量子托佛利门(CCNOT门) 8. 量子弗雷德…

【Linux】Linux中的gcc/g++编译器的使用

&#x1f4ac;推荐一款模拟面试、刷题神器 、从基础到大厂面试题&#xff1a;&#x1f449;点击跳转刷题网站进行注册学习 目录 一、编译的过程 1、预处理阶段 1.1预处理的工作——头文件展开、去注释、宏替换、条件编译 1.2外部定义宏&#xff08;-D选项&#xff09; 1.…