2024年12月第16届蓝桥杯C++编程青少组(选拔赛-中高级)真题(含答案)_第1页
2024年12月第16届蓝桥杯C++编程青少组(选拔赛-中高级)真题(含答案)_第2页
2024年12月第16届蓝桥杯C++编程青少组(选拔赛-中高级)真题(含答案)_第3页
2024年12月第16届蓝桥杯C++编程青少组(选拔赛-中高级)真题(含答案)_第4页
2024年12月第16届蓝桥杯C++编程青少组(选拔赛-中高级)真题(含答案)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024年12月第16届蓝桥杯C++编程青少组(选拔赛_中高级)真题(含答案)一、单选题。1.运行以下程序,输出的结果是()。cout<<5*2+1;A.15B.10C.11D.5*2+1标准答案:C。2.下列选项中,添加iostream头文件正确的写法是()。A.#include<iostream>B.include<iostream>C.include"iostream"D.#include"iostream"标准答案:A。3.下列关于C++语言描述不正确的是()。A.变量必须先定义后使用B.if语句不能单独存在,必须有匹配的else语句。C.do…while至少会执行一次循环语句D.数组的大小可以在声明时不指定,而在初始化时由编译器推断。标准答案:B。4.下列选项中,循环执行次数与其他选项不同的是()。A.for(inti=0;i<10;i++)B.for(inti=1;i<=10;i++)C.for(inti=2;i<12;i++)D.for(inti=3;i<=13;i++)标准答案:D。5.运行以下程序,输出的结果是()。intx(intarr[],intn){intans=0;for(inti=0;i<n-1;i++){intm=i;for(intj=i+1;j<n;j++){if(arr[j]<arr[m])m=j;}if(m!=i){inttemp=arr[i];arr[i]=arr[m];arr[m]=temp;ans++;}}returnans;}intmain(){intarr[]={64,25,12,22,11,90,34};cout<<x(arr,7)<<endl;for(inti=0;i<7;i++)cout<<arr[i]<<"";return0;}A.490643425221211B.511122225346490C.690643425221211D.611122225346490标准答案:B。二、编程题。6.摆钟。题目描述:有一座摆钟,它的摆锤每摆动一次用时2秒。摆锤摆动n次,用时多少秒?输入描述:输入一个整数n(1≤n≤500),表示摆锤的摆动次数。输出描述:输出一个整数,表示摆锤摆动n次用时多少秒。样例输入:3样例输出:6参考程序:#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;cout<<n*2<<endl;return0;}7.购买商品。题目描述:在线商城规定,当所购买商品的总价格大于等于300元时,免除运费;否则,需要再支付10元的运费。乐乐通过在线商城购买了n件商品,且已知每件商品的价格,请计算乐乐一共需要支付多少元。例如:n=3,3件商品的价格分别为10、20、30,总价格为60元,小于300元,需要额外支付10元的运费,所以乐乐一共需要支付70元(70=60+10)。输入描述:第一行输入一个整数n(1≤n≤50),表示乐乐购买商品的数量。第二行输入n个整数(1≤整数≤100),分别表示每件商品的价格,整数之间以一个空格隔开。输出描述:输出一个整数,表示乐乐一共需要支付多少元。样例输入:3102030样例输出:70参考程序:#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;intsum=0;for(inti=0;i<n;i++){intprice;cin>>price;sum+=price;}if(sum<300){sum+=10;}cout<<sum<<endl;return0;}8.彩色气球。题目描述:将n个气球排成一行,其中每个气球的颜色用数字表示,1表示红色,2表示绿色,3表示蓝色。我们需要移除一些气球,使得任意相邻的两个气球颜色都不同。请计算最少需要移除多少个气球。例如:n=8,8个气球的颜色依次为1,1,1,3,2,2,3,1。最少需要移除3个气球,可以使得任意相邻的两个气球颜色都不同,其中一种方案:移除第2个、第3个和第6个气球。移除后气球颜色依次为1,3,2,3,1。输入描述:第一行输入一个整数n(1≤n≤5000),表示气球的数量。第二行输入n个整数(1≤整数≤3),依次表示这一行气球的颜色,红色为1,绿色为2,蓝色为3,整数之间以一个空格隔开。输出描述:输出一个整数,表示最少需要移除的气球数量。样例输入:811132231样例输出:3参考程序:#include<iostream>usingnamespacestd;intmain(){intn,last,count=0;cin>>n>>last;for(inti=1,color;i<n;i++){cin>>color;if(color==last)count++;elselast=color;}cout<<count<<endl;return0;}9.魔法项链。题目描述:魔法师艾莉有一条由n颗宝石组成的项链,这些宝石围成一圈。每颗宝石用字符'A'或字符'B'表示,'A'表示魔力宝石,'B'表示普通宝石。艾莉可以利用项链中3颗相邻的魔力宝石来施展一次魔咒。施展魔咒后,这3颗宝石就会变为普通宝石,同时艾莉的魔力值增加1点。给定一个字符串S,表示宝石项链,第一个字符和最后一个字符表示的宝石位置相邻。请计算艾莉最多能获得多少点魔力值。例如:n=11,S="AABAAABABAA",第一个字符表示第1颗宝石,第二个字符表示第2颗宝石…以此类推,项链如下图所示:艾莉可以按照以下方案来施展魔咒增加魔力值:1)利用第4颗、第5颗和第6颗宝石施展一次魔咒,施展后项链状态如下:2)利用第1颗、第2颗和第11颗宝石施展一次魔咒,施展后项链状态如下:此时,项链中没有3颗相邻的魔力宝石,无法再施展魔咒,故艾莉最多可以获得2点魔力值。输入描述:第一行输入一个整数n(5≤n≤1000),表示项链中宝石的总数。第二行输入一个长度为n的字符串S,S仅包含字符'A'和'B','A'表示魔力宝石,'B'表示普通宝石。输出描述:输出一个整数,表示艾莉最多可以获得多少点魔力值。样例输入:11AABAAABABAA样例输出:2参考程序:#include<iostream>#include<string>usingnamespacestd;intmain(){intn,count=0;strings;cin>>n>>s;boolfound=true;while(found){found=false;for(inti=0;i<n;i++){if(s[i]=='A'&&s[(i+1)%n]=='A'&&s[(i+2)%n]=='A'){s[i]=s[(i+1)%n]=s[(i+2)%n]='B';count++;found=true;break;}}}cout<<count<<endl;return0;}10.取糖果。题目描述:圣诞节时,乐乐进入了一个神奇的糖果屋,糖果屋中有n个罐子,每个罐子中都有若干颗糖果。糖果屋的主人为了欢迎远道而来的乐乐,让乐乐感受到糖果屋的甜蜜,允许乐乐拿取k次糖果,拿取规则如下:1)每次可以从任意一个罐子中拿取一颗糖果。2)每次拿取糖果时能够获得甜蜜值,获得的甜蜜值为拿取前这个罐子中糖果的数量。现给定两个整数n和k,以及n个罐子中糖果的数量。已知乐乐初始的甜蜜值为0,请计算按照规则他能够获得的最大甜蜜值。例如:n=3,k=4,3个罐子中糖果数量依次为10,5,11,能够获得最大甜蜜值的拿取方式如下:第一次拿取第3个罐子中的一颗糖果,获得的甜蜜值为11,拿取后3个罐子中糖果数量依次为10,5,10。第二次拿取第1个罐子中的一颗糖果,获得的甜蜜值为10,拿取后3个罐子中糖果数量依次为9,5,10。第三次拿取第3个罐子中的一颗糖果,获得的甜蜜值为10,拿取后3个罐子中糖果数量依次为9,5,9。第四次拿取第1个罐子中的一颗糖果,获得的甜蜜值为9,拿取后3个罐子中糖果数量依次为8,5,9。最终获得的最大甜蜜值为40(11+10+10+9)。输入描述:第一行输入两个正整数n,k(1≤n≤105,1≤k≤109),分别表示糖果屋中罐子的数量以及乐乐可以拿取糖果的次数。第二行输入n个整数(1≤整数≤109),表示每个罐子中糖果的数量,整数之间以一个空格隔开。数据保证,所有罐子的糖果总数大于k。输出描述:输出一个正整数,表示乐乐能够获得的最大甜蜜值。样例输入:3410511样例输出:40参考程序:#include<iostream>#include<vector>#include<algorithm>usingnamespacestd;typedeflonglongLL;intmain(){LLn,k,total_sum=0;cin>>n>>k;vector<LL>a(n);for(inti=0;i<n;i++)cin>>a[i];sort(a.begin(),a.end(),greater<LL>());LLwidth=1,current_level=a[0],rem=k;intindex=0;while(rem>0&¤t_level>0){LLnext_level=(index<n-1)?a[index+1]:0;LLthickness=current_level-next_level;if(rem>=width*thickness){total_sum+=width*(current_level+next_level+1)*thickness/2;rem-=width*thickness;current_level=next_level;if(++index<n)width=index+1;}else{LLfull=re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论