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博客BB
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,下一个同理;
用图表示:

相关文章:
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 答…...
【实用】mysql配置 及将线上数据导入本地 问题解决及记录
[ERR] 1292 - Incorrect datetime value: ‘0000-00-0000:00:00‘ for column ‘BIRTH_DATE‘ at row 1 此问题是mysql当前配置不支持日期为空,或者为‘0000-00-0000:00:00‘得情况 1、直接在数据库执行 # 修改全局 set global.sql_mode ONLY_FULL_GROUP_BY,STR…...
如何下载OpenJDK及其源码
如果想下载 OpenJDK,存在以下几种办法: 最简单的办法是去 OpenJDK 官网,这里能下载 JDK9 及其以上的版本,还有 JDK 源码所在的 github 地址。 第二种方法是使用 IDEA 下载,位置在 File->Project Structure->SD…...
[Android]使用Retrofit进行网络请求
以下是使用 Retrofit 发送 POST 请求获取分页城市列表的 Kotlin 代码示例 1.在你的 build.gradle 文件中添加 Retrofit 和 Gson 的依赖 dependencies {......implementation("com.squareup.retrofit2:retrofit:2.9.0")implementation("com.squareup.retrofit2…...
OpenGL 绘制圆形平面(Qt)
文章目录 一、简介二、代码实现三、实现效果一、简介 这里使用一种简单的思路来生成一个圆形平面: 首先,我们需要生成一个单位圆,半径为1,法向量为(0, 0, 1),这一步我们可以使用一些函数生成圆形点集。之后,指定面片的索引生成一个圆形平面。当然这里为了后续管理起来方便…...
JAVA系列---Servlet详解
目录 背景为何会出现ServletWeb开发的本质 ServletsCGIFastCGIWSGIServlet总结 wsgi与servlet出现时间社区特点对web开发的影响 servlet详解特性主要工作执行逻辑 应用Tomcat背景embedded tomcat本质 背景 为何会出现Servlet Servlet是Server Applet 的缩写,译为“…...
机器人制作开源方案 | 钻孔植树一体化沙漠车
作者:徐邦国、张博宇、刘露、李晶晶、吕洁秀单位:天津职业技术师范大学 机械工程学院指导老师:何永利 摘要:本项目旨在设计一种专用于沙漠植树的植树车,以沙漠自动化植树为研究对象,提出一种创新式钻…...
OmniGraffle
安装 在mac上安装OmniGraffle,找一个正版或者啥的都行,安装好后,可以直接在网上找一个激活码,然后找到软件的许可证,进行添加即可。 使用 新建空白页 然后图形啥的看一眼工具栏就知道了,颜色形状还是挺…...
【C++上层应用】4. 多线程
文章目录 【 1. 创建线程 】【 2. 终止线程 】【 3. 实例 】【 4. 向线程传递参数 】【 5. 连接和分离线程 】 多线程 是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,两种类型的多任务处理:基于…...
【uni-app】uniapp中弹出输入框的示例
uni.showModal({title: 请输入企业名称,content: ,editable: true, //是否显示输入框placeholderText: 请输入企业名称, //输入框提示内容confirmText: 确认,cancelText: 取消,success: (res) > {if (res.confirm) {this.checkDesc.name res.content;// console.log(输入的…...
通过bat脚本控制Oracle服务启动停止
1、将Oracle服务全部设置为手动启动 初始安装Oracle之后服务启动状态: 2、服务功能介绍 3、构建服务启动/停止bat脚本 注意:编码选择ANSI(如果编码不是ANSI运行脚本会显示乱码) echo off :main cls echo 注:请保证该脚本是使用管理员权限…...
GB28181学习(十七)——基于jrtplib实现tcp被动和主动发流
前言 GB/T28181-2022实时流的传输方式介绍:https://blog.csdn.net/www_dong/article/details/134255185 基于jrtplib实现tcp被动和主动收流介绍:https://blog.csdn.net/www_dong/article/details/134451387 本文主要介绍下级平台或设备发流功能&#…...
RealSense深度相机在Ubuntu18.04的ros环境下,保存同一时刻下深度图像和彩色图像
背景:Ubuntu18.04 ROS Melodic 已安装配置好RealSense相关程序,链接D435i相机后,得到如下Rostopic: /camera/color/image_raw # 彩色图像信息 /camera/depth/image_rect_raw # 深度图像信息 于是写一个python程序&am…...
vue3 ref和reactive使用watch属性的方法和区别
在Vue 3中,您可以使用watch函数和watch选项来监视ref和reactive创建的响应式数据的变化。下面是它们的使用方法和区别: 使用方法: 使用ref和watch: import { ref, watch } from vue;const count ref(0);watch(count, (newVal,…...
YOLO目标检测——卫星遥感舰船检测数据集下载分享【含对应voc、coco和yolo三种格式标签】
实际项目应用:卫星遥感舰船检测数据集说明:卫星遥感舰船检测数据集,真实场景的高质量图片数据,数据场景丰富,含船一个类别标签说明:使用lableimg标注软件标注,标注框质量高,含voc(xm…...
org.Hs.eg.db使用--持续修改
org.Hs.eg.db使用–持续修改 加载 library(org.Hs.eg.db)1 基本信息查询 1.1 display the columns columns(org.Hs.eg.db) [1] "ACCNUM" "ALIAS" "ENSEMBL" "ENSEMBLPROT" "ENSEMBLTRANS" "ENT…...
C# Onnx 百度PaddleSeg发布的实时人像抠图PP-MattingV2
目录 效果 模型信息 项目 代码 下载 效果 图片源自网络侵删 模型信息 Inputs ------------------------- name:img tensor:Float[1, 3, 480, 640] --------------------------------------------------------------- Outputs -----------------…...
linux shell操作 - 04 进程间通信
文章目录 Signal 信号信号定义信号的生命周期信号分类linux进程通信案例 Signal 信号 信号定义 Linux信号是进程间通信的一种方式,通过向目标进程发送一个特定的信号,让其执行相应的处理操作; 向目标进程发送信号时,内核会将信号…...
【Java并发】聊聊线程池原理以及实际应用
线程其实对于操作系统来说是宝贵的资源,java层面的线程其实本质还是依赖于操作系统内核的线程进行处理任务,如果频繁的创建、使用、销毁线程,那么势必会非常浪费资源以及性能不高,所以池化技术(数据库连接池、线程池&a…...
自然语言处理常用方法和评价指标
常用方法 文本分类:如情感分析、主题标签分类。使用方法如朴素贝叶斯、支持向量机、神经网络等。信息提取:从文本中提取结构化信息,如命名实体识别(NER)、关系提取。语义分析:理解文本的含义,包…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
