【C++初阶】10 .习题1
创始人
2025-05-29 20:24:56

2022-09-16_命名空间

1. 命名空间的概念

下面关于C++命名空间描述错误的是( )【不定项选择】
A.命名空间定义了一个新的作用域。
B.std是C++标准库的命名空间。
C.在C++程序中,命名空间必须写成using namespace std;
D.我们可以自己定义命名空间。

【答案解析】C
A.命名空间主要解决名字冲突,其作用就是定义一个新的作用域
B.std是标准命名空间
C.还有std::xx 和using std::xx来使用标准库中的用法,所以不是必须写using namespace std
D.可以通过namespace space_name{};定义自己新的命名空间

2. 引用的概念

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

答案解析
A.引用必须初始化,必须在定义引用时明确引用的是哪个变量或者对象,否则语法错误,指针不初 始化时值为随机指向
B.引用一旦定义时初始化指定,就不能再修改,指针可以改变指向
C.引用必须出示化,不能出现空引用,指针可以赋值为空
D.简单粗暴的引用理解可以理解为被引用变量或对象的"别名"
E.引用表面好像是传值,其本质也是传地址,只是这个工作有编译器来做,所以错误
(在博客:C++入门中提到,对于引用的底层也是通过指针实现的)
F.函数调用为了提高效率,常使用引用或指针作为函数参数传递变量或对象

2022-09-21_类的定义

3. class和struct的区别

在C++中的结构体是否可以有成员函数?( )
A.不可以,结构类型不支持成员函数
B.可以有
C.不可以,只有类允许有成员函数

【答案解析】B
C语言结构体不支持成员函数,但C++结构体支持,其实class与struct本质没有区别,唯一区别在于默认时class的访问属性为私有,struct为公有

4. this指针

this指针可以为空嘛?

【答案解析】可以,单纯的对this赋空是不可以的,不过可以强转直接赋空,不过一般不进行这样的操作

5. 构造/析构顺序

设已经有A,B,C,D4个类的定义,程序中A,B,C,D析构函数调用顺序为?( )

C c;
int main()
{A a;B b;static D d;return 0;
}

A.D B A C
B.B A D C
C.C D B A
D.A B D C

【答案解析】B
1、类的析构函数调用一般按照构造函数调用的相反顺序进行调用,但是要注意static对象的存在,因为static改变了对象的生存作用域,需要等待程序结束时才会析构释放对象
2、全局对象先于局部对象进行构造
3、局部对象按照出现的顺序进行构造,无论是否为static
4、所以构造的顺序为 c a b d
5、析构的顺序按照构造的相反顺序析构,只需注意static改变对象的生存作用域之后,会放在局部对象之后进行析构
6、因此析构顺序为B A D C

6. 拷贝构造函数特点

拷贝构造函数的特点是( )
A.该函数名同类名,也是一种构造函数,该函数返回自身引用
B.该函数只有一个参数,是对某个对象的引用
C.每个类都必须有一个拷贝初始化构造函数,如果类中没有说明拷贝构造函数,则编译器系统会自动生成一个缺省拷贝构造函数,作为该类的保护成员
D.拷贝初始化构造函数的作用是将一个已知对象的数据成员值拷贝给正在创建的另一个同类的对象

答案解析
A.拷贝构造函数也是一构造函数,因此不能有返回值
B.该函数参数是自身类型的对象的引用
C.自动生成的缺省拷贝构造函数,作为该类的公有成员,否则无法进行默认的拷贝构造

这里有问题,问老师
D.用对象初始化对象这是拷贝构造函数的使命,故正确

7. 前置++/后置++(运算符重载)

已知表达式++a中的"++"是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为( )
A.a.operator++()
B.a.operator++(0)
C.a.operator++(int)
D.operator++(a,0)

【答案解析】
A.正确
B.operator++()传递了整形参数(对于前置++是不能传递参数的),故为后置++,错误
C.调用函数传递类型,导致语法错误
D.参数过多,语法错误

相关内容

热门资讯

【Selenium自动化测试】... 上传文件是web比较常见的功能之一,但webdriver并没有提供专门用于上传的方法&...
工程师如何对待开源 工程师如何对待开源 本文是笔者作为一个在知名科技企业内从事开源相关工作超过 20 年的工程师...
A.机器学习入门算法(二): ... 机器学习算法(二): 朴素贝叶斯(Naive Bayes) 1. 实验室...
Java基础知识之TreeSe... TreeSet是一个具有唯一元素的二叉树集合,同时TreeSet是Set接口的一个实现...
docker 安装 nginx... 一. 拉取镜像 docker pull nginx 二. 创建挂载目录 mkdir -p /usr...
ssm+vue小区社区公寓智能... 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术...
Linux- 系统随你玩之--... 文章目录1、背景2、命令浏览器-双生姐妹花2.1、姐妹花简介2.2 、验名正身2.3、常用功能选项3...
Docker 部署 中间件【r... 一、安装rabbitmq 1. 下载镜像 docker pull rabbitmq:manageme...
Java的stream包的几个... Java的stream包的几个使用 前言 java8引入的stream包不知道大家使用过没有...
Oracle导出AWR报告 一、使用root用户登录Linux服务器 二、切换至oracle用户 执行命令:su...
三维电子沙盘数字沙盘开发教程第... 三维电子沙盘数字沙盘大数据人工智能开发教程第7课设置system.ini 如下内容Server...
DRBG_Instantiat... public 参数解析:  standardEKPolicy: 837197674484b3f...
Mybatis————核心配置... 核心配置文件: properties标签 properties标签可以通过resour...
【洛谷刷题】蓝桥杯专题突破-深... 目录 写在前面: 题目:P1683 入门 - 洛谷 | 计算机科学教育新...
Oracle数据库从入门到精通... Oracle数据库从入门到精通系列之二:SGA和后台进程一、SGA二、后台进程 一、S...
考研复试——离散数学 三年疫情都没有笔试,今年恢复,大概率会有笔试。 2023年3月19号&#...
【论文阅读总结】用于目标检测的... Feature Pyramid Networks for Object Detection1.摘要2...
什么是一致性 文章目录一、不同的一致性二、ACID里的一致性三、多副本一致性四、CAP理论中的一致性五、一致性哈希...
<Linux>环境变量 环境变量 文章目录环境变量一、基本概念二、常见环境变量三、查看环境变量的方法四、测试PATH五、测...
学Python的第十天---小... 一、字符排序写法一:写法二:二、付账问题(贪心࿰...
Opentss代码测试 这是个多方门限签名库,使用rust实现。 代码包含两个功能,秘密共享密钥...
【id:14】【20分】C. ... 题目描述 编写一个函数比较两个字符串,参数是两个字符指针(要求显式定义...
无需公网IP,远程连接SQL ... 文章目录1.前言2.本地安装和设置SQL Server2.1 SQL Server下载2.2 SQL...
WuThreat身份安全云-T... 漏洞名称:CairoSVG 文件服务器端请求伪造 漏洞级别:严重 漏洞编号:CVE-2023-275...
Postgresql源码(10... 1 子事务控制语句分析 1.1 执行savepoint 执行函数: 【立即执行】→De...
python@日期和时间@da... 文章目录python datetimerelativedeltademo`timedelta...
数据库--进阶版-11--SQ... 1.插入数据 ·insert优化: 例如要插入下面这些 insert into tb_...
C语言—文件操作 为什么使用文件使用文件可以直接将数据存放到电脑硬盘上,做到数据的持久化什么是文件硬盘上...
【Zabbix_6.x 第三章... 文章目录👹 关于作者Zabbix 系列文章目录第三章 监控任意主机一、解决第二章登录...
python爬虫可以爬什么 Python爬虫可以爬取的东西有很多,Python爬虫怎么学?简单的分析...