A. 全国信息素养大赛初中组C++算法应用主题赛初赛模拟试卷01
全国信息素养大赛初中组C++算法应用主题赛初赛模拟试卷01
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
一、选择题(每题 5 分,共 75 分)
第 1 题
在 C++ 中,下列选项中属于合法变量名的是( )。
{{ select(1) }}
- 3score
- _total
- my-var
- double
第 2 题
表达式 20 / 3 + 7 % 3 的值是( )。
{{ select(2) }}
- 5
- 6
- 7
- 8
第 3 题
「非遗剪纸进校园」活动中,根据年龄分配任务组别:10 岁以下为体验组,10~14 岁为进阶组,14 岁以上为挑战组。已知某同学年龄 age = 12,阅读以下代码,该同学被分配到的组别是( )。
if (age < 10)
cout << "体验组" << endl;
else if (age <= 14)
cout << "进阶组" << endl;
else
cout << "挑战组" << endl;
{{ select(3) }}
- 体验组
- 挑战组
- 进阶组
- 无法确定
第 4 题
阅读以下代码,程序输出的结果是( )。
int s = 0;
for (int i = 1; i <= 9; i += 2) {
s = s + i;
}
cout << s << endl;
{{ select(4) }}
- 20
- 30
- 25
- 45
第 5 题
阅读以下代码,程序输出的结果是( )。
int x = 358, s = 0;
while (x > 0) {
s = s + x % 10;
x = x / 10;
}
cout << s << endl;
{{ select(5) }}
- 15
- 17
- 16
- 18
第 6 题
丝绸之路贸易中,商队给货物编号。一个数如果能被它各位数字之和整除,称为「丝路吉祥数」。以下代码统计 1~50 之间丝路吉祥数的个数,程序输出的结果是( )。
int cnt = 0;
for (int i = 1; i <= 50; i++) {
int sum = 0;
int t = i;
while (t > 0) {
sum = sum + t % 10;
t = t / 10;
}
if (i % sum == 0) cnt++;
}
cout << cnt << endl;
{{ select(6) }}
- 20
- 21
- 23
- 25
第 7 题
非遗保护项目中,若一个编号的各位数字之和为质数,则标记为「重点保护」。阅读以下程序,输出结果是( )。
bool isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i * i <= n; i++)
if (n % i == 0) return false;
return true;
}
int main() {
int cnt = 0;
for (int n = 101; n <= 120; n++) {
int sum = 0, t = n;
while (t > 0) {
sum += t % 10;
t /= 10;
}
if (isPrime(sum)) cnt++;
}
cout << cnt << endl;
return 0;
}
{{ select(7) }}
- 8
- 9
- 10
- 11
第 8 题
阅读以下代码,程序输出的结果是( )。
int a[8] = {85, 92, 78, 95, 88, 76, 90, 83};
int cnt = 0;
for (int i = 0; i < 8; i++) {
if (a[i] >= 90) cnt++;
}
cout << cnt << endl;
{{ select(8) }}
- 2
- 3
- 4
- 5
第 9 题
「丝路文化」知识竞赛中,需要统计一个英文单词中元音字母(a、e、i、o、u,不区分大小写)的个数。阅读以下代码,程序输出的结果是( )。
string s = "SilkRoad";
int cnt = 0;
for (int i = 0; i < s.length(); i++) {
char c = s[i];
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U')
cnt++;
}
cout << cnt << endl;
{{ select(9) }}
- 2
- 3
- 4
- 5
第 10 题
阅读以下代码,程序输出的结果是( )。
int calc(int a, int b) {
return a * b + a;
}
int main() {
int x = 3, y = 4;
cout << calc(x, y) + calc(y, x) << endl;
return 0;
}
{{ select(10) }}
- 24
- 27
- 31
- 35
第 11 题
红色研学活动中,小分队从营地出发向前探索。第 1 分钟前进 2 米,之后每分钟比前一分钟多前进 3 米。以下代码计算前 5 分钟总共前进了多少米,程序输出的结果是( )。
int total = 0, step = 2;
for (int i = 1; i <= 5; i++) {
total += step;
step += 3;
}
cout << total << endl;
{{ select(11) }}
- 30
- 35
- 40
- 45
第 12 题
使用 1 元、2 元、5 元三种面值的纸币凑出 10 元,每种纸币数量不限,顺序不同视为同一种方案。以下代码计算共有多少种不同的凑法,程序输出的结果是( )。
int cnt = 0;
for (int a = 0; a <= 10; a++)
for (int b = 0; b <= 5; b++)
for (int c = 0; c <= 2; c++)
if (a + 2 * b + 5 * c == 10)
cnt++;
cout << cnt << endl;
{{ select(12) }}
- 8
- 9
- 10
- 11
第 13 题
红军长征途中经过 8 个站点,海拔高度(单位:米)记录在数组中。以下代码统计海拔不低于 4000 米的高海拔站点数量,并计算平均海拔(整数除法)。程序输出的第一行和第二行分别是( )。
int h[8] = {1600, 4200, 3400, 4800, 2800, 5000, 3800, 4400};
int cnt = 0, sum = 0;
for (int i = 0; i < 8; i++) {
sum += h[i];
if (h[i] >= 4000) cnt++;
}
cout << cnt << endl;
cout << sum / 8 << endl;
{{ select(13) }}
- 4 和 3750
- 4 和 3787
- 5 和 3750
- 5 和 3787
第 14 题
下列关于 C++ 程序基本概念的说法中,正确的是( )。
{{ select(14) }}
- 在 C++ 中,变量必须先声明再使用
- C++ 程序中必须至少包含一个 for 循环
cout语句用于从键盘读取数据- 数组下标默认从 1 开始
第 15 题
阅读以下代码,程序输出的结果是( )。
int a = 5, b = 10;
if (a > 3 && b < 20) {
a = a * 2;
b = b - 5;
} else {
a = a + 1;
b = b + 1;
}
cout << a + b << endl;
{{ select(15) }}
- 14
- 15
- 16
- 17
二、判断题(每题 5 分,共 25 分)
第 16 题
在 C++ 中,表达式 5 % 2 的结果是 1。( )
{{ select(16) }}
- 正确
- 错误
第 17 题
执行以下代码,输出两行内容,第一行为 A,第二行为 B。( )
int x = 3;
if (x > 5)
cout << "A" << endl;
cout << "B" << endl;
{{ select(17) }}
- 正确
- 错误
第 18 题
执行以下代码后,变量 s 的值为 55。( )
int s = 0;
for (int i = 1; i < 10; i++) {
s += i;
}
{{ select(18) }}
- 正确
- 错误
第 19 题
定义数组 int a[5] = {10, 20, 30, 40, 50}; 后,a[5] 的值是 50。( )
{{ select(19) }}
- 正确
- 错误
第 20 题
在对 1~N 进行枚举的问题中,只要代码里出现了嵌套循环,程序的时间复杂度就一定是 O(N²)。( )
{{ select(20) }}
- 正确
- 错误
2026年05月20日初中组全国信息素养大赛C++算法应用主题赛第一场初赛模拟
- 状态
- 已结束
- 规则
- OI
- 题目
- 1
- 开始于
- 2026-5-20 20:00
- 结束于
- 2026-5-20 21:00
- 持续时间
- 1 小时
- 主持人
- 参赛人数
- 12