该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
一、单项选择题(共15题,每题2分)
1.(原 1)一个 32 位无符号整数可以表示的最大值,最接近下列哪个选项?
{{ select(1) }}
- 4 × 10⁹
- 3 × 10¹⁰
- 2 × 10⁹
- 2 × 10¹⁰
2.(原 2)在 C++ 中,执行 int x = 255; cout << (x & (x - 1));
后,输出的结果是?
{{ select(2) }}
- 255
- 254
- 128
- 0
3.(原 3)如下函数,calc(5)
的返回值是多少?
int calc(int n){
if(n<=1) return 1;
if(n%2==0) return calc(n/2)+1;
else return calc(n-1)+calc(n-2);
}
{{ select(3) }}
- 5
- 6
- 7
- 8
4.(原 4)用权值 10,12,15,20,25 构造哈夫曼树,WPL 为?
{{ select(4) }}
- 176
- 186
- 196
- 206
5.(原 5)有向图中,所有顶点入度之和=出度之和=?
{{ select(5) }}
- 顶点数
- 边数
- 顶点数 + 边数
- 顶点数 × 2
6.(原 6)5男4女选4人且男女都有,方法数?
{{ select(6) }}
- 126
- 121
- 120
- 100
7.(原 7)与 (a&&b)||(!c&&a)
不恒等的是?
{{ select(7) }}
a&&(b||!c)
(a||!c)&&(b||!c)&&(a||a)
a&&(!b||c)
!(!a||!b)||(a&&!c)
8.(原 8)f[0]=1,f[1]=1,f[n]=(f[n-1]+f[n-2])%7
,求 f[2025]
?
{{ select(8) }}
- 2
- 4
- 5
- 6
9.(原 9)关于 C++ string
正确的是?
{{ select(9) }}
- 创建后长度不可变
- 可用
+
直接连接string
与char
length()
与size()
可能不同- 必以
'\0'
结尾且计入length()
10.(原 10)调用 solve(x,y)
后 x,y
分别是?
void solve(int& a,int b){ a=a+b; b=a-b; a=a-b; }
int main(){ int x=5,y=10; solve(x,y); }
{{ select(10) }}
- 5,10
- 10,5
- 10,10
- 5,5
11.(原 11)8×8 棋盘 (1,1)→(4,5) 只能右/下的路径数?
{{ select(11) }}
- 20
- 35
- 56
- 70
12.(原 12)冒泡排序 {6,1,5,2,4}
升序的交换次数?
{{ select(12) }}
- 5
- 6
- 7
- 8
13.(原 13)720₁₀ + 270₈
的十六进制表示?
{{ select(13) }}
- 388₁₆
- 3DE₁₆
- 288₁₆
- 990₁₆
14.(原 14)含 1000 结点的完全二叉树叶子数?
{{ select(14) }}
- 499
- 512
- 500
- 501
15.(原 15)栈队列过程结束后队列 P 内容为?
{{ select(15) }}
- 5,1,3
- 7,5,3
- 3,1,5
- 5,1,3,7
二、阅读程序(共40分)
(1) 代码段一(互质三元组计数)
判断题(对/错):
16.(原 16)输入为 2 时,第 16 行判断不会执行。
{{ select(16) }}
- 对
- 错
17.(原 17)删去条件 && gcd(i,k)==1
不影响结果。
{{ select(17) }}
- 对
- 错
18.(原 18)当 n≥3
时,程序总输出正整数。
{{ select(18) }}
- 对
- 错
单选:
19.(原 19)把 gcd(b,a%b)
改成 gcd(a,a%b)
可能的问题是?
{{ select(19) }}
- 输出大于原答案
- 输出小于原答案
- 可能死循环
- 整型溢出
20.(原 20)当输入为 8 时,输出为?
{{ select(20) }}
- 37
- 42
- 35
- 25
21.(原 21)gcd(36,42)
返回?
{{ select(21) }}
- 6
- 252
- 3
- 2
(2) 代码段二(分组最少数)
判断题:
22.(原 22)输入 3 1 3 2 1
时输出为 2。
{{ select(22) }}
- 对
- 错
23.(原 23)若 n
为正,答案一定在 [1,n]
。
{{ select(23) }}
- 对
- 错
24.(原 24)删去第14行 unique
可能导致输出不同。
{{ select(24) }}
- 对
- 错
单选:
25.(原 25)执行第18行时一定成立的不包括**?**
{{ select(25) }}
j<=i
a[i]-a[j]>k
j<=n
a[j]<a[i]
26.(原 26)n=100,k=2,a={1..100}
时输出为?
{{ select(26) }}
- 34
- 100
- 50
- 33
27.(原 27)若误删第13行 sort
(a
可能无序),程序可能出现的问题?
{{ select(27) }}
- 答案比原来更大
- 答案比原来更小
- 出现死循环
- 以上均可能
(3) 代码段三(LCS)
判断题:
28.(原 28)输入 4 1 2 3 4 1 3 2 2
时输出为 2。
{{ select(28) }}
- 对
- 错
29.(原 29)运行完毕后,∀i,j
:f[i][j] <= f[n][n]
。
{{ select(29) }}
- 对
- 错
30.(原 30)删去第18行不影响结果。
{{ select(30) }}
- 对
- 错
单选:
31.(原 31)输出满足:
{{ select(31) }}
<= n
>= 0
- 不一定
>= 1
- 以上皆是
32.(原 32)若先对 a
、b
均排序,答案会?
{{ select(32) }}
- 变大或不变
- 变小或不变
- 一定变大
- 不变
33.(原 33)若 a={1,2,...,n}
且 b
元素均在 1..n
,等价为:
{{ select(33) }}
- 求
b
去重长度 - 求
b
的 LIS - 求
b
的长度 - 求
b
的最大值
三、完善程序(共30分)
(1) 字符串解码(33–37)
(原 33)① 处应填?
{{ select(34) }}
i < z.length()
i - 1 >= 0
i + 1 < z.length()
isdigit(z[i])
(原 34)② 处应填?
{{ select(35) }}
count + (z[i]-'0')
count * 10 + (z[i]-'0')
z[i]-'0'
count + 1
(原 35)③ 处应填?
{{ select(36) }}
count - 1
count
10
z[i] - '0'
(原 36)④ 处应填?
{{ select(37) }}
z[i+1]
ch
z.back()
(char)z[i] + 1
(原 37)⑤ 处应填?
{{ select(38) }}
i--
i = i + 2
i++
- 不操作
(2) 精明与糊涂(38–42)
(原 38)① 处应填?
{{ select(39) }}
0
1
N
-1
(原 39)② 处应填?
{{ select(40) }}
count < 0
count == 1
count == 0
query(candidate, i) == false
(原 40)③ 处应填?
{{ select(41) }}
query(candidate, i) == false
query(i, candidate) == true
query(candidate, i) == false && query(i, candidate) == false
query(candidate, i) == false || query(i, candidate) == false
(原 41)④ 处应填?
{{ select(42) }}
count--
break
count++
candidate = i
(原 42)⑤ 处应填?
{{ select(43) }}
N - 1
count
candidate
0