• 2021 CCF非专业级别软件能力认证第一轮 (CSP-S)提高级 C++答案及解析


    试卷下载 浙江S组入围线58.5分,入围人数共954名,有效参加共2321人。

    一、单项选择题

    1. 答案:A

    解析:ls,大纲里要求在 Linux系统终端中使用cd、pwd、ls等命令更改、显示目录路径和查看目录中的文件

    2. 答案:B

    解析:和的规则为1+1=10,0+1=1,0+0=0,注意进位。

    3. 答案:A

    解析:栈溢出,上课过程中天天强调。

    4. 答案:C

    解析:比赛前着重讲了,稳定性指的是对需要排序的数据元素序列,将其按关键字进行排序,若相同关键字元素之间的位置关系,排序前与排序后的相对位置不发生变化,称此排序方法满足稳定性;否则称这种排序方法满足不稳定性。堆的话只分左右孩子,当然不满足。

    5. 答案:C

    解析:2*n个数找最大值,直接找需要(2*n-1)*2次比较,但是过程中如果他比最大值要大,最小值就不需要比较了,否则最大不用比较。
    将n个数分为n对,两个谁大谁小1次,共n次。
    接下来n个分别求最大最小,共((n-1)*2)次。
    总次数为3n*2

    6. 答案:C

    解析:模拟,带进去算分别是0,1,4,9,5,3,3,5,最后的3和5冲突了,要移动到6和7。

    7. 答案:C

    解析:又是一道原题,留一个点,其他两两有边,(9*(9-1)/2=36)

    8. 答案:B

    解析:根的节点为1,满足高度为k最多(2^k -1)个节点,(2^{11} -1=2047)

    9. 答案:D

    解析:前序遍历为根左右,中序遍历为左根右,根肯定要访问,只有左子树全部没有。

    10. 答案:A

    解析:模拟就可以,如果知道逆序对的性质直接算下逆序对。

    11. 答案:A

    解析:模拟的话我认为这个题非常麻烦,可以使用费马小定理。p为质数,满足(a^{p-1}≡1(mod) p),那么(solve(t,n)=5^{t-1}mod n),即 (a^{22}≡1(mod) 23)

    12. 答案:C

    解析:每次递归分之为2次,n次需要分支,大约就是n个2相乘。

    13. 答案:C

    解析:这个题是列举不出来的,当前选的苹果可以在之前选or不选的基础上,可能很容易找到递推方程为斐波那契。但是至少选1个,把不选的减去。即求Fib(8)-1

    14. 答案:C

    解析:利用集合,先计算ab、bc、ac相等的情况个数,再减去abc相等的个数。如果腰的长度是x,底的长度必须小于2x,有1+3+5+7+9+9+9+9+9=61种,每个均有3种排列。等边三角形9个,会被多算两次。即(3*61-2*9=165)

    15. 答案:B

    解析:这个题有层次,可以和数塔一样从后往前推。

    二、阅读程序

    1.几何相关,没学过高中的三角函数大概这题考的不高

    1) 答案:T

    解析:t算出来的是整数,没有经过取整。

    2) 答案:F

    解析:先/2向下取整了,如果是奇数不就没了。

    3) 答案:F

    解析:sq的参数会被转为int,但是x和y是double啊,有sqrt(2)

    4) 答案:T

    解析:acos(0.5),高中的你大概接触过三角函数?这不就是PI/3吗,模拟快的。

    5) 答案:D

    解析:模拟

    6) 答案:C

    解析:分析单位,肯定是体积了。求出来的球心距离,距离和半径比,分别对应互相包含和不包含。如果搞不懂上面的话包含取min还是懂吧。

    2.求最大子段和,slove1通过合并,slove2通过分治。

    1) 答案:T

    解析:n<=0有判断,正常执行满足。是不是想等的呢,得看程序了。

    2) 答案:F

    解析:n<=0时正常执行。

    3) 答案:F

    解析:这个题就要看懂程序了,如果没接触过这个算法,大概很受伤。

    4) 答案:B

    解析:等比数列求和,不超过n

    5) 答案:C

    解析:分治很多都是多个log,比如归并。这个程序是(T(n)=2*T(n/2)+n),赛前也推过的

    6) 答案:B

    解析:模拟算下就行,看懂程序很简单。

    3.比赛前一天早上出了这一套题,还没来得及给学生练。TZOJ7214: Base64编码,如果了解背景这题就是送的。不了解的话由于有些位运算,可能不太好做,搞了一个table存了些字符,可以理解就是加密解密。

    1) 答案:F

    解析:decode过程中出现' ',就不是一行了

    2) 答案:T

    解析:编码解码就是这样的。

    3) 答案:F

    解析:得算一下。

    4) 答案:B

    解析:encode只有一个n的循环,string只有添加字符操作

    5) 答案:D(我认为D或BD或全对)

    解析:char C语言并没有定义是否unsigned,即ub(undefined behavior)。

    6) 答案:D

    解析:长度%3=1,两个==,然后模拟那么不一样的就可以了。

    三、完善程序

    1.搞了个类dij,每次满足条件都会update松弛下。F[i]表示到i需要几个4,vis表示是否算过。

    1) 答案:D

    解析:初始条件

    2) 答案:A

    解析:没有算过就算

    3) 答案:D

    解析:找到F中最小的数松弛

    4) 答案:C

    解析:没有算过才能操作。但是去掉也可以

    2.先处理笛卡尔树,再DFS求出欧拉序,然后求块间的最小值,最后求块内的最小值。难飞了

    1) 答案:A

    解析:构建笛卡尔树,链接当前节点的左孩子。

    2) 答案:D

    解析:构建笛卡尔树,当前节点链接到断开位置的右孩子。

    3) 答案:A

    解析:dfs树上求LCA,这个简单,深度越浅越优。

    4) 答案:D

    解析:这个有点送,只有一个根据深度来的。

    5) 答案:D

    解析:这个题要用前一题,我不会

    6) 答案:C

    解析:89行返回值中,较低位是左边的,要右移,而且和l有关。

    大佬您太强了,还请多多指教哎
  • 相关阅读:
    YourSQLDba遭遇.NET Framework Error 6522
    ORACLE NLS_DATE_FORMAT设置
    RHEL下SendMail修改发邮箱地址
    SQL Server如何定位自定义标量函数被那个SQL调用次数最多浅析
    ORACLE归档日志比联机重做日志小很多的情况总结
    ORACLE获取SQL绑定变量值的方法总结
    ORACLE SEQUENCE跳号总结
    ORACLE中seq$表更新频繁的分析
    批量修改所有服务器的dbmail配置
    MySQL 修改账号的IP限制条件
  • 原文地址:https://www.cnblogs.com/BobHuang/p/15312324.html
Copyright © 2020-2023  润新知