备战秋招 | 笔试强训9

目录

一、选择题

二、编程题

三、选择题题解

四、编程题题解


一、选择题

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.mzph.cn/news/3461.shtml

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

相关文章

Layui基本功能(增删改查)

话不多说&#xff0c;根据我前面的博客我们直接进行操作。记住以下的文件放置&#xff0c;防止操作出不来. 这是我们要完成的界面及功能 后台功能实现 数据查看 我们在userDao方法里面进行增删改查的方法我们在userAction进行方法的编写R工具类的介绍 查询 userDao方法 因为我…

pico添加devmem2读写内存模块

devmem2读写内存 自定义msh命令devmem2验证msh命令devmem2读CPUID读写全局变量 devmem2模块可实现对设备寄存器的读写操作。在RT-Thread的命令行组件Fish中添加devmem2模块&#xff0c;用户可在终端输入devmem2相关命令&#xff0c;FinSH根据输入对指定寄存器进行读写&#xff…

Flask SQLAlchemy_Serializer ORM模型序列化

在前后端分离项目中&#xff0c;经常需要把ORM模型转化为字典&#xff0c;再将字典转化为JSON格式的字符串。在遇到sqlalchemy_serializer之前&#xff0c;我都是通过类似Java中的反射原理&#xff0c;获取当前ORM模型的所有字段&#xff0c;然后写一个to_dict方法来将字段以及…

FPGA adrv9002 4收4发板卡,支持NVME SATA EMMC 光口 FMC

板卡采用ADI 射频直采芯片ADRV9002 &#xff0c;支持4收4发支持外部本振 跳频 同时支持4X 10G光口对外传输&#xff0c;FMC扩展 。同时支持4X NVME接口&#xff0c;可以实时流盘&#xff0c;备份一路SAT A接口&#xff0c;板卡同时预留了EMMC&#xff0c;可以PS PL选通访问&…

IDEA 常用快捷键

•快速生成&#xff1a;main psvm / main •控制台快速输出语句 sout •删除一行&#xff1a;CTRL Y •复制一行&#xff1a;CTRL D •查找 •跳转切换 •阅读源码 •编辑 •新添&#xff0c;新建&#xff1a;ALT insert •目录显示与关闭&#xff1a;CTRL Fn F12 …

【Ajax】笔记-服务端响应JSON数据

服务端响应JSON数据 构建测试案例 键盘按键触发请求服务端&#xff1a; 键盘按下触发事件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width,…

【剧前爆米花--web】HTTP协议格式详解以及构造

作者&#xff1a;困了电视剧 专栏&#xff1a;《JavaEE初阶》 文章分布&#xff1a;这是一篇关于HTTP协议的文章&#xff0c;在这篇文章中我会说明HTTP协议格式以及相关的构造&#xff0c;希望对你有所帮助&#xff01; 目录 HTTP协议 HTTP协议格式 HTTP请求 HTTP响应详情…

TCP的窗口控制和重发控制【TCP原理(笔记三)】

文章目录 利用窗口控制提高速度窗口控制与重发控制确认应答未能返回的情况某个报文段丢失的情况 控制流 利用窗口控制提高速度 TCP以1个段为单位&#xff0c;每发一个段进行一次确认应答的处理&#xff0c;如图。这样的传输方式有一个缺点。那就是&#xff0c;包的往返时间越长…

【Spring】Spring AOP入门及实现原理剖析

文章目录 1 初探Aop1.1 何为AOP&#xff1f;1.2 AOP的组成1.2.1 切面(Aspect)1.2.2 连接点(Join Point)1.2.3 切点(Pointcut)1.2.4 通知(Advice) 1.3 AOP的使用场景 2 Spring AOP入门2.1 添加 Spring AOP 框架⽀持2.2 定义切面和切点2.3 定义相关通知 3 Spring AOP实现原理3.1 …

Fofa搜索技巧(理论加实践的整理)

目录 题记技巧&#xff08;我一般找国内的&#xff0c;所以下边一直加cn&#xff09;1、搜索HTTP响应头中含有"thinkphp"关键词的网站和IP。2、加上标题带有后台的。3、加上时间&#xff0c;现在新网站有thinkphp日志泄露的有很多。4、搜索html正文中含有"管理…

http-server 的安装与使用

文章目录 问题背景http-server简介安装nodejs安装http-server开启http服务http-server参数 问题背景 打开一个文档默认使用file协议打开&#xff0c;不能发送ajax请求&#xff0c;只能使用http协议才能请求资源&#xff0c;所以此时我们需要在本地建立一个http服务&#xff0c…

list最常用的遍历五种方式以及使用场景

目录 遍历方式的适用场景对比 迭代器遍历 列表迭代器 增强for遍历 Lambda表达式 lambda表达式简介 普通for遍历 集合中通用的并且常用的六种方法 遍历方式的适用场景对比 迭代器遍历 &#xff1a;在遍历过程中需要删除元素&#xff0c;请使用迭代器 列表迭代器&#xff1…

Segment Tree 线段树算法(java)

线段树算法 Segment Tree 线段树算法代码演示 蓄水池算法 Segment Tree 线段树算法 什么是线段树算法&#xff1a; 线段树&#xff08;Segment Tree&#xff09;是一种基于树结构的数据结构&#xff0c;用于解决区间查询问题&#xff0c;例如区间最大值、最小值、区间和等。线段…

在阿里云linux上安装MySql数据库

我们先远程连接服务器 然后输入 sudo yum update重新运行一下 然后 sudo yum install mysql-server安装 mysql 服务 其中有两次 y n 选择 都选y就好了 然后 运行 sudo service mysqld start启动MySql 然后 我们查看一下MySql sudo service mysqld status

git rebase 合并提交

一. 合并提交步骤 git log --oneline 查看当前提交记录 git rebase -i HEAD~2 选择最后提交的2条记录进行合并进入编辑界面,将c865404的pick改为f, 表示向前合并也就是向cc5a54合并 编辑完之后:wq 保存并退出git rebase --continuegit push --force origin feature/v1.2 推送…

opencv -11 图像运算之按位逻辑运算(图像融合图像修复和去除)

按位逻辑运算是一种对图像进行像素级别的逻辑操作的方法&#xff0c;使用OpenCV的按位逻辑运算函数可以对图像进行位与&#xff08;AND&#xff09;、位或&#xff08;OR&#xff09;、位非&#xff08;NOT&#xff09;和位异或&#xff08;XOR&#xff09;等操作。 通俗点就是…

docker-compose搭建prometheus+grafana+钉钉告警

前言&#xff1a; 本文将介绍使用docker-compose部署搭建promtheus监控容器、主机、服务等相关状态&#xff1b; 配合granfana面板构建监控大屏&#xff1b; 由于grafana的报警不是很友好&#xff0c;使用dingtalk&#xff0c;配合altermanager&#xff0c;实现钉钉报警。 …

认识Spring(1)

hi,大家好,今天继续为大家带来Spring的相关内容 文章目录 &#x1f9c1;1.理解Spring和IOC&#x1f9c1;2.DI和DF&#x1f378;2.1什么是DI&#x1f378;2.2什么是DF&#x1f378;2.3DI和DF的区别 &#x1f9c1;3 Spring创建和使用&#x1f378;3.1创建Spring项目&#x1f361…

【机器人模拟-02】 模拟移动机器人设置里程计

一、说明 在本教程中,我将向您展示如何设置移动机器人的测程。本教程是“机器人模拟”指南中的第二个教程。测量位移是仿真中的重要内容,设置测程的官方教程在此页面上,但我将逐步引导您完成整个过程。 您可以在此处获取此项目的完整代码。让我们开始吧! 二、ROS 2 中的里程…

密码学学习笔记(十五):ECDSA - 椭圆曲线数字签名算法

椭圆曲线数字签名算法是DSA的一种椭圆曲线变体&#xff0c;它发明的初衷只是避免使用Schnorr签名的专利。椭圆曲线数字签名算法依赖于验证器中的私钥和主机用于验证验证器的公钥。它的缺点和DSA一样&#xff0c;它也没有提供安全性证明。 椭圆曲线算法 DSS&#xff08;数字签…