第十四届蓝桥杯大赛青少年国赛C++组试题真题 2023年5月

第十四届蓝桥杯大赛青少年国赛C++组试题真题(2023年5月28日)
一、选择题
第 1 题    单选题
以下选项中,没有利用“比较”操作的算法是( )。

A.选择排序

B.冒泡排序

C.插入排序

D.桶排序

第 2 题    单选题
假设入栈顺序为a、b、c、d、e,则出栈序列不可能是( )。

A.a、b、d、c、e

B.b、a、d、c、e

C.d、c、a、b、e

D.c、b、a、d、e

第 3 题    单选题
执行以下代码,输出的结果是( )。

#include <iostream>
using namespace std;
int f(int k)
{
if(k<= 2) return 1;
return 2 * f(k - 2) + f(k - 1);
}
int main()
{
int n = 7;
cout << f(n);
return 0;
}


A.21

B.41

C.43

D.45

第 4 题    单选题
已定义字符串 string s ="Let lt Be" ,下列哪个选项可以获得字符串 的长度( )。

A.s.size()

B.len(s)

C.sizeof(s)

D.strlen(s)

第 5 题    单选题
以下关于C++类的说法,正确的是( )。

A.析构函数和构造函数一样可以进行重载

B.析构函数里不能使用return语句

C.构造函数不需要返回值时,需要定义为返回void类型

D.如果自定义构造函数的参数都是默认参数,则不能再定义一个无参数的构造函数

二、编程题
第 6 题    问答题
八进制回文平方数

提示:

八进制数:指逢8进位的一种进位计数制,以0、1、2、3、4、5、6、7共八个数码表示。例如:十进制数8等于八进制数10,十进制数64等于八进制数100,以此类推。

回文数:反向排列与原来一样的数。例如,12321是回文数,1231不是回文数。

平方数:可以写成某个整数的平方的数。例如,9 = 3^2,9 是一个平方数。

题目描述:

给定一个十进制正整数N(1≤N≤109),请从小到大输出1~N之间(含1和N)所有满足以下要求的数:

1. 这个数转换为八进制后是一个回文数;

2. 这个数是一个平方数。

例如:N=20,在1~20之间满足要求的数有1、4、9,因为有,

1转换为八进制为1,是一个回文数;且1 = 1^2,是一个平方数;

4转换为八进制为4,是一个回文数;且4 = 2^2,是一个平方数;

9转换为八进制为11,是一个回文数;且9 = 3^2,是一个平方数。

故输出1 4 9

输入描述

输入一个十进制正整数N(1≤N≤109)

输出描述

输出一行,包含若干个十进制正整数,表示满足题目要求的数。结果从小到大输出,两个正整数之间用一个空格隔开

样例输入

20
样例输出

1 4 9

答案和更多内容请查看网站:

网站链接 

青少年软件编程历年真题模拟题实时更新 

第14届蓝桥杯青少国赛C题要求编写一个程序,输入一段英文文字,统计其中每个字母出现的次数,并按照字母表顺序输出。 首先,我们需要读入一段英文文字,可以使用输入函数进行输入。然后,我们定义一个26个大小的数,用来存储每个字母的出现次数。接下来,我们遍历输入的每个字符,并判断是否为字母。 如果为字母,则根据字母的ASCII码,减去ASCII码中字母'A'的值,得到对应的下标,将该字母的出现次数加一。最后,我们按照字母的顺序进行输出。可以使用循环遍历整个数,如果某个字母的出现次数不为0,则输出该字母及其出现次数。 具体代码实现如下: ```python # 定义一个26个大小的数 count = [0] * 26 # 输入一段英文文字 sentence = input("请输入一段英文文字:") # 统计每个字母出现的次数 for ch in sentence: # 判断是否为字母 if ch.isalpha(): # 统计字母出现次数 index = ord(ch.lower()) - ord('a') count[index] += 1 # 按照字母表顺序输出结果 for i in range(26): # 判断某个字母的出现次数是否不为0 if count[i] != 0: # 输出字母及其出现次数 print(chr(ord('a') + i) + ":" + str(count[i]) + "次") ``` 通过以上代码,我们可以实现输入一段英文文字,然后统计其中每个字母出现的次数,并按照字母表顺序输出。这样我们就完成了第14届蓝桥杯青少国赛C题的解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No0d1es

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值