C++刷题--选择题4

news2024/11/27 1:30:18

1, 在()情况下适宜采用 inline 定义内联函数
A 函数体含有循环语句
B 函数体含有递归语句
C 函数代码少、频繁调用
D 函数代码多,不常调用

解析 C,以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,从而避免了建立函数栈帧的开销,提高了程序的运行效率。 但它对编译器仅仅是一个建议,编译器可以忽略这个请求。 只有在函数代码少,频繁调用的时候编译器才会搞成内联数。


2,在 C++ 语言中,对函数参数默认值描述正确的是()
A 函数带默认值的参数只能有一个
B 一个函数的参数若有多个,则参数默认值的设定可以不连续
C 函数参数必须设定默认值
D 在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值

解析 : D, 因为函数参数的缺省只能是从右向左连续的, 因为传参的时候是先传左边


3, 下面关于类定义的说法中,正确的是:
A 类定义中包括数据成员和函数成员的声明
B 类成员的缺省访问权限是保护的
C 数据成员必须被声明为私有的
D 成员函数只能在类体外进行定义

解析 :选A, B访问权限可以设定的, C可以公有,保护的, D,可以在类内定义呢


4,假定一个类的构造函数为A(int aa,int bb){a=aa–;b=a*bb;},则执行A x(4,5);语句后,x.a和x.b的值分别为
A 20和5
B 3和15
C 5和4
D 4和20

解析:选D1, 后置减减, 先用后减


5, 下列关于构造函数的描述正确的是?
A 构造函数可以声明返回类型
B 构造函数不可以用private修饰
C 构造函数必须与类名相同
D 构造函数不能带参数

解析 : C, 其余全错


有一个类A,其数据成员如下:
class A {

private:
int a;
public:
const int b;
float* &c;
static const char* d;
static double* e;
};
则构造函数中,成员变量一定要通过初始化列表来初始化的是:______。
A a b c
B b c
C b c d e
D b c d
E b
F c

解析 : 选B, 必须通过初始化列表初始化的有3种 : 1,引用 2,const常量 3,自定义对象无默认构造


7, C++ 中,有如下类模板定义:

template<class T> 
class BigNumber
{
	long n;
public:
	BigNumber(T i) :n(i) 
	{}
	
	BigNumber operator+(BigNumber b) 
	{
		return BigNumber(n + b.n);
	}
};

已知 b1, b2 是 BigNumber 的两个对象,则下列表达式中错误的是()
A 3+3
B b1+3
C b1+b2
D 3+b1

解析 : 选D, A肯定没有错误, B也是没有错误的,3其实会去调用构造函数, C肯定没有错误, D3会传递给隐含的this指针,所以错误


8, 下面有关友元函数与成员函数的区别,描述错误的是?
A 友元函数可以让本类和友元类对象调用
B 友元函数和类的成员函数都可以访问类的私有成员变量或者是成员函数
C 类的成员函数是属于类的,调用的时候是通过指针this调用的
D 友元函数是有关键字friend修饰,调用的时候也是通过指针this调用的

解析:选D, 友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声
明,声明时需要加friend关键字。 而友元类的友元关系是不能传递的。

//B是A的友元, B可以访问A的私有成员。
class A
{
      friend class B;
}

9,对于以下代码,说法正确的是()

char * p = new char[100]

A p 和 new出来的内存都在栈上
B p 和 new出来的内存都在堆上
C p在栈上 new出来的在堆上
D p在堆上 new出来的在栈上

解析 : 选C


10.,类模板的使用实际上是类模板实例化成一个具体的__________
A 类
B 函数
C 模板类
D 对象

解析 : 选A


1, 关于重载函数,哪个说明是正确的()
A 函数名相同,参数类型或个数不同
B 函数名相同,返回值类型不同
C 函数名相同,函数内部实现不同
D 函数名称不同

解析 : 选择 A, 函数重载 : 在同一作用域,函数名相同,形参列表不同。
扩展: 为什么C语言不支持函数重载,C++支持呢? 因为在编译阶段, C++会将函数的形参列表信息添加到函数名修饰中,
从而可以区分相同的函数名, 而C语言不会添加,从而不能区分同名函数。


2, 关于引用以下说法错误的是()。
A 引用必须初始化,指针不必
B 引用初始化以后不能被改变,指针可以改变所指的对象
C 不存在指向空值的引用,但是存在指向空值的指针
D 一个引用可以看作是某个变量的一个“别名”
E 引用传值,指针传地址
F 函数参数可以声明为引用或指针类型

解析 : 选E, 引用和指针的底层原理一样, 所以引用表面是传值, 实际上还是传地址


3.,类定义的外部,一定可以被访问的成员有( )
A 所有类成员
B private或protected的类成员
C public的类成员
D public或private的类成员

解析 : 选C


请将下列构造函数补充完整,使得程序的运行结果是5

#include<iostream>
using namespace std;
class Sample{
public:
Sample(int x){
________
}

	~Sample()
	{
		if(p) 
		  delete p;
	} 
	
	int show()
	{
	return *p;
	} 
private:
	int*p;
};

int main()
{
	Sample S(5);
	cout<<S.show()<<endl;
	return 0;
}

解析 ,选B, new的返回值是指针


5,下列情况中,不会调用拷贝构造函数的是()

A 用一个对象去初始化同一个类的另一个新对象时
B 将类的一个对象赋值给该类的另一个对象时
C 函数的形参对象,调用函数进行形参和实参结合时
D 函数的返回值是类的对象,函数执行返回调用时

解析 : 选B,会调用赋值重载。 用一个已经存在的对象去初始化创建一个新对象的时候会调用拷贝构造。


6,以下代码共调用多少次拷贝构造函数:
Widget f(Widget u)

Widget f(Widget u)
{
	Widget v(u);
	Widget w=v;
	return w;
} 
main()
{
	Widget x;
	Widget y=f(f(x));
}

解析 :
在这里插入图片描述


7, 如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是()
A 一元运算符
B 二元运算符
C 选项A)和选项B)都可能
D 重载错误

解析:选D, 因为友元函数是普通函数,无this指针的,而运算符肯定是需要操作数的,而又无参数,肯定错误了


class A;
class B;
int main()
{
A a;
B b;
return 0;
}

main 函数中,变量 a 和 b 的构造函数和析构函数的调用顺序是()
A b构造 - a构造 - a析构 - b析构
B a构造 - a析构 - b构造 - b析构
C b构造 - a构造 - b析构 - a析构
D a构造 - b构造 - b析构 - a析构

解析 :选D, 在同一作用域中的对象析构顺序和构造顺序相反。 可以想象构造的时候进栈,析构的时候出栈


9,下面 C++ 程序的运行结果为()

#include <iostream>
using namespace std;
class cla {
static int n;
public:
cla() { n++; }
~cla() { n--; }
static int get_n() { return n; }
};
int cla::n = 0;
int main() {
cla* p = new cla;
delete p;
cout << "n=" << cla::get_n() << endl;
return 0;
}

A n=3
B n=4
C n=1
D n=0

解析 D,new的时候调用构造函数初始化n = 1, delete的时候调用析构函数,n = 0。 然后通过类名直接访问


10.,运行的程序总要与内存进行交互。内存作为操作系统中的重要资源,对内存的分配和释放进行管理是一项
非常重要的工作,以下说法中错误的是 ______。
A 内存泄露是内存管理中的常见问题
B 悬挂引用指的是对某个对象的应用实际上指向一个错误的内存地址
C 在C、C++等系统语言中,有自动的内存管理机制,不需要考虑内存管理的问题
D 程序的动态性越强,内存管理就越重要,内存分配程序的选择也就更重要

解析 : C

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

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

相关文章

SpringSecurity实现角色权限控制(SpringBoot+SpringSecurity+JWT)

文章目录 一、项目介绍二、SpringSecurity简介SpringSecurity中的几个重要组件&#xff1a;1.SecurityContextHolder&#xff08;class&#xff09;2.SecurityContext&#xff08;Interface&#xff09;3.Authentication&#xff08;Interface&#xff09;4.AuthenticationMana…

c++项目环境搭建(VMware+linux+ubantu+vscode+cmake)

想运行一个c项目&#xff0c;但是环境怎么整呢&#xff1f;b站走起&#xff01;&#xff01;&#xff01; 本文需要的安装包 链接&#xff1a;https://pan.baidu.com/s/1XJbR2F1boQ-CqV8P71UOqw 提取码&#xff1a;swin 一、在虚拟机中安装ubantu 八分钟完成VMware和ubunt…

Git命令大全,涵盖Git全部分类,非常值得收藏!

Git是一个分布式版本控制系统&#xff0c;可以让开发者在不同的平台和环境中协作开发项目。Git有很多命令&#xff0c;可以用来管理项目的状态、历史、分支、合并、冲突等。本文将介绍一些Git常用的命令&#xff0c;并给出示例和分类。 配置命令 配置命令可以用来设置Git的全局…

算法设计与分析:贪心法

目录 第一关&#xff1a;贪心法 任务描述&#xff1a; 相关知识&#xff1a; 贪心法的优缺点&#xff1a; 例题&#xff1a; 解题分析&#xff1a; 程序实现&#xff1a; 关键代码&#xff1a; 编程要求&#xff1a; 测试说明&#xff1a; 第二关&#xff1a;最小生成…

体验了下科大讯飞版ChatGPT,厉害了!

前几天科大讯飞的星火认知大模型发布了&#xff0c;我刚好有朋友在科大讯飞工作&#xff0c;于是就第一时间体验了一波。 一番体验下来确实比我预想的效果要好&#xff0c;没想到国产模型的效果还不错&#xff0c;我试了很多方面&#xff0c;比如通用常识功能、写作功能、学习…

【论文阅读】基于鲁棒强化学习的无人机能量采集可重构智能表面

只做学习记录&#xff0c;侵删原文链接 article{peng2023energy, title{Energy Harvesting Reconfigurable Intelligent Surface for UAV Based on Robust Deep Reinforcement Learning}, author{Peng, Haoran and Wang, Li-Chun}, journal{IEEE Transactions on Wireless Comm…

今日不足——学习目标做了但是没执行

今天复习概率论的时候我发现我复习数值计算方法的时候没有严格按照步骤来&#xff0c;如果按照步骤来我的最小二乘本来可以不用错的。我在复习时候的步骤之间就是抛开书本然后之间进入应用然后遇到不会的回头复习概念虽然缺失能做题目了但是不了解每个知识点的原理和思想&#…

el-drawer 被遮罩层覆盖 显示异常

这是由于元素的一些层级设置不同导致的&#xff0c;所以蒙层被放在了最顶端。解决方法就是加上如下2行代码: <el-drawer title"我是标题" :visible.sync"showDrawer" :direction"ltr" :append-to-body"true":modal-append-to-body&…

【C++ STL】 list 模拟实现

文章目录 &#x1f4cd;前言&#x1f308;STL之list的模拟实现&#x1f388;list_node节点的定义&#x1f388;iterator迭代器&#x1f56f;️构造函数&#x1f56f;️*it&#x1f56f;️->&#x1f56f;️it/it&#x1f56f;️it--/--it&#x1f56f;️! / &#x1f388;l…

Web开发介绍

Web开发介绍 1 什么是web开发 Web&#xff1a;全球广域网&#xff0c;也称为万维网(www World Wide Web)&#xff0c;能够通过浏览器访问的网站。 所以Web开发说白了&#xff0c;就是开发网站的&#xff0c;例如下图所示的网站&#xff1a;淘宝&#xff0c;京东等等 那么我们…

如何使用sbvadmin进行私有化部署的代码开发

前言 本文主要讲述如何使用sbvadmin进行私有化部署的代码开发&#xff0c;这里我们用的私有化仓库是gitee&#xff0c;当然你也可以用自己搭建的gitlab来做&#xff0c;原理差不多。 一、新建仓库 1.后端api 导入后端仓库&#xff1a;https://github.com/billyshen26/sbvadmi…

08- 算法解读 Mask R-CNN (目标检测)

要点&#xff1a; Mask R-CNN 解读 参考资料&#xff1a;vision/references/detection at main pytorch/vision GitHub 四 Mask R-CNN 基本信息 4.1 环境配置 Python3.6/3.7/3.8Pytorch1.10或以上pycocotools(Linux:pip install pycocotools; Windows:pip install pycoco…

Zigbee物联网应用与开发复习汇总(附某高校期末真题试卷)

文章目录 一、知识梳理二、编程实战三、高校真题A卷B卷 一、知识梳理 1. Zigbee、蓝牙、IEEE802.11b&#xff08;WiFi&#xff09;标准都是工作在2.4G频段的无线通信标准&#xff1b;Zigbee主要用在短距离无线控制系统&#xff0c;传输少量的控制信息&#xff1b; 2. 短距离无…

【Linux系统】Linux进程信号详解

Linux进程信号 0 引言1 认识信号1.1 什么是信号1.2 发送信号的本质1.3 信号的处理 2 信号的产生2.1 键盘产生2.2 调用系统函数向进程发送信号2.3 由软件条件产生信号2.4 硬件异常产生信号 3 信号的保存4 信号的处理5 总结 0 引言 本篇文章会从Linux信号的产生到信号的保存&…

rtl仿真器-epicsim安装和测试

前言 epicsim 是芯华章的仿真器&#xff0c;基于iverilog 据说速度快两倍。 源码 github https://github.com/x-epic/EpicSim gittee https://gitee.com/x-epic/ 公司网站 https://www.x-epic.com/index.html#/en/developer 维护中了 安装 依赖 有些 apt-get install 就可…

【2023秋招】2023华为od4.28三道题

2023大厂笔试模拟练习网站&#xff08;含题解&#xff09; www.codefun2000.com 最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据&#xff0c;挂载到我们的OJ上&#xff0c;供大家学习交流&#xff0c;体会笔试难度。现已录入200道互联网大厂模拟练习题&…

测试开发工程师到底是做什么的?你真的知道吗

目录 一二三线互联网公司对测试开发工程师的要求&#xff1a; 测试开发工程师的具体职责&#xff1a; 不要迷失方向 总结&#xff1a; 测试开发工程师必看视频教程&#xff1a; 一二三线互联网公司对测试开发工程师的要求&#xff1a; 现在很多测试的同事对测试开发工程师…

实现第一个服务器版本的表白墙程序

文章目录 表白墙前言1. 环境部署1.1 创建maven项目1.2 引入依赖1.3 创建目录结构1.4 部署程序 2. 前端页面3. 后端实现3.1 后端逻辑3.2 后端代码 表白墙 前言 基于MySQL数据库和servlet实现的前后端交互的服务器版本表白墙。在页面输入表白内容&#xff0c;在本地通过数据库存…

大数据Doris(二十三):Rollup物化索引作用和注意点

文章目录 Rollup物化索引作用和注意点 一、Rollup物化索引作用 1、改变索引 2、聚合数据

操作系统王道考研学习(二)操作系统的特征

目录 操作系统的特征&#xff1a;并发、共享、虚拟、异步 操作系统中并发为什么那么重要&#xff1f; 讲一讲多道程序技术 介绍一下空分复用技术 异步下程序是走走停停的 操作系统的特征&#xff1a;并发、共享、虚拟、异步 并发和共享 虚拟和异步 &#xff08;为什么要并…