备战秋招 | 笔试强训9

news2024/10/5 21:18:36

目录

一、选择题

二、编程题

三、选择题题解

四、编程题题解


一、选择题

1、某函数申明如下()

void Func(int &nVal1);

A. Func(a)

B. Func(&a)

C. Func(*a)

D. Func(&(*a))

2、C++语言中,类ClassA的构造函数和析构函数的执行次数分别为()

ClassA *pclassa=new ClassA[5];
delete pclassa;

A. 5,1

B. 1,1

C. 5,5

D. 1,5

3、动态内存分配(C语言中malloc,C++中的new)得到的存储区属于内存中的:

A. 静态区

B. 堆(heap)

C. 栈(stack)

D. 堆栈

E. 内核内存

F. 不确定

4、下列静态数据成员的特性中,错误的是()

A. 引用静态数据成员时,要在静态数据成员名前加和作用域符号

B. 说明静态数据成员时前边要加关键字static来修饰

C. 静态数据成员在类体外进行初始化

D. 静态数据成员不是所有对象所共有的

5、用class关键字定义的类,其成员默认的访问属性为()

A. private

B. protected

C. public

D. 无定义

6、在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是 ( )。

A. 无操作数的运算符

B. 二元运算符

C. 前缀一元运算符

D. 后缀一元运算符

7、有如下程序:运行时的输出结果是

#include<iostream>
using namespace std;
class MyClass
{
    public:
    MyClass(int i=0){cout<<1;}
    MyClass(const MyClass&x){cout<<2;}
    MyClass& operator=(const MyClass&x){cout<<3; return*this;}
    ~MyClass(){cout<<4;}
};
int main()
{
    MyClass obj1(1),obj2(2),obj3(obj1);
    return 0;
}

A. 121,444

B. 112,444

C. 11,114,444

D. 11,314,445

E. 11,314,444

8、下面有关c++静态数据成员,说法正确的是()

A. 不能在类内初始化

B. 不能被类的对象调用

C. 不能受private修饰符的作用

D. 可以直接用类名调用

9、在C++中,为了让某个类只能通过new来创建(即如果直接创建对象,编译器将报错),应该()

A. 将构造函数设为私有

B. 将析构函数设为私有

C. 将构造函数和析构函数均设为私有

D. 没有办法能做到

10、下列的模板声明中,其中几个是正确的()

1)template
2)template<T1,T2>
3)template<class T1,T2>
4)template<class T1,class T2>
5)template<typename T1,T2>
6)template<typename T1,typename T2>
7)template<class T1,typename T2>
8)<typename T1,class T2>

A. 2

B. 3

C. 4

D. 5

二、编程题

1、另类加法  题目链接

2、走方格的方案数  题目链接 

三、选择题题解

1、某函数声明如下()

void Func(int &nVal1);

A. Func(a)

B. Func(&a)

C. Func(*a)

D. Func(&(*a))

正确答案:A

题解:

         我们观察函数,是引用,因此我们传参时,以一种类似 “传值” 的方式传参即可(底层是传指针,我们前面早已介绍过)

2、C++语言中,类ClassA的构造函数和析构函数的执行次数分别为()

ClassA *pclassa=new ClassA[5];
delete pclassa;

A. 5,1

B. 1,1

C. 5,5

D. 1,5

正确答案:A

题解:

         注意题目new一个对象时,用了 [ ] ,因此首先会创建5个classA对象的空间,然后再调用5次构造函数,而delete时,由于没有方括号因此只会调用一次析构函数,然后再所释放其空间,因此只调用一次析构;

3、动态内存分配(C语言中malloc,C++中的new)得到的存储区属于内存中的:

A. 静态区

B. 堆(heap)

C. 栈(stack)

D. 堆栈

E. 内核内存

F. 不确定

正确答案:B

题解:

        动态内存分配申请的空间来自于堆,概念题; 

4、下列静态数据成员的特性中,错误的是()

A. 引用静态数据成员时,要在静态数据成员名前加和作用域符号

B. 说明静态数据成员时前边要加关键字static来修饰

C. 静态数据成员在类体外进行初始化

D. 静态数据成员不是所有对象所共有的

正确答案:D

题解:

         静态成员变量属于这个类的所有对象,并不属于某个具体的对象;选D错误;

5、用class关键字定义的类,其成员默认的访问属性为()

A. private

B. protected

C. public

D. 无定义

正确答案:A

题解:

         class的成员默认访问权限为private,默认继承权限也为private,struct的成员默认访问权限为public,默认继承权限也为public;

6、在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是 ( )。

A. 无操作数的运算符

B. 二元运算符

C. 前缀一元运算符

D. 后缀一元运算符

正确答案:C

题解:

         当重载运算符为成员函数时,若其中没有任何参数,由于其是类的成员函数,故会传this指针,故应该为前缀一元运算符,若给参数int,则为后缀一元操作符;

7、有如下程序:运行时的输出结果是

#include<iostream>
using namespace std;
class MyClass
{
    public:
    MyClass(int i=0){cout<<1;}
    MyClass(const MyClass&x){cout<<2;}
    MyClass& operator=(const MyClass&x){cout<<3; return*this;}
    ~MyClass(){cout<<4;}
};
int main()
{
    MyClass obj1(1),obj2(2),obj3(obj1);
    return 0;
}

A. 121,444

B. 112,444

C. 11,114,444

D. 11,314,445

E. 11,314,444

正确答案:B

题解:

         分别创建3个对象,对象1和对象2使用的是构造函数,对象3是用拷贝构造进行初始化,因此会打印112,接着析构三个对象,打印444;

8、下面有关c++静态数据成员,说法正确的是()

A. 不能在类内初始化

B. 不能被类的对象调用

C. 不能受private修饰符的作用

D. 可以直接用类名调用

正确答案:D 

题解:

        A选项,对于普通静态数据成员,确实只能再类内声明,再类外进行定义,而const 修饰的静态整型家族数据成员,可以在类内定义,这是一种特殊语法;B选项,可以被类的对象调用;C选项,可以被private修饰;D选项,正确;

9、在C++中,为了让某个类只能通过new来创建(即如果直接创建对象,编译器将报错),应该()

A. 将构造函数设为私有

B. 将析构函数设为私有

C. 将构造函数和析构函数均设为私有

D. 没有办法能做到

正确答案:B

题解:

         假设我们将构造函数私有,由于构造函数私有,确实不能直接创建对象了,但是我们也不能通过new构造对象了,因此new主要分为两步,1、申请空间;2、调用构造进行初始化;,因此A错误;B选项,当我们将析构函数私有后,由于只能在类内调用析构,而我们一般创建的对象在出作用域时调用析构,由于无法调用析构,因此编译器也不允许我们直接构造对象,但由于构造并没有被封,我们可以通过new构造对象,然后如果我们需要析构这个对象,我们需要实现一个公有的方法,在这个公有的方法里调用析构,然后我们通过这个公有的方法进行析构;故B正确;

10、下列的模板声明中,其中几个是正确的()

1)template
2)template<T1,T2>
3)template<class T1,T2>
4)template<class T1,class T2>
5)template<typename T1,T2>
6)template<typename T1,typename T2>
7)template<class T1,typename T2>
8)<typename T1,class T2>

A. 2

B. 3

C. 4

D. 5

正确答案:B

题解:

         根据语法,每个类型参数前都必须由class或者typename,可以混用,故(4)(6)(7)都正确;选B;

四、编程题题解

1、另类加法

题解:我们利用异或的不进位加法特性进行解题,具体如下;

 

        我们得到了非进位的加法后的结果,那我们如何得到加法的进位呢?首先我们要清楚二进制的进位是两个二进制位都为1,相加后往后一位进1,你是否联想到了什么?我们是否可以通过两个数相与之后,在使用左移运算符,向左移动一位;这不就得到了我们的进位吗?

即 进位的数 = (A & B)<< 1;

 

        我们将进位的值与不进位相加的值进行相加不就是结果的值吗?(用或运算符)但是这个结果也是不准确的,因为我们要考虑连续进位的情况;因此有了以下代码;

class UnusualAdd 
{
public:
    int addAB(int A, int B) 
    {
        // 可能会出现连续进位的情况
        while(B)
        {
            int tmp = (A & B) << 1; // 进位的值
            A ^= B; // 不进位相加后的值
            B = tmp;
        }
        return A;
    }
};

2、走方格的方案数

题解:本题主要使用动态规划的思路进行解题,具体如下;

        有了以上的思路,具体我们还是来看代码是如何实现的;如下所示;

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

int main() 
{
    int n, m;
    cin >> n >> m;
    // 注意这里多开一个空间,因为题目给的是网格数
    vector<vector<int>> dp(n + 1, vector<int>(m + 1, 0));
    // 注意这里也必须都是小于等于
    for(int i = 0; i <= n; i++)
    {
        for(int j = 0; j <= m; j++)
        {
            if(i == 0 || j == 0)
            {
                dp[i][j] = 1;
            }
            else 
            {
                dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
            }
        }
    }
    cout << dp[n][m] << endl;
    return 0;
}

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

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

相关文章

API漏洞检测研究

xray API漏洞检测_青霄的博客-CSDN博客 Swagger ui接口自动化批量漏洞测试_swgeer-ui 漏洞_山山而川的博客-CSDN博客 什么是 API 安全测试以及它是如何工作的&#xff1f; | Synopsys API 安全测试针对应用程序编程接口 (API) &#xff0c;就其安全性、正确性和可靠性进行测试&…

PHP之 使用阿里云对象存储OSS上传图片

参考地址 https://blog.csdn.net/weixin_42672802/article/details/129136850 https://blog.csdn.net/HZX19941018/article/details/86066529 function uploadosss($images){// 阿里云账号AccessKey拥有所有API的访问权限&#xff0c;风险很高。强烈建议您创建并使用RAM用户进…

自动化测试转型挑战及其解决方案

目录 前言&#xff1a; 自动化测试挑战 选择合适的自动化测试方法 选择正确的自动化工具 整理数据 何时开始和停止 如何克服挑战 前言&#xff1a; 自动化测试的转型是许多组织在提高测试效率和质量方面的重要举措。然而&#xff0c;这个转型过程中可能会面临一些挑战。…

python_day11_pymysql

SQL基础语法回忆 show DATABASES;use world;-- SELECT DATABASES();show TABLES;CREATE TABLE Student(id int,name VARCHAR(10),age int,gender VARCHAR(5&#xff09; );删除表 # 删除表 DROP TABLE Student;插入操作 insert into student(id) VALUES(1),(2),(3);insert i…

通达信比较好用的CCI指标公式_通达信公式

M:14;N:6;Q:20; MM:IF(PERIOD0,M,IF(PERIOD1,M,IF(PERIOD2,M,IF(PERIOD3,M,IF(PERIOD4, M,IF(PERIOD5,Q,IF(PERIOD6,Q,IF(PERIOD7,Q,0)))))))); AVG:(HIGHLOWCLOSE)/3; CCI:(AVG-MA(AVG,MM))/(0.015*AVEDEV(AVG,MM)); DIF:CCI-REF(CCI,1),LINETHICK0; 前差值:ABS(REF(CCI,1…

vue3后台管理系统封装的弹窗组件

弹窗组件效果 ComModelR.vue组件 <template><div><a-modal v-model:visible"visible" :title"title" ok"handleOk" :bodyStyle"bodyStyle" :width"width" :maskClosable"false":destroyOnClose&q…

性能测试监控指标及分析调优

目录 前言&#xff1a; 一、哪些因素会成为系统的瓶颈&#xff1f; 二、哪些指标做为衡量系统的性能 1、RT 响应时间&#xff0c;包括如下 2、TPS 吞吐量 3、资源使用率 三、性能测试注意的问题 四、定位性能问题的时候&#xff0c;可以使用自下而上的策略分析排查 五…

铁电材料极化高压放大器ATA-7025技术指标及使用说明

铁电材料是一类具有特殊电学性质的材料&#xff0c;在现代电子技术和器件中具有广泛的应用。铁电材料的极化是其重要的特征之一&#xff0c;极化测试是评估铁电材料性能的关键方法之一。一般铁电极化测试&#xff0c;是通过根据外电场施加的电压变化来观察材料产生的极化效应。…

unity01 界面布局

布局 坐标系 遵循左手定则&#xff0c;中指是y轴、食指是x轴、大拇指是z轴。 可以理解为x轴代表东西方向&#xff0c;z轴代表南北方向&#xff0c;y轴代表上下方向。 常用快捷键 鼠标中键&#xff1a;移动地图 右键&#xff1a;移动视角 shift鼠标左键单击gimo导航器的小方…

一行代码解决Taro中VirtualList虚拟列表渲染抖动的问题

文章目录 引言&#xff1a;问题背景一、虚拟列表的使用场景二、解决Taro组件VirtualList的抖动问题1. VirtualList的使用方法2. 解决之法 三、扩展场景&#xff1a;关于key的其他抖动问题&#xff0c;如表格组件 引言&#xff1a;问题背景 使用Taro 提供的组件库 VirtualList …

微信合并转发的图片如何批量保存

今天遇到一个场景&#xff1a;朋友给转发来了一个合并的聊天记录&#xff0c;里面是几十张图片&#xff0c;希望能打印出来。逐张保存太费手了。下面是批量保存图片的方法&#xff1a; 1、登录PC端微信&#xff1b; 2、将要保存图片的这条合并转发的聊天记录收藏&#xff1b;…

内存参数问题导致内存溢出

问题&#xff1a;内存参数问题导致内存溢出 1、文件过大&#xff0c;进行分块 2、 运行参数&#xff0c;使用最大内存配置2时&#xff0c;导致空指针异常。 3、获取详细报错信息-内存溢出 多线程捕获Throwable异常 修改代码&#xff0c;捕获Throwable&#xff0c;获取异常 异…

Go安装环境

一、golang编译器下载 网址&#xff1a;https://golang.google.cn/dl/ 我自己是在本地测试的 就安装的是windows的 二、环境配置 编译器安装完成后&#xff0c;找到安装文件夹下的bin文件夹&#xff0c;里面含有 go.exe 可执行文件&#xff0c;将 bin 文件夹的路径添加到系统…

图像标注是什么?及其类型和应用

什么是图像标注&#xff1f; 图像标注是与您交互的许多人工智能产品的基础&#xff0c;并且是计算机视觉&#xff08;CV&#xff09;领域重要的过程之一。在图像标注过程中&#xff0c;数据标注员使用标签或元数据来标记AI模型学习识别的数据特征。然后&#xff0c;这些图像标…

C++模拟实现vector

目录 1.代码实现 2.注意事项 1.成员变量 2. 不能使用memcpy函数拷贝数据 1.用string类型测试时&#xff0c;要考虑到vs可能把数据存储在数组buffer里面 3.insert函数中指针的失效性 1.加引用&#xff0c;那么就不能传常量&#xff0c;比如v.begin() 3 2.加引用&#x…

C#委托相关知识

最开始学习C#的时候&#xff0c;简单的看过委托&#xff0c;最近工作中经常需要使用到委托。这篇笔记是对之前看过的委托的一个补充&#xff0c;也是对最近工作中遇到的委托的一个总结吧。 这里使用的是窗体程序作为例子。实例在文末&#xff0c;可下载。 委托是一个类&#xf…

【动手学深度学习】--15.含并行连结的网络GoogLeNet

文章目录 含并行连结的网络GoogLeNet1.Inception块2.GoogLeNet模型3.训练模型 含并行连结的网络GoogLeNet 学习视频&#xff1a;含并行连结的网络 GoogLeNet / Inception V3【动手学深度学习v2】 官方笔记&#xff1a;含并行连结的网络&#xff08;GoogLeNet&#xff09; 1.…

【智能交互】OPPO接入小布语音技能通关教程:个人开发者实现接口调用

目录 前言实际操作注册OPPO平台账号打开创建技能界面创建技能创建意图槽位解析对话管理对话测试接口代码编写接口创建新建意图对话管理测试猜想测试相关文档前言 适用人群:本教程适合大赛接入小布语音技能的同学以及初次使用小布助手的开发者 本篇文章是博主弄了多次测试才勉…

勒索花样繁多,“Sophos Encrypt”披马甲进行勒索攻击

近日&#xff0c;网络安全供应商Sophos发表声明&#xff0c;称Sophos被一款名为“Sophos Encrypt”新型勒索软件冒充&#xff0c;该勒索软件进行攻击时会冒用Sophos品牌名称&#xff0c;并将用户重要文件进行加密以勒索赎金。 现在的勒索软件类型多样&#xff0c;令企业防不胜防…

LeetCode·每日一题·874. 模拟行走机器人·哈希

作者&#xff1a;小迅 链接&#xff1a;https://leetcode.cn/problems/walking-robot-simulation/solutions/2350184/ha-xi-biao-zhu-shi-chao-ji-xiang-xi-by-x-20cg/ 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 著作权归作者所有。商业转载请联系作者获得授权&am…