c++指针和引用之高难度(二)习题讲解

1.【单选题】

int a[4] { 1001,1002,1003,1004 };

int* p{ &a[1] };

p[1] = ?

A 1001        B 1002        C 1003

解析:这道题考察了指针和数组可以混用。p 指向了 数组 a[0] 的地址,也就是 1002 的地址,此时 *p = p[0],p[0] 等于 1002 ,p[1] 就等于 1003,选C。

        

2.【单选题】

int a = 5;

int b = 6;

int& la = a;

la = b;

la++;

b = ?        

A 5        B 6         C 7

解析:这道题 la 是 a 的引用。la = b,是将 a 赋值于 b ,等效于 a = b ,la ++ 对 b 的值没有影响,此时 b 依然等于 6,选B。

3.【单选题】

int* a = (int*) malloc( 4 * sizeof ( int ) );

a[1] = 9;

*a = ?

A 不确定         B 0         C 9

解析:a 分配了 4 个 int 类型的空间,a[1] = 9 , *a 就等于 a[0] 的值,此时并不确定a[0]等于多少,所以选A。

4.【单选题】

int* a = ( int* )malloc( 4 * sizeof( int ) );

a[0] = -1;

char* b = ( char* ) &a[0];

b++;

memset(b, 0, 3);

a[0] = ?

A -1         B 0         C 255

解析:这道题需要用图片解释,其中 a [0] = -1 ,也就是 0xFFFFFFFF。如图所示:

b++后,如图所示:

memset(b, 0, 3) 后,如图所示:

又因为内存排序方式为从低位到高位,所以 a[0] 等于 0x000000FF 等于255,所以选C。

5.【单选题】

int* a = ( int* )malloc( 4 * sizeof( int ) );

memset( a, 65535 , 4 );

a[0] = ?

A -1         B 65535         C 255

解析:65535 等于 2的16次方 - 1,也就是 0xFFFF。memset( a, 65535 , 4 ),在 a 的前 4 个字节 赋值 0xFFFF ,但是 每个字节只能赋值0xFF ,所以 a[0]等于 0xFFFFFFFF,也就是 - 1。 

6.【单选题】

int a* = calloc(1, 4);

a = realloc( a,100 );

A a的内存地址可能发生变化

B a的内存地址一定发生变化

C a的内存地址一定不发生变化

解析:这道题选A。a重新分配内存空间后,内存地址可能发生变化。

7.【单选题】

int a[] { 1001,1002,1003,1004 };

int *b = new int [4];

memcpy( b, &a[2] , 10);

b[1] = ?

A 1004         B 1002         C 1003

解析:memcpy 拷贝 a 的地址,从 1003 的地址开始拷贝 ,拷贝 10 个字节,此时b[0] = 1003 ,b[1] = 1004,选A。

8.【单选题】

int a [2][2]

{

        { 1, 2 },

        { 3, 4 }

}

int* b = (int*) a;

b[3] = ?

A 2          B 3         C 4

解析:a的地址赋值给了b,此时 b[0] = 1,   b[1] = 2, b[2] = 3,  b[3] = 4,选C。

9.【单选题】

下面说法正确的是:

int a = 5;

int& la = a;

int* b = &la;

A b中存放的是la的内存地址

B b中存放的是a的内存地址,因此la本身并不占用内存

C b中存放的是a的内存地址

解析:这道题答案选C。la是a的引用,引用是阉割版的指针,它占用内存空间。

10.【单选题】

下面说法正确的是:

int *a = new int;

A 释放a的内存可以使用 delete

B 释放a的内存应该使用delete

C 释放a的内存应该使用free(a);

解析:选项A:正确,new 对应delete,选项B:错误,如果a是个数组可以选,选项C:可以用,但是不推荐使用。

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

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

相关文章

axios发送数据的几种方式

axios 发送数据的几种方式 1、最简单的方式是将参数直接拼接在 URL 上,这通常用于传递少量的数据,例如资源的 ID。 const id 12; axios.delete(https://api.example.com/${id}).then(response > {console.log(Resource deleted successfully:, res…

Win11下安装多个JDK版本,并切换

Windows11下安装多个JDK版本,并切换 前言步骤1、前期准备2、版本切换思考前言 一台电脑可以同时安装多个版本 jdk,建议两个,最多不超三个。安装多个JDK版本可能会占用较多的磁盘空间。此外,同时运行多个 JDK 版本可能会对系统性能产生一定的影响。   切换 JDK 有两种方式…

嵌入式是Linux:shell使用解析

目录 简介 1. shell 脚本程序 2.变量 3.条件测试和控制结构 简介 shell是一种具备特殊功能的可执行程序,它是介于使用者和 UNIX/linux 操作系统内核间的一个接口。 shell是一个命令解释器,它从输入设备读取命令,再将其转为计算机可以了解的指令,然后执行它。 在Linux中…

【多维动态规划】Leetcode 97. 交错字符串【中等】

交错字符串 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串 子字符串 是字符串中连续的 非空 字符序列。 s s1 s2 … snt…

【SQL】优化慢 SQL的简单思路

优化慢 SQL 需要综合考虑多个方面,包括查询的结构、索引的使用、表结构设计等。以下是一些常见的 SQL 优化技巧和步骤: 1. 检查查询计划 使用数据库提供的工具查看查询计划(例如 MySQL 的 EXPLAIN 命令)可以帮助了解查询的执行路…

Django 靓号管理系统:表结构设计与初始化

在本文中,我们将介绍如何为一个靓号管理系统设计和初始化数据库表结构。这个系统包括部门、管理员和靓号三个主要实体。我们将使用 Django 的模型系统来定义这些表结构。 1. 项目初始化 首先,让我们创建一个新的 Django 项目和应用: django-admin startproject number cd…

Redis 7.x 系列【11】数据类型之位图(Bitmap)

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 基本命令2.1 SETBIT2.2 GETBIT2.3 BITCOUNT2.4 BITPOS2.5 BITFIELD2.6 BITF…

高端响应式网络科技公司网站源码pbootcms模板

模板介绍 这是一款高端响应式网络科技公司网站源码pbootcms模板,适合所有类型的网络公司展示,整站源码下载,为您简化开发过程,可自适应手机端。 模板截图 源码下载 高端响应式网络科技公司网站源码pbootcms模板

PTA:7-32 最小公倍数(递归)

本题目要求读入2个整数a和b,然后输出它们的最小公倍数。 输入格式: 输入在一行中给出2个正整数,以空格分隔。 输出格式: 输出最小公倍数。 输入样例: 在这里给出一组输入。例如: 6 14输出样例: 在这里给出相应的输出。例如&#xff1…

为啥使用virtual并添加[UnitOfWork]属性就可以解决上下文安全问题

在ABP(ASP.NET Boilerplate)框架中,使用virtual关键字并添加[UnitOfWork]属性到方法上是一种约定,它允许ABP框架自动管理数据库上下文(通常是Entity Framework或NHibernate的DbContext或ISession)的生命周期…

60、Flink 的异步 IO 算子使用异步 Http 客户端查高德地图

1、概述 Http 异步客户端设置:并行度2,capacity2,HttpMaxConn2,client 为静态输入:同时发起4条查询输出:间隔10秒,同时返回4条数据JDBC 线程池链接池设置:并行度2,capaci…

谷歌SEO网站SEO优化诊断有哪些点?

在以下几种场景中,进行SEO审查尤为关键: (1)当你接手一个新项目或新网站时,了解其当前状况是至关重要的第一步 (2)当搜索流量出现意外下降时,这可能是技术问题或被惩罚的信号&…

了解SENT协议及其应用

了解SENT协议及其应用 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来了解一种在汽车电子领域广泛应用的通信协议——SENT协议。SENT协议以其高效、可…

OpenAI禁止中国使用API,国内大模型市场何去何从

GPT-5 一年半后发布?对此你有何期待? 前言 前言: 近日,OpenAI宣布禁止中国用户使用其API,这一决策引起了国内大模型市场的广泛关注。面对这一挑战,国内大模型市场的发展路径和前景成为业界热议的焦点。本…

小时候的子弹击中了现在的我-hive进阶:案例解析(第18天)

系列文章目录 一、Hive表操作 二、数据导入和导出 三、分区表 四、官方文档(了解) 五、分桶表(熟悉) 六、复杂类型(熟悉) 七、Hive乱码解决(操作。可以不做,不影响) 八、…

Vue3学习笔记<->nginx部署vue项目(3)

安装nginx vue项目通常部署到nginx上,所以先安装一个nginx。为了方便安装的是windows版nginx,解压就能用。 项目参考上一篇文章《Vue3学习笔记<->创建第一个vue项目》《Vue3学习笔记<->创建第一个vue项目》…

uniapp启动页面鉴权页面闪烁问题

在使用uni-app开发app 打包完成后如果没有token,那么就在onLaunch生命周期里面判断用户是否登录并跳转至登录页。 但是在app中页面会先进入首页然后再跳转至登录页,十分影响体验。 处理方法: 使用plus.navigator.closeSplashscreen() 官网…

SpringBoot学习05-[SpringBoot的嵌入式Servlet容器]

SpringBoot的嵌入式Servlet容器 嵌入式Servlet容器servlet容器-嵌入式servlet容器配置修改通过全局配置文件修改修改添加实现了WebServerFactoryCustomizer接口的bean来进行修改 servlet容器-注册servlet三大组件 嵌入式Servlet容器 SpringBoot包含对嵌入式Tomcat、Jetty、Und…

编写和使用Linux Makefile

编写和使用Linux Makefile 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Linux环境下如何编写和使用Makefile,这是一个用于自…

嵌入式学习——硬件(ARM体系架构)——day51

1. S3C2440基础知识——一条指令四个字节 1.1 定义 S3C2440 是三星(Samsung)公司设计的一款基于 ARM920T 核心的微处理器,广泛应用于嵌入式系统中,属于三星的 S3C24xx 系列。 1.2 处理器核心 ARM920T:基于 ARM v5T …