0 #SSXY2025CZ. 2025信息素养初中组C++

2025信息素养初中组C++

1.1. C++程序流程控制的基本结构不包括以下哪项?( )(5分)

{{ select(1) }}

  • 分支结构
  • 循环结构
  • 数据结构
  • 顺序结构

2.2. 以下哪段代码能将数组int a[4] = {2, 4, 6, 8};的所有元素变为原来的二倍?( )(5分)

{{ select(2) }}

  • for (int i = 0; i < 4; i++) a[i] *= 2;
  • for (int i = 0; i < 4; i++) a[i] += 2;
  • for (int i = 1; i <= 4; i++) a[i] *= 2;
  • for (int i = 1; i <= 4; i++) a[i] -= a[i] * a[i];

3.3. 以下哪项是分支结构的正确写法?( )(5分)

{{ select(3) }}

  • if (x > 0) cout << "Positive";
  • if (x > 0) { cout << "Positive"; else cout << "Not; }
  • while (n > 0) cout << "Positive";
  • for (int i = 0; i < n; i++) cout << "Positive";

4.4. 执行以下代码,输出的结果是?( )(5分)

int a = 14 / 3 * 3;
cout << a;

{{ select(4) }}

  • 0
  • 14
  • 12
  • 3

5.5. 找出以下代码中哪一行是C++中合法的注释?( )(5分)

{{ select(5) }}

  • // 注释此条语句
  • # 注释此条语句
  • (* 注释此条语句 *)
  • <!--注释此条语句-->

6.6. 以下说法正确的?( )(5分)

{{ select(6) }}

  • 执行代码 cout << 13.8 % 2; 会输出1.8
  • 将一个浮点数赋值给一个char类型的变量会出现运行时错误
  • 如果代码中不含有 #include<iostream> 将无法通过编译
  • C++可以定义无返回值且无参数函数

7.7. 执行下列C++代码 后,计算 ( s[0].d + s[1].i ),结果是多少?( ) (5分)

struct S { double d; int i; };  
S s[2] = {{1.5, 1}, {2.5, 2}};  

{{ select(7) }}

  • 4
  • 4.5
  • 3.5
  • 3

8.8. 输入一个 DNA 序列(由字符 A、C、G 和 T 组成的字符串),补充下列代码找到最长的连续相同字符子串。下列选项中哪一项正确?( )

string s;
cin >> s;
int len = _①_, ans = 1;
for(int i = _②_; i < s.size(); i++) {
    if (s[i] == s[_③_]) len++;
    else len = 1;
    if (_④_) ans = len;
}
cout << ans;

(5分)

{{ select(8) }}

  • 1, 1, i - 1, len > ans
  • 0, 0, i + 1, len > ans
  • 1, 1, i - 1, len < ans
  • 0, 0, i + 1, len < ans

9.9. 阅读以下程序,输入6 7,输出的结果是?( )

int a, b;
cin >> a >> b;
if (a % 2 == 0) a /= 2;
if (a % 2 != 0) a = a * 3 + 1;
cout << a + b;

(5分)

{{ select(9) }}

  • 28
  • 13
  • 10
  • 17

10.10. 下列C++代码中哪个语句运行结果是7?( )(5分)

{{ select(10) }}

  • cout << (char)7;
  • cout << int(4.3333333 + 2.6666666);
  • cout << 66 / 9;
  • cout << 15 / 2.0;

11.11. 给定一个包含 nn 个整数的数组,目标是通过最少的操作使数组变为非递减序列(每个元素不小于它前面的元素)。每次操作可以选择任意一个元素并将其增加11。补全以下代码,计算需要的最少操作次数。下列选项中哪一项正确?( )

#include <iostream>
using namespace std;
int a[1000];
int main() {
    int n, cnt = 0;
    cin >> n;
    for (int i = 0; i < n; i++) { cin >> a[i]; }
    for (int i = 1; i < n; i++) {
        if (a[i - 1] > a[i]) {
            cnt += ________;
            ________;
        }
    }
    cout << cnt;
    return 0;
}

(3分)

{{ select(11) }}

  • a[i] - a[i - 1], a[i - 1] -= a[i]
  • a[i - 1] - a[i], a[i] += a[i - 1]
  • a[i] - a[i - 1], a[i - 1] = a[i]
  • a[i - 1] - a[i], a[i] = a[i - 1]

12.12. 执行下列C++代码片段后输出的是?( )

long long sum = 0;
for (int i = 1; i <= 6; i++) {
    long long mul = 1;
    for (int j = 1; j <= i; j++) mul *= i;
    sum += mul;
}
cout << sum % 10;

(5分)

{{ select(12) }}

  • 6
  • 7
  • 8
  • 9

13.13. 有n个人,每个人的当前头发长度为 Li(1iN))L_i (1 \leq i \leq N) ),每个人的头发每天增长1。计算并输出从第一天开始,第一次出现头发长度至少为t的人数 (p( \geq p ) 是第几天?( )

int n, t, p, L[100], cnt;
cin >> n >> t >> p;
for (int i = 0; i < n; i++) cin >> L[i];
for (int i = 1; ; i++) {
    cnt = 0;
    for (int j = 0; j < n; j++) {
        if (________) cnt++;
    }
    if (________) {
        cout << i << endl;
        break;
    }
}

(5分)

{{ select(13) }}

  • L[i] + j >= t, cnt >= p
  • L[j] + i > t, cnt > p
  • L[j] + i >= t, cnt >= p
  • L[i] + j > t, cnt > p

14.14. 从一个2×2网格的左上角出发,若只允许向右或向下移动,恰好有6条路径可以到达右下角。补全以下代码,计算对于9×9的网格,有多少条路径可以到达右下角?( )

int g[10][10] = {};
________;
for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
        if (i - 1 >= 0) g[i][j] += g[i - 1][j];
        ________ g[i][j] += g[i][j - 1];
    }
}
cout << g[9][9];

(5分)

{{ select(14) }}

  • g[0][0] = 1, if (j - 1 >= 0)
  • g[1][1] = 1, if (j - 1 >= 0)
  • g[0][0] = 1, else if (j - 1 >= 0)
  • g[1][1] = 1, else if (j - 1 >= 0)

15.15. 给定一个由正整数组成的长度为N的序列 ( A = (A_1, A_2, \ldots, A_N) ),判断这个序列是否为等比数列。补全以下代码,判断序列A是否为等比数列。( )

int n;
long long a[100];
bool flag = true;
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < n - 2; i++) {
    if (________) flag = false;
}
if (flag) cout << "Yes" << endl;
else cout << "No" << endl;

(5分)

{{ select(15) }}

  • a[i] * a[i + 1] != a[i + 1] * a[i + 2]
  • a[i + 1] / a[i - 1] == a[i - 1] / a[i + 1]
  • a[i] + a[i + 2] != 2 * a[i + 1]
  • a[i] * a[i + 2] != a[i + 1] * a[i + 1]

16.16. C++中,逻辑与&&的优先级高于逻辑或||,因此true || false && true等价于true || (false && true)。( )(5分)

{{ select(16) }}

  • 正确
  • 错误

17.17. ASCII码表中,所有数字字符(0到9)是连续的。( )(5分)

{{ select(17) }}

  • 正确
  • 错误

18.18. string s = "bcd"; s[0] = 'a';可以正确将s的第一个字符赋值为'a'。( )(5分)

{{ select(18) }}

  • 正确
  • 错误

19.19. 结构体 struct 中只能包含成员变量和成员函数,不能包含结构体类型的变量。( )(5分)

{{ select(19) }}

  • 正确
  • 错误

20.20. 定义int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};后,执行swap(a[1][2], a[2][2])可以正常运行,并且执行cout << a[2][2];时,程序会输出6。( )(5分)

{{ select(20) }}

  • 正确
  • 错误