C++每日选择题—Day1

第一题

以下C++代码会输出什么?

#include <iostream>
using namespace std;
class A 
{
public:A() {}~A() {}
private:static int a;
};
int main() {cout << sizeof(A) << endl;return 0;
}

A:0

B:1

C:4

D:8

答案及解析 B

首先,成员函数不存在于实例化对象 中,其次static定义的静态成员变量不属于任何一个对象,是属于整个类的,也不存在实例化对象中。所以这个类其实啥都没有,记住,什么都没有存的类是默认一个字节的,所以选择B

相关博客:C/C++内存对齐规则(结构体、联合体、类)-CSDN博客

第二题

不考虑任何编译器优化(如:NRVO),下述代码第10行会发生()

#include <stdio.h>
class B
{};
B func(const B& rhs)
{return rhs;
}
int main()
{B b1, b2;b2 = func(b1);  //10
}

A:一次默认构造函数,一次拷贝构造函数,一次析构函数,一次(拷贝赋值运算符)operator=

B:二次拷贝构造函数,一次析构函数

C:一次(拷贝赋值运算符)operator=,一次析构函数

D:一次拷贝构造函数,一次析构函数,一次(拷贝赋值运算符)operator=

答案及解析 D

注意说的是第十行,所以不用考虑B b1,b2;

而第十行,首先是调用函数func,由于是引用传参,不需要拷贝构造,但是在返回值这里需要拷贝一个临时变量tmp,用临时变量tmp来返回,所以b2 = tmp;所以这里就是调用的赋值运算符重载函数,然后tmp调用析构函数,因为这个临时变量他tmp完成它的任务来,就会被销毁;

第三题

3. 在32位系统中,关于下面程序说法正确的是()

class Item 
{
private:char *desc;int storage;
public:Item()
{desc = new char[51];}void setInfo(char *dsrc, int num) 
{strcpy(desc,dsrc);   storage = num;}
};int main() 
{Item stock;   stock.setInfo("pen",20);return 0;
}

A:main函数定义了一个stock对象占8个字节

B:storage和desc成员各占4个字节

C:存在内存泄漏的问题

D:存在编译错误

答案及解析 ABC

A:stock是Item这个类的实例化对象,占了8个字节,指针在32位机器上是4字节,int是4字节,通过内存对齐,为8字节; 不懂的可以看这篇博客: C/C++内存对齐规则(结构体、联合体、类)-CSDN博客B​​​​​​​B
B:正确,int类型4字节,32位的指针类型为4字节
C:存在内存泄漏,因为我们在构造函数这里开辟了空间,没有释放
D:不存在编译错误

第四题

4. 对静态成员的正确描述是()?

A:静态数据成员要在类外定义和初始化

B:非静态成员函数也可以操作静态数据成员

C:全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区

D:调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针

答案及解析  B C

A:静态成员变量,在类里面声明,在类外面定义;

B:因为静态成员变量,是属于整个类的,所以并不需要this指针,非静态成员函数可以不使用this指针直接用静态成员变量;

C:全局变量,静态变量存在静态区,局部变量存在栈;

D:静态成员函数是没有this指针的,因为也是属于整个类的;

第五题

5. 以下程序打印的两个字符分别是()

#include<stdio.h>
#include<iostream>
using namespace std;
struct object 
{char data[3];
};int main() 
{object obj_array[3] = {{'a', 'b', 'c'}, {'d', 'e', 'f'}, {'g', 'h', 'i'}};object *cur = obj_array;printf("%c %c\n", *(char *)((char *)(cur) + 2), *(char *)(cur + 2));return 0;
}

A:c g

B:b d

C:g g

D:g c

答案及解析 A

本题是考查对指针的加整数的考查;

obj_array[3] 这个是存放的字符串的结构体数组,数组每个元素都是字符串;

我们用cur指针指向这个结构体数组的首元素;

我们(char*)cur 是强制类型转换成char类型,目的就是在+2的时候,移动的是两个字节;

所以移动到c位置,(char*) 再强制类型转换一下,是为了解引用的时候取的也是一个char类型,所以就是c,下一个同理;

用图表示:

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

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

相关文章

2023年最新PyCharm环境搭建教程(含Python下载安装)

文章目录 写在前面PythonPython简介Python生态圈Python下载安装 PyCharmPyCharm简介PyCharm下载安装PyCharm环境搭建 写在后面 写在前面 最近博主收到了好多小伙伴的吐槽称不会下载安装python&#xff0c;博主听到后非常的扎心&#xff0c;经过博主几天的熬夜加班&#xff0c;…

单链表实现【队列】

目录 队列的概念及其结构 队列的实现 数组队列 链式队列 队列的常见接口的实现 主函数Test.c 头文件&函数声明Queue.h 头文件 函数声明 函数实现Queue.c 初始化QueueInit 创建节点Createnode 空间释放QueueDestroy 入队列QueuePush 出队列QueuePop 队头元…

Hyper-V系列:Hyper-V启动、创建虚拟机、与主机传输文件

Hyper-V启动、创建虚拟机、与主机传输文件 一. 简介二. 启用Hyper-V的方式也很简单:一、从“任务管理器”的“性能”查看虚拟化是否启用,未启用的需要到BIOS开启:右下角可以看到“虚拟化:已启用”二、启用Hyper-v和虚拟机1.电脑左下角右键打开应用界面——可选功能2.在可选…

JavaScript 原始数据类型和对应的对象类型(内置对象)之间的关系

JavaScript 原始数据类型和对应的对象类型&#xff08;内置对象&#xff09;之间的关系 JavaScript 的原始&#xff08;primitive&#xff09;数据类型包括包括数字&#xff08;Number&#xff09;、字符串&#xff08;String&#xff09;、布尔值&#xff08;Boolean&#xf…

【数据结构】E : 货币套汇(图路径)

E : 货币套汇&#xff08;图路径&#xff09; Description 套汇是指利用货币汇兑率的差异将一个单位的某种货币转换为大于一个单位的同种货币。例如&#xff0c;假定1 美元可以买0.7 英镑&#xff0c;1 英镑可以买9.5 法郎&#xff0c;1法郎可以买到0.16美元。通过货币兑换&a…

ELK企业级日志分析平台——ES集群监控

启用xpack认证 官网&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/7.6/configuring-tls.html#node-certificates 在elk1上生成证书 [rootelk1 ~]# cd /usr/share/elasticsearch/[rootelk1 elasticsearch]# bin/elasticsearch-certutil ca[rootelk1 ela…

GB/T 29498-2013 木门窗检测

木门窗是指以木材、木质复合材料为主要材料制作框和扇的门窗。 GB/T 29498-2013 木门窗检测项目 测试项目 测试标准 外观质量 GB/T 29498 尺寸 GB/T 29498 装配质量 GB/T 29498 含水率 GB/T 17657 附着力 GB/T 4893.4 外门窗耐冷热循环 GB/T 4893.7 耐划痕 GB/…

Volcano3D绘制3D火山图

一边学习&#xff0c;一边总结&#xff0c;一边分享&#xff01; 本期教程内容 **注&#xff1a;**本教程详细内容 Volcano3D绘制3D火山图 一、前言 火山图是做差异分析中最常用到的图形&#xff0c;在前面的推文中&#xff0c;我们也推出了好几期火山图的绘制教程&#xff0…

【代数学习题4.2】从零理解范数与迹 —— 求数域元素的范数与迹

从零理解范数与迹 —— 求数域元素的范数与迹 写在最前面题目解答 2. 范数 N N N思路求解过程python求解 3. 数域 K K K 的范数 N K N_K NK​思路求解过程Python求解分析解题步骤 4. 迹 T T T求解过程共轭元素计算迹 python求解分析解题步骤 5. 数域 K K K 的迹 T K T_K …

读书笔记——《黑猩猩的政治》

前言 弗朗斯德瓦尔&#xff08;Frans de Waal)的代表作《黑猩猩政治》成书于1982年&#xff0c;是它的首部书籍作品&#xff0c;也是美国国会新任议员的被推荐读物。之前看的他另一部作品的《万智有灵》是2016年的作品&#xff0c;时间跨度居然这么大。《万智有灵》介绍了许多…

代码随想录 135. 分发糖果

题目 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。 相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#xff0c;计算并返回需要准…

SDK广告类型及其作用与收益分析

在移动应用开发领域&#xff0c;软件开发工具包&#xff08;SDK&#xff09;广告已经成为应用开发者们获取收益的一种重要途径。不同类型的SDK广告提供了多样化的选择&#xff0c;以满足开发者的需求。本文将介绍几种常见的SDK广告类型&#xff0c;并深入探讨它们的作用及对开发…

SPASS-信度分析

信度分析概述 效度 效度指的是量表是否真正反映了我们希望测量的东西。一般来说&#xff0c;有4种类型的效度&#xff1a;内容效度、标准效度、结构效度和区分效度。内容效度是一种基于概念的评价指标&#xff0c;其他三种效度是基于经验的评价指标。如果一个量表实际上是有效…

【亚太杯前两问论文】2023年第十三届APMCM亚太地区大学生数学建模竞赛——(文末领取方式)

2023年第十三届APMCM亚太地区大学生数学建模竞赛——论文无偿分享&#xff01;&#xff01;&#xff01; C题前两问论文代码已出&#xff0c;其他赛题及后续论文代码会持续更新。 祝各位小伙伴都能在比赛中发挥出色&#xff0c;取得心仪的成绩呦&#xff01;一起加油&#xff…

vscode在运行c语言时,无法scanf输入

问题&#xff1a; 在学习c语言中&#xff0c;我在使用scanf和cin时无法在终端进行输入(运行了但是无法输入)&#xff0c;在网上寻找答案&#xff0c;并写下笔记 解决方法 选择左上角 文件->首选项&#xff08;preferences&#xff09;->设置&#xff08;settings&#xf…

网关和链路追踪

Spring Cloud的网关 在Spring Cloud中&#xff0c;网关&#xff08;Gateway&#xff09;是一种用于管理和路由微服务请求的中间层服务。它充当了整个微服务架构的入口点&#xff0c;负责将来自外部的请求转发到相应的微服务上。常见的网关包括Spring Cloud Gateway和Netflix Zu…

Java类加载那些事

Java源文件&#xff08;.java文件&#xff09;被编译器编译后变为字节码形式的类文件&#xff08;.class文件&#xff09;&#xff0c;Java类加载的过程就是JVM加载.class的二进制文件并且放到内存中&#xff0c;将数据放到方法区&#xff0c;并且在堆区构造一个java.lang.clas…

动态规划从入门到精通

目录 动态规划的详解 动态规划的应用 机器人到达指定位置数 换钱的最少货币数 排成一条线的纸牌博弈问题 象棋中马的跳法 Bob的生存概率 换钱的方法数 动态规划的总结 动态规划的详解 暴力尝试递归操作中有很多重复计算的操作&#xff0c;浪费时间。动态规划就是减少暴力…

大模型增量预训练参数说明

在增量预训练过程中通常需要设置三类或四类参数,模型参数,数据参数,训练参数,额外参数。 下面分别针对这四种参数进行说明。 欢迎关注公众号 模型参数 model_type模型类型,例如bloom,llama,baichuan,qwen等。 model_name_or_path模型名称或者路径。 tokenizer_name_or…

JS数组常用的20种方法详解(每一个方法都有例子,超全面,超好理解的教程,干货满满)

目录 1.会改变原数组的方法&#xff08;7种&#xff09; 1.push() 2.pop() 3.unshift() 4.shift() 5.reverse() 6.sort() 7.splice() 2.不改变原数组的方法&#xff08;13种&#xff0c;返回的新数组是从原数组浅拷贝来的&#xff09; 1.concat() 2.join() 3.slice…