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

news2025/7/17 18:08:38

🎇C++笔试强训


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

在这里插入图片描述

💦🔥


选择题

💦第一题

请指出选择排序,冒泡排序,快速排序的时间复杂度分别是()

A O(n2)、O(n2)、O(nlog2n)
B O(n
log2n)、、O(n^2)、O(nlog2n)
C O(n)、O(n2)、O(n2)
D O(n
log2n)、O(n2)、O(n2)

先进排序都是对数阶,一般排序方法都是n方
在这里插入图片描述

这道题的答案是A


💦第二题

在单链表中,增加头结点的目的是()

A 标识表结点中首结点的位置
B 算法实现上的方便
C 使单链表至少有一个结点
D 说明单链表是线性表的链式存储实现

增加头节点代码会简单些,做其他节点的插入删除两个没区别,如果是第一个节点,不带头节点需要特殊处理

请添加图片描述

这道题的答案是B


💦第三题

下列算法的功能是什么?

/*L是无头节点单链表*/
LinkList Demo(LinkList L){
	ListNode *Q,*P;
	if(L&&L->next){
		Q=L;
		L=L->next;
		P=L;
		while(P->next)
			P=P->next;
		p->next=Q;
	}
	return L;
}

根据代码的操作画图,得出结论是让链表变得循环了请添加图片描述

请添加图片描述
A 遍历链表

B 链表深拷贝

C 链表反转

D 单链表转变为循环链表

这道题的答案是D


💦第四题

表达式32^(4+22-6*3)-5求值过程中当扫描到6时,对象栈和运算符栈为(),其中 ^ 为乘幂

A 3,2,4,1,1;( * ^(+ * -
B 3,2,8;( * ^ -
C 3,2,4,2,2; ( * ^(-
D 3,2,8;*^(-

在这里插入图片描述

请添加图片描述

这道题的答案是D


💦第五题

假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()

A 3
B 37
C 97
D 50

这道题很简单,当前是47,存50个元素,就是47+50-60 = 37

这道题的答案是B


💦第六题

一棵完全二叉树第六层有9个叶结点(根为第一层),则结点个数最多有()

A 112
B 111
C 107
D 109

第六层有九个结点,七层满二叉树的结点个数 2 ^ 7 - 1 = 128

则这棵树的结点 128 - 9 * 2 = 109

这道题主要考察二叉树的性质

这道题的答案是D


💦第七题

有权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()

A 24
B 71
C 48
D 53

请添加图片描述

请添加图片描述

这道题的答案是B


💦第八题

已知小根堆为8,15,10,21,34,16,12,删除关键字8之后需重建堆,最后的叶子节点为()

A 34

B 21

C 16

D 12

请添加图片描述

这道题的答案是C


💦第九题

将10个元素散列到100000个单元的哈希表中,则()产生冲突

A 一定会

B 一定不会

C 仍可能会

空间很多,数据很少,哈希最大的特点是空见少数据多,哈希函数是映射函数,保不准数据很特殊,可能还是会映射同一个地址,只不过是产生冲突的可能性减少了,不能保证一定不会产生冲突

这道题的答案是C


💦第十题

下列排序算法中,元素的移动次数与关键字的初始排列次序无关的是 () 。

A 直接插入排序

B 起泡排序

C 基数排序

D 快速排序

ABD正序和反序都不同,基数排序是不需要移动数据和比较数据的,是所有排序里面唯一的,是通过分发和收集对数据的排序

这道题的答案是C


编程题

🔥 第一题

链接:年终奖

在这里插入图片描述

  • 解题思路

本题需要使用动态规划求解。
定义f(i,j)表示从左上角走到坐标(i,j)处能获得的最大奖励。
搜索所有从左上角走到右下角的路径,找到最优路径。
f(i,j)分三种情况:
第一列:f(i, 0) = f(i-1, 0) + board(i, 0)
第一行:f(0,j) = f(0, j - 1) + b(0, j)
其它位置:f(i, j) = max{f(i-1, j), f(i, j - 1)} + board(i, j)
最后返回右下角的值。

  • 代码演示
class Bonus {
public:
    int getMost(vector<vector<int> > board) {
        // write code here
        int row = board.size();
        int col = board[0]. size();

        vector<vector<int>> allPrice(row,vector<int> (col,0));

        allPrice[0][0] = board[0][0];

        for(int i = 0;i < row;++i)
        {
            for(int j = 0;j < col;++j)
            {
                if(i == 0 && j == 0)
                    continue;

                if(i == 0)//在第一行,只能往右走
                    allPrice[i][j] = allPrice[i][j-1] + board[i][j];
                else if(j == 0)//在第一列,只能往下走
                    allPrice[i][j] = allPrice[i-1][j] + board[i][j];
                else
                    allPrice[i][j] = max(allPrice[i][j-1],allPrice[i-1][j]) + board[i][j];
            }
        }
        return allPrice[row-1][col-1];
    }
};

🔥 第二题

链接:迷宫问题

请添加图片描述

请添加图片描述

  • 解题思路

本题可用回溯法求解 具体步骤为:

  1. 首先将当前点加入路径,并设置为已走
  2. 判断当前点是否为出口,是则输出路径,保存结果;跳转到4
  3. 依次判断当前点的上、下、左、右四个点是否可走,如果可走则递归走该点
  4. 当前点推出路径,设置为可走
  • 代码演示
#include <iostream>
#include <vector>
using namespace std;

int ROW,COL;
vector<vector<int>> maze;
vector<vector<int>> path_tmp;//临时路径
vector<vector<int>> path_best;//最佳路径

void MazeTrack(int i ,int j)
{
    maze[i][j] = 1;//代表(i,j)已经走过
    path_tmp.push_back({i,j});

    //判断是否到达出口
    if(i == ROW - 1 && j == COL - 1)
    {
        if(path_best.empty() || path_best.size() > path_tmp.size())
            path_best = path_tmp;
    }

    //向右走
    if(j+1 < COL && maze[i][j+1] == 0)
        MazeTrack(i, j+1);
    //向左走
    if(j-1 >= 0 && maze[i][j-1] == 0)
        MazeTrack(i, j-1);
    //向上走
    if(i-1 >= 0 && maze[i-1][j] == 0)
        MazeTrack(i-1,j);
    //向下走
    if(i+1 < ROW && maze[i+1][j] == 0)
        MazeTrack(i+1, j);

    maze[i][j] = 0;//回溯,恢复
    path_tmp.pop_back();
}

int main()
{
    while(cin >> ROW >> COL)
    {
        maze = vector<vector<int>>(ROW,vector<int>(COL,0));//开辟迷宫空间 
        path_tmp.clear();
        path_best.clear();
        //输入迷宫
        for(int i = 0;i < ROW;++i)
        {
            for(int j = 0;j < COL;++j)
            {
                cin >> maze[i][j];
            }
        }

        MazeTrack(0,0);//从(0,0)位置开始走

        //输出路径
        for(int i = 0;i < path_best.size();++i)
        {
            cout << "(" << path_best[i][0] << "," << path_best[i][1] << ")" << endl;
        }
    }
    return 0;
}


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

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

相关文章

【数据结构】栈基本操作的实现(C语言)

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f40c; 个人主页&#xff1a;蜗牛牛啊 &#x1f525; 系列专栏&#xff1a;&#x1f6f9;初出茅庐C语言、&#x1f6f4;数据结构 &#x1f4d5; 学习格言&#xff1a;博…

SpringBoot项目打包时配置文件区分日常、测试、预发、正式环境

前言&#x1f34a; 在我们开发项目的时候&#xff0c;一般有四套环境&#xff1a;日常、测试、预发、正式。日常环境作为我们开发环境&#xff1b;测试环境给测试同学测试功能&#xff1b;预发环境给正式环境发布时提供准备&#xff1b;正式环境则是稳定的生产环境。 这四套环…

面试官问我new Vue阶段做了什么?

前言 本篇录入吊打面试官专栏&#xff0c;希望能祝君拿下Offer一臂之力&#xff0c;各位看官感兴趣可移步&#x1f6b6;。这段时间面了很多家公司&#xff0c;被问到的题我感觉不重复不止100道&#xff0c;将会挑选觉得常见且有意义的题目进行分析及回答。有人说面试造火箭&am…

Redis字符串、hash、列表方法使用以及Redis管道与Django集成Redis

目录标题一、Redis字符串操作二、Redis-hash操作三、Redis列表操作四、Redis管道五、Redis其他操作六、Django中集成Redis七、Celery介绍一、Redis字符串操作 名称属性setex:过期时间&#xff08;秒&#xff09;px:过期时间(毫秒) nx:如果设置为True&#xff0c;则只有name不存…

毕业设计:SpringBoot+Vue+Element的校内跑腿平台

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 文末获取源码 项目编号&#xff1a;BS-XX-…

MySQL基础总结

一.sql数据及语言基本类型: 1.语言的分类 DDL:数据定义语言,用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等 DML:数据操作语言,用来对数据库中表的记录进行操作。关键字:insert,delete,update等 DQL:数据库查询语言,用来查询数据库中表的记录。关键字:select,…

PIX2SEQ: A LANGUAGE MODELING FRAMEWORK FOR OBJECT DETECTION

文章目录ABSTRACT1 INTRODUCTION2 pix2seq框架2.1SEQUENCE CONSTRUCTION FROM OBJECT DESCRIPTIONS2.2 ARCHITECTURE, OBJECTIVE AND INFERENCE2.3 SEQUENCE AUGMENTATION TO INTEGRATE TASK PRIORS3 EXPERIMENTS3.1 EXPERIMENTAL SETUP3.2 MAIN COMPARISONS3.3 ABLATION ON SE…

2022年都在说软件测试饱和了?都在担心面试不上。

今年开始&#xff0c;小编听到最多的问题就是 软件测试行业是不是饱和了&#xff1f; 软件测试行业还有前景吗&#xff1f; 无非是因为投出去的简历回复的越来越少了 据中华英才网统计&#xff0c;目前软件测试人才的缺口在100万人以上&#xff0c;并以每年20%的速度递增&am…

2.5 自定义srv C++

功能介绍 以自定义数据类型为基础&#xff0c;完成一个节点作为服务器&#xff0c;另一个节点接收传送两个数字到服务端&#xff0c;服务端计算后反馈到客户端进行打印输出 1、工作空间 1.1 创建工作空间lee_ws mkdir -p ~/lee_ws/src cd ~/lee_ws/src/ catkin_init_worksp…

Unity 旋转大总结和项目操作

操作演示 旋转 (online-video-cutter.com)旋转方法都放在了按钮上&#xff0c;第一个是初始化按钮&#xff0c;将cube恢复到&#xff08;0&#xff0c;0&#xff0c;0&#xff09;&#xff0c;但是位置不会变成&#xff08;0&#xff0c;0&#xff0c;0&#xff09; 这个是参…

clickhouse中的sql操作

DDL操作 create操作 create table t_order_mt2(id UInt32,sku_id String,total_amount Decimal(16,2),create_time Datetime,INDEX a total_amount TYPE minmax GRANULARITY 5 ) engine MergeTree partition by toYYYYMMDD(create_time) order by (id, sku_id) primary key …

【工具】工具小集

Gif录制工具 LICEcap一款轻量级屏幕录制工具&#xff0c;可以导出GIF动画图片格式&#xff0c;支持导出GIF 动画图片格式&#xff0c;可灵活调整录制窗口大小。 https://www.cockos.com/licecap/ 浏览器插件&#xff08;工具箱&#xff09; FeHelper插件支持Chrome、Firefox…

创建个人中心页面(下)

目录 布局规划前端页面 获取头像获取Bot列表 对接获取Bot信息渲染到前端 实现创建一个Bot 前端进行对接插入Bot 实现创建成功关闭和清空 修改时间 实现删除按钮 安装依赖&#xff1a;vue3-ace-editor 布局规划前端页面 使用 bootstrap 的 grids system 进行布局 在 bo…

windows常见的命令操作大全

目录 一、目录文件操作 cd命令 dir命令 md命令 rd命令 move命令 copy命令 del命令 二、文本相关操作 type命令 >命令 findstr命令 |命令 三、网络相关操作 小建议&#xff1a;跟着文章亲手敲一遍是避免忘记的有效方法 一、目录文件操作 cd命令 功能&#xf…

你真的会解决android ANR 问题吗?

前言 ​ 还记得之前写过一篇关于ANR 的介绍&#xff0c;现在看来&#xff0c;那个只是皮毛。现实中遇到应用或系统ANR 的问题&#xff0c;是很难解决的。下面进入正题&#xff0c;来详细了解下如何解决。 一.ANR 关键字 1. event log 中“am_ANR” 关键字&#xff0c;main-l…

27岁Python程序员做独立开发年收入超900万,家中有屋又有田,生活乐无边

他是谁 他叫赖利蔡斯&#xff0c;27岁的Python程序员。现在拥有一家自己的小型软件公司。 他现在的生活 躺赚 每天躺着就可以赚到钱&#xff0c;睡觉时从来不会被闹钟吵醒。 每天干自己的喜欢的事情&#xff0c;读书、编程、讨论公司业务、研究自己感兴趣的事情&#xff0…

Java#4(各类语句和一点小练习)

目录 一.分支语句 1.if语句:和C语言中的没有什么区别 2.switch语句:可以使用C语言的写法,但新增了一种更加简便的写法 二. 循环语句 1.for循环:和C语言没有什么太大区别 2.while循环:和C语言没有什么太大区别 练习:回文数的判断 3.do while(先运行一次再判断):和C语言没…

项目经理如何进行项目汇报才能让项目顺利进行,让领导一看就喜欢?

项目经理如何进行项目工作汇报才能让项目顺利进行&#xff0c;让领导一看就喜欢&#xff1f;领导听工作汇报&#xff0c;就是想知道项目干得怎么样。因此&#xff0c;项目经理事先一定要思考&#xff0c;这次工作汇报应该达到什么目的。 工作汇报要注意这三个问题 简单描述项目…

有关Git(小白一看就懂)入门版

git的使用是在工作中必备的技能&#xff0c;本系列重写自己曾经学习git的过程&#xff0c;按照从创建git仓库开始操作&#xff0c;赋每一步的演示图&#xff0c;让小白跟着文章操作&#xff0c;一步一步入门 目录 git基本概念 git使用基本流程 文件的四种状态 git的使用和基…

Vue3 - this 概念及使用方法(详细教程)

前言 对比 Vue2 &#xff0c;引出并展开 Vue3 。 本文讲述了 this 概念及应用场景&#xff0c;以及使用方法和代码示例详细讲解。 回忆 Vue2 我们在 Vue2 项目中&#xff0c;可能写得最多的单词就是 this 了&#xff0c;咱们无论是拿数据还是调方法&#xff0c;一律 this。 先…