C++ -- 每日选择题 -- Day2

第一题

1. 下面代码中sizeof(A)结果为()

#pragma pack(2)
class A
{int i;union U{char str[13];int i;}u;void func() {};typedef char* cp;enum{red,green,blue}color;
};

A:20

B:21

C:22

D:24

答案及解析 C

本题考查的是如何计算类所占空间大小,union(联合体)和enum(枚举类型)的空间计算;

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

首先我们来梳理一下:

1. 只算成员变量的大小,不算成员函数;

2. typedef只是对类型重定义,没有开空间,也不用算;

3. 需要算的有

int i;

union;

enum;

第一步:算int i;我们首先要看对齐数是多少

上面的#pragma pack(2)是把默认对齐数设定为2

对齐数 = 默认对齐数和成员本身大小的较小值

所以int i的对齐数为2,但是每个都是从偏移量0的位置开始,然后占据自身大小的字节;

第二步:计算union的大小;

算union的大小,有两个原则

1. union联合体的大小至少是最大成员的大小

2. 联合体的大小不是最大对齐数的整数倍的时候,要扩大到最大对齐数的整数倍;

所以union中的char数组的对齐数为1,int的对齐数为2;

最后union所占空间为14

第三步:计算enum枚举类型的大小,记住枚举类型大小就是4字节,所以跟默认对齐数比较之后,对齐数为2;

第二题

2. 使用重载函数编程序的目的是()

A:使用相同的函数名调用功能相似的函数

B:共享程序代码

C:提高程序的运行速度

D:节省存储空间

答案及解析 A

A:正确:重载函数写出来的目的就是为了完成不同类型却相同的功能;比如你要实现个加法函数,肯定会有很多类型,我们就需要函数重载;

B:错误:不可以共享代码

C:错误:都是调用函数,说白了代码都一样,不会提高速度

D:错误:不会节省空间

第三题

3. 下列运算符重载函数中,属于友元函数的是()

A:Base operator+(Base);

B:Base operator--(Base);

C:Base operator&&(Base, Base);

D:Base operator++(Base,int);

答案及解析 BCD

在正常的成员函数中,会有一个隐藏的this指针,作为成员函数的第一个参数,但是有的时候,我们是不需要this指针作为函数的参数的;这个时候友元函数就出现了;

A:+运算符,是需要两个操作数的,A选项显式地给了一个Base对象,然后有一个隐藏的this指针;满足+运算符的语法要求;

B:前置--运算符,只需要一个操作数,所以B的函数必须是友元函数才能实现;

C:&&运算符,需要两个操作数,B选项中显式地传了两个参数作为操作数,所以也不需要this指针了;

D:后置++运算符,需要一个操作数,后置++在函数参数这里是有个int来区分的,带int的就是后置,不带的就是前置;所以这里显式传了一个参数作为操作数,不需要this,就为友元;

第四题

4. 下面关于C++缺省参数描述错误的是( ) 【多选】

A.缺省参数是声明或定义函数时为函数的参数指定一个默认值.

B.在调用有缺省参数的函数时,如果没有指定实参则采用该默认值,否则使用指定的实参

C.C和C++都支持缺省参数

D.全缺省就是参数全部给缺省值,半缺省就是缺省一半的值

答案及解析 C D

A:正确,缺省参数就是在声明或者定义的时候给函数参数一个缺省值;

B:正确,缺省参数就是为了我们没有给指定的实参时,给形参提供缺省值;

C:错误,C不支持,缺省参数是C++的;

D:错误,全缺省是所有参数都有缺省值,半缺省是有参数有缺省值,有的没有

第五题

5. 以下不是double compare(int,int)的重载函数的是( )

A.int compare(double,double)

B.double compare(double,double)

C.double compare(double,int)

D.int compare(int,int)

答案及解析 D

重载函数:参数的类型不同,参数个数不同,跟返回值无关;

A、B、C为重载函数

D不是,因为参数类型相同,个数相同;

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

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

相关文章

智能优化算法应用:基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.纵横交叉算法4.实验参数设定5.算法结果6.参考…

【字符串探秘:手工雕刻的String类模拟实现大揭秘】

【本节目标】 1. string类的模拟实现 2.C基本类型互转string类型 3.编码表 :值 --- 符号对应的表 4.扩展阅读 1. string类的模拟实现 1.1 经典的string类问题 上面已经对string类进行了简单的介绍,大家只要能够正常使用即可。在面试中,…

1.网络编程基础知识 - 基础概念、TCP网络通信、UDP网络通信

网络编程 文章目录 网络编程一、概念1.1 网络1.2 IP地址1.2.1 IPv4 介绍1.2.2 IPv6 介绍1.2.3 查看IP地址 1.3 域名和端口1.4 网络协议1.5 TCP与UDP1.6 InetAddress类1.7 Socket 二、TCP网络通信编程2.1 介绍2.2 案例2.2.1 字节流编程案例12.2.2 字节流编程案例22.2.3 字符流编…

5. 文件属性和目录

5. 文件属性和目录 1. Linux 系统的文件类型1.1 普通文件1.2 目录文件1.3 字符设备文件和块设备文件1.4 符号链接文件1.5 管道文件1.6 套接字文件 2. stat 系统调用2.1 struct stat 结构体2.2 st_mode 变量2.3 struct timespec 结构体 3. fstat 和 lstat 函数3.1 fstat 函数3.2…

python中的序列

文章目录 序列类型标准类型运算符标准类型运算符序列类型运算符字符串 序列类型 字符串 列表 元组 由元组构成的列表 标准类型运算符 (1)按字符串大小比较 标准类型运算符 序列类型运算符 序列类型转换内建函数 注: (1&#xff…

深入理解MySQL索引底层数据结构与算法

索引的本质 索引是帮助MySQL高效获取数据的排好序的数据结构 索引的数据结构 二叉树红黑数Hash表B-Tree MySQL索引底层为啥不用二叉树 如图,对单边增长的数据,索引效率没有什么提升 MySQL索引底层为啥不用红黑数 红黑数:二叉平衡树 随…

计算虚拟化之内存

有了虚拟机,内存就变成了四类: 虚拟机里面的虚拟内存(Guest OS Virtual Memory,GVA),这是虚拟机里面的进程看到的内存空间;虚拟机里面的物理内存(Guest OS Physical Memory&#xf…

STM32CubeIDE(CUBE-MX hal库)----定时器

系列文章目录 STM32CubeIDE(CUBE-MX hal库)----初尝点亮小灯 STM32CubeIDE(CUBE-MX hal库)----按键控制 STM32CubeIDE(CUBE-MX hal库)----串口通信 文章目录 系列文章目录前言一、定时器二、使用步骤三、HAL库实验代码三、标准库代码 前言 STM32定时器是一种多功能外设&#…

[iOS开发]UITableView的性能优化

一些基础的优化 (一)CPU 1. 用轻量级对象 比如用不到事件处理的地方,可以考虑使用 CALayer 取代 UIView CALayer * imageLayer [CALayer layer]; imageLayer.bounds CGRectMake(0,0,200,100); imageLayer.position CGPointMake(200,200…

Python基础学习之包与模块详解

文章目录 前言什么是 Python 的包与模块包的身份证如何创建包创建包的小练习 包的导入 - import模块的导入 - from…import导入子包及子包函数的调用导入主包及主包的函数调用导入的包与子包模块之间过长如何优化 强大的第三方包什么是第三方包如何安装第三方包 总结关于Python…

智能优化算法应用:基于生物地理学算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于生物地理学算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于生物地理学算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.生物地理学算法4.实验参数设定5.算法结果…

【matlab程序】matlab利用工具包nctool读取grib2、nc、opendaf、hdf5、hdf4等格式数据

【matlab程序】matlab利用工具包nctool读取grib2、nc、opendaf、hdf5、hdf4等格式数据 引用: B. Schlining, R. Signell, A. Crosby, nctoolbox (2009), Github repository, https://github.com/nctoolbox/nctoolbox Brief summary: nctoolbox is a Matlab toolbox…

时间序列预测实战(二十一)PyTorch实现TCN卷积进行时间序列预测(专为新手编写的自研架构)

一、本文介绍 本篇文章给大家带来的是利用我个人编写的架构进行TCN时间序列卷积进行时间序列建模(专门为了时间序列领域新人编写的架构,简单不同于市面上大家用GPT写的代码),包括结果可视化、支持单元预测、多元预测、模型拟合效…

【docker系列】docker实战之部署SpringBoot项目

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

基于SpringBoot房产销售系统

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于房产销售系统当然也不能排除在外,随着网络技术的不断成熟,带动了房产销售系统,它彻底改变了过去传统的…

【MySQL】事务(事务四大特性+四种隔离级别+MVCC)

事务 前言正式开始事务的四大特性为什么会出现事务事务的版本支持事务提交方式事务常见操作方式启动事务回滚演示提交事务事务的异常autocommit 事务的隔离性隔离级别查看隔离级别修改隔离级别验证四种隔离级别读未提交(read uncommitted) —— 缩写为RU读提交(read committed)…

3款厉害的小工具,小黑子都在用!

大家好,我是 Javapub。 程序员与普通人最大的区别是什么,当然是会使用工具。基于一些同学经常问我的问题,接下来给大家分享几款我经常使用的工具,主打一个提升效率。 第一款 Everything 用 windwos 的同学都体会过,…

ERP软件对Oracle安全产品的支持

这里的ERP软件仅指SAP ECC和Oracle EBS。 先来看Oracle EBS: EBS的认证查询方式,和数据库认证是一样的。这个体验到时不错。 结果中和安全相关的有: Oracle Database VaultTransparent Data Encryption TDE被支持很容易理解,…

指针数组以及利用函数指针来实现简易计算器及typedef关键字(指针终篇)

文章目录 🚀前言🚀两段有趣的代码✈️typedef关键字 🚀指针数组🚀简易计算器的实现 🚀前言 基于阿辉前两篇博客指针的基础篇和进阶篇对于指针的了解,那么今天阿辉将为大家介绍C语言的指针剩下的部分&#…

2021年9月15日 Go生态洞察:TLS加密套件的自动排序机制

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…