第十一届蓝桥杯C++青少年组中/高级组省赛2020年真题解析

news2024/11/28 9:45:37

一、单选题

第1题

表达式 ‘6’ - ‘1’ 的值是( )

A:整数 5
B:字符 5
C:表达式不合法
D:字符 6

答案:A
在 C++ 中,字符字面量用单引号括起来,例如 ‘6’ 和 ‘1’。这些字符字面量实际上是表示字符的 ASCII 值。在 ASCII 编码中,数字字符 ‘6’ 的 ASCII 值是 54,而数字字符 ‘1’ 的 ASCII 值是 49。

当对字符进行算术运算时,C++ 将字符隐式地转换为其对应的 ASCII 值进行计算。因此,表达式 ‘6’ - ‘1’ 实际上是计算 54 减去 49,结果是整数 5。

第2题

若⼆维数组 a 有 n 列,则在 a[i][j] 前的元素个数为( )

A:i*n+j-1
B:i*n+j
C:j*n+i
D:i*n+j+1

答案:B
对于一个二维数组a,假设有n列,则每一行的元素个数为n。
在二维数组a[i][j]前的元素个数可以通过计算得到。由于每行有n个元素,因此在第i行之前的所有行共有i行,每行有n个元素,所以前面的元素个数为i * n。在第i行内部,a[i][j]前面的元素个数可以通过列索引j来确定,即为j个。因此,总的元素个数为i * n + j。
因此,正确答案是B: i * n + j。

第3题

以下叙述正确的是( )

A:break 语句只能⽤于 switch 语句体中;
B:continue 语句的作⽤是使程序的执⾏流程跳出包含它的所有循环;
C:break 语句只能⽤在循环体内和 switch 语句体内;
D:在循环体内使⽤ break 语句和 continue 语句的作⽤相同。

答案:C
A选项错误,break语句不仅可以用于switch语句体中,还可以用于循环体内。
B选项错误,continue语句的作用是跳过当前循环中的剩余代码,返回循环的起始点进行下一次循环,而不是跳出包含它的所有循环。
C选项正确,break语句可以用在循环体内和switch语句体内。在循环中,break语句会终止当前循环的执行,并跳出循环体;在switch语句中,break语句会终止当前的case分支的执行,并跳出switch语句。
D选项错误,break语句和continue语句的作用不同。break语句用于终止当前循环或switch语句的执行,而continue语句用于跳过当前循环中的剩余代码,进行下一次循环的执行。

第4题

按照“先进后出”原则组织数据的结构是( )

A: 队列
B: 栈
C:双向链表
D:⼆叉树

答案:B
栈是一种数据结构,它遵循"后进先出"(Last In, First Out,LIFO)的原则。这意味着最后进入栈的元素将首先被访问或删除。当数据按照先进后出的方式处理时,栈是一个很好的选择。

第5题

⽤ 0、1、2、3、4 这五个数字,能组成多少个没有重复数字的多位偶数?

A:144
B:147
C:160
D:163

答案:C
位偶数:3种(个位是 0、2或4);
两位偶数:如果个位是0,这样的两位数有4种(⼗位4种);如果个位是2或4,这样的两位数有2*3=6种(⼗位3种),共计10种;
三位偶数:如果个位是0,这样的三位数有4*3=12种(百位4种、⼗位3种);如果个位是2或4,这样的三位数有2*3*3=18种( 个位2种、百位3种、⼗位3种),共计30种;
四位偶数:如果个位是0,这样的四位数有4*3*2=24种(千位4种、百位3种、⼗位2种);如果个位是2或4,这样的四位数有2*3*3*2=36种(依次为个位2种、千位3种、百位3种、⼗位2 种),共计60种;
五位偶数:如果个位是0,这样的五位数有4*3*2*1=24种(万位4种、千位3种、百位2种、⼗位1种);如果个位是2或4,这样的五位数有2*3*3*2*1=36种(个位2种、万位3种、千位3 种、百位2种、⼗位1种),共计60种;
共计3+10+30+60+60=163种,其中多位偶数有160种。

二、编程题

第6题:双⾯打印

在 2020 年这个漫长的寒假里,虽然小蓝和他的同学们都在家里,但依旧通过网课的方式坚持学习,而老师们也依旧会布置作业和发放各种电子版的学习资料。为了方便小蓝的学习,妈妈会把老师发放的材料打印出来。而为了环保﹐妈妈一般都进行双面打印,也就是一张纸的正反面都打印出相应的内容。举个例子来说:如果一份电子材料有 3 页,那么需要 2 张纸进行打印;如果一份电子材料有 4 页,那么还是需要 2 张纸进行打印。现在已经知道了一份电子版的学习材料的页数 N,你能帮小蓝计算一下需要几张纸吗?
输入描述
整数 N ( O≤N≤1000 ),代表一份电子版的学习材料的页数。
输出描述
双面打印所需纸的张数。

样例输入

7

样例输出

4

答案:
参考程序:

#include <iostream>  //调用输入输出流头文件
using namespace std; // 使用标准名字空间
int N, ans; // 定义整数类型变量N,ans,代表单面打印的页数和双面打印的页数
int main() {           // 主函数开始
  cin >> N;            // 输入N的值
  ans = N / 2 + N % 2; // 将ans赋值为N除以2加N模2
  cout << ans;         // 输出ans的值
  return 0;            // 主函数结束,返回0
}

评分标准:
10 分:能正确输出一组数据;
20 分:能正确输出两组数据;
20 分:能正确输出三组数据。

第7题:求完数

因子:因子也叫因数,例如3×5=15,那么3和5是15的因子。同时15×1=15,那么1和15也是15的因子。 1,3,5,15 这四个因子是15的所有因子。
完数:如果一个数等于不含它本身的其他因子之和,则称该数为‘完数’。如6的因子有1,2,3,6,且1+2+3= 6,因此6是完数。
题目描述
输入一个正整数N(0<N<10000),输出小于N的所有完数及小于N的完数个数(个数前加“*”,例如:*2)。
输入描述
输入一个正整数 N(O<N<10000 )
输出描述
输出小于 N 的所有完数及小于 N 的完数个数

样例输入

100

样例输出

6
28
*2

答案:
参考程序一:

#include <iostream>
using namespace std;
int main() {
  int i, j, n, sum = 0, count = 0;
  cin >> n;
  for (i = 1; i < n; i++) {
    for (j = 1; j < i; j++) {
      if (i % j == 0)
        sum = sum + j;
    }
    if (sum == i) {
      cout << i << endl;
      count++;
    }
    sum = 0;
  }
  cout << "*" << count;
  return 0;
}

参考程序二:

#include <cstdio>    //调用C语言标准输入输出流头文件
#include <iostream>  //调用输入输出流头文件
using namespace std; // 使用标准名字空间
bool y(int n) { // 定义函数y,参数n为整数类型,返回值为布尔类型
  int re[1009],
      com_ = 0,
      ans =
          0; // 定义数组re,包含1009个整数类型变量,定义整数类型变量com_.ans并初始化赋值为0
  for (int i = 1; i < n; i++) { // for循环,计数器i从1自增到n-1,共循环n-1次
    if (n % i == 0) {           // 如果n能被i整除
      re[com_] = i;             // 将re的com_号元素赋值为i
      com_++;                   // com_自增1
    }
  }
  for (int i = 0; i < com_;
       i++) { // for循环,计数器i从0自增到com_-1,共循环com_次
    ans += re[i]; // ans自增re的i号元素
  }
  if (ans == n) { // 如果ans等于n
    return true;  // 返回真
  }
  return false; // 返回假
}
int main() { // 主函数开始
  bool y(int n); // 声明函数y,参数n为整数类型,返回值为布尔类型
  int n, ans = 0; // 定义整数类型变量n,ans并初始化赋值为0
  cin >> n;       // 输入n的值
  for (int i = 1; i < n; i++) { // for循环,计数器i从1自增到n-1,共循环n-1次
    if (y(i)) {                 // 如果y(i)为真
      ans++;                    // ans自增1
      cout << i << endl; // 输出i的值
    }
  }
  printf("*%d", ans); // 格式化输出*ans
  return 0;           // 主函数结束,返回0
}

评分标准:
10 分:能正确输出一组数据;
10 分:能正确输出两组数据;
20 分:能正确输出三组数据;
20 分:能正确输出四组数据。

第8题:求阴影面积

题目描述:
用户输入一个正整数a(0<a<100),作为如图半圆的直径,同时作为如图等腰直角三角形的直角边长度,求下图的阴影部分面积,如下所示:
在这里插入图片描述

提示信息:
三角形面积公式:S=(ah)/2 (公式中a为三角形的底边,h为底边所对应的高)
圆形面积公式:S=πr2 (公式中r为圆的半径,π= 3.14)
已知条件:

1) 半圆的直径和等腰直角三角形直角边长度相同;
2) 三角形与半圆部分重叠;

输入描述
输入一个正整数a(0<a<100)
输出描述
输出图形阴影面积(保留2位小数)

样例输入

10

样例输出

25.00

答案:
参考程序:

#include <iomanip>   //调用输入输出控制流头文件
#include <iostream>  //调用输入输出流头文件
using namespace std; // 使用标准名字空间
double a, S;         // 定义浮点数类型变量a,S
int main() {         // 主函数开始
  cin >> a;          // 输入a的值
  S = a * a / 4;     // 将S赋值为a的平方除以4
  cout << setiosflags(ios::fixed) << setprecision(2)
       << S; // 输出S的值,保留两位小数
  return 0;  // 主函数结束,返回0
}

评分标准:
20分:能正确输出一组数据;
20分:能正确输出两组数据;
20分:能正确输出三组数据;
20分:能正确输出四组数据。

第9题:选择题判定

【题⽬描述】
受疫情的影响,2020年蓝桥杯⼤赛⻘少年创意编程C++组的省赛在⽹上进⾏。选择题有5道,都是单选题,每道30分,共计150分。每道选择题选对得30分,选错或者不选得0分。注意以下仅为假设,不代表本场考试选择题的真实答案,仅是针对本编程题假设出的答案。假设正确的答案为“DCBAD”,那么你能根据选⼿的提交情况,判定选⼿的选择题总分吗?选⼿提交⼀个由5个字符组成的字符串,代表选⼿的选项。字符串仅能包含如下5种字符:“D”、“C”、“B”、“A”、“E”。其中“A”、“B”、“C”、“D”代表选⼿选择了某个选项,⽽ “E” 代表选⼿未做该题。
【输⼊描述】
选⼿提交的⼀个由5个字符组成的字符串。
【输出描述】
⼀个整数,代表选⼿选择题的总分。

【样例输⼊】

DCEAB

【样例输出】

90

答案:
参考程序:

#include <iostream>             //调用输入输出流头文件
using namespace std;            // 使用标准名字空间
string st_ = "DCBAD";           // 定义字符串st_并初始化赋值为DCBAD
string my_;                     // 定义字符串my_
int ans;                        // 定义整数类型变量ans
int main() {                    // 主函数开始
  getline(cin, my_);            // 整行输入字符串my_的值
  for (int i = 0; i < 5; i++) { // for循环,计数器i从0自增到4,共循环5次
    if (st_[i] == my_[i]) { // 如果st_的i号元素等于my_的i号元素
      ans += 30;            // ans自增30
    }
  }
  cout << ans; // 输出ans的值
  return 0;    // 主函数结束,返回0
}

第10题:节⽓

【题⽬描述】
夏⾄将⾄。《中国天⽂年历》显示,北京时间6⽉21⽇,也就是明天,夏⾄伴随着接天莲叶的碧,和映⽇荷花的红,即将盛装登场。夏⾄是中国“⼆⼗四节⽓”的第⼗个节⽓,“⼆⼗四节⽓”被列⼊联合国教科⽂组织⼈类⾮物质⽂化遗产名录。在国际⽓象界,这⼀已有千年历史的时间认知体系被誉为“中国第五⼤发明”。春⾬惊春清⾕天,夏满芒夏暑相连。秋处露秋寒霜降,冬雪雪冬⼩⼤寒。⼆⼗四节⽓,在四季轮回流淌,每个节⽓都有它较为稳定的⽇⼦。下表给出了农历庚⼦年(公历2020年1⽉ 25⽇~2021年2⽉11⽇)中,⼆⼗四个节⽓的名称,公历具体⽇期及汉语拼⾳的缩写。
在这里插入图片描述

【输⼊描述】
整数M,N(2≤M≤12,1≤N≤31),M,N分别代表公历2020年的某⽉,某⽇。所给出的数据均为合法⽇期。
【输出描述】
如果当天恰好是⼀个节⽓,输出这个节⽓的汉语拼⾳缩写,如当天不是节⽓则输出下⼀个节⽓的汉语拼⾳缩写。

【样例输⼊】

7 4

【样例输出】

XS

【提示说明】
样例输出1说明:7⽉4⽇之后的7⽉6⽇,是⼩暑,汉语拼⾳缩写是“XS”。

答案:
参考程序:

// 使用暴力枚举法
#include<iostream>
using namespace std;
int main()
{
	int a,b;
	cin>>a>>b;
	if((a==2&&b<=4)||(a==1&& b>20))cout<<"LC";
	else if(a==2&&b<=19) cout<<"YS";
	else if((a==3&&b<=5)||(a==2&& b>19)) cout<<"JZ";
	else if(a==3&&b<=20) cout<<"CF";
	else if((a==4&&b<=4)||(a==3&& b>20)) cout<<"QM";
	else if(a==4&&b<=19) cout<<"GY";
	else if((a==5&&b<=5)||(a==4&& b>19)) cout<<"LX";
	else if(a==5&&b<=20) cout<<"XM";
	else if((a==6&&b<=5)||(a==5&& b>20)) cout<<"MZ";
	else if(a==6&&b<=21) cout<<"XZ";
	else if((a==7&&b<=6)||(a==6&& b>21)) cout<<"XS";
	else if(a==7&&b<=22) cout<<"DS";
	else if((a==8&&b<=7)||(a==7&& b>22)) cout<<"LQ";
	else if(a==8&&b<=22) cout<<"CS";
	else if((a==9&&b<=7)||(a==8&& b>22)) cout<<"BL";
	else if(a==9&&b<=22) cout<<"QF";
	else if((a==10&&b<=8)||(a==9&& b>22)) cout<<"HL";
	else if(a==10&&b<=23) cout<<"SJ";
	else if((a==11&&b<=7)||(a==10&& b>23)) cout<<"LD";
	else if(a==11&&b<=22) cout<<"XX";
	else if((a==12&&b<=7)||(a==11&& b>22)) cout<<"DX";
	else if(a==12&&b<=21) cout<<"DZ";
	else if((a==1&&b<=5)||(a==12&& b>21)) cout<<"XH";
	else cout<<"DH";
	return 0;
}

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

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

相关文章

【机器学习】消息传递神经网络(MPNN)在分子预测领域的医学应用

1. 引言 1.1. 分子性质预测概述 分子性质预测是计算机辅助药物发现流程中至关重要的任务之一&#xff0c;它在许多下游应用如药物筛选和药物设计中发挥着核心作用&#xff1a; 1.1.1. 目的与重要性&#xff1a; 分子性质预测旨在通过分子内部信息&#xff08;如原子坐标、原…

2.数人数

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/431 题目描述 在一个班级里,男生比女生多…

MySQL—多表查询—子查询(介绍)

一、引言 上一篇博客学习完联合查询。 这篇开始&#xff0c;就来到多表查询的最后一种形式语法块——子查询。 &#xff08;1&#xff09;概念 SQL 语句中嵌套 SELECT 语句&#xff0c;那么内部的 select 称为嵌套查询&#xff0c;又称子查询。 表现形式 注意&#xff1a; …

达梦8 开启物理逻辑日志对系统的影响

物理逻辑日志&#xff0c;是按照特定的格式存储的服务器的逻辑操作&#xff0c;专门用于 DBMS_LOGMNR 包挖掘获取数据库系统的历史执行语句。当开启记录物理逻辑日志的功能时&#xff0c;这部分日志内 容会被存储在重做日志文件中。 要开启物理逻辑日志的功能&#xff0c;需要…

11.Spring AOP

文章目录 1.什么是 Spring AOP&#xff1f;2.为什要用 AOP&#xff1f;3.Spring AOP 应该怎么学习呢&#xff1f;3.1 AOP 组成3.1.1 切⾯&#xff08;Aspect&#xff09; 切点 通知3.1.2 连接点&#xff08;Join Point&#xff09;3.1.3 切点&#xff08;Pointcut&#xff09;…

《Brave New Words 》1.1 抛弃瓶子

Part I: Rise of the AI Tutor 第一部分&#xff1a;AI 导师的崛起 A great teacher can teach calculus with a paper clip and literature in an empty field. Technology is just another tool, not a destination. —Unknown 一位伟大的教师可以用回形针教微积分&#xff0…

Coze入门指南:创建Bot时,如何写好人设与回复逻辑(Persona Prompt)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Coze Bot 📒📝 Persona & Prompt🌟 # Character🌟 ## Skills🌟 # Overall Rules to follow🌟 ## Workflow🌟 ## Constraints📝 通用写法与模板📝 示例🌟技巧和注意事项⚓️ 相关链接 ⚓️📖 介绍 📖…

11.闰年的判定

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/615 题目描述 给定一个正整数 𝑦y 表示…

二进制中1的个数-java

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、二进制中1的个数 二、算法思路 1.将一个整数转化成二进制形式 2.查询一个数的二进制数中的第k位是多少 3.lowbit(x)操作 三、代码如下 1.代码如下&…

Jmeter 压力测测试的简单入门

下载安装 官方网站&#xff1a;Apache JMeter - Download Apache JMeter 下载完成解压即可。 配置 1. 找到 bin 目录下的 ApacheJMeter.jar 包&#xff0c;直接打开 如果向图片这样不能直接打开&#xff0c;就在此路径运行 CMD&#xff0c;然后输入下面的命令即可启动。 ja…

React实现在线预览word报告/本地选择报告预览

标题使用的核心技术点是docx-preview&#xff0c;读取到文件的File对象&#xff0c;用File去做文件展示&#xff0c;这里是才用将文件转base64字符串存储到localStorage中 在线预览word报告且包含word样式 下载需要使用的min.js文件进项目的public目录中&#xff08;上zip已包…

彼长技以助己(4)边界思维

彼长技以助己&#xff08;4&#xff09;边界思维 边界思维 接下来是工程思维中的第二个思维&#xff1a;边界思维。它是适用于所有工程领域&#xff0c;事半功倍的方法&#xff0c;很值得大家去学习掌握。 我们做任何事情都是有边界的&#xff0c;技术有边界、人工智能有边界…

ctfshow-web入门-命令执行(web42知识铺垫与四种常见截断方法)

目录 1、知识铺垫 &#xff08;1&#xff09;文件描述符 &#xff08;2&#xff09;/dev/null 2、代码审计 3、命令分隔 &#xff08;1&#xff09;使用分号 ; &#xff08;2&#xff09;使用逻辑或 || &#xff08;3&#xff09;使用 && 或者 & 4、%0a …

【中国开源生态再添一员】天工AI开源自家的Skywork

刚刚看到《AI高考作文出圈&#xff0c;网友票选天工AI居首》&#xff0c;没想到在Huggingface中发现了Skywork大模型。天工大模型由昆仑万维自研&#xff0c;是国内首个对标ChatGPT的双千亿级大语言模型&#xff0c;天工大模型通过自然语言与用户进行问答式交互&#xff0c;AI生…

【Linux】进程5——进程优先级

1.进程优先级 1.1.什么是进程优先级 cpu资源分配的先后顺序&#xff0c;就是指进程的优先权&#xff08;priority&#xff09;。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用&#xff0c;可以改善系统性能。还可以把进程运行到指定的CPU上&#x…

SpringBoot与MyBatis的快速整合(基于注解)

文章目录 创建Spring Boot项目配置数据库连接信息编写MyBatis Mapper接口使用XML文件编写SQL映射配置数据源切换引入Druid依赖配置Druid数据源 配置MyBatis支持事务管理 在使用Spring Boot创建新项目或新模块时&#xff0c;如果需要使用MyBatis来进行数据库操作&#xff0c;可以…

基于springboot的教学管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;教师管理&#xff0c;学生管理&#xff0c;课程管理 教师账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;课程管理&#xff0c;课程表…

8.数砖数

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/879 题目描述 给定一种 2222 规格的瓷砖,…

樱花动漫2024最新网页地址链接

大家好&#xff01;今天我要为大家种草一个非常棒的动漫资源在线平台——樱花动漫网页。作为一个网络文化研究者&#xff0c;我一直在关注当代动漫文化的发展和传播方式。而樱花动漫网页正是我近期发现的一颗璀璨明珠&#xff0c;它不仅为动漫爱好者提供了一个交流、分享的平台…

python机器人编程@我从0开始搭建了一个色块自动抓取机器人,并实现了大模型的接入和语音控制——(上基础篇)

目录 1、前言2、仿真环境的搭建3、仿真环境资源链接4、总结1、前言 在现代社会中,机器人技术正变得越来越普遍和重要。机器人的自动化能力使其能够在许多不同的领域发挥作用,例如生产线、医疗保健和家庭助理等。本系列将着重介绍如何搭建一个自动色块抓取机器人。 首先,我…