2025年 CSP-J1 入门级初赛 C++真题
剩余时间 --:--:--
单选题 共 34 题
1.

一个32位无符号整数可以表示的最大值,最接近下列哪个选项?(  )

2.

在C++中,执行 int x=255;cout<<(x&(x-1));后,输出的结果是?(   )

3.

函数 ca1c(n)的定义如下,则 ca1c(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);
}
4.

用5个权值10、12、15、20、25构造哈夫曼树,该树的带权路径长度是多少?(   )

5.

在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和,这个总和等于? (   )

6.

从5位男生和4位女生中选出4人组成一个学习小组,要求学习小组中男生和女生都有。有多少种不同的选举方法?(   )

7.

假设a、b、c都是布尔变量,逻辑表达式 (a&&b)||(!c&&a) 的值与下列哪个表达式不始终相等?(   )

8.

已知 f[0]=1 ,f[1]=1 ,并且对于所有n ≥ 2有f[n]=(f[n-1]+f[n-2])%7 ,那么 f[2025]的值是多少?(   )

9.

下列关于C++ string类的说法,正确的是?(   )

10.

考虑以下C++函数,在 main 函数调用 solve 后,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);
}
11.

一个8×8的棋盘,左上角坐标为(1,1),右下角为(8,8)。一个机器人从(1,1)出发,每次只能向右或向下走一格。要到达(4,5),有多少种不同的路径?()

12.

某同学用冒泡排序对数组 [6,1,5,2,4] 进行升序排序,请问需要进行多少次元素交换?()

13.

十进制数72010和八进制数2708的和用十六进制表示是多少?(  )

14.

一棵包含1000个结点的完全二叉树,其叶子结点的数量是多少?

15.

给定一个初始为空的整数栈S和一个空的队列P。按顺序处理输入的整数队列A:7、5、8、3、1、4、2。对于队列A中的每一个数,执行以下规则:如果该数是奇数,则将其压入栈S:如果该数是偶数,且栈S非空,则弹出一个栈顶元素,并加入到队列P的末尾:如果该数是偶数,且栈S为空,则不进行任何操作。当队列A中的所有数都处理完毕后,队列P的内容是什么?()

16.

将第7行的 gcd(b,a%b) 改为 gcd(a,a%b) 后,程序可能出现的问题是()。

17.

当输入为8的时候,输出为()。

18.

调用 gcd(36,42) 会返回()。

19.

假设输入的a数组和k均为正整数,执行第18行代码时,一定满足的条件不包括()。

20.

当输入的n=100、 k=2、 a={1,2,…,100}时,输出为()。

21.

假设输入的a数组和k均为正整数,但a数组不一定有序,若误删去第13行的std::sort(a+1,a+n+1); ,程序有可能出现的问题有()。

22.

输出的答案满足的性质有()。

23.

如果在16行的循环前加上以下两行: std::sort(a+1,a+n+1); std::sort(b+1,b+n+1) ,则答案会()。

24.

如果输入的a数组是 1,2,...,n ,而且b数组中数字均为1~n中的正整数,则上述代码等价于下面哪个问题:()。

25.

①处应填()

26.

②处应填()

27.

③处应填()

28.

④处应填()

29.

⑤处应填()

30.

①处应填()

31.

②处应填()

32.

③处应填()

33.

④处应填()

34.

⑤处应填()

判断题 共 9 题
1.

(1分)当输入为2时,程序并不会执行第16行的判断语句。()

2.

将第16行中的 && gcd(i, k)==1 删去不会影响程序运行结果。()

3.

当输入的n ≧ 3的时候,程序总是输出一个正整数。()

4.

当输入为“3 1 3 2 1”时,输出结果为2。()

5.

假设输入的n为正整数,输出的答案一定小于等于n,大于等于1。()

6.

将第14行的 n=std::unique(a+1,a+n+1)-a-1; 删去后,有可能出现与原本代码不同的输出结果。()

7.

当输入“4 1 2 3 4 1 3 2 2”时,输出为2。()

8.

当程序运行完毕后,对于所有的 1<=i,j<=n,都一定有f[i][j]<=f[n][n] 。()


9.

将第18行的 f[i][j]=std::max(f[i][j],std::max(f[i-1][j],f[i][j-1])); 删去后,并不影响程序运行结果。()

C++ 编辑器
输入
输出