【C++笔试强训】第七天
选择题

解析:内联函数(
inline)一般用于代码较少,代码块里面没有递归且频繁调用的函数,是一种以空间换时间(不是指内存,而是指令变多编译出来的可执行程序会变大)的做法。内联函数在预编译的时候展开,会用函数体替换函数调用;内联函数可能会使目标文件变大,但是少了调用开销,增加程序运行的效率。

解析:函数默认的参数可以有多个;当参数为多数的时候,参数默认值应该从右往左进行缺省;参数可以不用设置默认值。

解析:对于类的默认访问权限:
class默认访问权限是私有(private)的,struct默认访问权限是公有的(public);类定义有2种方式:1.可以将声明和成员函数的定义全部放在类中;2.类中只放成员变量和成员函数的声明,成员函数的定义可以类外其他.cpp文件中,但是要注意成员函数名前要添加
类名::。成员可以声明为私有的也可以声明为公共的,通常建议将成员变量设置为
private,成员函数设置为public。

解析:调用构造函数时候,传参为
aa = 4 ,bb = 5;a = aa--后置--,是先使用再--,所以a = 4;b = a * bb,所以b = 20。下面为该类的实现,其中类中的成员为private,所以只能在类里面进行访问。

解析:这道题是考察构造函数。无参的构造函数、全缺省的构造函数及编译器自动生成的构造函数都被称为默认构造函数。
A 构造函数是没有返回值的,不可以声明返回类型;
B 一般情况下构造函数的权限都是public,因为在类外创建对象时,编译器要调用构造函数,但也有特殊情况,构造函数可以用
private进行修饰,但是修饰之后就不会在外部进行调用;单例模式:一个类只能创建一个对象,这时候会将构造函数设置为private,所以错误;C 构造函数必须与类名相同,正确;
D 构造函数也是个函数,可以带参数。

解析:必须用初始化列表初始化的是:自定义类型,
const修饰的类型,引用类型。所以b,c需要用初始化列表进行初始化。静态变量虽然有cosnt修饰,但是也是静态变量,静态变量必须在全局进行初始化。

如果将运算符重载成类的成员函数,形参个数要比该运算符操作数个数少1,因为成员函数含有隐藏的this指针
A 正确,是普通整形之间的加法
B中左操作数是 BigNumber类型,可以调用重载运算符,相当于b1.operator+(3),可以将3类型转换成BigNumber类,正确;
C 中相当于b1.operator+(b2),this指针代表左操作数,正确;
D 3不是BigNumber类型的对象,不能调用类中的函数,更不能够代表this指针,所以错误。可以写成类的友元函数方便这样使用。

解析:友元函数可以让本类和友元类对象调用;友元函数和类的成员函数都可以访问类的私有成员变量或者是成员函数;类的成员函数是属于类的,调用的时候是通过指针
this调用的;对于友元函数,是没有this指针的,友元函数打破了类访问限定符的限制,可以访问私有成员变量或者成员函数。所以D选项错误。

解析:变量
p是在栈上创建的,它是由操作系统分配的,new和malloc的功能类似,new出来的东西在堆区,是用户进行申请的。

解析:类模板实例化之后就会变成一个具体的类。
编程题
1.Fibonacci数列

解析:简单dp问题。我们先通过迭代找到距离N最相近的两个斐波那契数,然后通过比较计算得到哪个更近。注意在迭代的时候要先进行交换,再计算third的值。
#include <iostream>
using namespace std;int main() {int N = 0;cin >> N;int first = 0;int second = 1;int third = 1;//当N为0时,要单独进行计算if(N == 0){cout << "0";return 0;}while(third < N){ //一定要先进行交换,再计算thirdfirst = second;second = third;third = first + second;}int count1 = third - N;int count2 = N - second;int min = (count1 < count2) ? count1:count2;cout << min;return 0;
}
答案解析:本题是对于Fibonacci数列的一个考察,Fibonacci数列的性质是第一项和第二项都为1,后面的项形成递归:F(n) = F(n - 1) + F(n - 2)。
【解题思路】:本题可以通过先找到距离N最近的两个Fibonacci数,这两个数分别取自距离N的最近的左边一个数L和右边一个数R,然后通过min(N - L, R - N)找到最小步数。
#include <iostream>
using namespace std;
int main(){int N, f, l = 0,r = 0,f0 = 0,f1 = 1;cin >> N;while(1){f = f0 + f1;f0 = f1;f1 = f;//找到比N小且距离N最近的数,求出距离if(f < N)l = N-f;else{//找到比N大且距离N最近的数,求出距离r = f - N;break;}}//取最小距离cout << min(l,r) << endl;return 0;
}
2.合法括号序列判断

解析:本题利用栈操作,比较简单。首先检查一下字符串中是否有其他的字符;然后将字符为
(的入栈;遇见)出栈,确保都是成对;也要考虑出栈的时候栈为空,栈为空说明栈里面没有元素却遇见了),此时已经说明不成立了,直接返回false。当循环结束,判断栈是否为空,不为空说明不成立,返回false;为空说明成立,返回true。
class Parenthesis {
public:bool chkParenthesis(string A, int n) {// write code herestack<char> s1;for(int i = 0; i < n; i++){//判断是否有其他的字符if(A[i] != '(' && A[i] != ')')return false;//当为(的时候进栈if(A[i] == '(')s1.push(A[i]);//当为)的时候出栈,且在出栈的时候要判断栈是否为空if(A[i] == ')'){//如果栈为空,直接返回falseif(s1.empty())return false;s1.pop();}}//判断栈是否为空,如果不为空则返回false;如果为空,返回trueif(s1.empty())return true;elsereturn false;}
};
答案解析:本题考查的是对栈的应用
【解题思路】:
用栈结构实现,栈中存放左括号,当遇到右括号之后,检查栈中是否有左括号,如果有则出栈,如果没有,则说明不匹配。
class Parenthesis {
public:bool chkParenthesis(string A, int n) {// write code herestack<char> sc;for (auto ele : A) {switch (ele) {case'(':sc.push(ele);break;case')':{if (sc.empty() || sc.top() != '(')return false;elsesc.pop();}break;default:return false;}}return true;}
};
相关文章:
【C++笔试强训】第七天
选择题 解析:内联函数(inline)一般用于代码较少,代码块里面没有递归且频繁调用的函数,是一种以空间换时间(不是指内存,而是指令变多编译出来的可执行程序会变大)的做法。内联函数在预…...
mysql binlog 一直追加写,磁盘满了怎么办?
文章目录 mysql binlog 清理策略1、设置binlog最大的文件数和文件大小2、定时清理过期binlog文件3、手动清理binlog文件4、禁用或启用binlogmysql binlog用于记录mysql数据库所有变更(数据库的DDL、DML操作)包括用户执行的语句,以及底层引擎所执行的操作的二进制日志,主要用…...
缓存穿透、缓存雪崩、缓存击穿解决方案
什么是缓存 缓存就是数据交换的缓冲区(称作Cache),是存贮数据的临时地方,一般读写性能较高。 添加 redis 缓存 给店铺类型查询业务添加缓存 需求:添加ShopTypeController中的queryTypeList方法,添加查询缓存 缓存更新…...
web + servlet + jdbc mysql 实现简单的表单管理界面
目录数据库创建数据库连接servlet创建,这里注意一下我的数据库我自己改了一下名字lhx网页html运行文件目录展示首先我们准备好开发使用的工具以及配置 idea2020 tomcat8.5 创建javaweb参考idea编译Tomcat详细步骤 IDEA通过JDBC连接数据库请参考jdbc连接数据库 需要登陆注册界面…...
Maven 国内镜像仓库
镜像仓库目标 当我们未定义任何远程仓库时,使用 Maven 更新依赖时,其会去默认远程仓库中拉取,默认远程仓库 是国外地址,所以在国内访问特别慢,想提升访问速度,需要将国外地址换成国内地址 更换仓库地址的…...
day21 ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
二叉搜索树的最小绝对差 二叉搜索树(Binary Search Tree,简称 BST)是一种特殊的二叉树,它的每个节点都满足以下条件: 左子树上所有节点的值均小于该节点的值;右子树上所有节点的值均大于该节点的值&#…...
大学计算机(软件类)专业推荐竞赛 / 证书 官网及赛事相关信息整理
大学计算机专业(软件)推荐竞赛 / 证书 官网及赛事相关信息 一、算法类(丰富简历): 1、ACM国际大学生程序设计竞赛: 官网:https://icpc.global/ 国内:http://icpc.pku.edu.cn/index.htm 报名方式:区域预赛一般每年9-1…...
Metasploit入门到高级【第九章】
预计更新第一章:Metasploit 简介 Metasploit 是什么Metasploit 的历史和发展Metasploit 的组成部分 第二章:Kali Linux 入门 Kali Linux 简介Kali Linux 安装和配置常用命令和工具介绍 第三章:Metasploit 基础 Metasploit 的基本概念Met…...
JDK之8后: 协程? 虚拟线程!!!
特性官方文档: https://openjdk.org/jeps/436 Java协程 近三十年来,Java 开发人员一直依赖线程作为并发服务器应用程序的构建块。每个方法中的每个语句都在线程内执行,并且由于 Java 是多线程的,因此多个执行线程同时发生。线程是Java的并发…...
体验 jeecg
体验 jeecg官网地址事前准备安装升级 node 和 npm 版本验证安装安装 pnpm clidocker 启动 MySQLdocker 启动 redisgit clone 项目启动JAVA项目 jeecg-boot启动Vue3项目 jeecgboot-vue3官网地址 http://www.jeecg.com/ 事前准备 (1) 为了回避Could not find artifact com.mic…...
投稿指南【NO.13】计算机学会CCF推荐期刊和会议分享(人工智能)
前 言国内高等院校研究生及博士毕业条件需要发表高水平期刊或者顶会(清北上交等重点学校毕业要求为至少发一篇顶会),很多同学私信问到一级学会的会议论文怎么找、是什么,比如前段时间放榜的CVPR论文就是人工智能领域的顶会国际会议…...
一份sql笔试
1、 select substr(time,1,10),count(order_id),count(distinct passenger_id) from order where substr(time,1,7)2023-08 group by substr(time,1,10) order by substr(time,1,10);2、 select city_id from (select * from order where substr(time,1,7) 2022-08) t1 left j…...
交换瓶子
交换瓶子 贡献者:programmer_ada 有N个瓶子,编号 1 ~ N,放在架子上。 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置。 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么…...
二、Docker安装、启动、卸载、示例
Docker 支持 CentOS 6 及以后的版本,可以直接通过yum进行安装: 使用流程:启动主机 – 启动Docker服务 – 下载容器镜像 – 启动镜像得一个到容器 – 进入容器使用我们想要的程序 主机一般是Linux、Utuban 以下主机系统以CentOS7为例子&#…...
开心档之C++ STL 教程
C STL 教程 目录 C STL 教程 实例 在前面的章节中,我们已经学习了 C 模板的概念。C STL(标准模板库)是一套功能强大的 C 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构…...
Thread 类的基本用法
文章目录一、线程创建1.1 Thread的常见构造方法2.1 创建线程二、线程中断2.1 Thread的几个常见属性2.2 中断线程三、线程等待四、线程休眠五、获取线程实例一、线程创建 1.1 Thread的常见构造方法 方法说明Thread()创建线程对象Thread(Runnable target)使用Runnable对象创建线…...
2023.3.28 天梯赛训练赛补题(病毒溯源 , 龙龙送外卖 , 红色警报)
文章目录1.病毒溯源问题:求树的最长链长度和字典序最小的最长链思路:2.龙龙送外卖思路:3.红色警报:思路:1.病毒溯源 问题:求树的最长链长度和字典序最小的最长链 思路: 一开始用 bfs 做的 &a…...
917. 仅仅反转字母
917. 仅仅反转字母https://leetcode.cn/problems/reverse-only-letters/ 难度简单189 给你一个字符串 s ,根据下述规则反转字符串: 所有非英文字母保留在原有位置。所有英文字母(小写或大写)位置反转。 返回反转后的 s 。 示例…...
Linux-Git
一、总论 1.1 写在前面的话 这已经是我第三遍学Git相关操作了,可以说这个玩意是真的狗,因为确实用不到,不知道下个学期会不会用到,直到现在我刚刚学完,处于知识水平的巅峰,知道Git的具体功能ÿ…...
leetcode:2273. 移除字母异位词后的结果数组(python3解法)
难度:简单 给你一个下标从 0 开始的字符串 words ,其中 words[i] 由小写英文字符组成。 在一步操作中,需要选出任一下标 i ,从 words 中 删除 words[i] 。其中下标 i 需要同时满足下述两个条件: 0 < i < words.l…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
ZYNQ学习记录FPGA(一)ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...

