2025CSPJ1参考试卷
您的姓名:
1.一个 32 位无符号整数可以表示的最大值,最接近下列哪个选项?
A.(4 x 10^9)
B. (3 x 10^{10})
C.(2 x 10^9)
D.(2 x 10^{10})
2.在 C++ 中,执行 int x= 255;cout<<(x&(x- 1));后,输出的结果是?
A.255
B.254
C.128
D.0
3.函数 calc(n)的定义如下,则 calc(5)的返回值是多少?()
A.5
B.6
C.7
D.8
4.用5 个权值 10,12,15,20,25 构造哈夫曼树,该树的带权路径长度是多少?
A.176
B.186
C.196
D.206
5.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和,这个总和等于?()
A.顶点数
B.边数
C.顶点数 +边数
D.顶点数*2
6.从5位男生和 4位女生中选出4人组成一个学习小组,要求学习小组中男生和女生都有。有多少种不同的选择方法?()
A.126
B.121
C.120
D.180
7.假设 a, b,c都是布尔变量,逻辑表达式(a && b) ll (!c && a)的值与下列哪个表达式不始终相等?
A.a &&(b ll !c)
B.(a ll !c)&&(b|l!c)&&(a ll a)
C.a &&(!bllc)
D.!(a || !b)|l(a && !c)
8、已知 f[0]=1,f[1]=1,非且对于所有n≥2有f[n]=(f[n-1]+ f[n-2])% 7,那么 f[2025]的值是多少?()
A.2
B.4
C.5
D.6
9.下列关于 c++ string 类的说法,正确的是?()
A.string 对象的长度在创建后不能改变。
B.可以使用+运算符直接连接一个string 对象和一个char 类型的字符
C.string 的length()和 size()方法返回的值可能不同。
D.string 对象必须以'\0'结尾,且这个结尾符计入 length()。
10.在main函数调用solve后,x和y的值分别是?
A.5,10
B.10,5
C.10,10
D.5,5
11.一个 8x8 的棋盘,左上角坐标为(1,1),右下角为(8,8)。一个机器人从(1,1)出发,每次只能向右或向下走一格。要到达(4,5),有多少种不同的路径?()
A. 20
B.35
C.56
D.70
12.某同学用冒泡排序对数组{6,1,5,2,4}进行升序排序,请问需要进行多少次元素交换?( )
A.5
B.6
C.7
D.8
13.十进制数 720和八进制数 270。的和用十六进制表示是多少?()
A.388
B.3DE
C.288
D.990
14.一棵包含 1000个结点的完全二叉树,其叶子结点的数量是多少?()
A.499
B.512
C.500
D.501
15.给定一个初始为空的整数栈S和一个空的队列P。我们按顺序处理输入的整数队列 A:5,8,3,1,4,2。对于队列A中的每一个数,执行以下规则:如果该数是奇数,则将其压入栈S:如果该数是偶数,且栈S非空,则弹出一个栈顶元素,并加入到队列P的末尾:如果该数是偶数,且栈S为空,则不进行任何操作。当队列A中的所有数都处理完毕后,队列P的内容是什么?()
A.5,1,3
B.7,5,3
C.3,1,5
D.5,1,3,7
16.(1分)当输入为2时,程序并不会执行第16行的判断语句。( )
对
错
17.将第16行中的“&& gcd(i,k)==1”刚去不会形响程序运行结果。( )
对
错
18.当输入的n>=3的时候,程序总是输出一个正整数。( )
对
错
19.将第7行的“gcd(b,a%b)”改为“gcd(a,a%b)”后,程序可能出现的问题是()。
A.输出的答案大于原答案。
B.输出的答案小于原答案。
C.程序有可能陷入死循环。
D.可能发生整型溢出问题。
20.当输入为8的时候,输出为()。
A.37
B.42
C.35
D.25
21.调用 gcd(36,42)会返回()。
A.6
B.252
C.3
D.2
22.当输入为“3 1 3 2 1”时,输出结果为2。( )
对
错
23.假设输入的n为正整数,输出的答案一定小于等于n,大于等于1。()
对
错
24.将第14 行的“n=std::unique(a+1,a+n+1)-a-1;”删去后,有可能出现与原本代码不同的输出结果。()
对
错
25.假设输入的a数组和k均为正整数,执行第 18 行代码时,一定满足的条件不包括( )。
A.j<=i
B.a[i]-a[j]>k
C.j<=n
D.a[j]<a[i]
26.当输入的 n=100、k=2、a={1,2,...,100}时,输出为()。
A.34
B.100
C.58
D.33
27.假设输入的a数组和k均为正整数,但a数组不一定有序,则若误删去第 13 行的'std::sort(a+1,a+n+1);”,程序有可能出现的问题有()。
A.输出的答案比原本答案更大
B.输出的答案比原本答案更小
C.出现死循环行为
D.以上均可能发生
28.当输入“4 1 2 3 4 1 3 2 2”时,输出为2。()
对
错
29.当程序运行完毕后,对于所有的 1≤i,j<n,都一定有 f[i][j]<=f[n][n]。()
对
错
30.将第 18 行的“f[i][j]=std::max(f[i][j],std::max(f[i-1][j],f[i][j-1]));删去后,并不影响程序运行结果。()
对
错
31.输出的答案满足的性质有( )。
A.小于等于 n
B.大于等于 0
C.不一定大于等于 1
D.以上均是
32.如果在 16 行的循环前加上以下两行:“std::sort(a+1,a+n+1);std::sort(b+1,b+n+1)”,则答案会()。
A.变大或不变
B.变小或不变
C.一定变大
D.不变
33.①处应填( )
A. i< z.length()
B.i-1 >=0
C.i+1<z.length()
D. isdigit(z[i])
34.②处应填()
A.count +(z[i]-'0')
B.count*10+(z[i]- '0')
C. z[i]-'@'
D.count +1
35.③处应填()
A.count-1
B.count
C.10
D.z[i]-'0'
36.④处应填()
A. z[i+1]
B.ch
C.z.back()
D.(char)z[i]+ 1
37.⑤处应填()
A.i--
B.i=i+ 2
C.i++
D. //不执行任何操作
38.①处应填()
A.0
B.1
C.N
D.-1
39.②处应填()
A.count<0
B.count == 1
C.count == 0
D.query(candidate,i)== false
40.③处应填( )
A.query(candidate,i)==false
B.query(i,candidate)== true
C.query(candidate,i)==false && query(i,candidate)== false
D.query(candidate,i)==false || query(i,candidate)==false
41.④处应填()
A.count--
B.break
C.count++
D.candidate=i
42.⑤处应填()
A.N -1
B.count
C.candidate
D.0
输入1即可
关闭
更多问卷
复制此问卷