A.
B.
C.
D.
答案
A.
B.
C.
D.
答案
A.
B.
C.
D.
答案
A. 第
14 届蓝桥杯 C++青少组中 /高级组选拔赛 (STEMA)2023 年2月 12 日真题
题目总数: 10
总分数:208
一、选择题
第 1 题
单选题
以下哪个选项可以作为变量名称?(
)
float
_5b
2_ab
n!c
B
第 2 题
单选题
已知: char str[] ="Hello World"; 以下哪个函数可以正确输出 str的长度?(
)
sizeof()
strlen()
size()
length()
A
第 3 题
单选题
以下字符数组初始化正确的是(
)。
char a[3]={“a”,“b”,“c”}
char b[3]={‘a’}
char c[]={‘abc’}
char d[3]={“abc”}
B
第 4 题
单选题
关于结构体,以下说法正确的是(
)。
结构体的成员变量默认可以在结构体外部访问
B.
C.
D.
答案
A.
B.
C.
D.
答案
答案 结构体的成员变量不能是结构体类型
结构体类型的变量不能充当函数的参数
当结构体的成员变量含有数组时,不能直接对结构体变量进行赋值
A
第 5 题
单选题
已知: int m =8; 下列正确的引用方法是(
) 。
float &b=m;
int &b=8;
int &z;
int &b=m;
D
二、编程题
第 6 题
问答题
求和
题目描述:
给定一个正整数 N( 1<N<10 ),求出N左右相邻两个正整数的和。
例如: N = 6,左边相邻的数为 5,右边相邻的数为 7,两数之和为 12(12=5+7 )。
输入描述:
输入一个正整数 N( 1<N<10 )
输出描述:
输出一个整数,表示 N左右相邻两个正整数的和
样例输入:
样例输出: 6
6
6
12
// 参 考 代 码 1
#include <iostream>
using namespace std;
int main () {
int n;
cin >> n;
1
2
3
4
5
6
解析
评分标准:
3 分:能正确输出第一组数据;
3 分:能正确输出第二组数据;
3 分:能正确输出第三组数据;
3 分:能正确输出第四组数据;
3 分:能正确输出第五组数据。
第 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)的所有正整数中,各个位上的数字都为奇数的个数
样例输入:
样例输出:
cout << n * 2;
return 0;
}
7
8
9
10
// 参 考 代 码 2
#include <bits/stdc++.h>
using namespace std;
int main () {
int n;
cin >> n;
cout << (n - 1) + (n + 1) << endl;
}
1
2
3
4
5
6
7
8
9
110,119
5
答案
// 参 考 代 码 1
#include <iostream>
using namespace std;
int main () {
int n, m, sum = 0, x;
cin >> n >> m;
for (int i = n; i <= m; i++) {
x = i;
bool f = false ;
while (x) {
if (x % 2 == 0) {
f = true;
break;
}
x /= 10;
}
sum += f ? 0 : 1;
}
cout << sum;
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 参 考 代 码 2
#include <bits/stdc++.h>
using namespace std;
int main () {
int n, m;
cin >> n >> m;
int ans = 0;
for (int i = n; i <= m; i++) {
int j = i;
bool flag = true;
while (j) {
if (j % 2 == 0) {
flag = false;
break;
}
j /= 10;
}
if (flag == true) {
ans++;
}
}
cout << ans << endl;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
解析
答案 评分标准:
3 分:能正确输出第一组数据;
3 分:能正确输出第二组数据;
3 分:能正确输出第三组数据;
3 分:能正确输出第四组数据;
3 分:能正确输出第五组数据;
5 分:能正确输出第六组数据。
第 8 题
问答题
硬币
题目描述:
有 N( 2≤N≤50 )个硬币正面朝上排成一排,每次反转任意 3个硬币(正面反转后为反面,反面反转后为正
面),请问最少反转几次可以使 N个硬币全部反转成反面。
例如:
N=7 ,最少反转 3次可以使 7个硬币全部反转成反面。
第一次将第 1、 2、 3的硬币反转为反面朝上;
第二次将第 3个硬币反转为正面朝上,将第 4、 5的硬币为反面朝上;
第三次将第 3、 6、 7的硬币反转为反面朝上。
输入描
第14届蓝桥杯C++青少组中_高级组选拔赛(STEMA)2023年2月12日真题-附答案,第14届蓝桥杯青少组STEM考试C++真题及答案