#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 个数据。

6.B
答案解析
考察点:中缀转前缀表达式。
7.B
答案解析
画出哈夫曼树:

8.C
答案解析
结点 i 的左儿子是 2i,右儿子是 2i+1。9 是奇数,所以它的兄弟结点是 8,右儿子结点 2×9+1=19。
9.B
答案解析
本题存疑。有向图不存在连通图的概念。
10.D
答案解析
栈和队列均为受限制的线性结构,可以使用两个栈实现队列(加入数据时放入栈 ,从出栈。如果为空,则将内的元素放入 内)。
11.D
答案解析

12.B
13.C
14.B
答案解析

共计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
答案解析

结果是 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。故时间复杂度为。
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
答案解析
进行了二分,所以复杂度为:。
29.A
答案解析
solve1的作用是求解 向上取整的结果。将9801带入,得到的值是99。因为 k=1,所以 solve2 的值还是 99。
30.B
答案解析
如果算术平方根是无理数,则第二个数输出为 0。
31.B
答案解析
n≤47000,因此数据不会溢出。
32.C
答案解析
代入计算即可,solve1的结果为 1,solve2的结果为 1.5。
33.B
答案解析
,进行 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搜索。