当前位置: 首页 > news >正文

第16届蓝桥杯C++中高级选拔赛(STEMA)2024年12月22日真题

 ========================================================================

答案和更多内容请查看网站:【试卷中心 -----> 蓝桥杯 ---->  C++ ----> 选拔赛】

网站链接 

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

=======================================================================

第16届蓝桥杯C++中高级选拔赛(STEMA)2024年12月22日真题
一、单选题
第 1 题    单选题
运行以下程序,输出的结果是()。

cout<<5 * 2+1;

A.15

B.10

C.11

D.5 * 2+1


答案 C
解析
cout << 5 * 2+1; 先计算表达式 5 * 2=10,再加上 1 得到 11,输出结果为 11。

第 2 题    单选题
下列选项中,添加iostream头文件正确的写法是()。

A.#include<iostream>

B.include<iostream>

C.include"iostream"

D.#include"iostream"


答案 A
解析
在C++中,包含标准库头文件应使用尖括号,即#include <iostream>。但题目中选项A没有空格,实际上在C++中,#include<iostream>也是正确的(编译器通常允许没有空格)。而选项D用双引号虽然可能可以,但标准做法是使用尖括号。根据C++标准,标准库头文件应使用尖括号,因此A正确。

第 3 题    单选题
下列关于C++语言描述不正确的是()。

A.变量必须先定义后使用

B.if语句不能单独存在,必须有匹配的else语句

C.do...while至少会执行一次循环语句

D.数组的大小可以在声明时不指定,而在初始化时由编译器推断


答案 B
解析
在C++中,if语句可以单独使用,不需要else语句。其他选项:A正确,变量必须先定义后使用;C正确,do...while循环至少执行一次;D正确,数组在初始化时可以省略大小,由编译器推断(例如:int arr[] = {1,2,3};)。

第 4 题    单选题
下列选项中,循环执行次数与其他选项不同的是()。

A.for(int i=0; i<10; i++)

B.for(int i=1; i<=10; i++)

C.for(int i=2; i<12; i++)

D.for(int i=3; i<=13; i++)


答案 D
解析
计算每个循环的执行次数:

A:i从0到9,共10次。

B:i从1到10,共10次。

C:i从2到11,共10次。

D:i从3到13,共11次(3,4,...,13)。

所以D选项执行11次,其他都是10次。

第 5 题    单选题
运行以下程序,输出的结果是( )。

int x(int arr[], int n)
{int ans = 0;for (int i = 0; i < n - 1; i++){int m = i;for (int j = i + 1; j < n; j++){if (arr[j] < arr[m])m = j;}if (m != i){int temp = arr[i];arr[i] = arr[m];arr[m] = temp;ans++;}}return ans;
}
int main()
{int arr[] = {64, 25, 12, 22, 11, 90, 34};cout << x(arr, 7) << endl;for(int i = 0; i < 7; i++)cout << arr[i] << " ";return 0;
}

A.

4

90 64 34 25 22 12 11

B.
5

11 12 22 25 34 64 90

C.
6

90 64 34 25 22 12 11

D.
6

11 12 22 25 34 64 90


答案 B
解析
选择排序的原理是每次从未排序部分选择最小(或最大)元素放到已排序部分的末尾。函数x中的ans记录的是交换次数。对于数组{64,25,12,22,11,90,34},选择排序的交换过程如下:

最小元素11,与64交换:{11,25,12,22,64,90,34} -> 交换1次

在剩余部分{25,12,22,64,90,34}中,最小元素12,与25交换:{11,12,25,22,64,90,34} -> 交换2次

在剩余部分{25,22,64,90,34}中,最小元素22,与25交换:{11,12,22,25,64,90,34} -> 交换3次

25已经是剩余部分最小,不交换(当前数组:{11,12,22,25,64,90,34})

在剩余部分{64,90,34}中,最小元素34,与64交换:{11,12,22,25,34,90,64} -> 交换4次

在剩余部分{90,64}中,最小元素64,与90交换:{11,12,22,25,34,64,90} -> 交换5次

因此,交换次数为5次。排序后数组为{11,12,22,25,34,64,90}。所以输出5,然后输出排序后的数组:11 12 22 25 34 64 90。所以答案是B。

二、编程题
第 6 题  摆钟

题目描述:

有一座摆钟,它的摆锤每摆动一次用时 2 秒。摆锤摆动 n 次,用时多少秒?

输入描述:

输入一个整数 n(1≤n≤500),表示摆锤的摆动次数。

输出描述:

输出一个整数,表示摆锤摆动 n 次用时多少秒。

样例输入:

3

样例输出:

6

查看答案
 

#include <iostream>
using namespace std;int main() {int n;cin >> n;cout << n * 2 << endl;return 0;
}

解析
直接计算n次摆动需要的时间:2*n秒。

 ========================================================================

答案和更多内容请查看网站:【试卷中心 -----> 蓝桥杯 ---->  C++ ----> 选拔赛】

网站链接 

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

=======================================================================

http://www.xdnf.cn/news/1356121.html

相关文章:

  • 以国产IoTDB为代表的主流时序数据库架构与性能深度选型评测
  • 对象作为HashMap的key的注意事项
  • 30分钟通关二分查找:C语言实现+LeetCode真题
  • 机器学习算法-朴素贝叶斯
  • 优化OpenHarmony中lspci命令实现直接获取设备具体型号
  • 机械学习综合练习项目
  • 基于SpringBoot的新能源汽车租赁管理系统【2026最新】
  • Linux 系统管理核心概念与常用命令速查
  • 春秋云镜 Hospital
  • 【Qt开发】常用控件(六)
  • 一个简洁的 C++ 日志模块实现
  • 【数位DP】D. From 1 to Infinity
  • 金山办公的服务端开发工程师-25届春招笔试编程题
  • Python训练营打卡 DAY 45 Tensorboard使用介绍
  • 基于电磁频谱地图的辐射源定位算法复现
  • 基于TimeMixer现有脚本扩展的思路分析
  • 基础IO
  • CryptSIPVerifyIndirectData函数分析
  • 刷题日记0823
  • 环境 (shell) 变量
  • Nacos-12--扩展:@RefreshScope和@ConfigurationProperties实现热更新的原理
  • Kubernetes笔记整合-1
  • 一种通过模板输出Docx的方法
  • LeakyReLU和ReLU的区别
  • 探索 JUC:Java 并发编程的神奇世界
  • KVM虚拟化:提升企业效率的利器
  • 【嵌入式】【搜集】RTOS相关技术信息整理
  • 微信小程序界面常用操作
  • SpringBoot自动装配原理深度解析
  • 电蚊拍的原理及电压电容参数深度解析:从高频振荡到倍压整流的完整技术剖析