免费,C++蓝桥杯比赛历年真题--第14届蓝桥杯省赛真题(含答案解析和代码)

C++蓝桥杯比赛历年真题–第14届蓝桥杯省赛真题

一、选择题

答案:A

解析: C++中 bool 类型与 char 类型一样,都需要1 byte。一些其他类型的占用字节数:short:2 byte,int:4byte,long long:8 byte,double:8byte,故答案为A。

答案:C

解析:

A中结构体中可以定义成员变量,也可以定义只有该结构体类型变量可调用的成员函数;

B中所谓结构体的继承特性,指的是在一个已经定义好的旧结构体的基础上,创建一个新结构体,并且新结构体可以复用旧结构体的成员和函数;

C正确,D中构造函数可以在创建结构体变量时,按照函数预设的构造规则将对应成员变量赋值,并执行其他操作。构造函数在创建结构体类型的对象时自动执行,因此无法由用户主动调用,也没有返回值,故答案为C。

答案:C

解析:由等比数列的求和可知:一个高度为 h的满二叉树含有 2h-1 个结点。

本题的 62 个结点,相当于高度为6 的满二叉树的 2^6 -1=63个结点中,再去掉最底层最右端的一个结点,故答案为C。

答案:C

解析:数组的索引是从0开始的,所以如果一个数组有n个元素,第一个元素的索引是0,最后一个元素的索引是n-1,而不是数组的长度故答案为C。

答案:A

解析:代码功能是计算一个递归函数 f(k) 的值,其中 f(1) = 3,且当 k > 1 时,f(k) = 2*f(k-1) + 1。对于 n = 6 的情况,计算过程如下:

f(6) = 2*f(5) + 1

f(5) = 2*f(4) + 1

f(4) = 2*f(3) + 1

f(3) = 2*f(2) + 1

f(2) = 2*f(1) + 1

已知 f(1) = 3

反向代入已知值得到:

f(2) = 2*3 + 1 = 7

f(3) = 2*7 + 1 = 15

f(4) = 2*15 + 1 = 31

f(5) = 2*31 + 1 = 63

f(6) = 2*63 + 1 = 127

所以,修正并执行代码后,输出的结果是 127,故答案为A。


二、编程题

【参考程序】

#include <bits/stdc++.h>
using namespace std;
int main()
{int n;cin>>n;cout<<(n-n/10);return 0;
}

【参考程序】

#include <bits/stdc++.h>
using namespace std;
bool is_T(int n){int t=n,s=0;for(int i=1;i<=4;i++){s+=pow(t%10,4);t/=10;}if(s==n) return true;else return false;	
}
int main()
{int n,m;cin>>n>>m;for(int i=n;i<=m;i++)if (is_T(i)) cout<<i<<" ";return 0;
}

【参考程序】

#include <bits/stdc++.h>
using namespace std;// 声明常量及变量
const int N = 1e7 + 5;  // N表示可能的质数的上限
int primes[N], p;   // primes数组保存已知的质数列表,p表示质数个数
bool sign[N];       // sign数组用来标记某个数是否是质数
int s[N];           // s数组用来记录每个数的最大质因子个数// 埃氏筛法初始化质数表
void init_Primes(int n) {for (int i = 2; i <= n; i++) {if (!sign[i]) primes[p++] = i;      // i是质数,加入质数表中for (int j = 0; primes[j] <= n / i; j++) {sign[primes[j] * i] = true;     // 将i和质数表中所有不大于n/i的数的积标记为合数if (i % primes[j] == 0) break;  // 如果primes[j]是i的因子,则退出循环}}
}// 计算数n的最大质因子个数
int tj_(int n) {int tj = 0;     // tj表示n的最大质因子个数for (int i = 0; i < p; i++) {   // 枚举质数表中所有质数while (n % primes[i] == 0) {    // 如果当前质数是n的因子tj++;           // 更新最大质因子个数n /= primes[i]; // 去掉该质因子if (n == 1) return tj;  // 如果n变为了1,则说明所有质因子均被枚举完毕}}
}int main() {int n, m;cin >> n >> m;init_Primes(m);     // 初始化质数表int res = 0;        // res表示区间内最大质因子个数for (int i = n; i <= m; i++) {  // 枚举每个数,计算其最大质因子个数,更新resres = max(res, tj_(i));}cout << res;    // 输出结果return 0;
}

 

【参考程序】

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;const int N=1e6+5;
long long n,a[N];int main()
{	cin>>n;for(int i=1;i<=n;i++) cin>>a[i];long long ans=0,min_n=0;  // ans 记录最大的面积,min_n 记录当前区间中的最小值for(int i=1;i<=n;i++){min_n=N;for(int j=i;j<=n;j++){min_n=min(min_n,a[j]);   // 更新当前区间中的最小值ans=max(ans,(j-i+1)*min_n);  // 根据更新后的最小值来计算当前区间的面积,并记录最大值}}cout<<ans;  // 输出最大面积return 0;
}

【参考程序1】

#include <bits/stdc++.h>    
using namespace std;     
int n,ans; 
map<int,int> mp; // 定义map容器mp用于计数,map容器会根据键自动进行排序
int main() 
{  cin>>n;                 // 数的个数for(int i=1,x;i<=n;i++){ cin>>x;mp[x]++; // 如果x已经存在,则val+1;否则新建一个键值对(x,1)}// 当mp中至少存在三个不同的数字时while(mp.size()>2){    if(ans%2==0){             // 如果ans为偶数auto t=mp.begin();       // 获取mp中第一个键值对的迭代器(t->second)--;      // 将出现次数最少的数x减去1(next(t)->second)++;        // 将出现次数比x大的数y加上1if(!t->second) mp.erase(t); // 如果x的出现次数为0,则从mp中删除该键值对}else{                  // 如果ans为奇数auto t=prev(mp.end());   // 获取mp中最后一个键值对的迭代器(t->second)--;      // 将出现次数最多的数x减去1(prev(t)->second)++;    // 将出现次数比x小的数y加上1if(!t->second) mp.erase(t); // 如果x的出现次数为0,则从mp中删除该键值对}ans++;}int max_num = prev(mp.end())->first;int min_num = mp.begin()->first;cout<<ans<<" "<<min_num<<" "<<max_num<<endl;return 0;   
}

【参考程序2】

#include<bits/stdc++.h>
using namespace std;
const int N = 500005;
int n, pail[N],cnt;
list<int> ls;
int main(){scanf("%d", &n);for(int i = 1,x; i <= n; ++i) {cin>>x;pail[x]++;}for(int i=N-1;i>=1;i--)if(pail[i]) ls.push_back(i);while(ls.size()>2){auto it_f=ls.begin();auto it_s=ls.begin();it_s++;int id_f=*it_f,id_s=*it_s;pail[id_f]--;if(!pail[id_f])ls.pop_front();pail[id_s]++;cnt++;if(ls.size()<=2) break;it_f=ls.end();it_f--;it_f--;it_s=ls.end();it_s--;id_f=*it_f,id_s=*it_s;pail[id_s]--;if(!pail[id_s])ls.pop_back();pail[id_f]++;cnt++;}auto it_f=ls.begin();auto it_s=ls.begin();it_s++;if(ls.size()==1) cout<<cnt<<" "<<*it_f<<" "<<*it_f;else cout<<cnt<<" "<<*it_s<<" "<<*it_f;return 0;
}

【参考程序】

//树图+深搜+动规
#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
int n, root;//n储存所有部门的数量  root储存根节点
int a[N];// a数组表示每个节点的权值
int f[N][2]; // f[i][0/1]表示不选/选i节点时的最大价值
vector<int> G[N]; // 存储树的图结构
void dfs(int u){f[u][1] = a[u]; // 初始化选u节点的最大价值为它本身的权值for (int v : G[u]){//相当于for(int v=0;v<G[u].size();v++)dfs(v); // 遍历v节点f[u][1] += f[v][0]; // 如果选择了u节点,则不能选择v节点,所以累加 f[v][0]f[u][0] += max(f[v][0],f[v][1]); // 如果不选择u节点,则可以选择v节点// 所以取 f[v][0] 和 f[v][1] 的较大值累加起来}
}
int main()
{cin >> n;for (int i = 1, f, s; i <= n; i++){cin >> f >> s >> a[s]; // 输入父节点、子节点和子节点权值if (f) G[f].push_back(s); // 如果有父亲节点则建立G[f] -> [s]的边else root = s; // 否则当前节点为根节点}dfs(root);cout << max(f[root][0],f[root][1]);return 0;
}

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

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

相关文章

探究MySQL中的“树”结构

1 引言 树高千丈,叶落求索 – 唐代杜牧 树结构在MySQL中常用于表示层次关系,如组织结构或分类体系。引入树结构可使数据之间建立父子关系,便于查询和管理。益处包括快速检索子节点、方便展示层次关系、支持递归查询等。 2 基础概念 2.1 名词解析 程序就像是一张有向图,你…

Linux操作系统:Spark在虚拟环境下的安装及部署

将Spark安装到指定目录 // 通过wget下载Spark安装包 $ wget https://d3kbcqa49mib13.cloudfront.net/spark-2.1.1-bin-hadoop2.7.tgz // 将spark解压到安装目录 $ tar –zxvf spark-2.1.1-bin-hadoop2.7.tgz –C /usr/local/ // 重命名 $ mv /usr/local/spark-2.1.1-bin-hado…

前端怎么debugger排查线上问题

前端怎么debugger排查线上问题 1.问题背景2.问题详细说明3.处理方案a.开发环境怎么找&#xff0c;步骤一样的&#xff1a;b.生产环境怎么找&#xff0c;步骤一样的&#xff1a;还有一种情况就是你的子盒子是使用csshover父盒子出来的&#xff0c; 4.demo地址&#xff1a; 1.问题…

java版MES系统全套源码,支持 SaaS 多租户,管理后台的 Vue3 版本采用 :vue-element-plus-admin

MES生产制造执行系统源码&#xff0c;有演示&#xff0c;自主研发&#xff0c;多个项目应用案例&#xff0c;成熟稳定。支持二次开发&#xff0c;商业授权后可商用。 MES系统是面向制造企业车间执行层的生产信息化管理系统&#xff0c;能实时监控生产过程、管理制造数据、优化生…

惊呆了!六西格玛培训竟然这么强大!——张驰咨询

六西格玛&#xff0c;这个在业界久负盛名的管理理念&#xff0c;它的魅力太强大了。曾听闻它能帮助企业和个人提升竞争力&#xff0c;但当真正走进这个培训体系时&#xff0c;会发现它的影响力远超你的想象。 在六西格玛的指导下&#xff0c;企业实现了显著的转变。之前那些看…

优化家庭网络,路由器无线中继配置全攻略(中兴E1600无线中继设置/如何解决没有预埋有线网络接口的问题/使用闲置路由实现WIFI扩展)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 网络优化 📒📒 操作步骤 📒💡适用场景🚨 常见问题及解决方案⚓️ 相关链接 ⚓️📖 介绍 📖 在现代家庭生活中,WiFi已经渗透到我们生活的每一个角落,成为了日常生活中不可或缺的一部分。然而,不少用户常常遇到W…

区块链简要介绍及运用的技术

一、区块链的由来 区块链概念最早是从比特币衍生出来的。 比特币&#xff08;Bitcoin&#xff09;诞生于2008年&#xff0c;是由一个名叫中本聪&#xff08;Satoshi Nakamoto&#xff09;的人首次提出&#xff0c;这个人非常神秘&#xff0c;至今没有他的任何准确信息。在提出…

Windows下Qt5.14.2连接华为IoTDA平台

一、华为IoTDA简介 华为云物联网平台&#xff08;IoT 设备接入云服务&#xff09;提供海量设备的接入和管理能力&#xff0c;将物理设备联接到云&#xff0c;支撑设备数据采集上云和云端下发命令给设备进行远程控制&#xff0c;配合华为云其他产品&#xff0c;帮助您快速构筑物…

教师自费出书的注意事项有哪些?

备案主编专著的优势&#xff1a;&#xff08;qkfb88688&#xff09; 1、副高、正高职称最高学术成果 2、专著可以代替核心 3、周期短、出书快、可重复使用 4、双号齐全&#xff1a;ISBN&#xff5e;CIP 5、版权长期有效 教师自费出书有以下一些注意事项&#xff1a; 关于书稿&…

二、线性回归模型

目录 一、线性回归 1.模型示例 2.代码实验&#xff08;C1_W1_Lab03_Model_Representation&#xff09; (1).工具使用 (2).问题描述-房价预测 (3).输入数据 (4).绘制数据集坐标点 (5).建模构造函数 二、代价函数&#xff08;Cost function&#xff09; 1.解释一下概念…

mysql用户管理知识点

1、权限表 1.1、user表 1.1.1、用户列 Host、User、Password分别表示主机名、用户名、密码 1.1.2、权限列 决定了用户的权限&#xff0c;描述了在全局范围内允许对数据和数据库进行操作。 1.1.3、安全列 安全列有6个字段&#xff0c;其中两个是ssl相关的&#xff0c;2个是x509相…

敦煌网、ebay、速卖通等平台一直被差评怎么办?

在电商行业里一直都有一句话&#xff0c;有评行走天下&#xff0c;无评寸步难行 而没有review打造爆款的案例是少之甚少&#xff0c;众所周知&#xff0c;review已经成为用户衡量一件商品的标尺&#xff0c;目前我也是看到一个文章上面写到&#xff0c;一个卖家表示自己平时运…

形如SyntaxError: EOL while scanning string literal,以红色波浪线形式在Pycharm下出现

背景&#xff1a; 新手在学习Python时可能会出现如下图所示的报错 下面分情况教大家如何解决 视频教程【推荐】&#xff1a; 形如SyntaxError: EOL while scanning string literal&#xff0c;以红色波浪线形式在Pycharm下出现 过程&#xff1a; 问题概述&#xff1a; 简单…

React中使用 ts 后,craco库配置别名时需要注意什么?

文章目录 前言编译报错如下解决方式总结 前言 我们都知道craco库可以用来覆盖react配置&#xff0c;如设置别名等。但是在项目使用 Typescript 后&#xff0c;我们需要额外配置&#xff0c;否则会造成编译报错。 详细craco配置可以查看之前文章&#xff1a; 项目初始化与配置…

探索 LLM 预训练的挑战,GPU 集群架构实战

万卡 GPU 集群实战&#xff1a;探索 LLM 预训练的挑战 一、背景 在过往的文章中&#xff0c;我们详细阐述了LLM预训练的数据集、清洗流程、索引格式&#xff0c;以及微调、推理和RAG技术&#xff0c;并介绍了GPU及万卡集群的构建。然而&#xff0c;LLM预训练的具体细节尚待进一…

Vue06-el与data的两种写法

一、el属性 用来指示vue编译器从什么地方开始解析 vue的语法&#xff0c;可以说是一个占位符。 1-1、写法一 1-2、写法二 当不使用el属性的时候&#xff1a; 两种写法都可以。 v.$mount(#root);写法的好处&#xff1a;比较灵活&#xff1a; 二、data的两种写法 2-1、对象式…

【面试干货】SQL中count(*)、count(1)和count(column)的区别与用法

【面试干货】SQL中count&#xff08;*&#xff09;、count&#xff08;1&#xff09;和count&#xff08;column&#xff09;的区别与用法 1、count(*)2、count(1)3、count(column) &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在SQL中&a…

CSS函数:fit-content与matrix的使用

网格函数 fit-content()属于网格函数&#xff0c;除此之外的网格函数还有&#xff1a;CSS函数&#xff1a; 实现数据限阈的数字函数。顾名思义&#xff0c;这三个函数只能在网格布局中使用。fit-content()函数主要是用于给定布局可用大小&#xff0c;适应内容&#xff0c;其功…

MySQL事务与MVCC

文章目录 事务和事务的隔离级别1.为什么需要事务2.事务特性1_原子性&#xff08;atomicity&#xff09;2_一致性&#xff08;consistency&#xff09;3_持久性&#xff08;durability&#xff09;4_隔离性&#xff08;isolation&#xff09; 3.事务并发引发的问题1_脏读2_不可重…