分享

真题 | 2020CSP-J初赛真题及真题解析

 小橙teacher 2022-09-17 发布于北京

今天我们再把2020年的真题做一遍,明天就要参加2022年csp第一轮认证考试了,预祝同学们明天rp++,取得好成绩!!!

还是先自己独立做题再看后面答案解析呦。

2020年CSP-J初赛真题

2020年CSP-J初赛参考答案解析

1、B

解析:每个内存单元都有唯一的地址。

所以选择A选项。

2、A

解析:编译器的作用就是将源程序翻译成机器指令代码。

3、C

解析:逻辑运算,∪或的意思,左右有一个为真即为真。∩交,与的意思,左右有一个为假即为假。

4、B

解析:2048*1024*32/(8*1024*1024) = 8MB

5、D

解析:最少的情况下就是第一趟遍历中没有交换,即有序。FLAG==1,跳出循环。此时 j 从 1 开始到 k=n-1,共 n-1 次比较

6、B

解析:其实相当于把 A 数组中每一个数一个一个验证,temp 始终是最小的那一个

7、B

解析:链表不支持随机访问

8、C

解析:n个顶点至少需要n-1条边连通,也就是树

9、C

解析:进制转换问题,二进制转十进制,按权值展开求和法

10、D

解析:捆绑法:

两个必须相邻,可以认为他俩绑定在一起,视为一个人。

4的全排列 * 2的全排列 = 4!*2! = 24*2=48

11、C

解析:典型的栈结构,常考题。

12、D

解析:常考题,具体知识参考数据结构基础备考总结。

13、B

解析:1949%10 = 9  己

1949%12 = 5  丑

所以1949年是 己丑年。

14、B

解析:隔板法:

10个分成7组,9个空插6个板

C96 = 9!/ 6!/3! = 7*8*9/3*2*1 = 7*4*3 = 84

15、D

解析:先从五双手套中取完整的两双,方案是组合数C(5,2)==10;然后,从剩下的三双中,取不同色的两只手段,是先从三双中取两双C(3,2)==3然后,再从两双中各取一,是C(2,1)*C(2,1)==4;乘法原理,得数是10*3*4=120。

二、阅读程序题

判断题

1)√

解析:因为数组大小为26,所以只能是大写字母,如果有小写字母会越界。

2)×

解析:根据decoder字符串的值,如果输入是T~Z之间的字母,输出是一样的。

3)√

解析:第12行是统计字符数,由于默认有3个字母,因此修改循环的值不影响统计结果。

4)×

解析:这个程序通过encoder,decoder两次转换产生一个乱序字符串,利用乱序字符串加密 encoder="CSPABDEFGHIKLMNOQRTUVWXYZ"

decoder="DEAFGHIKLMNOPQCRSBTUVWXYZ"

单选题

5)C

解析:输出中有ABC,对应decoder[2]、decoder[18]、decoder[15],则输入的字符分别为字符CSP。

6)D

解析:输出中有ABC,对应decoder[15]、decoder[17]、decoder[13],则输入的字符分别为字符PRN。

2、

判断题

1)×

解析:当k为1时,n为1,1进制的1,1en为2,所以错误。

2)×

解析:输入n为1且k>1时,ans=n

3)√

解析:n转化为1en位的k进制数字值最大值为k~1en-1,因此k~len>n。

单选题

4)D

解析:当输入的k为1时,会直接进位,1en为2,但是后面触发不了1en++的条件,结果就是,1en一直是2,每次d[0]++都会进位,输出ans=n。

5)A

解析:

第1位,每k次运算进位1次;第2位,每k2次运算进位1次;

.…

因此第1位,会产生330/3次进位,第2位会产生330/32次进位……最后一位,会产生1次进位。

因此答案=3~30/3+330/32…+1根据等比数列求和公式Sn=(330-1)/(3-1)

6)D

解析:

同上一问:

第1位进位次数=100010002000090/10次第2位进位次数=100010002000090/100次

最后一位进位次数=1次

对上述数值求和可得D

3、

1)×

解析:输入n为0,什么都没做,结束程序。

2)√

解析:全是0,运算过程中所有s都是0,ans也是0。

3)×

解析:这里减法,所以ans可能小于输入的d[i][1],例如输入:00和55输为0

单选题

4)C

解析:第二列为0,可以忽略。第1次合并:9+9=9*2第2次合并:18+9=9*3第3次合并:27+9=9*4……第19次合并:9*29因此和=9*2+9*3+…+9*20=1881

5)B

解析:第1次合并:5-5=0第2次合并:5+5-5=5=5*1第3次合并:10+5-5=10=5*2…第29次合并:5*30-5=5*28求和=5*(1+2+…+28)=2030

6)D

解析:对于第1列:第1次合并=15+14第2次合并=15+14+13…第14次合并=15+14+13+12+…+115*14+14*14+13*13…+1*1=1225对于第2列:第1次合并=15-14第2次合并=15+14-13第3次合并=15+14+13-12……第14次合并=15+14+13+12+…+2-115*13+14*12…+3*1=1001,这里加上14个1最终答案是:2240

三、完善程序题

质因数分解

1)D

解析:质因子从2开始枚举。

2)D

解析:质因子最大到n/i 为止,可以写成i*i <= n。所以选择D选项。

3)D

解析:只要n%i == 0,则说明i是质因子,则输出i,并且除去,直到n%i !=0为止。所以应用while循环。条件为n%i==0。

4)A

解析:当while循环结束后,n如果还大于1,则说明n是唯一一个大于根号n的那个因子。所以直接输出此时的n的值即可。

5)D

解析:见(4)

最小区间覆盖

1)C

解析:贪心策略,先对区间的左端点进行从小到大排序。题目中采用冒泡排序。

所以如果A[j].a < A[j-1].a,则将其交换。选择C选项。

2)C

解析:交换A[j].a 与A[j-1].a,因为题中已提前把A[j].a存储起来,所以接下来可以给A[j]重新赋值为A[j-1],然后再将t赋值给A[j-1]。

3)C

解析:找到右端点的较大值覆盖右端点较小的值。

4)B

解析:R在这里显然是当前的终点,那么如果一个区间的左端点小于等于当前的终点,说明有重叠区间,那么这个区间就要被跳过。q初值为0,A[0]当然不能跳过,因此第一个条件是A[q+1].a<=r;到此就能看出答案了,至于另一个q+1<n显然是为了防止越界。< p="">

5)B

解析:更新r为当前选中区间的右端点的值。

往/期/回/顾

备考 | CSP初赛专题(二)之计算机基础知识

备考 | CSP初赛专题(三)之数学知识

真题 | 2021CSP-J初赛真题及答案解析

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多