今天我们再把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初赛真题及答案解析 |
|