#YDSPJ2025. 2025 云斗学院软件能力认证第一轮(YDSP-Junior)入门级 C++ 语言试题
2025 云斗学院软件能力认证第一轮(YDSP-Junior)入门级 C++ 语言试题
一、单项选择题(每题 2 分,共 30 分)
- 报名 CSP-J 第一轮的选手,需要在当年的 9 月 1 日满( )周岁。 {{ select(1) }}
- 8
- 10
- 12
- 14
- 下面四条 C++ 语句中,( )不是正确的声明变量语句。 {{ select(2) }}
long long ago;double kill;int eger;define the,world;
- Alice 使用 C++ 编写了一款小程序,代码文件为
game.cpp,并使用软件 DEV-C++ 生成了可执行文件game.exe,并创建了快捷方式“井字棋”。这天,Bob 想要用 U 盘拷走 Alice 的游戏。Alice 应该把( )拷进 Bob 的 U 盘,才能让 Bob 直接游玩。 {{ select(3) }}
game.cpp- DEV-C++
game.exe- 井字棋
- 现在有
int类型的变量x,保证0 ≤ x ≤ 100,现要判断一个自然数x是不是 8 的倍数,下列 C++ 表达式正确的是( )。 {{ select(4) }}
x&7==0(x&-x)>7(x|7)==0x%(2^3)==0
- 考虑两个十进制正整数
x, y,其中x是n位数,y是m位数,x ≥ y。那么( )。 {{ select(5) }}
x, y的最高位如果不同,那么x的最高位数值更大。x + y是n位数或n + 1位数。x − y是n位数或n − 1位数。xy是nm位数。
- 一棵二叉树的前序遍历是
ECDAHBIGF,中序遍历是DCHBIAEGF,则其后序遍历是( )。 {{ select(6) }}
DIBHACFGEDHBIACGFEGFAHBIDCEEGFCAHBID
- 我们知道,01 背包问题是指:有
n个物品,每个物品有重量w_i和价值v_i,要选出一部分物品使得重量和不超过给定值W,然后最大化选出物品的价值和。一个常见错误做法是贪心地按照物品性价比从高到低排序,然后从前往后装入背包,直到无法装入下一个物品。事实上,当n = 2, W = 10, w1 = 5, v1 = 10时,只要令( )就可以让这个做法得到错误结果。 {{ select(7) }}
w2 = 3, v2 = 8w2 = 6, v2 = 13w2 = 8, v2 = 18w2 = 7, v2 = 12
- Alice 和 Bob 正在复习 CSP-J 知识点。 Alice:“一个栈可以用( )实现,且可以做到单个元素入栈、出栈均为 O(1)。” Bob:“不对,如果用这个实现,入栈 O(1),出栈就做不到 O(1)。” 已知 Bob 这句话是对的,判断横线处应该填( )。 {{ select(8) }}
std::vectorstd::liststd::stackstd::queue
- 现有一个
n项的数组a[1], …, a[n],保证a[0] = 0。 如果要原地求前缀和,应该写for(/* Blank 1 /) a[i] += a[i-1];如果要原地求差分,应该写for(/* Blank 2 */) a[i] -= a[i-1];给出正向循环int i=1;i<=n;i++和反向循环int i=n;i>0;i--。序号处应分别填写( )。 {{ select(9) }}
- 正向循环、正向循环
- 正向循环、反向循环
- 反向循环、正向循环
- 反向循环、反向循环
- 我们规定,对于一个三位数(可以有前导 0,即 000∼999),如果其含有数码
2,3,4,5,7,那么其不可倒置;否则其倒置的结果可以通过:①把数码 9↔6 同时互换;②交换百位与个位。若一个三位数不可倒置或倒置后与原数相同,则称为安全。一共有( )个安全的三位数。 {{ select(10) }}
- 890
- 875
- 900
- 925
- 计算
(2025)_8 + (920)_{10}的结果是( )。 {{ select(11) }}
(11110101101)_2(3665)_8(1935)_{10}(7AB)_{16}
- 后缀表达式
2 4 * 7 - 1 2 + *的计算结果为( )。 {{ select(12) }}
- 1
- 2
- 3
- 4
- 对序列
2, 0, 2, 5, 0, 9, 2, 0进行升序冒泡排序的过程中,一共发生了( )次“交换第 4 个和第 5 个数”。 {{ select(13) }}
- 1
- 2
- 3
- 4
- 不能写成两个合数之和的最大自然数
n是( )。 {{ select(14) }}
- 2
- 7
- 9
- 11
- 一棵 2025 个结点的无根无权树中,所有无序点对距离和的最大值除以 7 的余数是( )。 {{ select(15) }}
- 1
- 2
- 3
- 4
二、阅读程序(无特殊说明时判断 1.5 分,选择 3 分,3 题共 40 分)
第 1 题(12 分)
![]()
判断题
- 该程序的功能是将一个数依据某一规则转化为某个合数。 {{ select(16) }}
- 正确
- 错误
- 输入
3 675时,输出为65。 {{ select(17) }}
- 正确
- 错误
- 输入
4 2048时,输出为0。 {{ select(18) }}
- 正确
- 错误
选择题
- 输入
12 379379379379时,输出为( )。 {{ select(19) }}
- 33
- 99
- 9
- 77
- 输入
40 2373737373737373737373737373737373737373时,输出为( )。 {{ select(20) }}
- 27
- 23
- 77
- 33
- 某两次输出结果的和为 26,且第一次输出为一位数,则第一次输出可能为( )。 {{ select(21) }}
- 0
- 1
- 6
- 8
第 2 题(13 分)

判断题
- 若输入数组
a中所有元素均为 0,则程序输出的ans为 0。 {{ select(22) }}
- 正确
- 错误
- 若将第 14–22 行的循环改为从
i=1开始到i<=n,程序输出结果不改变。 {{ select(23) }}
- 正确
- 错误
选择题
- 当输入为
4↵2025 2025 -2025 -2025时,输出为( )。 {{ select(24) }}
- 0
- 2025
- 4050
- 8100
- 当输入为
5↵1 2 3 4 5时,输出为( )。 {{ select(25) }}
- 4
- 10
- 16
- 22
26.(4 分)若将第 16 行改为 x = x + 2 * a[i];,输入
3 ↵
3 1 2
时,输出为( )。
{{ select(26) }}
- 8
- 36
- 14
- 18
第 3 题(15 分)
![]()
判断题
- 本程序的时间复杂度为
O(1)。 {{ select(27) }}
- 正确
- 错误
- 输入
5 3 3 0 0↵2 6 6 6 8时,运行第 27 行后,max_2 - min_2 = 5。 {{ select(28) }}
- 正确
- 错误
选择题
29.(2.5 分)若 a = b = c = d = 10,输出为 1,则 n 的最小值为( )。
{{ select(29) }}
- 27
- 28
- 29
- 30
- 实际上,当
λ * n < a + b + c + d(λ是参数)时,即可直接输出0,λ的最小值为( )。 {{ select(30) }}
- 2
- 3
- 4
- 5
- 若输入的
len = [2, 4, 6, 6, 6, 6, 8, 8],c = 0,d = 0,且a,b均在[0,9]内随机均匀取值,则输出为1的概率为( )。 {{ select(31) }}
- 0.37
- 0.38
- 0.39
- 0.40
32.(4 分)若输入 n = 9, b = 6, c = 0, d = 0,且所有 len 的总和为 40,并满足 len ∈ {2,4,6},假定 len 单调不降,则所有可能使输出为 1 的输入种数为( )。
{{ select(32) }}
- 25
- 26
- 27
- 28
三、完善程序(共两题 30 分)
3.1 反色编码(15 分)


/* Blank 1 */应填( )。 {{ select(33) }}
- int
- void
- char
- inline
/* Blank 2 */应填( )。 {{ select(34) }}
return a + b * 16return a + b % 16return a * 16 + breturn
/* Blank 3 */应填( )。 {{ select(35) }}
n % 16n - 16 * a + 1(n + 1) % 16(n + 1) / 16
/* Blank 4 */应填( )。 {{ select(36) }}
for(int i = 1; i <= 7; i++)for(int i = 0; i < 6; i++)for(int j = 0; j < 6; j++)for(int i = 0; i < 6; i += 2)
/* Blank 5 */应填( )。 {{ select(37) }}
to_t_o(255 - to_t_o(c[i-1], c[i]))to_t_o(255 - to_t_t(c[i-1], c[i]))to_t_t(255 - to_t_t(c[i-1], c[i]))to_t_t(255 - to_t_o(c[i-1], c[i]))
3.2 相通变换(15 分)

/* blank 1 */应填( )。 {{ select(38) }}
i < n / ii * i < ni * i <= ni < sqrt(n)
/* blank 2 */应填( )。 {{ select(39) }}
sum - max_valsum / max_valmax_valsum
/* blank 3 */应填( )。 {{ select(40) }}
x % a[i]a[i] - xa[i] / xa[i] % x
/* blank 4 */应填( )。 {{ select(41) }}
min(rem[l], rem[r])min(rem[l], x - rem[r])max(rem[l], rem[r])min(x, rem[r])
/* blank 5 */应填( )。 {{ select(42) }}
l += (rem[l] == 0)while(!rem[l]) l++l -= (rem[l] > 0)while(rem[l]) l--


