CSP-J 2026 第一轮模拟赛(第 03 套)

    客观题

CSP-J 2026 第一轮模拟赛(第 03 套)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

CSP-J 2026 第一轮模拟赛(第 03 套)

满分:100 分 建议用时:120 分钟

所有题目均为单项选择题。判断题中,T 表示正确,F 表示错误。未作答按 0 分计算。

一、单项选择题(共 15 题,每题 2 分,共 30 分)

第 1 题(2 分)

十进制整数 46 转换为二进制数,结果是( )。

{{ select(1) }}

  • 101111
  • 101101
  • 101110
  • 110000

第 2 题(2 分)

十六进制数 (39)₁₆ 对应的十进制数是( )。

{{ select(2) }}

  • 49
  • 57
  • 63
  • 69

第 3 题(2 分)

设 int a=21, b=17, c=6; 表达式 (a & b) ^ c 的值是( )。

{{ select(3) }}

  • 27
  • 23
  • 24
  • 25

第 4 题(2 分)

一幅 112×32 的黑白位图,每个像素只需 1 bit,不考虑文件头,至少需要( )字节存储。

{{ select(4) }}

  • 896
  • 448
  • 224
  • 3584

第 5 题(2 分)

关于程序的编译与运行,下列说法正确的是( )。

{{ select(5) }}

  • 编译器只能检查程序运行结果是否正确,不能发现语法错误。
  • 源程序只要保存为 .cpp 文件,就一定可以被 CPU 直接执行。
  • 程序运行时出现除零错误属于运行时错误,而不是语法错误。
  • 链接过程发生在程序每一次循环执行之后。

第 6 题(2 分)

关于计算机网络,下列说法正确的是( )。

{{ select(6) }}

  • MAC 地址是网页的网址。
  • DNS 用于编译 C++ 程序。
  • IP 协议保证所有数据绝不丢失。
  • HTTP/HTTPS 常用于浏览器与 Web 服务器之间传输网页资源。

第 7 题(2 分)

一个初始为空的栈依次执行 push(6)、push(8)、pop()、push(10),此时栈顶元素是( )。

{{ select(7) }}

  • 10
  • 栈为空
  • 6
  • 8

第 8 题(2 分)

一棵含 13 个结点的树共有( )条边。

{{ select(8) }}

  • 12
  • 14
  • 24
  • 13

第 9 题(2 分)

一个含 9 个顶点的无向连通图,边数至少为( )。

{{ select(9) }}

  • 9
  • 36
  • 7
  • 8

第 10 题(2 分)

关于选择排序,下列说法正确的是( )。

{{ select(10) }}

  • 常见实现的时间复杂度为 O(n²),且通常不稳定。
  • 它一定需要 O(n²) 的额外存储空间。
  • 它在任何情况下都只需 O(n) 时间。
  • 它不能用于整数序列。

第 11 题(2 分)

在含 127 个互不相同且已升序排列的元素中,用标准二分查找成功查找一个元素,最多进行( )次关键字比较。

{{ select(11) }}

  • 127
  • 6
  • 7
  • 8

第 12 题(2 分)

下面程序片段的时间复杂度是( )。

for (int i = 1; i <= n; i++)
    for (int j = 1; j <= i; j++)
        x++;

{{ select(12) }}

  • O(n²)
  • O(2ⁿ)
  • O(log n)
  • O(n)

第 13 题(2 分)

从 9 名同学中任选 2 名组成一组,共有( )种不同选法。

{{ select(13) }}

  • 36
  • 18
  • 512
  • 72

第 14 题(2 分)

执行 int x=29, y=4; cout << x / y + x % y;,输出是( )。

{{ select(14) }}

  • 6
  • 9
  • 8
  • 11

第 15 题(2 分)

解决“把已经计算过的子问题答案保存起来避免重复计算”时,最符合描述的方法是( )。

{{ select(15) }}

  • 深度优先搜索(DFS)
  • 枚举所有排列
  • 动态规划或记忆化
  • 选择排序

二、阅读程序(共 18 题,共 40 分)

阅读下列程序。判断题请选择 TF,其他题请选择 ABCD

程序 1:最长非递减连续段(第 16~21 题)

输入满足 n ≥ 1

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> a(n);
    for (int &x : a)
        cin >> x;
    int best = 1, cur = 1;
    for (int i = 1; i < n; ++i) {
        if (a[i] >= a[i - 1])
            ++cur;
        else
            cur = 1;
        best = max(best, cur);
    }
    cout << best << "\n";
}

第 16 题(1 分)

程序求的是最长连续非递减子段长度。

{{ select(16) }}

  • T
  • F

第 17 题(1.5 分)

相等的相邻元素会使 cur 重新变为 1。

{{ select(17) }}

  • T
  • F

第 18 题(1.5 分)

若序列严格递减,输出为 1。

{{ select(18) }}

  • T
  • F

第 19 题(3 分)

输入:

8
1 2 2 1 3 4 0 5

输出是( )。

{{ select(19) }}

  • 3
  • 4
  • 2
  • 5

第 20 题(3 分)

输入:

6
1 2 3 4 5 6

输出是( )。

{{ select(20) }}

  • 5
  • 1
  • 7
  • 6

第 21 题(3 分)

变量 cur 表示( )。

{{ select(21) }}

  • 不同元素个数
  • 已经排序的元素个数
  • 当前处理到的位置为结尾的非递减连续段长度
  • 全局最小值

程序 2:括号匹配(第 22~27 题)

输入仅包含 ()[]。

#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    cin >> s;
    stack<char> st;
    bool ok = true;
    for (char c : s) {
        if (c == '(' || c == '[')
            st.push(c);
        else {
            if (st.empty() || (c == ')' && st.top() != '(') || (c == ']'
                && st.top() != '[')) {
                ok = false;
                break;
            }
            st.pop();
        }
    }
    if (!st.empty())
        ok = false;
    cout << (ok ? "YES" : "NO") << "\n";
}

第 22 题(1.5 分)

程序用于判断由圆括号和方括号组成的序列是否合法匹配。

{{ select(22) }}

  • T
  • F

第 23 题(1.5 分)

输入 ([)] 会输出 YES。

{{ select(23) }}

  • T
  • F

第 24 题(1.5 分)

循环结束后还需要检查栈是否为空。

{{ select(24) }}

  • T
  • F

第 25 题(3 分)

输入:

([][])

输出是( )。

{{ select(25) }}

  • 0
  • 1
  • NO
  • YES

第 26 题(3 分)

输入:

(()

输出是( )。

{{ select(26) }}

  • 编译错误
  • YES
  • 空行
  • NO

第 27 题(3 分)

最坏情况下栈中元素个数是( )。

{{ select(27) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n²)

程序 3:欧几里得算法(第 28~33 题)

a,b为正整数。

#include <bits/stdc++.h>
using namespace std;

int g(int a, int b) {
    return b == 0 ? a : g(b, a % b);
}

int main() {
    int a, b;
    cin >> a >> b;
    cout << g(a, b) << "\n";
}

第 28 题(1.5 分)

函数 g 使用欧几里得算法求最大公约数。

{{ select(28) }}

  • T
  • F

第 29 题(1.5 分)

当 b=0 时返回 a。

{{ select(29) }}

  • T
  • F

第 30 题(1.5 分)

g(12,18)=2。

{{ select(30) }}

  • T
  • F

第 31 题(3 分)

输入:

84 30

输出是( )。

{{ select(31) }}

  • 3
  • 2
  • 14
  • 6

第 32 题(3 分)

调用 g(30,18) 后下一次递归参数是( )。

{{ select(32) }}

  • 12 18
  • 18 30
  • 30 12
  • 18 12

第 33 题(3 分)

欧几里得算法时间复杂度通常为( )。

{{ select(33) }}

  • O(a+b)
  • O(log min(a,b))
  • O(ab)
  • O(2^a)

三、完善程序(共 10 题,每题 3 分,共 30 分)

阅读程序说明和代码。代码中的横线表示待填空位置,请从对应的四个选项中选择最合适的一项。

完善程序(一):回文字符串(第 34~38 题)

功能说明: 判断输入字符串是否为回文串。

#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    cin >> s;
    int l = 0;
    int r = ________(1)________;
    bool ok = true;
    while (________(2)________) {
        if (________(3)________) {
            ok = false;
            ________(4)________;
        }
        ++l;
        --r;
    }
    cout << (________(5)________ ? "YES" : "NO") << '\n';
    return 0;
}

第 34 题(3 分)

空(1)应填入( )。

{{ select(34) }}

  • 1
  • s.size()-1
  • s.size()
  • 0

第 35 题(3 分)

空(2)应填入( )。

{{ select(35) }}

  • r<0
  • l==r
  • l>r
  • l<r

第 36 题(3 分)

空(3)应填入( )。

{{ select(36) }}

  • l!=r
  • s[l]==s[r]
  • s[l]!=s[r]
  • s.empty()

第 37 题(3 分)

空(4)应填入( )。

{{ select(37) }}

  • l=0
  • return 1
  • continue
  • break

第 38 题(3 分)

空(5)应填入( )。

{{ select(38) }}

  • l
  • !ok
  • ok
  • r

完善程序(二):前缀和区间查询(第 39~43 题)

功能说明: 回答 q 次闭区间 [l,r] 的元素和。

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, q;
    cin >> n >> q;
    vector<long long> s(n + 1, 0);
    for (int i = 1; i <= n; ++i) {
        long long x;
        cin >> x;
        s[i] = ________(1)________;
    }
    ________(4)________(q--) {
        int l, r;
        cin >> l >> r;
        cout << ________(2)________ - ________(3)________ << ________(5)________;
    }
    return 0;
}

第 39 题(3 分)

空(1)应填入( )。

{{ select(39) }}

  • s[i-1]+x
  • s[i-1]-x
  • s[i+1]+x
  • x

第 40 题(3 分)

空(2)应填入( )。

{{ select(40) }}

  • s[n]
  • s[l]
  • s[r]
  • r

第 41 题(3 分)

空(3)应填入( )。

{{ select(41) }}

  • s[l-1]
  • l
  • s[l]
  • s[r-1]

第 42 题(3 分)

空(4)应填入( )。

{{ select(42) }}

  • while
  • for
  • if
  • switch

第 43 题(3 分)

空(5)应填入( )。

{{ select(43) }}

  • q
  • s[0]
  • "\n"
  • l

CSPJ模拟赛-4

未参加
状态
已结束
规则
OI
题目
1
开始于
2026-8-10 10:15
结束于
2026-8-10 10:45
持续时间
0.5 小时
主持人
参赛人数
3