#S8002. 2025年全国青少年信息素养大赛-算法创意实践挑战赛—真题试卷(初赛)初中组-1
2025年全国青少年信息素养大赛-算法创意实践挑战赛—真题试卷(初赛)初中组-1
2025年全国青少年信息素养大赛-算法创意实践挑战赛—真题试卷(初赛)初中组-1
(满分:100 分 考试时间:60 分钟)
一、单项选择题(共 15 题,每题 5 分,共计 75 分;每题有且仅有一个正确选项)
- 在C++中,表达式 (13 & 7) 的值是多少?
{{ select(1) }}
- 分支结构
- 循环结构
- 数据结构
- 顺序结构
- 以下哪段代码能将数组 int a[4] = {2, 4, 6, 8}; 的所有元素变为原来的二倍?
{{ 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];
- 以下哪项是分支结构的正确写法?
{{ 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";
- 执行以下代码,输出的结果是什么?
int a = 14 / 3 * 3;
cout << a;
{{ select(4) }}
0
14
12
3
- 找出以下代码中哪一行是C++中合法的注释?
{{ select(5) }}
// 注释此条语句
# 注释此条语句
(* 注释此条语句 *)
<!--注释此条语句-->
- 以下说法正确的是?
{{ select(6) }}
- 执行代码
cout << 13.8 % 2;
会输出1.8
- 将一个浮点数赋值给一个 char 类型的变量会出现运行时错误
- 如果代码中不含有
#include<iostream>
将无法通过编译 - C++可以定义无返回值且无参数函数
- 执行下列C++代码,后,计算
s[0].d + s[1].i
,结果是多少?
struct S { double d; int i; };
S s[2] = {{1.5, 1}, {2.5, 2}};
{{ select(7) }}
- 4
- 4.5
- 3.5
- 3
- 输入一个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;
{{ 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
- 阅读以下程序,输入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;
{{ select(9) }}
- 28
- 13
- 10
- 17
- 下列C++代码中哪个语句运行结果是7?
{{ select(10) }}
cout << (char)7;
cout << int(4.3333333 + 2.6666666);
cout << 66 / 9;
cout << 15 / 2.0;
- 给定一个包含 n 个整数的数组,你的目标是通过最少的操作使数组变为非递减的(即每个元素不小于它前面的元素)。每次操作可以选择任意一个元素,并将其值增加1。请补全以下代码,计算需要的最少操作次数。下列选项中哪一项正确?
#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;
}
{{ 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]
- 行下列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;
{{ select(12) }}
- 6
- 7
- 8
- 9
- 有个人,第 个人的当前头发长度为 。每个人的头发每天增长。请计算并输出从第一天开始,第一次出现头发长度至少为 的人数 是第几天?
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 < t; i++) {
cnt = 0;
for (int j = 0; j < n; j++) {
if (①) cnt++;
}
if (②) {
cout << i << endl;
break;
}
}
{{ 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
- 从一个2x2网格的左上角出发,若只允许向右或向下移动,恰好有如下6条路径可以到达右下角:
补全以下代码,计算对于9x9的网格,有多少条路径可以到达右下角?
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];
{{ 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)
- 给定一个由正整数组成的长度为 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;
{{ select(15) }}
a[i]*a[i+1]!=a[i+1]*a[i+2]
a[i+1]/a[i]!=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]
二、判断题( 判断题正确选A,错误选B ;判断题每题 5 分,共计 25 分)
- C++中,逻辑与
&&
的优先级高于逻辑或||
,因此true || false && true
等价于true || (false && true)
。
{{ select(16) }}
- 对
- 错
- ASCII码表中,所有数字字符('0'到'9')是连续的。
{{ select(17) }}
- 对
- 错
string s = "bcd"; s[0] = 'a';
可以正确将 s 的第一个字符赋值为 'a'。
{{ select(18) }}
- 对
- 错
- 结构体 struct 中只能包含成员变量和成员函数,不能包含结构体类型的变量。
{{ select(19) }}
- 对
- 错
- 定义
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
。
{{ select(20) }}
- 对
- 错