B. CSP-J 初赛模拟(阅读程序)

    客观题

CSP-J 初赛模拟(阅读程序)

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

二、阅读程序(程序输入不超过数组或字符串定义的范围;除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分)


程序(1)

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

int main() 
{
    int l, r;
    cin >> l >> r;
    int cnt = 0;
    long long sum = 0;
    for(int i = l; i <= r; ++i) 
    {
        if((i & (i - 1)) != 0) 
        {
            cnt += 1;
            sum += i;
        }
    }
    cout << cnt << " " << sum << endl;
    return 0;
}

判断题

  1. 当输入为 2 5 时,程序的输出为 2 8。( )

{{ select(16) }}

  • 正确
  • 错误
  1. 程序的输出总是两个正整数。( )

{{ select(17) }}

  • 正确
  • 错误
  1. long long sum 改为 int sum,程序行为不变。( )

{{ select(18) }}

  • 正确
  • 错误

单选题

  1. 当输入为 1 100 时,程序的输出为( )。

{{ select(19) }}

  • 93 4923
  • 92 4823
  • 93 4823
  • 92 4923
  1. 当输入为 10000 1000000 时,程序的第一个输出为( )。

{{ select(20) }}

  • 989993
  • 989994
  • 989995
  • 989996

程序(2)

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

int main() 
{
    int n, m;
    cin >> n >> m;
    vector<int> a(n);
    for(int i = 0; i < n; ++i) 
    {
        cin >> a[i];
    }
    vector<int> dp(m + 1);
    dp[0] = 0;
    for(int i = 1; i <= m; ++i) 
    {
        int now = 0;
        for(int j = 0; j < n; ++j) 
        {
            if(i >= a[j] && dp[i - a[j]] == 0) 
            {
                now = a[j];
            }
        }
        dp[i] = now;
    }
    cout << dp[m] << endl;
    return 0;
}

判断题

  1. 当输入为 3 5 1 3 4 时,程序的输出为 00。( )

{{ select(21) }}

  • 正确
  • 错误
  1. 22 分)当输入的数组 aa{1}\{1\}mm 为偶数时,程序的输出为 00。( )

{{ select(22) }}

  • 正确
  • 错误
  1. 将循环嵌套内的条件改为 dp[i - a[j]] == 0,程序可能会产生编译错误。( )

{{ select(23) }}

  • 正确
  • 错误

单选题

  1. 当输入为 4 13 1 2 3 4 时,程序的输出为( )。

{{ select(24) }}

  • 00
  • 11
  • 22
  • 33
  1. 当输入为 7 1000 1 2 3 4 5 6 7 时,程序的输出为( )。

{{ select(25) }}

  • 00
  • 11
  • 22
  • 33
  1. (4分)当输入的数组 aa{1,2,3,4,5}\{1,2,3,4,5\} 时,有( )个符合数据范围的整数 mm 使得输出为 33

{{ select(26) }}

  • 165165
  • 166166
  • 167167
  • 168168

程序(3)

1 #include<bits/stdc++.h>
2 using namespace std;
3
4 vector<int> primes;
5 int comp_by[2000005];
6 void sieve(int n) 
7 {
8    for(int x = 2; x <= n; x++) 
9    {
10        if(comp_by[x] == 0)
11            primes.push_back(x);
12        for(int i = 0; i < primes.size(); i++) 
13        {
14    
15            if(x * primes[i] > n) break;
16            comp_by[x * primes[i]] = primes[i];
17            if(x % primes[i] == 0) break;
18        }
19    }
20 }
21 int main() 
22 {
23    freopen("input.txt", "w", stdout);
24    freopen("output.txt", "r", stdin);
25    int n;
26    cin >> n;
27    sieve(n);
28    for(int i = 1; i <= n; i++)
29        cout << comp_by[i] << ' ';
30    return 0;
31 }

判断题

  1. 程序将从 input.txt 读入数据,输出到 output.txt。( )

{{ select(27) }}

  • 正确
  • 错误
  1. 交换程序的第 1515 行和第 1616 行,不会导致数组越界。( )

{{ select(28) }}

  • 正确
  • 错误
  1. 对于所有正整数 ii,满足 1in1\leq i\leq n,输出的第 ii 个数是 00 当且仅当 ii 是质数。( )

{{ select(29) }}

  • 正确
  • 错误

单选题

  1. 该程序的的主要流程最接近( )。

{{ select(30) }}

  • 递归法
  • 动态规划
  • 埃拉托斯特尼筛
  • 欧拉筛
  1. 将程序的第 1717 行移动到第 1414 行,当输入为 10000001000000 时,输出的第( )个数会发生改变。

{{ select(31) }}

  • 7575
  • 4545
  • 9797
  • 105105
  1. 44 分)当输入为 100100 时,输出的所有数字之和为( )。

{{ select(32) }}

  • 154154
  • 194194
  • 197197
  • 214214

CSP - J 初赛模拟(一)

未参加
状态
已结束
规则
OI
题目
3
开始于
2025-8-25 0:00
结束于
2025-8-31 14:00
持续时间
158 小时
主持人
参赛人数
39