#4465. 2022 CSP-J1 入门级第一轮答案解析

2022 CSP-J1 入门级第一轮答案解析

单项选择

1.A

答案解析

printf 是 C 语言标准库中的格式化输出函数,不涉及面向对象。

2.C

答案解析

6 比 5 先入栈,因此是 5 比 6 先出栈。

3.D

答案解析

p = q;,p,q 同时指向 y。

4.C

答案解析

考察点:链表和数组的特点与区别。

5.B

答案解析

进入队列的顺序实际上就是出栈的顺序。故栈的容量至少是 3 个数据。 image

6.B

答案解析

考察点:中缀转前缀表达式。

7.B

答案解析

画出哈夫曼树:
image

8.C

答案解析

结点 i 的左儿子是 2i,右儿子是 2i+1。9 是奇数,所以它的兄弟结点是 8,右儿子结点 2×9+1=19。

9.B

答案解析

本题存疑。有向图不存在连通图的概念。

10.D

答案解析

栈和队列均为受限制的线性结构,可以使用两个栈实现队列(加入数据时放入栈 s1s_{1},从s2s_{2}出栈。如果s2s_{2}为空,则将s1s_{1}内的元素放入 s2s_{2}内)。

11.D

答案解析

image

12.B

13.C

14.B

答案解析

image
共计13种。

15.B

答案解析

考察点:递归。递归的概念。

阅读程序

16.A

答案解析

short 占 2 个字节,共 16 位,x,y≤15,经过 4 位最多左移 3 位,因此最多位一直为 0,所以删除unsigned对程序没有影响。

17.B

答案解析

与上题类似,可以知道最多的值一样,但是输出结果类型不一样。

18.B

答案解析

输入 x = 2, y = 2,输出 12。

19.B

答案解析

输出结果为 12。

20.B

答案解析

输出结果为 12。

21.B

答案解析

模拟程序运行,输出结果为 209。

22.B

答案解析

image
结果是 448。

23.A

答案解析

两个函数实现相同的功能,int f(int n, int m) 通过递归实现;int g(int n, int m) 通过动态规划实现。

24.A

答案解析

输出第一行是int f(int n, int m)的值,该函数先判断 m==1。

25.C

答案解析

第三层for循环执行次数:1+2+…+n=n(n+1)/2。故时间复杂度为O(n2m)O(n^{2}m)

26.C

答案解析

因为 f 函数和 g 函数实现相同的功能,可以通过g函数求解。

27.B

答案解析

因为 f 函数和 g 函数实现相同的功能,可以通过g函数求解。

可以画表找规律,从第 5 列开始,往后每列都是 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,...。

28.A

答案解析

进行了二分,所以复杂度为:O(logn+k)O(logn+k)

29.A

答案解析

solve1的作用是求解 n\sqrt{n}向上取整的结果。将9801带入,得到的值是99。因为 k=1,所以 solve2 的值还是 99。

30.B

答案解析

如果算术平方根是无理数,则第二个数输出为 0。

31.B

答案解析

n≤47000,因此数据不会溢出。

32.C

答案解析

代入计算即可,solve1的结果为 1,solve2的结果为 1.5。

33.B

答案解析

31.732\sqrt{3}≈1.732,进行 10 次迭代精度会更高。

34.A

答案解析

256=16×16

35.A

答案解析

判断 i 是不是 n 的因子。

36.B

答案解析

依次输出 n 的因子,因子在动态数组fac内。

37.C

答案解析

第 12 行中 i * i < n,没有判断此时的 i 是否为因子。所以要在此处特判一下。

38.D

答案解析

i 同样也为因子。

39.A

答案解析

若fac[k]为 n 的因子,那么n/fac[k]同样为 n 的因子。

40.A

答案解析

如果想要到达 (r,c) 处,需要满足该处像素与起始点像素相同。

41.B

答案解析

将起始点像素替换为新的像素。

42.C

答案解析

处理四个方向能够到达的点,根据后面的三个方向可以推导出还剩余下方没有处理。

43.D

答案解析

可以到达 (p.r,p.c),需要替换像素为新的像素。

44.A

答案解析

将新找到的点入队列,继续进行BFS搜索。