版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023年12月第15届蓝桥杯C++编程青少组(选拔赛_中高级)真题(含答案)一、单选题。1.定义字符串stringa="HelloC++",下列选项可以获取到字符'C'的是()。A.a[7]B.a[6]C.a[5]D.a[4]标准答案:B。2.下列选项中数值与其它项不同的是()。A.(1234)B.(C.(D.(标准答案:C。3.定义变量inti=0,a,执行表达式a=--i后,i和a的值分别是()。A.-1、0。B.0、-1。C.-1、-1。D.0、0。标准答案:C。4.定义数组inta[10]={4,6,1,3,8,7,2,9,0,5},那么*(a+5)的值是()。A.7B.8C.2D.9标准答案:A。5.执行以下程序,输出的结果是()。intfunc(intx,inty,intz){if(x==1||y==1||z==1)return1;if(x<y&&x<z)returnfunc(x,y-1,z)+func(x,y,z-1);if(y<x&&y<z)returnfunc(x-1,y,z)+func(x,y,z-1);returnfunc(x-1,y,z)+func(x,y-1,z);}intmain(){cout<<func(3,3,2);return0;}A.5B.6C.7D.8标准答案:B。二、编程题。6.求和。题目描述:给定n个整数,请计算出所有大于等于10的整数之和。例如:n=5,5个整数分别为10、20、4、30、9,其中大于等于10的整数有10、20、30,它们的和为60(10+20+30)。输入描述:共两行。第一行输入一个整数n(1≤n≤1000)。第二行输入n个整数Pi(1≤Pi≤100),整数之间以一个空格隔开输出描述:输出一个整数,表示所有大于等于10的整数之和。样例输入:510204309样例输出:60参考程序:#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,s=0;cin>>n;for(inti=1,x;i<=n;i++){cin>>x;if(x>=10)s+=x;}cout<<s;return0;}7.数位和为偶数的数。提示信息:偶数:能被2整除的数。数位和:一个整数中所有数位上的数字之和。例如:整数123,数位和是6(1+2+3)。题目描述:给定一个整数n,请找出1到n之间(包含1和n)所有数位和为偶数的整数。例如:n=15,1到15之间的整数为:1、2、3、4、5、6、7、8、9、10、11、12、13、14、15;数位和依次为:1、2、3、4、5、6、7、8、9、1、2、3、4、5、6。数位和为偶数的是:2、4、6、8、11、13、15。输入描述:输入一个整数n(2≤n≤1000)。输出描述:一行输出若干个整数,表示1到n之间(包含1和n)所有数位和为偶数的数,并按照从小到大的顺序依次输出,整数之间以一个空格隔开。样例输入:15样例输出:2468111315参考程序:#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;cin>>n;for(inti=1,x,y;i<=n;i++){x=i;y=0;while(x){y+=x%10;x/=10;}if(y%2==0)cout<<i<<"";}return0;}8.填涂颜色。题目描述:给定一个由n行m列的小方格组成的矩阵图形,接下来对该图形进行如下操作:1、先选择其中x行,将其填成黄色;2、再选择其中y列,将其填成黄色;填色完成后,请统计出有多少个小方格未被填色。例如:矩阵图形由4行5列的小方格组成,先选择第2、4行将其填色,再选择第1、3、5列将其填色。填色完成后,有4个小方格未被填色。输入描述:共三行。第一行输入4个整数n,m,x,y,分别表示矩阵的行数和列数以及选择填色的行数和列数(1≤x≤n≤10000,1≤y≤m≤10000),整数之间以一个空格隔开。第二行输入x个不同的整数(1≤整数≤n),表示被填色的行号,整数之间以一个空格隔开。第三行输入y个不同的整数(1≤整数≤m),表示被填色的列号,整数之间以一个空格隔开。输出描述:输出一个整数,表示填色完成后未被填色的小方格数量。样例输入:452324135样例输出:4参考程序:#include<bits/stdc++.h>usingnamespacestd;constintN=10002;intcol[N],row[N];intmain(){intn,m,x,y;cin>>n>>m>>x>>y;intc=0,r=0;for(inti=1,a;i<=x;i++){cin>>a;col[a]++;if(col[a]==1)c++;}for(inti=1,a;i<=y;i++){cin>>a;row[a]++;if(row[a]==1)r++;}cout<<n*m-(c*m+r*n-c*r);return0;}9.外观数列。提示信息:外观数列是一个整数序列,给定该数列的第一项数据之后,从第二项开始,每一项都是对前一项数据的描述。例如:给定外观数列的第一项为1。接下来第二项是对第一项数据的描述,即“一个1”,记作11。第三项是对第二项数据的描述,即“两个1”,记作21。第四项是对第三项数据的描述,即“一个2,一个1”,记作1211。第五项是对第四项数据的描述,即“一个1,一个2,两个1”,记作111221;以此类推…等等。题目描述:给定外观数列的第一项x以及一个整数n,请计算出该外观数列第n项的值。例如:x=2,n=3,外观数列为:外观数列第3项为1112。输入描述:输入两个整数x(1≤x≤100)和n(1≤n≤30)。输出描述:输出一个整数,表示外观数列第n项的值。样例输入:23样例输出:1112参考程序:#include<bits/stdc++.h>usingnamespacestd;charx[10000],y[10000];intmain(){intn,lx,t,k;cin>>x>>n;lx=strlen(x);for(inti=1;i<n;i++){t=1,k=0;for(inti=1;i<=lx;i++){if(x[i]!=x[i-1]){y[k]=t+'0';y[k+1]=x[i-1];k+=2;t=1;}else{t++;}}lx=k;memcpy(x,y,sizeof(y));memset(y,0,sizeof(y));}cout<<x;return0;}10.删除数字。题目描述:老师在黑板上写了一个不超过500位的正整数n(1≤n<10500),要求同学们删除其中任意k个数字,剩余数字的顺序不变,希望得到的数最大。例如:n=69134,k=2,从69134中删除2个数字,将第一位6和第三位1删除,得到的新数934是最大的。输入描述:输入两个整数n和k(1≤n<10500,0≤k<n的位数),整数之间以一个空格隔开。输出描述:输出一个整数,表示删除k个数字后,得到的最大数。样例输入:691342样例输出:934参考程序:#include<bits/stdc++.h>usingnamespacestd;stringn;intmain(){intk;cin>>n>>k;while(k--){inti,ln=n.size();for(i=1;i<ln;i++){if(n[i]>n[i-1]){n.erase(i-1,1);break;}}if(i==ln)n.erase(ln-1,1);}cout<<n;return0;}11.小松鼠的聚会。题目描述:在一片树林中,有n个树洞,按顺序从1到n编号,每个树洞里住着至少一只松鼠。一条藤蔓连接两个树洞,共有n-1条藤蔓,使得任意两个树洞可以直接或间接到达。这些小松鼠经常举办聚会,当某个树洞中的小松鼠举办聚会时,它们也会邀请距离自家树洞不超过k条藤蔓范围的邻居们前来参加聚会。请计算出每个树洞分别在举办聚会时,最多有多少只小松鼠参加聚会,并按照树洞编号从1到n依次输出结果。例如:n=4,表示有4个树洞,1到4号树洞中居住的小松鼠的数量分别为:5、3、6、1;共有3条藤蔓,每条藤蔓连接两个树洞,分别为:1和2、1和3、2和4;k=2,表示当某个树洞中的小松鼠举办聚会时,它们会邀请距离自家树洞不超过2条藤蔓范围的邻居们前来参加聚会。根据上图得知:当1号树洞的小松鼠举办聚会时,1、2、3、4号树洞中的小松鼠可以参加,最多会有15(5+3+6+1)只小松鼠参加。当2号树洞的小松鼠举办聚会时,1、2、3、4号树洞中的小松鼠可以参加,最多会有15(5+3+6+1)只小松鼠参加。当3号树洞的小松鼠举办聚会时,1、2、3号树洞中的小松鼠可以参加,最多会有14(5+3+6)只小松鼠参加。当4号树洞的小松鼠举办聚会时,1、2、4号树洞中的小松鼠可以参加,最多会有9(5+3+1)只小松鼠参加。输入描述:第一行输入一个整数n(1≤n≤100000),表示树洞的数量。接下来n行,每行输入一个整数Ci(1≤Ci≤1000),表示每个树洞中居住的小松鼠的数量。接下来n-1行,每行输入两个整数ai,bi(1≤ai,bi≤n),表示藤蔓连接两个树洞的编号,整数之间以一个空格隔开。最后一行输入一个整数k(1≤k≤20),表示邀请邻居的距离限制。输出描述:共n行,每行输出一个整数,表示每个树洞中的小松鼠在举办聚会时,参加聚会的小松鼠的最大数量,按照树洞编号从1到n依次输出结果。样例输入:453611213242样例输出:1515149参考程序:#include<bits/stdc++.h>usingnamespacestd;constintN=100005;intnum[N],n,k;vector<int>v[N];intpre[N],vis[N],ans;voidf(intx,intk,intp){if(p==k)return;if(pre[x]>0&&vis[x]==0){vis[x]=1;ans+=num[pre[x]];f(pre[x],k,p+1);}for(unsignedinti=0;i<v[x].size();i++){if(vis[v[x][i]]==0){vis[v[x][i]]=1;ans+=num[v[x][i]];f(v[x][i],k,p+1);}}}intmain(){cin>>n;for(inti=1;i<=n;i++)cin>>num[i];
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川成都九洲迪飞科技有限责任公司招聘市场部部长等岗位3人备考题库(名师系列)附答案详解
- 2026山东出版集团有限公司山东出版传媒股份有限公司招聘193人备考题库及参考答案详解(基础题)
- 2026山东出版集团有限公司山东出版传媒股份有限公司招聘193人备考题库含答案详解【培优b卷】
- 2026中交广东开春高速公路有限公司水电工招聘1人备考题库及完整答案详解【有一套】
- 2026广东广州市海珠区消防安全委员会办公室招聘街道微型消防站队员26人备考题库含答案详解(精练)
- 2026年4月份黑龙江齐齐哈尔市碾子山区开发公益性岗位3人备考题库含答案详解【研优卷】
- 2026中国科大图书馆劳务派遣岗位招聘2人备考题库及参考答案详解(巩固)
- 2026山东大学生命科学学院徐芳课题组科研助理招聘1人备考题库含完整答案详解(名师系列)
- 2026年3月山东济南轨道交通集团运营有限公司社会招聘备考题库(含答案详解)
- 2025-2030皮具行业市场发展分析及竞争格局与投资战略研究报告
- GB/T 43860.1210-2024触摸和交互显示第12-10部分:触摸显示测试方法触摸和电性能
- 欢乐的那达慕童声合唱简谱
- 【某矿井水处理工艺设计9600字】
- 艺术疗愈入门知识讲座
- 勇气大爆发二声部合唱简谱
- AI赋能的营销自动化与智能营销课程
- 给水工程项目可行性研究报告
- 盾构司机试题
- 浅论《论语》的语言特色
- YY 0899-2013医用微波设备附件的通用要求
- GB/T 120.1-2000内螺纹圆柱销不淬硬钢和奥氏体不锈钢
评论
0/150
提交评论