内容正文:
2025年全国青少年信息素养大赛
算法创意实践挑战赛初中组初赛(宁夏)
一:单项选择题
1、执行以下代码,输出的结果是?( )
int y = 25;
if(y % 2 != 0)
cout << y; (5 分)
A.0 B.y C.25 D.1
2、以下关于变量定义的C++语句中存在编译错误的是哪项?( )(5 分)
A. int a = 27, b[10], c[3][3]; B.int x, y, z = 10, 11, 12; C.bool f = false; D.long long pi = 3.14;
3、以下哪项是C++中合法的变量名?( )(5 分)
A.num_1 B.1num C.@num D.num#1
4、执行下列代码,输入"hello world"(不带引号),输出结果为?( )
string s;
cin >> s;
cout << s; (5 分)
A. 空字符串 B.world C.hello D.hello world
5、在C++中,以下哪条语句可以正确输出“Hello, World!”?( )(5 分)
A.include("Hello, World!");
B.cin >> "Hello, World!";
C.print("Hello, World!")
D.cout << "Hello, World!";
6、输入一个 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 分)
A.0, 0, i + 1, len < ans
B.1, 1, i - 1, len > ans
C.1, 1, i - 1, len < ans
D.0, 0, i + 1, len > ans
7、补全以下代码,将数组a按升序排列。下列选项中哪一项正确?( )
int a[7] = {7, 1, 4, 2, 2, 3, 6};
int N = 7;
for (int i = 0; i < N - 1; i++) {
for (int j = 0; j < __①__; j++) {
if (a[j] > a[j + 1])
swap(a[j], a[j + 1]);
}
} (5 分)
A. N - i - 1 B.i - 1 C.N D.i
8、执行下列C++代码
struct S { double d; int i; };
S s[2] = {{1.5, 1}, {2.5, 2}};
后,计算 s[0].d + s[1].i,结果是多少?( )(5 分)
A.3.5 B.3 C.4 D.4.5
9、执行下列C++代码后输出的是?( )
#include <iostream> using namespace std;
int solve (int a, int b, int m) {
for (int x = 0; x < m; x++) {
if ((a * x) % m == b) return x;
}
return -1;
int main() {
cout << solve(3, 2, 5);
return 0; }(5 分)
A.3 B.4 C.2 D.1
10执行C++代码string arr[4] = {"89", "1234", "xyz", "abcde"}; 后,计算arr[3].length() + stoi(arr[1].substr(1)),结果是多少?( )
提示:其中 stoi 函数用于将字符串转换为整数,例如 stoi("314") 返回整数 314。(5 分)
A.239 B.237 C.94 D.92
11、 补全下列代码, 计算 image.png的阶乘中后缀 0 的个数。下列选项中哪一项正确?( )
例如 5! = 1 * 2 * 3 * 4 * 5 = 120, 它有 1 个后缀0 20! =2432902008176640000,它有 4 个后缀0。 提示: n!中每个后缀 0 都是由一个因子 2 和一个因子 5 相乘得到的,而在阶乘中因子 2 的个数远多于因子 5 的个数,因此只需统计因子 5 的个数。 一个 5 的倍数可以提供至少 1 个因子 5; 一个 25 的倍数可以提供至少 2 个因子 5; 一个 125 的倍数可以提供至少 3 个因子 5; 以此类推。
int n, i =__①__, ans = 0;
cin >> n; while (__②__){ i*= 5; ans+=__③__;
} cout << ans;
(5 分)
A.1, i <= n / 5, n / i
B.5, i <= n, i
C.5, i < n, i
D.1, i < n / 5, n / i
12、 有n个人,第i个人的当前头发长度为image.png。 每个人的头发每天增长1。请计算并输出从第一天开始,第一次出现头发长度至少为 t 的人数 >= 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 < t; i++) { cnt = 0; for (int j = 0; j < n; j++) {
if (__①__) cnt++;
} if (__②__) { cout << i << endl; break;
}
}
A.L[i] + j >= t, cnt >= p
B.L[j] + i > t, cnt > p
C.L[i] + j > t, cnt > p
D.L[j] + i >= t , cnt >= p
13、 输入一个整数n,然后输入n - 1个整数。这些整数是从 1 到 n 之间的所有整数,但缺少了其中一个。请补全以下代码,找到缺失的那个整数。下列选项中哪一项正确?( )
int n, x;
cin>> n;
int ans = __①__;
for (int i = 1; i < n; i++) {
cin >> x; ans +=__②__;
}
cout<< ans;(5 分)
A. n, x - i B.0, x - i C.n, i - x D.0, i - x
14、 给定一个包含 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;
}
A.a[i - 1] - a[i], a[i] += a[i - 1]
B.a[i] - a[i - 1], a[i - 1] = a[i]
C.a[i - 1] - a[i], a[i] = a[i - 1]
D.a[i] - a[i - 1], a[i - 1] -= a[i]
15、 有n个荷叶排列成一行,从左到右编号为1到n。Alice和Bob是两只青蛙,初始时分别位于a号和b号荷叶上。他们轮流跳跃,Alice先跳。 每次跳跃时,只要目标荷叶存在且未被对方占据,青蛙就可以选择向左或向右跳一格。 例如: 如果Alice在荷叶3,她可以跳到荷叶2或荷叶4(如果这些荷叶存在且未被Bob占据)。 需要注意的是: 青蛙必须跳跃,不能停留在原地。 两只青蛙不能占据同一个荷叶。 如果某只青蛙无法进行有效跳跃,它将输掉游戏,另一只青蛙获胜。
给定n、a和b,补全以下代码,输出获胜者。下列选项中哪一项正确?( )
int n, a, b; cin>> n >> a >> b;
if (__①__)
cout << "Alice";
else cout << "Bob";(5 分)
A.abs(n - (a - b)) % 2 != 0
B.abs(a - b) % 2 != 0
C.abs(n - (a - b)) % 2 == 0
D.abs(a - b) % 2 == 0
二:判断题
17string s = "bcd"; s[0] = 'a';可以正确将s的第一个字符赋值为'a'。( )(5 分)
正确 错误
18、max(1, max(2, 3))是合法的表达式,返回值为3。( )(5 分)
正确 错误
19、 二维数组int a[2][3],则数组a一共有6个元素。( )(5 分)
正确 错误
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 分)
正确 错误
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$