image

编辑人: 长安花落尽

calendar2025-07-16

message4

visits749

第14届蓝桥杯C++青少组中/高级组选拔赛(STEMA)2023年2月12日真题参考答案

一、单选题

1、以下哪个选项可以作为变量名称?(   )

A、

float

B、

_5b

C、

2_ab

D、

n!c


2、已知:char str[] ="Hello World"; 以下哪个函数可以正确输出str的长度?(   )

A sizeof()

B strlen()

C size()

D length()


3、以下字符数组初始化正确的是(   )。

A char a[3]={“a”,“b”,“c”}

B char b[3]={‘a’} 

C char c[]={‘abc’} 

D char d[3]={“abc”} 


4、关于结构体,以下说法正确的是(   )。

A 结构体的成员变量默认可以在结构体外部访问

B 结构体的成员变量不能是结构体类型

C 结构体类型的变量不能充当函数的参数

D 当结构体的成员变量含有数组时,不能直接对结构体变量进行赋值


5、已知:int m =8; 下列正确的引用方法是(   ) 。

A float &b=m; 

B int &b=8;

C int &z;

D int &b=m;


二、实操题

6、求和

题目描述:

给定一个正整数N(1<N<106),求出N左右相邻两个正整数的和。

例如:N = 6,左边相邻的数为5,右边相邻的数为7,两数之和为12(12=5+7)。

输入描述:

输入一个正整数N(1<N<106

输出描述:

输出一个整数,表示N左右相邻两个正整数的和


样例输入:

6

样例输出:

12

参考答案:对于给定的正整数N,其左右相邻的两个正整数分别为N-1和N+1,所以它们的和为N-1+N+1=2N。


7、奇数

题目描述:

给定两个正整数N和M(10≤N<M≤10000),请找出N到M之间(包含N和M)的所有正整数中,哪些正整数的各个位上的数字都为奇数,并输出N到M之间共有多少个这样的正整数。

例如:N = 110,M = 119,

110到121之间的所有正整数有110、111、112、113、114、115、116、117、118、119;

其中各个位上的数字都为奇数的有111、113、115、117、119,共5个。

输入描述:

输入两个正整数N和M(10≤N<M≤10000),正整数之间以一个英文逗号隔开

输出描述:

输出N到M之间(包含N和M)的所有正整数中,各个位上的数字都为奇数的个数


样例输入:

110,119

样例输出:

5

参考答案:输入两个正整数N和M,找出N到M之间(包含N和M)的所有正整数中,各个位上的数字都为奇数的个数。


8、硬币

题目描述:

有N(2≤N≤50)个硬币正面朝上排成一排,每次反转任意3个硬币(正面反转后为反面,反面反转后为正面),请问最少反转几次可以使N个硬币全部反转成反面。

例如:

N=7,最少反转3次可以使7个硬币全部反转成反面。

第一次将第1、2、3的硬币反转为反面朝上;

第二次将第3个硬币反转为正面朝上,将第4、5的硬币为反面朝上;

第三次将第3、6、7的硬币反转为反面朝上。

输入描述:

输入一个正整数N(2≤N≤50),表示硬币的个数

输出描述:

输出一个整数,如果可以将N个正面朝上硬币全部反转成反面,就输出反转的次数,否则输出-1


样例输入:

7

样例输出:

3

参考答案:```n = int(input())if n % 2 == 0:print(-1)else:count = n // 3if n % 3 == 0:print(count)else:print(count + 1)```


9、最大空白区

题目描述:

小明有一张矩形彩纸,他将彩纸均匀的画了N*M个小方格,有些小方格中被他画了小草,有些小方格是空白的,现小明想找出一片空白的方格,并且这片空白方格是最大的矩形。

现给出N和M的值,及每个方格的状态,被画小草的小方格用数字1表示,空白小方格用数字0表示,请帮小明找出最大矩形,并输出最大矩形由多少个小方格组成。

例如:N=4,M=5,

输入描述:

第一行输入两个正整数N和M(2≤N≤100,2≤M≤100),分别表示矩形彩纸方格的行数和列数,两个正整数之间以一个空格隔开

第二行开始,输入N行,每行M个正整数(正整数为1或者0),1表示小草,0表示空白,正整数之间一个空格隔开

输出描述:

输出一个整数,表示最大矩形由多少个小方格组成


样例输入:

4 5
1 1 0 0 0
1 0 1 0 0
0 0 0 1 1
0 0 0 1 0

样例输出:

6

参考答案:最大矩形由6个小方格组成。


10、求个数

题目描述:

给定一组数据,及两个正整数N和M,求出数据中,值位于N到M之内的区间和的个数。

输入描述:

第一行输入一个正整数K(2≤K≤1000)

第二行输入K个正整数(-1000≤正整数≤1000),正整数之间以一个空格隔开

第三行输入两个正整数N和M(-1000≤正整数≤1000),表示区间,正整数之间以一个空格隔开

输出描述:

输出一个整数,表示满足要求的区间和个数


样例输入:

2
-1 3 -2
-1 2

样例输出:

3

参考答案:首先,我们需要将输入的数据按照正整数和负整数分别存储。然后,计算所有正整数的和,以及所有负整数的和。最后,根据N和M的值,分别计算位于N到M之间的正整数和和负整数和的个数,并将两者相加得到最终答案。


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

创作类型:
原创

本文链接:第14届蓝桥杯C++青少组中/高级组选拔赛(STEMA)2023年2月12日真题参考答案

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