A. 全国信息素养大赛小学组C++算法应用主题赛初赛模拟试卷03

    客观题

全国信息素养大赛小学组C++算法应用主题赛初赛模拟试卷03

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

一、单项选择题(每题5分,共50分)

第 1 题

在C++中,以下哪个选项中的变量类型与所赋初始值不匹配?

{{ select(1) }}

  • int age = 12;
  • double pi = 3.14;
  • char grade = 'A';
  • int height = 1.75;

第 2 题

执行以下代码后,变量 x 的值是?

int x = 10;
x += 5;
x *= 2;
x -= 8;

{{ select(2) }}

  • 22
  • 20
  • 28
  • 30

第 3 题

"算盘口诀"检测程序中,执行以下代码:

int n = 15;
if (n % 3 == 0 && n % 5 == 0) {
    cout << "A";
} else if (n % 3 == 0) {
    cout << "B";
} else if (n % 5 == 0) {
    cout << "C";
} else {
    cout << "D";
}

输出结果是? {{ select(3) }}

  • A
  • B
  • C
  • D

第 4 题

执行以下代码,输出的第3个数字是?

for (int i = 10; i >= 1; i--) {
    if (i % 3 == 0) cout << i << " ";
}

{{ select(4) }}

  • 9
  • 6
  • 3
  • 8

第 5 题

"数字传承"程序中,执行以下代码:

int n = 1357, s = 0;
while (n > 0) {
    s += n % 10;
    n /= 10;
}
cout << s;

输出结果是? {{ select(5) }}

  • 15
  • 16
  • 14
  • 17

第 6 题

"编钟音律"排列计算中,执行以下代码:

int cnt = 0;
for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= 5; j++) {
        if (i + j == 6) cnt++;
    }
}
cout << cnt;

输出结果是? {{ select(6) }}

  • 4
  • 5
  • 6
  • 7

第 7 题

"榫卯结构"设计中,需要统计1~30中所有既是2的倍数又是3的倍数的数并求和:

int sum = 0;
for (int i = 1; i <= 30; i++) {
    if (i % 2 == 0 && i % 3 == 0) {
        sum += i;
    }
}
cout << sum;

输出结果是? {{ select(7) }}

  • 90
  • 72
  • 180
  • 108

第 8 题

"丝绸之路"驼队运载统计中,数组记录了各驼队的货物重量:

int weight[5] = {18, 7, 22, 5, 13};
int ans = weight[0];
for (int i = 1; i < 5; i++) {
    if (weight[i] < ans) ans = weight[i];
}
cout << ans;

输出结果是? {{ select(8) }}

  • 22
  • 5
  • 18
  • 13

第 9 题

"度量衡转换"程序中定义了如下函数:

int convert(int x) {
    int res = 0;
    while (x > 0) {
        res = res * 10 + x % 10;
        x /= 10;
    }
    return res;
}

执行 cout << convert(1234); 的输出是? {{ select(9) }}

  • 1234
  • 10
  • 4321
  • 0

第 10 题

"非遗作品"评分系统中定义了结构体:

struct Work {
    string name;
    int score;
};
Work list[4] = {
    {"苏绣", 92},
    {"竹编", 85},
    {"陶艺", 96},
    {"剪纸", 88}
};

执行以下代码:

int maxScore = list[0].score;
int idx = 0;
for (int i = 1; i < 4; i++) {
    if (list[i].score > maxScore) {
        maxScore = list[i].score;
        idx = i;
    }
}
cout << list[idx].name;

输出结果是? {{ select(10) }}

  • 苏绣
  • 竹编
  • 陶艺
  • 剪纸

二、多项选择题(每题5分,共25分)

第 11 题

以下关于C++变量、数据类型和运算的说法,正确的有?

A. int 类型变量可以存储整数
B. 变量名 3abc 是合法的
C. double 类型变量可以存储小数
D. 表达式 8 % 3 的结果是 2

{{ input(11) }}

第 12 题

执行以下代码:

string s = "CHINA";
for (int i = 0; i < s.length(); i++) {
    cout << s[i];
}
cout << endl;

以下说法正确的有?

A. 输出结果为 "CHINA"
B. s.length() 的值是 5
C. s[0] 的值是字符 'C'
D. s[5] 可以正确访问到字符 'A'

{{ input(12) }}

第 13 题

执行以下代码:

int a = 0, b = 0;
for (int i = 1; i <= 8; i++) {
    if (i % 2 == 0) a++;
    else b++;
}

以下说法正确的有?

A. 变量 a 的值为 4
B. 变量 b 的值为 4
C. 变量 a 的值等于变量 b 的值
D. a + b 的值为 8

{{ input(13) }}

第 14 题

小华想用枚举法找出所有满足 a + b = 10ab 均为正整数(规定 a <= b)的数对。以下说法正确的有?

A. 可以用一重 for 循环枚举 a 的值,然后计算 b = 10 - a
B. 满足条件的数对有 (1,9)、(2,8)、(3,7)、(4,6)、(5,5)
C. 共有 4 种不同的数对
D. 枚举时 a 的最大取值为 5

{{ input(14) }}

第 15 题

"长城烽火"信号传递中,数组存储了一段信号强度值:

int signal[6] = {3, 8, 2, 9, 5, 7};

执行以下代码后:

int pos = 0;
for (int i = 1; i < 6; i++) {
    if (signal[i] > signal[pos]) pos = i;
}

以下说法正确的有?

A. 循环结束后 pos 的值为 3
B. signal[pos] 的值为 9
C. 此代码的功能是找出数组中最大值的位置
D. 若将 > 改为 <,则找出的是最小值的位置

{{ input(15) }}


三、判断题(每题5分,共25分)

第 16 题

C++中,变量必须先定义后使用。 {{ select(16) }}

  • 正确
  • 错误

第 17 题

以下代码执行后,输出结果为 "0 1 2 3 4"。

for (int i = 0; i < 10; i++) {
    if (i == 5) break;
    cout << i << " ";
}

{{ select(17) }}

  • 正确
  • 错误

第 18 题

"九章算术"方田问题中,执行以下代码后,变量 ans 的值为 25。

int ans = 0;
for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= 5; j++) {
        if (i == j) ans += i;
    }
}

{{ select(18) }}

  • 正确
  • 错误

第 19 题

C++中,函数的返回值类型必须与函数定义时声明的返回类型一致。 {{ select(19) }}

  • 正确
  • 错误

第 20 题

执行以下代码后,输出结果为 5。

string words[4] = {"red", "heritage", "silk", "china"};
int cnt = 0;
for (int i = 0; i < 4; i++) {
    if (words[i].length() > 4) cnt++;
}
cout << cnt;

{{ select(20) }}

  • 正确
  • 错误