一、单项选择题(共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) }}

  • 创建后长度不可变
  • 可用 + 直接连接 stringchar
  • 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行 sorta 可能无序),程序可能出现的问题?
{{ select(27) }}

  • 答案比原来更大
  • 答案比原来更小
  • 出现死循环
  • 以上均可能

(3) 代码段三(LCS)

判断题:
28.(原 28)输入 4 1 2 3 4 1 3 2 2 时输出为 2。
{{ select(28) }}

29.(原 29)运行完毕后,∀i,jf[i][j] <= f[n][n]
{{ select(29) }}

30.(原 30)删去第18行不影响结果。
{{ select(30) }}

单选:
31.(原 31)输出满足:
{{ select(31) }}

  • <= n
  • >= 0
  • 不一定 >= 1
  • 以上皆是

32.(原 32)若先对 ab 均排序,答案会?
{{ 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

相关

在下列比赛中:

2025 CSPJ S 第一轮 自测