【C++笔试强训】第四天

news/2024/5/3 9:18:33/文章来源:https://blog.csdn.net/m0_60338933/article/details/127325662

🎇C++笔试强训


  • 博客主页:一起去看日落吗
  • 分享博主的C++刷题日常,大家一起学习
  • 博主的能力有限,出现错误希望大家不吝赐教
  • 分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。

在这里插入图片描述

💦🔥


选择题

💦第一题

有以下程序

#include<iostream>
#include<cstdio>
using namespace std;int main(){int m=0123, n=123;printf("%o %o\n", m, n);return 0;
}

程序运行后的输出结果是()

A 0123 0173
B 0123 173
C 123 173
D 173 173

这道题主要是对进制位的考验

请添加图片描述

m原本就是八进制,所以%o打印还是123,0是不需要打印的,n是十进制,转换八进制即123不断除8,直到商为0;

请添加图片描述

所以这道题的答案选C


💦第二题

以下哪个选项一定可以将flag的第二个bit置0()

A flag&=~2
B flag|=2
C flag^=2
D flag>>=2

这道题主要是考验按位运算,并且是在比特位上计算的

请添加图片描述

我们假设给falg一个值,看看如何可以将第二个比特位置0,且题目的意识是只变第二个比特位,其他位不变

请添加图片描述

这道题的答案是A


💦第三题

请声明一个指针,其所指向的内存地址不能改变,但内存中的值可以被改变。

A const int const *x = &y;
B int * const x = &y;
C const int *x = &y;
D int const *x = &y;
E const int * const x = &y;

这里有const,我们来了解两个概念:

  • 常量指针:指针所指空间的值不能发生改变,不能通过指针解引用修改指针所指空间的值,但是指针的指向可以发生改变。
  • 指针常量:指针本身是一个常量,指针的指向不能发生改变,但是指针所指空间的值可以发生改变,可以通过指针解引用改变指针所指空间的值。

区分:const *的相对位置

  • const 在 * 的左边,常量指针
  • const 在 * 的右边,指针常量

请添加图片描述

这道题的答案是B


💦第四题

以下C语言指令:

int a[5] = {1,3,5,7,9};
int *p = (int *)(&a+1);
printf(%d,%d”,*(a+1)*(p-1));

运行结果是什么?

A 2,1
B 3,1
C 3,9
D 运行时崩溃

这道题主要是对指针以及数组的考验,在前两天的笔试强训中也有类似的题目

请添加图片描述

这道题的答案选C


💦第五题

二维数组X按行顺序存储,其中每个元素占1个存储单元。若X[4][4]的存储地址为Oxf8b82140,X[9][9]的存储地址为Oxf8b8221c,则X[7][7]的存储地址为()。

A Oxf8b821c4
B Oxf8b821a6
C Oxf8b82198
D Oxf8b821c0

这道题有两种解法

  • 第一种:

不知道有多少行多少列的情况下,用二元一次方程组解决

请添加图片描述

  • 第二种

注意观察,指针指向数组列相同的情况下,相减就是中间元素的个数

请添加图片描述

这道题的答案选A


💦第六题

根据下面递归函数:调用函数Fun(2),返回值是多少()

int Fun(int n)
{if(n==5)return 2;elsereturn 2*Fun(n+1);
}

A 2
B 4
C 8
D 16

这道题是对于函数递归的理解的考验,这道题需要我们一次一次递归进行算

请添加图片描述

这道题最终的答案是16,选D


💦第七题

以下程序的输出结果是:

#include <iostream>
using namespace std;
void func(char **m){++m;cout<<*m<<endl;
}
int main(){static char *a[]={"morning", "afternoon", "evening"};char **p;p=a;func(p);return 0;
}

A afternoon
B 字符o的起始地址
C 字符o
D 字符a的起始地址

这道题主要是对二级指针和指针数组的考验,仔细分析
请添加图片描述

这道题的答案是A


💦第八题

求函数返回值,输入x=9999

int func(int x){int count=0;while (x){count++;x=x&(x-1);//与运算}return count;
}

8
B 9
C 10
D 12

这道题主要是看循环的次数,我们可以先假设一个输入值

请添加图片描述

所以只需要看9999的二进制中有多少个1即可

所以这道题的答案选A


💦第九题

#include <stdio.h>
int cnt = 0;
int fib(int n) {cnt++;if (n == 0)return 1;else if (n == 1)return 2;elsereturn fib(n - 1) + fib(n - 2);
}
void main() {fib(8);printf("%d", cnt);
}

这道题第一眼看着就是个斐波那契数列,也是对于递归理解的考验,我们只需要依次进行推导那就可以得出最终结果了

请添加图片描述


💦第十题

在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是()

struct A
{int a;short b;int c;char d;
};
struct B
{int a;short b;char c;int d;
};

A 16,16
B 13,12
C 16,12
D 11,16

这道题主要是考验结构体的内存对齐,我们到时可以去了解三个问题

  • 结构体为什么要对齐
  • 结构体是如何进行对齐的
  • 如果想要让结构体任意字节对齐该如何处理

请添加图片描述

这样我们可以进行计算第一个结构体的值为16
请添加图片描述

第二个结构体的值12

请添加图片描述

所以这道题的答案是C


编程题

🔥第一题

链接:计算糖果
请添加图片描述

  • 解题思路:

这是这四天来最简单的一道题,就是直接把条件给出来了。

1、A - B = a 2、B - C = b 3、A + B = c 4、B + C = d 这道题目的实质是:判断三元一次方程组是否有解及求解, 这里是小学生都会的问题了^^ 1+3可以得到A=(a+c)/2;4-2可以得到C=(d-b)/2;

2+4可以得到B2=(b+d)/2,3-1可以得到B1=(c-a)/2;

如果B1不等B2则表达式无解

  • 代码演示:
#include<iostream>
using namespace std;
int main() {int a, b, c, d;cin >> a >> b >> c >> d;int A = (a + c) / 2;int C = (d - b) / 2;int B1 = (c - a) / 2;int B2 = (b + d) / 2;if (B1 != B2)cout << "No";elsecout << A << " " << B1 << " " << C;return 0;
}

🔥第二题

链接:进制转换

请添加图片描述

  • 解题思路:

本题思路很简单,首先想清楚原理:N进制数,每个进制位的值分别是X0N0,X1*N1, X2N^2…,X0,X1,X2就是这些进制位的值,就是就是进行取模余数就是当前低进制的位的值是多少,通过除掉进制数,进入下一个进制位的计算。

  • 代码演示:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;int main() 
{string s, table = "0123456789ABCDEF";int m,n;cin >> m >>n;if( m == 0){cout << 0;return 0;}bool flag = false;if(m < 0){m = -m;flag = true;}while(m != 0){s = s+ table[m%n];m /= n;}if(flag == true){s += "-";}reverse(s.begin(),s.end());cout << s << endl;
}

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

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

相关文章

【Day28】力扣算法(超详细思路+注释) [1790. 仅执行一次字符串交换能否使两个字符串相等 ] [328. 奇偶链表 ][148. 排序链表]

刷题打卡&#xff0c;第 二十八 天题目一、1790. 仅执行一次字符串交换能否使两个字符串相等题目二、328. 奇偶链表题目三、148. 排序链表题目一、1790. 仅执行一次字符串交换能否使两个字符串相等 原题链接&#xff1a;1790. 仅执行一次字符串交换能否使两个字符串相等 题目…

消息队列的一些思考

前言 像我们Feign进行服务远程调用就会出现上述情况&#xff0c;服务调用是同步的&#xff0c;需要保证整个链路成功执行完才能成功下单&#xff0c;需要考虑网络抖动等影响&#xff0c;还有雪崩的现象——>同步通信会产生不稳定的影响导致用户体验较差 (41条消息) Dubbo_…

【前端笔试之输入输出问题汇总】系列1

1、题目1&#xff1a;涉及到new Array()以及map方面的一些特性 const array new Array(5).map((item) > {return item {name: 1} }) console.log(array)//[empty*5]一般我们认为会输出[name,name,name,name,name]。但是输出的却是empty。 因为new Array(5)生成的数组在每…

CAD导入Revit缺少东西原因-Revit中如何批量导出CAD图纸

一、CAD导入Revit缺少东西原因汇总 在Revit中导入CAD进行模型搭建是建模过程中常用的方法&#xff0c;但是有时会遇到导入的CAD缺少东西的情况&#xff0c;下面介绍几种导致这种问题的原因 1.CAD导入的时候&#xff0c;不是设置为全部可见。 CAD导入Revit中时&#xff0c;“图层…

护眼灯色温多少对眼睛好?推荐色温4000K暖白光的护眼灯

色温就是指温度的颜色&#xff0c;通常人眼所见的光线&#xff0c;由7中色光的光谱所组成&#xff0c;而护眼灯的光源越接近自然光就越好&#xff0c;一般要求色温在4000K左右比较合适&#xff0c;灯光为暖黄光&#xff0c;既温馨有符合相应的亮度&#xff0c;可以起到很好保护…

ROS2在ROS1 的基础的改进点

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、为什么要推出ROS2【重构ROS1】二、ROS1存在的问题三、ROS1与ROS2架构对比四、ROS2新概念例举五、ROS安装版本&#xff08;…

【SpringCloud学习笔记】Feign

Feign 的使用 什么是Feign Feign是声明性的web服务客户端。它使编写web服务客户端更加容易&#xff0c;它封装类Ribbon和RestTemplate Feign vs OpenFeign 1、Feign是Netflix公司写的&#xff0c;是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端&#xff0c;是Spring…

C/C++里危险的宏(Macro)

#define SQUARE(x) x*x 上述宏定义SQUARE(x)用于求“参数”x的平方&#xff0c;这个宏很容易被使用者误认为是函数。宏是由预处理器处理的&#xff0c;它有着函数的形式却没有函数调用的代价。我们不建议初学者使用宏&#xff0c;因为使用宏的收益远不足以抵消其带给初学者的风…

基于本地存储LVM新建虚机方案

文章目录基于本地存储LVM新建虚机方案date: 2021/12/22auth: mmwei3一、环境信息如下&#xff1a;二、需求方案&#xff1a;1、虚机(卷启动)系统盘数据盘 三者在同一计算节点。2、虚机可以挂本计算节点的数据盘也可以挂载其他计算节点的数据盘。3、虚机可以使用本节点上的HDD做…

大数据必学Java基础(七十六):创建线程的三种方式

文章目录 创建线程的三种方式 一、继承Thread类 二、实现Runnable接口 三、实现Callable接口 创建线程的三种方式 一、继承Thread类 在学习多线程之前&#xff0c;以前的代码是单线程的吗&#xff1f; 不是&#xff0c;以前也是有三个线程同时执行的。 现在我想自己制造…

《单元测试》Junit5入门教程——非常详细,入门即精通

本文为在霍格沃兹测试开发学社中学习到的一些技术&#xff0c;写出来分享给大家&#xff0c;希望有志同道合的小伙伴可以一起交流技术&#xff0c;一起进步~ 单元测试-Junit5入门教程一、添加Junit5依赖二、Junit5 常用注解2.1、Test2.2、BeforeAll2.3、AfterAll2.4、BeforeEac…

JavaWeb学习5:Maven

Maven的学习为什么要学习这个技术?在javaweb开发中,需要使用大量的jar包,这种jar包需要手动的导入 如何让一个东西自动导入和配置jar包 所以Maven诞生了maven就是一个架构管理工具 1、Maven项目架构管理工具 Maven的核心思想:约定大于配置,有约束,不要去违反。 Maven会规…

做过的题

菜就多练 主要记录的是 dp 题(因为大部分都不会),还有一些思维题,还有一些 tricks,还有一些模板类的题。 CF533B Work Group 简要题意: 给定一棵树,要求选定一些点加入点集,使得这些点的权值和最大,且对于点集中的任意一个点,其子树中恰有奇数个点(可能包括它本身)…

(附源码)计算机毕业设计SSM基于java的云顶博客系统

&#xff08;附源码&#xff09;计算机毕业设计SSM基于java的云顶博客系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技…

easyrecovery数据恢复软件15版本功能介绍

easyrecovery恢复文件介绍 easyrecovery是一款功能非常强大的数据恢复软件&#xff0c;不仅能够恢复手机等终端被删除的文件&#xff0c;还可以恢复从硬盘上删除的文件&#xff0c;而且操作非常简单&#xff0c;下面就跟着小编一起来看一下吧。 easyrecovery可以恢复任何被从…

为了不手动命名驼峰变量名,我开发了一套油猴脚本...

前言 你知道程序员最经常做的事是什么吗&#xff1f;是取变量名&#xff01; 我们常规取变量名的方式是这样的&#xff0c;打开谷歌搜索或者有道搜索&#xff0c;输入变量的中文名&#xff0c;然后复制翻译结果&#xff0c;转到编译器改为驼峰命名&#xff0c;大致流程如下&a…

(外观检测图像增强)阿丘科技AQCV1.0 计算视觉库

阿丘科技计算视觉库 AQCV 专为开发人员的工业机器视觉应用而设计&#xff0c;有较强的灵活性。AQCV 允许开发 人员能够高效开发项目需要的程序&#xff0c;可以配合AIDI&#xff0c;为实际检测应用赋能。 基础图像处理:滤波、几何变换、极坐标展开 特征分析:Blob分析、轮廓分析…

腾讯地图api-基本用法总结

一、序言 前段时间呢&#xff0c;由于工作原因研究了百度地图api的基本用法。百度地图用法点击查看 所以开始对地图产生了点兴趣&#xff0c;最近花了几个时间研究了下腾讯地图的基本使用。 只要是个cv程序员&#xff0c;快的话可能只要1个小时就能上手&#xff0c;慢的话最多…

java毕业设计基于spring框架的论坛网站项目设计和源码

一、主题 榴莲社区——java开发基于spring框架的论坛网站&#xff0c;基于spring框架的论坛网站项目设计和项目 源 码 免 费下 载 链 接 如 下&#xff1a; 毕业设计项目基于spring框架的论坛网站源码.zip-Javascript文档类资源-CSDN下载毕业设计项目基于spring框架的论坛网…

笔试强训(二十一)

目录一、选择题二、编程题2.1 MP3光标位置2.1.1 题目2.1.2 题解2.2 洗牌2.2.1 题目2.2.2 题解一、选择题 &#xff08;1&#xff09;下列叙述错误的是&#xff08;B&#xff09; A.二叉链表是二叉树的存储结构 B.循环链表是循环队列的存储结构 C.栈是线性结构 D.循环队列是队列…