A.
B.
C.
D.
答案
解析
A.
B.
C.
D.
答案
解析
第
14 届蓝桥杯 C++青少组中 /高级组选拔赛 (STEMA)2023 年3月 12 日真题
题目总数: 10
总分数:100
一、选择题
第 1 题
单选题
执行 cout << '9'*3; 语句后,输出的结果是( )。
27
9*3
999
171
D
char 类型与 int 类型的计算结果为 int , 9 的ACSII 码为57,所以最终输出 171 。
第 2 题
单选题
已定义: int a = 02023, b = 0x212; a + b 的值是( )。
八进制数 4771
十进制数 1573
十进制数 2553
十六进制数 9f9
B
二进制是以 0b 开头,八进制是以 0 开头,十进制是以 1~9 开头,十六进制是以 0x 开
头。其他进制转十进制,按权展开求和即可。那么
所以 a+b的十进制结果为 1573
第 3 题
单选题
执行以下代码,输出的结果是( )。
1. #include
<iostream>
2. using
namespace std ;
3. int
func (int x)
A.
B.
C.
D.
答案
解析
A.
B.
C.
D.
答案 4. {
5. if
(x <= 4)
6. return
2 * x - 1;
7. else
if (x > 7)
8. return
func(x - 4) + x;
9. else
10. return
func(x + 3) + 2 ;
11. }
12. int
main()
13. {
14. cout
<< func( 10);
15. return
0;
16. } 26
29
38
45
C
调用函数 func(10) 的执行过程如下:
第一层:此时参数 x=10,返回 func(6) + 10 ,即 func(10) = func(6) +10 进入第二层函数调用;
第二层:此时参数 x=6,返回 func(9) + 2 ,即 func(6) = fun(9) + 2 进入第三层函数调用;
第三层:此时参数 x=9,返回 func(5) + 9 ,即 func(9) = func(5) + 9 进入第四层函数调用;
第四层:此时参数 x=5,返回 func(8) + 2 ,即 func(5) = fun(8) + 2 进入第五层函数调用;
第五层:此时参数 x=8,返回 func(4) + 8 ,即 func(8) = func(4) + 8 进入第六层函数调用;
第六层:此时参数 x=4,返回 2*x - 1 ,即7。
然后回退到第五层函数调用: func(8) = func(4) + 6 = 7 + 8 = 15 ;
然后回退到第四层函数调用: func(5) = fun(8) + 2 = 15 + 2 = 17 ;
然后回退到第三层函数调用: func(9) = func(5) + 9 = 17 + 9 = 26 ;
然后回退到第二层函数调用: func(6) = fun(9) + 2 = 26 + 2 = 28 ;
然后回退到第一层函数调用: func(10) = func(6) + 10 = 28 + 10 = 38 。
第 4 题
单选题
下列选项中,判断 a不等于 0且 b不等于 0的正确的条件表达式是( )。
!(a==0 && b==0)
!a=0 && !b=0
a && b
!((a!=0) && (b!=0))
C
解析
A.
B.
C.
D.
答案
解析 A
选项等价于 (a != 0 || b != 0) ,B选项中明显的语法错误, C选项正确, D选项等价于 a == 0 || b
== 0 。
第 5 题
单选题
执行语句 int a[3][4] = {{1, 2}, {3}, {4, 5, 6, 7}}; 后,a[1][2] 和a[2][1] 的值分别为:( )。
2 、 3
0 、 5
2 、 5
5 、 0
B
题目定义了一个三行四列的二维数组,并按照维度进行赋值,即先把 {1,2}分别赋值给 a[0][0],a[0]
[1] ,再把 {3} 赋值给 a[1][0] ,再把 {4,5,6,7} 分别赋值给 a[2][0],a[2][1],a[2][2],a[2][3] 。因为已经
给数组中部分元素赋初值,所以不论数组定义的位置在哪里,其他未赋值的数组元素均为 0。
二、编程题
第 6 题
问答题
促销活动
【题目描述】
某超市搞促销活动,活动内容:购物金额每满 200元(含 200元)就可以享受 “满 200 减25” 的优惠。已知
小维的购物金额为 N( 1< N≤1000000 ),请计算出享受优惠后他需要支付多少元。例如: N=430 ,
380 元(380=430-2×25 )。
【输入格式】
输入一个正整数 N( 1< N≤1000000 ),表示购物金额(单位:元)
【输出格式】
输出一个正整数,表示享受优惠后需要支付的金额(单位:元)
【样例输入】
【样例输出】
430
380
答案
第 7 题
问答题
相邻身高差
时间限制 :1000MS
内存限制 : 65536KB
题目描述 :
有 N (4<N<100) 名同学站成一队,已知每名同学的身高 (单位 : 厘米 ),请比较该队中任意相邻两名同学
的身高差 (取正值 ),并输出最大的身高差。
例如 : N = 8 ,8名同学的身高分别是 151、120 、144 、182 、160 、158 、147 、161. 相邻两名同学的身
高差依次是 31、24 、38 、22 、2、 11 、14 ,其中最大身高差是 38.
输入描述
第一行输入一个正整数 N (4N<100),表示站队的同学人数
第二行输入 N个正整数 (80<正整数 <220),表示队列中学生的身高 (单位 : 厘米 ),相邻两个正整数之间用
一个空格隔开
输出描述
输出一个非负整数,表示相邻两名同学中最大身高差。
样例输入
// 参 考 代 码 1
#include <bits/stdc++.h>
using namespace std;
int main () {
int n
第14届蓝桥杯C++青少组中_高级组选拔赛(STEMA)2023年3月12日真题-附答案第14届蓝桥杯青少组STEM考试C++真题及答案 2023年3月