CSP2021-J1-真题解析

一、选择题

1、D,考察信息学基础-常见的编程语言,C++, Python, Java都是典型的面向对象语言,C是典型的面向过程语言
2、B,基础题,考察信息学基础-计算机常识,图灵奖是计算机领域的最高荣誉
3、A,考察信息学基础常识-数据存储格式,二进制
4、C,考察排序问题,基于比较的排序过程中,要找出最大数,最坏情况就是逐个遍历所有数,先假定第一个数是最大数,然后依次与剩余的N-1个数比较,得出最大数,需要比较N-1次
5、D,简单数据结构,考察栈的先进后出的特点,观察D选项,c,d先出栈,则表示c,d已入栈,所以a,b必然也已经入栈,根据先进后出的特点,那a不可能在b的前面出栈,故选D
6、D,简单数据结构-图和树,考察图的连通性和树的边数和结点数的关系,一个n个顶点的树,边数是n-1,所以要将m条边变成n-1条边,需要删掉m-(n-1)=m-n+1条边
7、C,信息学基础-进制转换
8、A,树的基本结构,完全二叉树最底下那层的节点至少1个,至多全部排满,并且只能从左至右排列,本题中,高度为5的完全二叉树,前4层必然是排满的,第5层可以有1~16个结点,故有16种可能的形态
9、B,考察中缀-后缀表达式转换,已知中缀的话,可以快速画出二叉树结构,然后树的后缀遍历即是后缀表达式。
根据运算符为根节点,操作数为叶子结点的规则,以及运算优先级和结合性,先计算b+c,再计算 a ∗ a* a,最后计算 ∗ d *d d,得到二叉树,然后对树做后续遍历即可。
10、B,排列组合,首先考虑区分队伍编号的情况,第1个队,有 C 6 2 C^2_6 C62种选法,第2队,第3队依次有 C 4 2 , C 2 2 C^2_4, C^2_2 C42,C22种选法,总共是 C 6 2 ∗ C 4 2 ∗ C 2 2 = 90 C^2_6*C^2_4*C^2_2=90 C62C42C22=90 种,如果不区分队伍编号,则需要除以掉3个不同队伍的全排列 A 3 3 A_3^3 A33
结果是 90 / ( 3 ∗ 2 ∗ 1 ) = 15 90/(3*2*1)=15 90/(321)=15
11、B,哈夫曼编码算法是贪心算法的经典应用
12、A,排列组合,此题数据量很小,可以直接枚举得到:
1、不重复的3个数字,有 3 ∗ 2 ∗ 1 = 6 3*2*1=6 321=6
2、两个重复数字,有 < 1 , 1 , 2 > , < 1 , 1 , 3 > , < 2 , 2 , 1 > < 2 , 2 , 3 > <1,1,2>,<1,1,3>,<2,2,1><2,2,3> <1,1,2>,<1,1,3>,<2,2,1><2,2,3>,4种情况,每种可以组成3个不同的数,总共12种
结果是:6+12=18
13、C,考察递归算法,阅读程序可得,当n小于5时,函数计算的是n的阶乘,大于5时递归计算n*solve(n-2),所以:
s o l v e ( 7 ) = 7 ∗ s o v l e ( 5 ) = 7 ∗ 5 ∗ s o l v e ( 3 ) = 7 ∗ 5 ∗ 3 ! = 210 solve(7)=7*sovle(5) =7*5*solve(3) =7*5*3!=210 solve(7)=7sovle(5)=75solve(3)=75

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

严老师编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值