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

news2024/11/19 16:34:42

🎇C++笔试强训


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

在这里插入图片描述

💦 🔥


选择题

💦第一题

关于内联函数说法错误的是()

A 不是任何一个函数都可定义成内联函数
B 内联函数的函数体内不能含有复杂的结构控制语句
C 递归函数可以被用来作为内联函数
D 内联函数一般适合于只有1~5行语句的小函数

关于内联函数我们提过很多次了

A 内联函数是有要求的,所以A正确
B 内联函数不可以太复杂,B正确
C 递归不可以做内联
D 内联函数建议不要太长,C++官方文档建议1-5行

这道题的答案是C


💦第二题

以下不是double compare(int,int)的重载函数的是()

A int compare(double,double)
B double compare(double,double)
C double compare(double,int)
D int compare(int,int)

关于函数重载,函数名要一样,参数列表要求不一样,和返回值类型没有关系

这道题答案是D


💦第三题

假定有类AB,有相应的构造函数定义,能正确执行

AB a(4),b(5),c[3],*p[2]={&a,&b};

语句,请问执行完此语句后共调用该类的构造函数次数为___

A 5
B 4
C 3
D 9

创建ab各调用一次,创建数组c包含3个对象调用3次,p是个指针数组,存放的是指针,所以p不会调用构造函数

这道题的答案是A


💦第四题

下列关于赋值运算符“=”重载的叙述中,正确的是

A 赋值运算符只能作为类的成员函数重载
B 默认的赋值运算符实现了“深层复制”功能
C 重载的赋值运算符函数有两个本类对象作为形参
D 如果己经定义了复制拷贝构造函数,就不能重载赋值运算符

如果用户在类中没有显示定义赋值运算符重载时,编译器自动生成一份——按照浅拷贝方式实现的

A 赋值运算符重载如果重载成普通的成员函数编译器会报错,编译无法通过
B 默认的赋值运算符是编译器自动生成的,按照浅拷贝实现,错误
C 赋值运算符重载只可以放一个类型,前面有一个隐藏的this,错误
D 拷贝构造和重载赋值运算符是两个函数,不冲突,错误

这道题的答案是A


💦第五题

下列有关静态成员函数的描述中,正确的是:

A 静态数据成员(非const类型)可以在类体内初始化
B 静态数据成员不可以被类对象调用
C 静态数据成员不受private控制符作用
D 静态数据成员可以直接用类名调用

A 静态成员是所有类共享的,所以就不可以在类内初始化
B 可以通过类名+作用域的方式访问
C 静态成员如果是类的成员都要受控制符访问
D 静态数据成员可以直接用类名调用,一般更推荐类名+作用域访问

这道题的答案是D


💦第六题

若PAT是一个类,则程序运行时,语句“PAT(*ad)[3];”调用PAT的构造函数的次数是()

A 2
B 3
C 0
D 1

ad是一个数组指针,是一个指针,该指针将来只能指向PAT类型的3个连续的空间,没有创建对象,所以不会调用构造函数

这道题的答案是C


💦第七题

下面对析构函数的正确描述是()

A 系统不能提供默认的析构函数
B 析构函数必须由用户定义
C 析构函数没有参数
D 析构函数可以设置默认参数

请添加图片描述

A 系统会提供默认析构
B 析构函数可以由系统提供默认的
C 析构函数没有参数,如果有参数编译器会报错,(所以析构函数不能重载)
D 析构函数没有参数,无法设置默认值

这道题的答案是C


💦第八题

关于以下代码,哪个说法是正确的()

myClass::foo(){
	delete this;
}
..
void func(){
	myClass *a = new myClass();
	a->foo();
}

A 它会引起栈溢出
B 都不正确
C 它不能编译
D 它会引起段错误

delete this 代表把当前对象销毁掉

func里面为a new新空间,然后用a指向foo,然后将a对象销毁掉,所以代码没有任何问题

这道题的答案是B


💦第九题

哪种说法是错误的()?

A 构造函数可以有形参
B 析构函数可以有形参
C 构造函数无任何函数类型
D 析构函数无任何函数类型

A 构造函数可以有形参,在类中可能有多个成员变量
B 析构函数没有参数
CD 析构函数和构造函数无任何参数类型

这道题的答案是B


💦第十题

有如下模板定义:

template <class T>
T fun(T x,T y){
	return x*x+y*y;
}

在下列对fun的调用中,错误的是()

A fun(1, 2)
B fun(1.0, 2)
C fun(2.0, 1.0)
D fun(1, 2.0)

fun在实例化时,其传递的两个参数的类型必须要一致,如果不一致的话需要显示实例化

请添加图片描述

这道题的答案是B


编程题

🔥第一题

链接:最近的公共祖先

请添加图片描述

  • 题目解析

最近公共祖先表示距离两个节点最近的公共父节点,这道题考察二叉树。

  • 解题思路

题目所描述的满二叉树如下: 1 / \ 2 3 / \ / \ 4 5 6 7 上述树中子节点与父节点之间的关系为root = child / 2所以如果a != b,就让其中的较大数除以2, 如此循环直到a == b 即是原来两个数的最近公共祖先 比如: 2和7的最近公共祖先:7/2 = 3 —> 3/2 = 1, 2/2 = 1, 得到1为它们的公共祖先

  • 代码演示:
class LCA {
public:
    int getLCA(int a, int b) {
        // write code here
        while(a != b)
        {
            if(a > b)
                a /= 2;
            else
                b /= 2;
        }
        return b;
    }
};

🔥第二题

链接:求最大连续bit数

请添加图片描述

  • 题目解析

这道题考察位运算

  • 解题思路

根据位运算,获取每一位的二进制值。获取第i位的值: (n >> i) & 1。如果1连续,则计数累加,如果不连续,则从0开始计数。

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

int main() {
    int n;
    while (cin >> n) {
        int count = 0, maxcount = 0;
        //如果测试用例是-1时无法通过,以为右移动会补符号位
        // while (n) {
        //     if (n & 1) {
        //         count++;
        //         maxcount = max(count, maxcount);
        //     } else {
        //         count = 0;
        //     }
        //     n = n >> 1;
        // }

        //此时的解决方法是将1往左移,不改变n
        for(int i = 0;i < 32;i++)
        {
            if(n &(1 << i))
            {
                count++;
                maxcount = max(count,maxcount);
            }
            else
                count = 0;
        }

        cout << maxcount << endl;
    }
    return 0;
}



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

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

相关文章

vite基础知识-1

为什么选择vite&#xff1f; 讲vite之前&#xff0c;我们先来了解一下webpack的原理。 webpack支持多种模块化&#xff08;浏览器端和服务端都可以运行&#xff09;。比如&#xff1a; // index.js const lodash require("lodash"); // commonjs规范 import React…

win10 docker desktop 报 docker desktop stopped

win10电脑安装doker deskto遇到一些问题解决过程记录 报 docker desktop stopped 没过多会, docker desktop就自动退出了, 要以理解为闪退 网上查了一下原因, 虚拟化可能没设置 进入bios, 发现笔记本电脑没有这个设置 重启电脑后, 弹出消息 WSL 2 installation is incompl…

通道分离与合并、彩色图转换为灰度图、二值化

文章目录图像基础重要的函数图像基本知识图像基础通道分离与合并彩色图转换为灰度图二值化图像的加减乘除图像基础 矩阵分辨率8位整型图像浮点数图像 现在简单介绍下二值化、灰度图以及真彩色和假彩色 图像的二值化&#xff0c;就是将图像上的像素点的灰度值设置为0或255&am…

安装宝塔面板(详细教程)

目录 安装宝塔面板 &#xff08;一&#xff09;前言 &#xff08;二&#xff09;准备工作 1、官网&#xff1a;宝塔面板下载&#xff0c;免费全能的服务器运维软件 &#xff08;三&#xff09;安装宝塔面板 1、进入官网&#xff0c;选择“安装脚本” 2、选择对应版本的安…

C++游戏开发小笔记

1.入门小语法 1.1 命名空间 当想使用库文件的某个函数时&#xff0c;为了防止由于重名而引起的混乱调用&#xff0c;使用命名空间来区分同名函数。 字符串String也是标准命名空间的一个。如果没有using namespace std; 想用string 类型得 std:: string 1.2浮点数的存储…

计算机视觉--flask部署 目标检测算法,并在局域网内远端访问

1.flask框架 Flask是一个轻量级的基于Python的web框架。static 文件夹来保存静态文件&#xff0c;templates 文件夹存放前端页面 安装&#xff1a; pip install Flask框架代码&#xff1a; from flask import * from flask import Flaskapp Flask(__name__) //获取实例app.…

Web监听器:Listener

Listener简介常用监听接口监听在线用户信息的实现Model层Controller层OnlineUserListener的实现View层测试简介 监听器&#xff08;Listener&#xff09;&#xff0c;是一个实现特定接口的普通Java程序&#xff0c;用于监听Web应用中的对象或信息发生改变时&#xff0c;作出相应…

大前端进阶

目录 1.概述和前端工具vscode安装 1.下载安装VScode 2.中文界面配置 3.插件安装 4.设置字体大小 5.开启完整的Emmet语法支持 2.Nodejs 1.Nodejs介绍与安装 2.快速入门-Hello World 3.Node - 实现请求响应 4.Node-操作MYSQL数据库 3.Es6 1.ES6的概述 2.ES6的语法…

Docker实战:使用Dockerfile部署第一个netcore程序

目录 1、创建一个NetCore API项目 2、云服务部署 2.1 首先登录云服务器创建一个测试目录 2.2 新建dockerfile文件用来构建镜像。 2.3 构建镜像 2.4 运行镜像 目录 1、创建一个NetCore API项目 2、云服务部署 2.1 首先登录云服务器创建一个测试目录 2.2 新建dockerfil…

Python3,10h行代码,制作艺术签名,从此走上人生巅峰。

制作艺术签名1、引言2、代码实战2.1 代码示例3、总结1、引言 小鱼&#xff1a;小屌丝&#xff0c;你在画啥呢&#xff1f; 小屌丝&#xff1a;… 我这在练习签名呢。 小鱼&#xff1a;这… 艺术签&#xff1f; 小屌丝&#xff1a;喔&#xff0c;鱼哥&#xff0c;你这真实博才多…

CSDN云IDE怎样克隆代码

文章目录1、怎样从GitHub导入项目&#xff1f;1.1、系统生成SSH-KEY2、克隆代码2.1、克隆代码方式一2.2、克隆代码方式二2.3、克隆代码方式三1、怎样从GitHub导入项目&#xff1f; 1.1、系统生成SSH-KEY 1、打开Terminal 2、查看是否存在现有的ssh密钥 $ ls -al ~/.ssh3、检…

【LeetCode】【二叉树的最近公共祖先】

力扣 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以是它自…

《JavaSE-第十四章》之文件(一)

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页&#xff1a;KC老衲爱尼姑的博客主页 博主的github&#xff0c;平常所写代码皆在于此 刷题求职神器 共勉&#xff1a;talk is cheap, show me the code 作者是爪哇岛的新手&#xff0c;水…

Go 语言中的并发编程(Let‘s Go 二十八)

Go从底层就支持并发编程&#xff0c;同时实现垃圾回收机制。 先了解并发相关的几个名词概念。 进程&#xff1a;系统进行资源分配和调度的基本单位&#xff0c;使系统结构的基础&#xff0c;它是一个实体。 线程&#xff1a;是程序中一个单一的顺序执行流程&#xff0c;是进程…

python做了个自动关机工具,再也不会耽误我下班啦

上班族经常会遇到这样情况&#xff0c;着急下班结果将关机误点成重启&#xff0c;或者临近下班又通知开会&#xff0c;开完会已经迟了还要去给电脑关机。 【阅读全文】 今天使用PyQt5做了个自动关机的小工具&#xff0c;设置好关机时间然后直接提交即可&#xff0c;下班就可以…

什么是JWT及在JAVA中如何使用?

目录 1、为什么使用JWT? 2、JWT 的 格式 3、使用 JWT 就绝对安全 吗&#xff1f; 4、JWT 的 鉴权 流程 5、JWT 入门案例 5.1 引入依赖 5.2 生成Token 5.3 解析Token 5.4 工具类 JSON Web token简称JWT&#xff0c; 是用于对应用程序上的用户进行身份验证的标记。 也就…

测试中台初始设置

1.0 测试资源池 存在测试资源之后&#xff0c;将测试资源进行统一的管理&#xff0c;针对不同的测试场景和目的来定义不同的测试环境。将测试资源进行组合&#xff0c;测试平台可以对测试资源池进行统一的功能。 2.0 可用性测试及冒烟测试 可用性测试和冒烟测试都是快速验证…

基于Ubuntu搭建CTFd平台(全网最全)

前言&#xff1a; 最近在看《CTF安全竞赛入门》这本书&#xff0c;里面提到了搭建CTFd平台用于练习&#xff0c;学者可以在本地虚拟机上搭建。 所需系统&#xff1a;Ubuntu20.04 怎么安装虚拟机和配置Ubuntu这里就不再赘述了。 记得给Ubuntu配置VM tools1&#xff0c;方便把w…

软考中级(软件设计师)——面向对象程序设计(C++Java二选一的题15分-目标3分)

软考中级(软件设计师)——面向对象程序设计(C&Java二选一的题15分-目标3分) 目录 软考中级(软件设计师)——面向对象程序设计(C&Java二选一的题15分-目标3分) C语法要点 C类的定义&#xff1a; C派生类的定义&#xff1a; C类的外定义函数&#xff1a; C虚函数与…

Python Flask框架-开发简单博客-开篇介绍

作者&#xff1a;Eason_LYC 悲观者预言失败&#xff0c;十言九中。 乐观者创造奇迹&#xff0c;一次即可。 一个人的价值&#xff0c;在于他拥有的&#xff0c;而不是他会的。所以可以不学无数&#xff0c;但不能一无所有&#xff01; 技术领域&#xff1a;WEB安全、网络攻防 关…