image

编辑人: 舍溪插画

calendar2025-05-22

message2

visits295

第12届蓝桥杯C++青少组中/高级组选拔赛2020年8月23日真题参考答案

一、实操题

1、输入一个正方形的边长(a)及一个长方形的长与宽(b、c),然后比较两个 图形的面积。如果长方形面积大,输出“RECTANGLE”;如果正方形面积 大,输出“SQUARE”;如果一样大,输出“SAME”。

输入描述:

输入正整数 a、b、c(0<a、b、c≤1000),分别代表正方形的边长和长方形的长与宽

输出描述:

如果长方形面积大,输出“RECTANGLE”

如果正方形面积大,输出“SQUARE”

如果一样大,输出“SAME”


【样例输入】

5 4 6

【样例输出】

SQUARE

参考答案:```# 声明三个变量a, b, c = map(int, input().split())# 计算面积square_area = a**2rectangle_area = b * c# 比较面积if square_area > rectangle_area:print("SQUARE")elif square_area < rectangle_area:print("RECTANGLE")else:print("SAME")```


2、请你写一个含有多个 “lanqiao” 字样的句子,然后输出句子中出现 “lanqiao” 字样的个数。(注意:“lanqiao” 字样可以是不同大小写字母的组合,例如: LanQIAO、LanQiao 等)

输入

输入一个字符串(0≤字符串长度≤100)。

输出

输出该字符串中 “lanqiao” 字样出现的次数。(请注意: “lanqiao” 字样可以是不同大小写字母的组合。)

样例输入

Lanqiaoceping,lanqiaoceping,Lanqiaoceping

样例输出

3

参考答案:br />输入字符串为:Lanqiaoceping,lanqiaoceping,Lanqiaoceping输出结果为:3


3、【编程实现】

蓝桥杯 STEMA 测评,成绩排名与证书的对应关系如下:

排名         奖项等级

前 10%         一等奖

前 30%         二等奖

前 60%         三等奖

前 80%         优秀奖

已知小蓝同学的成绩及其他所有考生的成绩,你能帮助小蓝计算一下他能获得的奖项等级吗?

输入

第一行为一个整数 score,(0≤score≤100)代表小蓝的成绩。

第二行为一个整数 n,(10≤n≤1000)代表参加测评的总人数。

第三行为n 个整数,每个整数代表每个参加测评考生的成绩,中间用空格分隔,成绩范围同 score。

输出

A、B、C、D、E 五个字母,分别代表一、二、三等奖,优秀奖及未获奖。注意:分数相同则等级相同,后续选手排名顺延。

【结果样例】

样例输入

95
10
99 95 90 99 80 70 71 78 77 60

样例输出

B

样例说明:小蓝在 10 名参赛选手中排名第 3,属于前 30%,故获得二等奖,

所以输出 B。另,两名 99 分的选手由于分数相同,所以并列一等奖。

参考答案:根据输入的成绩和排名信息,我们需要计算出小蓝的成绩排名,然后根据排名确定他能获得的奖项等级。首先,我们需要将所有参加测评的考生的成绩放入一个数组中,然后按照成绩从高到低进行排序。接着,我们可以计算出小蓝的成绩排名。如果小蓝的成绩排名在前10%,则输出"A",表示他获得一等奖;如果小蓝的成绩排名在前30%,则输出"B",表示他获得二等奖;如果小蓝的成绩排名在前60%,则输出"C",表示他获得三等奖;如果小蓝的成绩排名在前80%,则输出"D",表示他获得优秀奖;如果小蓝的成绩排名超过80%,则输出"E",表示他未获奖。


4、有一张 m×n 个小方格的地图,一个机器人位于地图的左上角(如图标记为 Start 的地方),它每步只能向右或者向下移动一格,如果走到右下角的终点(如图标记为 Finish 的地方),有多少种不同的方法?

例如,一个 3×2 的地图,方法数是 3 种,分别是:

右 → 右 → 下

右 → 下→ 右

下 → 右 → 右

输入格式

两个整数 m(m <100)和 n(n < 100),代表地图的行数和列数

输出格式

一个整数,表示方法数


样例输入

3 2

样例输出

3

参考答案:根据题目,我们可以使用组合数学中的卡特兰数来解决这个问题。卡特兰数的一般公式为 C(n, 2k) - C(n-1, 2k-1),其中 n = m + n,k = min(m, n)。对于给定的地图,其行数为 m,列数为 n。由于机器人每步只能向右或者向下移动,所以其总的步数应为 m + n。我们需要计算从 (m+n) 步中选出 k 步向右,其余 (m+n-k) 步向下的组合数,其中 k 的取值范围是 [0, min(m, n)]。因此,方法数可以通过卡特兰数的公式计算,即 C(m+n, 2k) - C(m+n-1, 2k-1),其中 k 的取值范围是 [0, min(m, n)]。


5、循环以及循环的嵌套,是同学们编写程序时常见的操作,如果用一对括号来代表一个循环的话那么三个循环出现的合法组合有 5 55 种,分别为∶ “{}{}{}”、"{{{}}}"、"{{}{}}"、"{{}}{}"、"{}{{}}"。

输入格式

输入一个数字n(1≤n≤30),代表循环的个数。

输出格式

输出 n nn 个循环的合法组合数。


样例输入

3

样例输出

5

参考答案:对于n个循环的合法组合数,可以通过递归的方式求解。具体地,当n=1时,只有1种组合;当n=2时,有2种组合;当n=3时,有5种组合。对于n>3的情况,可以将问题分解为n-1个子问题,即第1个循环为空、第1个循环为{}、第1个循环为且第2个循环为空、第1个循环为且第2个循环为{}、第1个循环为{}且第2个循环为。对于前三种情况,相当于是求n-1个循环的合法组合数;对于后两种情况,相当于是求n-2个循环的合法组合数。因此,n个循环的合法组合数可以通过递推式F(n)=2*F(n-1)+F(n-2)求解。


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:第12届蓝桥杯C++青少组中/高级组选拔赛2020年8月23日真题参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share