#10801. 2025年厦门市小学生计算机C++语言竞赛(初赛)模拟试卷1
2025年厦门市小学生计算机C++语言竞赛(初赛)模拟试卷1
2025年厦门市小学生计算机C++语言竞赛(初赛)模拟试卷
参赛须知
- 本竞赛用时为90分钟
- 答案依题号填写在答题卷上,考试结束时只交答题卷
- 本卷共四大题,45小题,满分100分
一.单项选择题(1~10每题1分,11~20每题2分,共30分)
-
2024年6月25日,嫦娥六号返回器准确着陆于内蒙古四子王旗预定区域,标志着人类首次月背采样返回任务圆满完成。探测器拍摄的月球背面高清影像数据通过鹊桥二号中继星传回地球,这主要体现了信息的( )
- 共享性
- 传递性
- 真伪性
- 时效性
-
2024年10月,中国科学家成功研发出面向 Lilium(百合科)植物的全基因组,为多倍化物种的生态农业应用提供了可能。这种通过基因测序分析植物特性的技术属于信息技术中的( )应用领域。
- 虚拟现实
- 人工智能
- 物联网
- 区块链
-
在2024年世界互联网大会乌镇峰会上,6G、空天地一体化网络成为热议话题。在信息处理技术中,( )是负责信息传递和交换的技术,相当于信息系统的"神经网络"。
- 传感技术
- 计算机技术
- 通信技术
- 控制技术
-
2025年1月,中国新一代 artificial intelligence 大模型"深度求索"(DeepSeek)引发全球关注,其在数学推理和代码生成方面表现优异。下列哪项技术是大模型最核心的基础?( )
- 量子计算
- 深度学习
- 卫星通信
- 云计算存储
-
AR技术是指( )
- 增强现实技术
- 人工智能
- 虚拟现实技术
- 自动推理技术
-
以下哪个C++源代码文件名符合规范?( )
- game.cpp.txt
- 2025test.cpp
- my-game.cpp
- test@1.cpp
-
在C++程序中,表达式
20 / 3 * 3的运算结果是( )- 18
- 20
- 6
- 6.67
-
已知
int a = 7, b = 4;,执行语句cout << (a + b) / 2 << endl;后输出结果是( )- 5.5
- 5
- 6
- 5.0
-
以下变量命名不符合C++规范的是( )
- _count
- myScore
- 2ndPlayer
- MAX_VALUE
-
unsigned short类型变量能存储的最大值是( )- 65535
- 32767
- 2147483647
- 4294967295
-
小华购买了一套正版编程教程视频,他将视频上传到班级群供全班同学下载观看。这种行为属于( )
- 合理使用
- 资源共享
- 侵犯版权
- 知识传播
-
二进制数
101101与11011相加,结果转换为十进制是( )- 88
- 90
- 92
- 94
-
下列关于算法的描述,正确的是( )
- 算法可以没有输入,但必须有输出
- 算法中允许出现无限循环
- 算法的每一步可以有多个含义
- 算法只能用流程图表示
-
在计算机存储体系中,存取速度最快的是( )
- 固态硬盘
- 内存条
- CPU高速缓存
- USB闪存盘
-
一幅分辨率为200×150像素的24位真彩色图像,未压缩时占用的存储空间约为( )
- 90KB
- 900KB
- 9MB
- 90MB
-
执行完
for(int i = 1; i <= 10; i += 2);后,变量i的值是( )- 10
- 11
- 12
- 9
-
下列程序的循环次数是( )次。
int k = 0; while(k < 8) { if(k % 2 == 0) { k++; continue; } if(k == 5) break; k += 2; }- 4
- 5
- 6
- 7
-
字符串 "C++2025!" 中,字符 '2' 的ASCII码值是50,则字符 '5' 的ASCII码值是( )
- 51
- 52
- 53
- 54
-
若
a = 5, b = 3, c = 8,则表达式a > b ? a : b > c ? b : c的值是( )- 3
- 5
- 8
- 1
-
当
x = 3, y = 5, z = 2时,执行完下列程序段后,result的值是( )if(x < y) if(z > x) result = 10; else if(y > z) result = 20; else result = 30; else if(x > z) result = 40; else result = 50;- 10
- 20
- 30
- 40
二.填空题(21~30每题3分,共30分)
-
十进制数2025转化为十六进制数为:______(字母用小写)
-
C++中判断整型变量
n既是3的倍数又是5的倍数的条件是:if(__________________) -
定义一个字符变量
ch并赋初值为字符 'A' 的完整语句是:__________________ -
已知
int p = 8, q = 15;执行语句p = q; q = p - q;后,p和q的值分别为______(两值用空格隔开) -
假设数组已初始化:
int arr[8] = {3, 6, 9, 12, 15, 18, 21, 24};,则表达式arr[arr[2] / 3]的值是______ -
执行以下程序段后,变量
s的值是______int s = 0; for(int i = 3; i <= 15; i += 4) s += i * 2; -
对于数组
int data[5] = {10, 7, 5, 8, 3};,执行下列代码后,data[2]的值是______for(int i = 0; i < 4; i++) if(data[i] % 2 == 0) data[i + 1] = data[i] / 2; -
用数字1、3、5、7(不重复使用)组成的四位数中,能被3整除的最大数与最小数的差是______
-
1001和1573两个整数的最大公约数是______
-
5位同学排队拍照,其中甲不能站在最中间位置,共有______种不同的排法
三.阅读程序填写结果(31~40每题3分,共30分)
程序一
#include<iostream>
using namespace std;
int main() {
int m, n, p, q;
cin >> m >> n >> p >> q;
int ans = 0;
if(m > n || (p == q && m != n)) ans = m + n;
else if(p > q) ans = m * 2;
else if(q == 0) ans = n - m;
else ans = p + q;
cout << ans << endl;
return 0;
}
| 题号 | 第1题 | 第2题 | 第3题 |
|---|---|---|---|
| 输入数据 | 5 3 7 7 | 4 6 8 5 | 9 12 0 3 |
| 输出数据 | ______ | ||
程序二
#include<iostream>
#include<string>
using namespace std;
int main() {
string s;
cin >> s;
for(int i = 0; i < s.length(); i++) {
if(s[i] >= 'a' && s[i] <= 'z')
s[i] = s[i] - 'a' + '1';
else if(s[i] >= '1' && s[i] <= '9')
s[i] = s[i] - '1' + 'A';
else if(s[i] >= 'A' && s[i] <= 'Z')
s[i] = s[i] - 'A' + 'a';
}
cout << s << endl;
return 0;
}
| 题号 | 第1题 | 第2题 | 第3题 | 第4题 |
|---|---|---|---|---|
| 输入数据 | test | 2025 | C++Lang | Ab3Cd |
| 输出数据 | ______ | |||
程序三
#include<iostream>
using namespace std;
int func(int x) {
if(x <= 2) return 1;
if(x % 3 == 0) return func(x / 3) + 2;
else return func(x - 1) + 1;
}
int main() {
int n;
cin >> n;
cout << func(n) << endl;
return 0;
}
| 题号 | 第1题 | 第2题 | 第3题 |
|---|---|---|---|
| 输入数据 | 1 | 4 | 9 |
| 输出数据 | ______ | ||
四.完善程序(选择正确的选项填充空白部分,41~45每题2分,共10分)
问题描述:给定一个长度为 n 的数组 arr,找出其中第 k 小的元素(1 ≤ k ≤ n ≤ 10⁵)。
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
int arr[MAXN], temp[MAXN];
void merge_sort(int l, int r) {
if(l >= r) return;
int mid = (l + r) / 2;
merge_sort(l, mid);
merge_sort(mid + 1, r);
int i = l, j = mid + 1, k = l;
while(i <= mid && j <= r) {
if(arr[i] <= arr[j]) ①;
else ②;
}
while(i <= mid) temp[k++] = arr[i++];
while(j <= r) temp[k++] = arr[j++];
for(i = l; i <= r; i++) ③;
}
int main() {
int n, k;
cin >> n >> k;
for(int i = 1; i <= n; i++) cin >> arr[i];
④;
cout << arr[⑤] << endl;
return 0;
}
-
第①空应填写( )
temp[k++] = arr[i++];temp[k] = arr[i]; i++; k++;temp[k++] = arr[j++];arr[k++] = temp[i++];
-
第②空应填写( )
temp[k++] = arr[i++];temp[k++] = arr[j++];temp[k] = arr[j]; j++; k++;arr[k++] = temp[j++];
-
第③空应填写( )
arr[i] = temp[i];temp[i] = arr[i];arr[i] = temp[k];arr[k] = temp[i];
-
第④空应填写( )
merge_sort(0, n);merge_sort(1, n);merge_sort(arr, temp);sort(arr, arr + n);
-
第⑤空应填写( )
kk - 1k + 1n - k