【C++笔试强训】第二十一天

news2024/11/23 11:12:28

🎇C++笔试强训


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

在这里插入图片描述

💦🔥


选择题

💦第一题

设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度()

A O(log2n)
B O(1)
C O(n2)
D O(n)

注意是是有序的单链表,要保证插入是有序的,所以要先遍历链表,所以跟元素个数有关,所以是O(n)

这道题的答案是D


💦第二题

在一个单链表中,若删除 P 所指结点的后续结点,则执行?

A p = p->next;p->next = p->next->next;
B p->next = p->next;
C p->next = p->next->next;
D p = p->next->next

请添加图片描述

这道题的答案是C


💦第三题

设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间

A 带头结点的双循环链表
B 单循环链表
C 带尾指针的单循环链表
D 单链表

需要尾插尾删,需要找到他的前驱节点

如果是单链表和单循环链表,需要把链表遍历一次,到最后才能找到前驱节点

而带头双向链表可以通过头节点找到最后一个位置的前驱

带尾指针的单循环链表即使找到了,也要有一个指针遍历到尾部请添加图片描述

这道题的答案是A


💦第四题

单链表实现的栈,栈顶指针为Top(仅仅是一个指针),入栈一个P节点时,其操作步骤为()

A Top->next=p;
B p->next=Top->next;Top->next=p;
C p->next=Top;Top=p->next;
D p->next=Top;Top=Top->next;

这道题是用链表实现栈,入栈是进行头插,其实会分有无头节点两种情况,所以需要根据答案来看

请添加图片描述

这道题的答案是B


💦第五题

用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()

A 仅修改队头指针
B 仅修改队尾指针
C 队头、队尾指针都可能要修改
D 队头、队尾指针都要修改

出队是头删,入队是尾插

请添加图片描述

如果队列里面只有一个元素,所以出队需要修改队头和队尾

这道题的答案是C


💦第六题

在具有 2n 个结点的完全二叉树中,叶子结点个数为()

A n
B n+1
C n-1
D n/2

这种题虽然是考察性质,但是做题的时候只需要按照完全二叉树的方式构造,然后代入就可以知道了请添加图片描述

这道题的答案是A


💦第七题

在任意一棵非空二叉排序树T1中, 删除某结点v之后形成二叉排序树 T2,再将v 插入T2形成二叉排序树T3。下列关于T1与T3的叙述中,正确的是( )。

I.若 v 是 T1的叶结点,则 T1 与 T3 不同

II. 若 v 是 T1的叶结点,则 T1与 T3相同

III.若 v 不是 T1 的叶结点,则 T1 与 T3 不同

IV.若v 不是 T1 的叶结点,则 T1 与 T3 相同

A 仅 I、 III
B 仅 I、 IV
C 仅 II、 III
D 仅 II、 IV

二叉排序树是二叉搜索树,我们随便弄一颗出来

请添加图片描述

请添加图片描述

数据结构画图是关键

这道题的答案是C


💦第八题

下述二叉树中,哪一种满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序()

A 二叉排序树
B 哈夫曼树
C AVL树
D 堆

从任意叶子到根有序,根据上题的图可以二叉排序树不是,哈夫曼树是最小生成树,哈夫曼树加权的值是不存在数据内的,所以不行,AVL是高度平衡化的二叉搜索树,只要求高度平衡,也不一定有序,而堆排序是大堆或者小堆,所以一定有序

这道题的答案是D


💦第九题

散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址。由于散列函数不是一对一的关系,所以选择好的( )方法是散列文件的关键。

A 散列函数
B 除余法中的质数
C 冲突处理
D 散列函数和冲突处理

哈希表的冲突问题是不可避免的,所以最好的方法是选择一个好的函数和冲突处理

这道题的答案是D


💦第十题

将整数数组(7-6-3-5-4-1-2)按照堆排序的方式原地进行升序排列,请问在第一轮排序结束之后,数组的顺序是()

A 2-6-3-5-4-1-7
B 6-2-3-5-4-1-7
C 6-5-3-2-4-1-7
D 1-4-7-5-6-3-2

我们先把数据建个大堆,因为需要升序排列
请添加图片描述

然后将堆顶元素跟最后一个元素交换,然后调整成大堆
请添加图片描述

这道题的答案是C


编程题

🔥 第一题

链接:洗牌

请添加图片描述

  • 题目解析

本题题目的意思是模拟洗牌过程,牌被分成两组,且每组数量相等,然后每组牌从最后一个牌交叉排列,最
后再把排列逆序就是一次洗牌的过程,K次需要重复K次这样的过程。

  • 解题思路

每次读取一个数之后,算出他经过k次洗牌后的位置,只用一个长度为2n数组用来输出

根据当前数的位置,可以算出经过一次洗牌后的位置

如果当前数小于等于n(即在左手),则他下次出现的位置是 2*当前位置

与之对应的当前位置 + n(即在右手)的牌,则他下次出现的位置是 2*当前位置 + 1

  • 代码演示
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int T,n,k;
    cin >> T;
    while(T--)
    {
        cin >> n >> k;
        int num = 2 * n;
        vector<int> card(num);

        for(int i = 0;i < num;i++)
            cin >> card[i];

        //开始洗牌
        for(int i = 0;i < k;++i)
        {
            vector<int> tmp(card.begin(),card.end());
            for(int j = 0;j < n;j++)
            {
                card[2*j] = tmp[j];//左手牌排放的位置
                card[2*j+1] = tmp[j+n];//右手牌排放的位置
            }
        }

        //输出洗牌的顺序
        for(int i = 0;i < num -1 ;++i)
        {
            cout << card[i] << " ";
        }
        cout << card[num-1] << endl;
    }
    return 0;
}

🔥 第二题

链接:MP3光标位置

请添加图片描述

请添加图片描述

  • 题目解析

本题的意思是第一行输入歌曲数量,第二行输入指令,最后需要显式的输出也为两行,第一行为当前歌曲所在的列表,第二行为光标所指向的歌曲。

  • 解题思路

本题比较简单,通过解析指令,进行移动即可,分两种情况,歌曲数目不大于4和大于4的情况。

  • 代码演示
#include <iostream>
#include <string>
using namespace std;

int main()
{
    int n;
    string cmd;
    while(cin >> n >> cmd)
    {
        //将n首歌进行编号1:n,其中num代表当前光标所在的歌曲编号,first代表当前页的第一首歌编号
        int num = 1,first = 1;
        if(n <= 4)//歌曲小于4
        {
            for(int i = 0;i < cmd.size();++i)
            {
                //解析命令
                if(num == 1 && cmd[i] == 'U')
                    num = n;
                else if(num == n && cmd[i] == 'D')
                    num = 1;
                else if(cmd[i] == 'U')
                    num--;
                else
                    num++;
            }
            for(int i = 1;i <= n;++i)
            {
                cout << i << " ";
            }
            cout << endl;
            cout << num << endl;
        }
        
        else
        {
            for(int i = 0;i < cmd.size();++i)
            {
                if(first == 1 && num == 1 && cmd[i] == 'U')
                {
                    first = n - 3;//将first跳入最后一页
                    num = n;
                }
                else if(first == n - 3 && num == n && cmd[i] == 'D')
                {
                    first = num = 1;
                }
                else if(first != 1 && num == first && cmd[i] == 'U')
                {
                    first--;
                    num--;
                }
                else if(first != n-3 && num == first + 3 && cmd[i] == 'D')
                {
                    first++;
                    num++;
                }
                else if(cmd[i] == 'U')
                    num--;
                else
                    num++;
            }
            for(int i = first;i <= first+3;++i)
            {
                cout << i << " ";
            }
            cout << endl;
            cout << num << endl;
        }
    }
    return 0;
}

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

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

相关文章

装饰模式与职责链模式笔记

装饰模式&#xff08;Decorator&#xff09; 概念 动态地给一个对象添加一些额外的职责&#xff0c;就增加功能来说&#xff0c;装饰模式比生成子类更为灵活。UML类图&#xff1a; 代码 给人打扮 //人类(ConcreteComponent) public class Person {private String name;public…

[附源码]java毕业设计ssm实验教学资源管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

C语言笔记第03章:数组

了解更多关注中南林业科技大学软件协会官网&#xff1a;https://www.csuftsap.cn/ 来自软件协会编辑&#xff0c;注册会员即可获取全部开源.md资源&#xff0c;请勿转载&#xff0c;归软件协会所有。 任何问题联系软件协会。 文章目录:star: 数组1.八个老婆引出数组 - 为什么…

1.7.2、计算机网络体系结构分层的必要性

1.7.2、计算机网络体系结构分层的必要性 计算机网络是个非常复杂的系统\color{red}计算机网络是个非常复杂的系统计算机网络是个非常复杂的系统。早在最初的ARPANET设计时就提出了分层的设计理念。 "分层\color{red}分层分层"可将庞大而复杂的问题&#xff0c;转化为…

一专多能、创新力十足,南大通用GBase8c数据库获鲲鹏创新应用大赛金奖

被评为openGauss赛道金奖的多模多态分布式数据库GBase 8c其含金量表现在哪些方面&#xff1f;基于openGauss有哪些技术创新&#xff1f; 其商业价值是什么&#xff1f;在哪些场景发挥作用&#xff1f; 面向全球开发者的年度顶级赛事——鲲鹏应用创新大赛已经举办三个年头了。三…

DHCP协议从入门到部署DHCP服务器进行实验

目录 1、DHCP基本概念 2、DHCP的优点 3、DHCP的工作原理 4、通过抓包验证原理 5、在windows server上部署DHCP服务器 6、实验搭建 实验环境 配置R1的中继 常见报文学习 1、DHCP基本概念 路由器可以阻挡DHCP discover的广播报文 2、DHCP的优点 3、DHCP的工作原理 4、通过抓…

Java笔试复盘

目录 1. finalize的含义 2.Statement和PreparedStatement用法 3. 接口能用protected修饰吗 4.java实现分解质因数 今天去参加了一场国企单位的笔试&#xff0c;很基础&#xff0c;但是有些细节的地方还是觉得答得不好&#xff0c;所以复盘一下。 1. finalize的含义 final…

WPF几何绘图(2)

Path的各种线段&#xff1a; LineSegment 直线段。 ArcSegment 圆弧线段。 BezierSegment 三次贝塞尔曲线段&#xff08;默认贝斯尔曲线是指三次曲线&#xff09;。 QuadraticBezierSegment 二次贝塞尔曲线段。 PolyLineSegment 多直线段。 PolyBezierSegment 多三次方贝塞…

一篇博文,带你入门数据库SQL语言

目录 &#x1f4d6;前言 &#x1f388;SQL的分类 &#x1f3a8;数据库的分类 ✨SQL的基础操作 ⚽SQL常用数据类型 &#x1f3c9;数据库的操作 ⚾创建数据库 &#x1f94e;显示数据库 &#x1f3c0;使用数据库 &#x1f3d0;删除数据库 &#x1f37f;表的操作 &…

Emgu CV4图像处理之打开Tensorflow训练模型17(C#)

本文测试环境&#xff1a; win10 64位 vistual studio 2019 Emgu CV 4.6.0 环境配置准备&#xff1a; 1 新增控制台项目&#xff0c;.net framework为4.7.2 2 把win-x64目录的native目录下的文件全部拷贝到项目的运行目录Debug目录下 3 项目选择x64 4 添加项目引用…

(CVE-2019-0227)Axis<=1.4 远程命令执行漏洞

结尾附上本文的环境和PoC 一、漏洞介绍 漏洞本质是管理员对AdminService的配置错误。当enableRemoteAdmin属性设置为true时&#xff0c;攻击者可以构造WebService调用freemarker组件中的template.utility.Execute类&#xff0c;远程利用AdminService接口进行WebService发布&am…

Linux_gdb_进程概念

目录 进度条 学习过程 自主实现&#xff1a; Linux的git操作 .gitignore .git git add . git commit git push git log git status git pull 进度条 学习过程 首先创建源文件&#xff0c;这个源文件就是我们要写的进度条的定义 接下来&#xff0c;我们创建文件Ma…

化工行业供应商协同管理系统:助力企业打造良好营商环境,提升运营效率

化工行业是我国工业发展的重要基础&#xff0c;也是国民经济发展和生活不可或缺的一部分。化工产品的更新换代&#xff0c;产业的不断升级&#xff0c;对原材料的采购也提出了更高要求。 由于精细化工行业原材料的质量和成本&#xff0c;与供应商的选择与资质具有重要的关联性…

[附源码]计算机毕业设计JAVAjsp医院网上预约系统

[附源码]计算机毕业设计JAVAjsp医院网上预约系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM myb…

关于Python和自动化

最近碰到了好几次面试都需要问Python。 在这里我有一个误区&#xff0c;向各位面试官先陈述一下。 之前的时候&#xff0c;对C和C研究的更加多一点&#xff0c;再加上多年的自动化维护经验&#xff0c;自认为对po封装模式的理解&#xff0c;因此对于自认为对Python是十拿九稳&a…

[Spring MVC6]事务管理与缓存机制

Spring MVC 关于Spring与MaBatis事务管理&#xff0c;这里的事务管理类似于数据库中的transaction,基本操作也都一样。同时介绍了MaBatis缓存模式&#xff0c;特别是一级缓存与二级缓存。 希望对你有所帮助&#xff01; 目录Spring 事务管理MyBatis 事务管理MyBatis 缓存模式一…

html实现个人空间主页(附源码)

文章目录1.设计思路1.1 欢迎界面1.2 屏保界面1.3 主界面1.4 我的项目界面1.5 我的日记界面1.6 我的日记管理界面2.效果展示和代码展示2.1 动态效果图2.2 主界面代码2.3 欢迎页代码2.4 屏保代码源码下载作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weix…

JavaScript算法 — 二叉树遍历

目录1、构造二叉树2、递归遍历3、非递归遍历3.1 先序3.2 中序3.3 后序1、构造二叉树 树节点&#xff1a; // 二叉树节点的构造函数 function TreeNode(val, left, right) {this.val (valundefined ? 0 : val)this.left (leftundefined ? null : left)this.right (rightu…

给好朋友用代码画一个爱心吧

目录 效果图 html爱心 python爱心 ​编辑 代码 html python 浅浅分析一下《燃烧我&#xff0c;照亮你》剧中的爱心代码 光棍节要到了&#xff0c;不给心意的人写个爱心代码&#xff1f; 话不多说&#xff0c;上才艺&#xff0c;这里有两种爱心&#xff0c;一种是html&a…

Unity功能—— 在VS中快速访问Unity API对应文档

声明&#xff1a;本文为个人笔记&#xff0c;用于学习研究使用非商用&#xff0c;内容为个人研究及综合整理所得&#xff0c;若有违规&#xff0c;请联系&#xff0c;违规必改。 Unity功能—— 在VS中快速访问Unity API对应文档 文章目录Unity功能—— 在VS中快速访问Unity API…