#10801. 2025年厦门市小学生计算机C++语言竞赛(初赛)模拟试卷1

2025年厦门市小学生计算机C++语言竞赛(初赛)模拟试卷1

2025年厦门市小学生计算机C++语言竞赛(初赛)模拟试卷

参赛须知

  1. 本竞赛用时为90分钟
  2. 答案依题号填写在答题卷上,考试结束时只交答题卷
  3. 本卷共四大题,45小题,满分100分

一.单项选择题(1~10每题1分,11~20每题2分,共30分)

  1. 2024年6月25日,嫦娥六号返回器准确着陆于内蒙古四子王旗预定区域,标志着人类首次月背采样返回任务圆满完成。探测器拍摄的月球背面高清影像数据通过鹊桥二号中继星传回地球,这主要体现了信息的( )

    • 共享性
    • 传递性
    • 真伪性
    • 时效性
  2. 2024年10月,中国科学家成功研发出面向 Lilium(百合科)植物的全基因组,为多倍化物种的生态农业应用提供了可能。这种通过基因测序分析植物特性的技术属于信息技术中的( )应用领域。

    • 虚拟现实
    • 人工智能
    • 物联网
    • 区块链
  3. 在2024年世界互联网大会乌镇峰会上,6G、空天地一体化网络成为热议话题。在信息处理技术中,( )是负责信息传递和交换的技术,相当于信息系统的"神经网络"。

    • 传感技术
    • 计算机技术
    • 通信技术
    • 控制技术
  4. 2025年1月,中国新一代 artificial intelligence 大模型"深度求索"(DeepSeek)引发全球关注,其在数学推理和代码生成方面表现优异。下列哪项技术是大模型最核心的基础?( )

    • 量子计算
    • 深度学习
    • 卫星通信
    • 云计算存储
  5. AR技术是指( )

    • 增强现实技术
    • 人工智能
    • 虚拟现实技术
    • 自动推理技术
  6. 以下哪个C++源代码文件名符合规范?( )

    • game.cpp.txt
    • 2025test.cpp
    • my-game.cpp
    • test@1.cpp
  7. 在C++程序中,表达式 20 / 3 * 3 的运算结果是( )

    • 18
    • 20
    • 6
    • 6.67
  8. 已知 int a = 7, b = 4;,执行语句 cout << (a + b) / 2 << endl; 后输出结果是( )

    • 5.5
    • 5
    • 6
    • 5.0
  9. 以下变量命名不符合C++规范的是( )

    • _count
    • myScore
    • 2ndPlayer
    • MAX_VALUE
  10. unsigned short 类型变量能存储的最大值是( )

    • 65535
    • 32767
    • 2147483647
    • 4294967295
  11. 小华购买了一套正版编程教程视频,他将视频上传到班级群供全班同学下载观看。这种行为属于( )

    • 合理使用
    • 资源共享
    • 侵犯版权
    • 知识传播
  12. 二进制数 10110111011 相加,结果转换为十进制是( )

    • 88
    • 90
    • 92
    • 94
  13. 下列关于算法的描述,正确的是( )

    • 算法可以没有输入,但必须有输出
    • 算法中允许出现无限循环
    • 算法的每一步可以有多个含义
    • 算法只能用流程图表示
  14. 在计算机存储体系中,存取速度最快的是( )

    • 固态硬盘
    • 内存条
    • CPU高速缓存
    • USB闪存盘
  15. 一幅分辨率为200×150像素的24位真彩色图像,未压缩时占用的存储空间约为( )

    • 90KB
    • 900KB
    • 9MB
    • 90MB
  16. 执行完 for(int i = 1; i <= 10; i += 2); 后,变量 i 的值是( )

    • 10
    • 11
    • 12
    • 9
  17. 下列程序的循环次数是( )次。

    int k = 0;
    while(k < 8) {
        if(k % 2 == 0) { k++; continue; }
        if(k == 5) break;
        k += 2;
    }
    
    • 4
    • 5
    • 6
    • 7
  18. 字符串 "C++2025!" 中,字符 '2' 的ASCII码值是50,则字符 '5' 的ASCII码值是( )

    • 51
    • 52
    • 53
    • 54
  19. a = 5, b = 3, c = 8,则表达式 a > b ? a : b > c ? b : c 的值是( )

    • 3
    • 5
    • 8
    • 1
  20. 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分)

  1. 十进制数2025转化为十六进制数为:______(字母用小写)

  2. C++中判断整型变量 n 既是3的倍数又是5的倍数的条件是:if(__________________)

  3. 定义一个字符变量 ch 并赋初值为字符 'A' 的完整语句是:__________________

  4. 已知 int p = 8, q = 15; 执行语句 p = q; q = p - q; 后,p和q的值分别为______(两值用空格隔开)

  5. 假设数组已初始化:int arr[8] = {3, 6, 9, 12, 15, 18, 21, 24};,则表达式 arr[arr[2] / 3] 的值是______

  6. 执行以下程序段后,变量 s 的值是______

    int s = 0;
    for(int i = 3; i <= 15; i += 4)
        s += i * 2;
    
  7. 对于数组 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;
    
  8. 用数字1、3、5、7(不重复使用)组成的四位数中,能被3整除的最大数与最小数的差是______

  9. 1001和1573两个整数的最大公约数是______

  10. 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;
}
  1. 第①空应填写( )

    • temp[k++] = arr[i++];
    • temp[k] = arr[i]; i++; k++;
    • temp[k++] = arr[j++];
    • arr[k++] = temp[i++];
  2. 第②空应填写( )

    • temp[k++] = arr[i++];
    • temp[k++] = arr[j++];
    • temp[k] = arr[j]; j++; k++;
    • arr[k++] = temp[j++];
  3. 第③空应填写( )

    • arr[i] = temp[i];
    • temp[i] = arr[i];
    • arr[i] = temp[k];
    • arr[k] = temp[i];
  4. 第④空应填写( )

    • merge_sort(0, n);
    • merge_sort(1, n);
    • merge_sort(arr, temp);
    • sort(arr, arr + n);
  5. 第⑤空应填写( )

    • k
    • k - 1
    • k + 1
    • n - k