C++笔试强训7

文章目录

  • 一、选择题
    • 1-5题
    • 6-10题
  • 二、编程题
    • 题目一
    • 题目二


一、选择题

1-5题

在这里插入图片描述
基础知识,函数代码少,频繁调用的时候才适合定义内联函数。
故选C。

在C++中,inline关键字是用来向编译器建议将函数体在每个调用点“内联展开”的。这意味着编译器会尝试将函数的代码直接插入到每个调用该函数的地方,而不是像通常那样进行函数调用(即,生成调用指令,跳转到函数代码,执行函数体,然后返回)。内联函数可以减少函数调用的开销,尤其是对于那些体积小、调用频繁的函数来说非常有用。然而,是否真正内联一个函数是由编译器决定的,编译器会基于多种因素(如函数体大小、优化级别、是否有递归调用等)来决定是否进行内联。

以下是一些适合使用inline定义内联函数的场景:

  1. 小型函数:函数体很小,只有几行代码。这些函数通常执行简单的操作,如计算或访问数据成员。

  2. 频繁调用的函数:如果函数在程序中频繁被调用,那么内联这些函数可以减少调用开销,提高程序的执行效率。

  3. 模板函数:模板函数通常因为模板实例化而产生大量的函数副本,这些副本往往很小且相似。将它们声明为内联可以减少代码膨胀。

  4. 不会引起副作用的函数:内联函数应该避免修改全局变量或执行其他会影响程序状态的操作,因为内联展开可能会使这些副作用在多个地方发生,导致程序行为难以预测。

  5. 类的成员函数:尤其是访问器(getter)和修改器(setter)函数,这些函数通常很简短,并且频繁被调用。将它们定义为内联可以提高效率。


在这里插入图片描述
函数参数默认值又叫缺省参数,缺省参数必须从右向左开始缺省,必须连续给定缺省值,也就是说,从左到右,一旦遇到一个参数是缺省的,那么之后的参数也必须都是缺省的。
函数参数不是必须设定默认值,可设可不设。

故选D


在这里插入图片描述

类成员的缺省访问权限是私有的private,B错;
数据成员不是必须声明为私有的,C错;
成员函数类内类外定义都行,D错;
故选A


在这里插入图片描述
aa是4,bb是5,a=aa–后,a是4,aa是3,b=abb后b=45=20
故a是4b是20
故选D


在这里插入图片描述
构造函数没有返回类型,构造函数函数名必须和类名相同,构造函数可以带参数,带参数的和不带的可以构成函数重载。
构造函数可以用private修饰
故选C


6-10题

在这里插入图片描述
const修饰的变量和引用类型必须利用初始化列表赋值,static const可以在类外初始化。故选B。

初始化列表位置才是真正的初始化,构造函数体中只是赋值
初始化列表中:只能对类中非静态的成员变量来进行初始化

那些成员必须在初始化列表的位置初始化:
1.const修饰的成员变量
2.引用类型的成员变量
3.类类型对象,该类没有默认的构造函数


在这里插入图片描述
如果将运算符符重载成类的成员函数,形参个数要比该运算符需要的参数个数少1
因为:成员函数具有隐藏的this指针

B选项 如果类中具有单个参数的构造函数,该构造函数具有类型转换的作用,可以用explicit来禁止这种隐式类型转换。
b1 + 3 编译器在编译代码节点,会调用单参构造函数将3转换为BigNumber的对象

C选项,没啥问题,符合重载的作用

D,因为+是双目运算符,所以重载+时第一个参数是隐藏的this指针,所以+左边必须是一个对象,D错。

故选D。


在这里插入图片描述
描述错误的是 D:友元函数是有关键字friend修饰,调用的时候也是通过指针this调用的。

解析:

A. 正确。友元函数是定义在类外部,但在类内部通过friend关键字声明,因此它可以被本类和友元类(或函数)的对象调用。

B. 正确。友元函数和类的成员函数都可以访问类的私有成员变量或成员函数。友元函数通过friend声明获得对类私有成员的访问权限,而成员函数则自然地拥有这种权限。

C. 正确。类的成员函数是属于类的,它们通过隐含的this指针来访问类的成员变量和成员函数。这个this指针指向调用成员函数的对象。

D. 错误。友元函数虽然通过friend关键字声明,但它不是类的成员函数,因此它不能通过this指针来调用。友元函数是在类外部定义的普通函数,它只能通过传入的参数(如果有的话)来访问类的成员,或者通过类的对象显式地访问(如果该函数设计为接受类的对象作为参数)。this指针是类成员函数特有的,用于指向调用该函数的对象。友元函数并不具备这种特性。


在这里插入图片描述
p是指针变量,在栈上,p指向的内存即new出来的在堆上,故选C。

对这块不太清楚的可以点下面的超链接去看看我的另一篇文章。
内存管理


在这里插入图片描述
选A。


二、编程题

题目一

题目链接:

Fibonacci数列
在这里插入图片描述

提交代码:

#include <iostream>
using namespace std;int main() {int num;cin >> num;int f1 = 0, f2 = 1;while (true) {if (num < f2) {break;}int tmp = 0;tmp = f2;f2 = f1 + f2;f1 = tmp;}cout << min(f2 - num, num - f1);
}
// 64 位输出请用 printf("%lld")

运行结果:
在这里插入图片描述


题目二

题目链接:

合法括号序列判断
在这里插入图片描述

提交代码:

class Parenthesis {public:bool chkParenthesis(string A, int n) {stack<char> s;for (int i = 0; i < n; i++) {if (A[i] == '(') {s.push(A[i]);} else if (A[i] == ')' && !s.empty()) {s.pop();} else return false;}return s.empty();}
};

运行结果:
在这里插入图片描述


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

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

相关文章

操作系统之基础IO

基础IO 一、C语言文件操作1、接口2、默认打开的流 二、Linux系统接口1、open&#xff08;1&#xff09;函数&#xff08;2&#xff09;参数 2、close&#xff08;1&#xff09;函数&#xff08;2&#xff09;参数 3、write和read&#xff08;1&#xff09;函数 三、文件描述符f…

vue使用x6画流程图,简单使用

官网 https://x6.antv.antgroup.com/tutorial/getting-started 安装 npm install antv/x6 --save 使用 <template><div>3333<div id"container" style"width: 800px;height: 800px;"></div></div> </template> <…

Linux-CentOS7忘记密码找回步骤

虚拟机版本 一、进入开机页面&#xff0c;先按上下&#xff08;↑↓&#xff09;键&#xff0c;以免系统自动启动。 二、按“e”键进入编辑页面,找到如下图位置&#xff0c;输入&#xff1a;init/bin/sh 按CTRLX 进入单用户模式。 三、 输入 mount -o remount,rw / 然后按 ent…

山东齐鲁文化名人起名大师颜廷利:中国最厉害的著名哲学家思想家教育家

昔日&#xff0c;祖籍齐鲁大地山东济南的世界级文化名人颜廷利教授儿时仰慕且追随的榜样&#xff0c;经过他的坚持不懈的努力&#xff0c;今朝终于比肩同框精神意识思想灵魂并行了… 山东济南最出名的起名大师的老师&#xff0c;21世纪全球知名哲学家思想家教育家颜廷利教授表示…

视频联网共享平台LntonCVS视频监控汇聚平台视频云解决方案

LntonCVS流媒体平台是一款遵循国家GB28181标准协议的先进视频监控与云服务平台。该平台设计独特&#xff0c;能够同时接入并处理多路设备的视频流&#xff0c;支持包括RTSP、RTMP、FLV、HLS、WebRTC在内的多种视频流格式的分发。其功能丰富多样&#xff0c;涵盖了视频直播监控、…

C++入门基础

目录 一、命名空间 1.命名空间的作用 2.命名空间的定义 3.命名空间的使用 二、输入输出 1.输出运算符<< 2.输入运算符>> 三、缺省参数 四、函数重载 五、引用 1.引用简介 2.引用的注意事项 3.const引用 4.引用与指针的关系 六、inline 一、命名空间 …

什么是离线语音识别芯片?与在线语音识别的区别

离线语音识别芯片是一种不需要联网和其他外部设备支持&#xff0c;‌上电即可使用的语音识别系统。‌它的应用场合相对单一&#xff0c;‌主要适用于智能家电、‌语音遥控器、‌智能玩具等&#xff0c;‌以及车载声控和一部分智能家居。‌离线语音识别芯片的特点包括小词汇量、…

【总结】nginx源码编译安装报错./configure: error: SSL modules require the OpenSSL library.

问题现象 源码编译安装nginx时&#xff0c;执行./configure …… --with-http_ssl_module 命令安装https模块&#xff0c;需要用到openssl&#xff0c;由于机器缺少openssl库&#xff0c;报如下错误。 …… checking for openat(), fstatat() ... found checking for getaddr…

3、宠物商店智能合约实战(truffle智能合约项目实战)

3、宠物商店智能合约实战&#xff08;truffle智能合约项目实战&#xff09; 1-宠物商店环境搭建、运行2-webjs与宠物逻辑实现3-领养智能合约初始化4-宠物领养实现5-更新宠物领养状态 1-宠物商店环境搭建、运行 https://www.trufflesuite.com/boxes/pet-shop 这个还是不行 或者…

【开发实战】QT5 + OpenCV4 开发环境配置应用演示

前言 作为深度学习算法工程师&#xff0c;必须要掌握应用开发技能吗&#xff1f;搞工程肯定是必须要会界面开发&#xff0c;QT就是一个很不错的选择。本文以QT5.15 OpenCV4.8 OpenVINO2023为例&#xff0c;搭建应用开发环境&#xff0c;演示深度学习模型的QT应用案例。 开发…

数学建模~~~SPSS相关和回归分析

目录 1.双变量相关分析 1.1理论基础 1.2简单散点图的绘制介绍 1.3相关性分析 1.4分析相关性结果 2.简单线性回归分析 2.1简单概括 2.2分析过程 2.3结果分析 3.曲线回归分析 3.1问题介绍 3.2分析过程 3.3结果分析 1.双变量相关分析 1.1理论基础 双变量相关分析并不…

关于Linux的面试题(实时更新中~)

一、软连接和硬连接的区别&#xff1a; 软连接创建方式 ln -s 被链接文件 链接文件 &#xff08;1&#xff09;软链接是一个链接文件&#xff1b; &#xff08;2&#xff09;软链接有着自己的 inode 号&#xff08;文件编号&#xff09;&#xff1b; &#xff08;3&#…

趣谈linux操作系统 9 网络系统-读书笔记

文章目录 网络协议栈基础知识回顾网络分层网络分层的目的各层作用简介延伸-ip地址,有类,无类,cidr socket实现分析tcp/udp回顾socket编程回顾TCP编程回顾UDP编程回顾差异 socket相关接口实现浅析sokcet实现解析创建socket的三个参数socket函数定义及其参数创建socket结构体关联…

最新CSM客户成功 OKR 案例:以指导、激励和调整您的团队

客户是任何企业的命脉&#xff0c;而客户服务是与客户接触的第一站&#xff0c;是实现目标和扩大组织规模是以保留客户和追加销售为前提的。 客户成功CSM是一种商业方法&#xff0c;确保客户在使用你的产品/服务时达到他们想要的结果。客户成功是以关系为中心的客户管理&#…

实战篇(十):使用Processing创建可爱花朵:实现随机位置、大小和颜色的花朵

使用Processing创建可爱花朵 0.效果预览1. 引言2. 设置Processing环境3. 创建花朵类4. 实现花瓣绘制5. 绘制可爱的笑脸6. 鼠标点击生成花朵7. 完整代码8. 总结与扩展0.效果预览 在本教程中,我们将使用Processing编程语言来创建一个可爱的花朵生成器。通过封装花朵为一个类,并…

最小化研发过程质量管理,质量与效率之间的平衡

前言 是不是流程约束越多&#xff0c;效率越低&#xff1f;不然&#xff0c;如果因为缺了流程约束&#xff0c;而搞砸了质量&#xff0c;那么一切都将归零。 所以找到一套适合自身的研发过程质量管理方式&#xff0c;在质量与效率之间趋向平衡是每个研发团队所必须要考虑的事…

Adobe Premiere Pro(Pr)安装包软件下载

一、简介 Adobe Premiere Pro&#xff08;简称Pr&#xff09;是由Adobe公司开发的一款功能强大的视频编辑软件。它支持多平台使用&#xff0c;包括Windows和Mac系统&#xff0c;并且拥有良好的兼容性和高效的性能。Premiere Pro不仅提供了视频剪辑、特效添加、音频处理等基本功…

go语言Gin框架的学习路线(七)

GORM入门(基于七米老师) 目录 GORM入门 安装 连接数据库 连接MySQL 连接PostgreSQL 连接Sqlite3 连接SQL Server 我们搞一个连接MySQL的例子 创建数据库 GORM操作MySQL GORM是一个流行的Go语言ORM&#xff08;对象关系映射&#xff09;库&#xff0c;它提供了一种方…

Haproxy服务

目录 一.haproxy介绍 1.主要特点和功能 2.haproxy 调度算法 3.haproxy 与nginx 和lvs的区别 二.安装 haproxy 服务 1. yum安装 2.第三方rpm 安装 3.编译安装haproxy 三.配置文件详解 1.官方地址配置文件官方帮助文档 2.HAProxy 的配置文件haproxy.cfg由两大部分组成&…

IAR环境下STM32+IAP方案的实现

--基于STM32F103ZET6的UART通讯实现 一、什么是IAP&#xff0c;为什么要IAP IAP即为In Application Programming(在应用中编程)&#xff0c;一般情况下&#xff0c;以STM32F10x系列芯片为主控制器的设备在出厂时就已经使用J-Link仿真器将应用代码烧录了&#xff0c;如果在设备使…