目录

一、选择题:每题 2 分,共 15 题, 30 分. 在每小题给出的四个选项中,只有一项是符合题目要求的.

二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 3,错误填 7;除特殊说明外,判断 题每题 1.5 分,选择题每题 4 分,共 40 分)

三、完善程序(单选题,每小题 3 分,共 30 分)


2020 CCF 非专业级别软件能力认证第一轮

(CSP-S) 提高级 C++ 语言试题

一、选择题:每题 2 分,共 15 题, 30 分. 在每小题给出的四个选项中,只有一项是符合题目要求的.

1.  下列关于 NOIP 的说法, 错误的是: A

(A).NOIP 中文名称为全国青少年信息学奥林匹克联赛,将于今年恢复举行。

(B).参加 NOIP 是参加 NOI 的必要条件,不参加 NOIP 将不具有参加 NOI 的资格。

(C).NOIP 竞赛全国前五十名将获得进入国家集训队的资格。

(D).在 NOIP 复赛中, NOI 各省组织单位必须严格遵循 CCF  《关于 NOIP 数据提交格式的说明》的规范在 竞赛结束后规定时间内向 CCF 提交本赛区所有参赛选手的程序。

2.  二进制数 001001 与 100101 进行按位异或的结果为: A

(A).101000                          (B).100100                          (C).101101                          (D).101100

3.  在 8 位二进制补码中, 10101011 表示的数是十进制下的 A

(A).43                                  (B). −43                               (C). −85                               (D).−84

4.  平衡树是计算机科学中的一类数据结构, 为改进的二叉查找树。一般的二叉查找树的查询复杂度取决于 目标结点到树根的距离(即深度),因此当结点的深度普遍较大时, 查询的均摊复杂度会上升。为了实现 更高效的查询,产生了平衡树。下列数据结构中,不属于平衡树的为: A

(A).线段树             (B).Splay 树           (C).替罪羊树           (D).红黑树

5.  组合数 (k(n)) 为从 n 件有标号物品中选出 k 件物品的方案数, 例如 (2(3)) = 3。已知 n, k ∈ N,下列说法错

误的为: A

(A). (k(n)) = (n k(−)1)+()。

(B). (2k(n))(0 ≤ k ≤ 2n) 在 k = n 时取得最大值。

(C).卡特兰数 Cn  = (n(2n))/n

(D).包含 n 个 0 和 k 个 1,且没有两个 1 相邻的字符串的数量为 (nk(+)1).

6.  下列有关 CPU 的说法,正确的有A

(A).CPU 的用途是将计算机系统所需要的显示信息进行转换驱动显示器。

(B).CPU 的性能和速度取决于时钟频率(一般以赫兹或千兆赫兹计算, 即 hz 与 Ghz) 和每周期可处理的指 令(IPC),两者合并起来就是每秒可处理的指令(IPS)。

(C).AMD 是世界上最大的半导体公司,也是首家推出 x86 架构处理器的公司。

(D). 目前的 CPU 一般都带有 3D 画面运算和图形加速功能,所以也叫做“图形加速器”或“3D 加速器”。

7.  下列算法中, 没有用到贪心思想的算法为 A

(A).计算无向图最小生成树的 Kruskal 算法。

(B).计算无向图点双连通分量的 Tarjan 算法。

(C).计算无向图单源最短路路径的 Dijkstra 算法。

(D). 以上算法均使用了贪心的思想。

8.  在图 G = (V, E) 上使用 Bellman –Ford 算法计算单源最短路径,最坏时间复杂度为A (A).Θ(|V ||E|)                     (B). Θ(|V | log |V |)               (C). Θ(|E| log |E|)               (D).Θ(|E|)

9.  若要使用 g++ 编译器, 开启 -Ofast 优化, 且使用 C++ 11 标准, 将源文件 prog.cpp 编译为可执行程 序 exec ,且保留调试信息,则需要使用的编译命令为 A

(A).g++ prog.cpp -Ofast exec -std=c++11 -debug

(B).g++ prog.cpp -Ofast exec -std=c++11 -g

(C).g++ prog.cpp -o exec -Ofast -std=c++11 -debug

(D).g++ prog.cpp -o exec -Ofast -std=c++11 -g

10.  已知袋子 α 中装有 4 张 5 元纸币和 3 张 1 元纸币, 袋子 β  内装有 2 张 10 元纸币与 3 张 1 元纸币, 袋 子 γ  中装有 3 张 20 元纸币与 3 张 50 元纸币。现在从每个袋子中随机选出 2 张纸币丢弃, 记第 i 个袋 子此时剩下的纸币面值之和为 vi ,则 vα  < vβ  < vγ   的概率为 A

(A).                                    (B).                                    (C).                                    (D).

11.  Hackenbush 是一款老少皆宜的双人博弈游戏。该游戏双方分别被称为红方与蓝方。游戏的局面基于一些 顶点和边, 其中边分为红色、蓝色与绿色。一些顶点长在大地上(用虚线表示),而另一些顶点将通过边 直接与间接地与大地相连。每一局将从事先约定好的一方开始, 每一方轮流选择属于自己颜色的边, 然 后将该边删除。特别地, 对于绿色的边, 红蓝双方都可以进行删除操作。如果删除后, 某些顶点或边不 再与大地联通, 则这些顶点或边将自动被删除。如果轮到某一方时, 属于他的颜色的所有的边都被删除 了,那么他就输了整场游戏。

12.  记将 n 个有标号球, 放到若干个无标号集合, 每个集合可空的方案数为 fn 。{k(n)} 为第二类斯特林数, 其 表示将 n 个有标号球放到 k 个非空的无标号集合内的方案数。则下列说法:

(a)  fn  = ∑k(n)=0  {k(n)}

(b)  fn  = ∑ (n k(−)1)fk

(c)  fn  = [ ] eex −1

正确的为: A

(A).(a), (b)                         (B). (a), (c)                          (C).(c)                                 (D).(a), (b), (c)

13.  已知参数 k,对于递归式 T (n) = k ^nT (^n) + n 的说法,正确的是A

(A).当 k = 1 时, T (n) = Θ(n log n)                            (B). 当 k = 1 时, T (n) = Θ(n log2 n)

(C).当 k = 4 时, T (n) = Θ(n log n)                            (D).当 k = 4 时, T (n) = Θ(n log2 n)

14.  对于图 G = (V, E) 中的边 e ∈ E,我们记 G − e 表示将边 e 删除后得到的新图 G\ ,G/e 表示将 e 删除, 并将 e 的两个端点合并为一个点后得到的新图(如图所示, G/(u, v) 即为 u, v 合并为 w 后得到的图)

需要注意的是, 合并操作会保留所有的重边, 即在上图操作后, w 向外连边数为 8 而不是 7。特别地, 若 u, v 之间有多条重边,则 G/(u.v) 只会删去其中一条,其余的重边将构成新图中 w 指向自己的自环。  图 G = (V, E) 的 Tutte 多项式 是一个关于变量 x, y 的多项式,满足:

•  若 E = ?,则 T (G; x, y) = 1.

•  若 e 是 G 的一个桥边,则 T (G; x, y) = xT (G − e, x, y).

•  若 e 是 G 的一个自环,则 T = (G; x, y) = yT (G − e; x, y).

•  若 e 既不是桥边,也不是自环,则 T (G; x, y) = T (G − e; x, y) + T (G/e; x, y).

容易证明, 一张图 G 的 Tutte 多项式是唯一的。设 K4 (V, E) 为四阶完全图, e ∈ E,则 K4 − e 的 Tutte

多项式可能是: A

(A).x3  + 2x2  + x + 2xy + y + y2

(B).x3  + x2  + x + 2xy + y + y2

(C).x3  + 2x2  + 2x + 2xy + y + y2

(D).x3  + x2  + 2x + 2xy + y + y2

15.  满足 k! = ∏1 (2n  − 2i ) 的正整数对 (k, n) 的数量有 A 个

(A).1                                      (B).2                                      (C).3                                      (D).4

二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 3,错误填 7;除特殊说明外,判断 题每题 1.5 分,选择题每题 4 分,共 40 分)

(一)     (12 分)阅读下面一段程序,完成 16 ∼ 21 六道小题。

给定长为 n 的序列 a ,ai   的元素均为 [0, 109 ] 内的整数。计算

对 109  + 7 取模后的值。其中 [P] 当命题 P 为真时值为 1,否则值为 0。

判断题:

16.  (1 分) vec.push_back(x) 的含义为向容器 vec 的尾部插入元素 x 。A

17.  (1  分) 对于 0 ≤ i ≤ 231  − 1,语句 i&1  的含义与 i mod 2 等价。 A

18.  该程序需要注意运算时可能超出 int 类型所能容纳的最大数据的风险。 A

19.  函数 inc(x, y) 的含义为返回 (x + y) mod (109  + 7) 的值 (0 ≤ x, y < 109  + 7) 。A 选择题:

20.  (3 分) 该算法的时间复杂度为: A

(A).Θ(n)                              (B). Θ(n2 )                            (C). Θ(n log2 n)                   (D).Θ(n log n)

21.  下列说法错误的为: A

(A).该算法的空间复杂度为 Θ(n)。

(B).在循环语句前执行 vec.push_back(0) 是因为 std::vector 容器下标从 0 开始计数。

(C).若将 inc 函数接收的参数类型改为 long long ,该函数仍将返回预期的结果。

(D).若要对 x, y ∈ [0, 109  + 7) 进行运算 (x − y) mod (109  + 7),可以调用函数 inc(x, mod - y)。

(二)     (13 分)阅读下面一段程序,完成 22 ∼ 27 六道小题。

提示:该程序的输入为一张 n 个点 m 条边的连通无向图。输入格式为:

•  输入的第一行包含两个整数 n, m(1 ≤ n ≤ m ≤ 100)。

•  接下来一行,包含三个整数 u, v, w(1 ≤ u, v ≤ n, 1 ≤ w ≤ 100)。

判断题:

22.  (1 分) 该程序实现了用于求无向图 G = (V, E) 的最小生成树的算法。   A

23.  (1 分) 程序中使用了邻接矩阵来存储图 G = (V, E) 。   A

24.  为了确保该算法的结果符合预期,输入需要保证所有的 w 互不相同。   A

25.  对于任意合法的输入,该程序一定会在有限步内返回结果。   A

选择题:

26.  变量 components 在运行过程中可达到的最小值为 A 。

(A).1                                    (B).0                                    (C).「⌋                                    (D).m − (n − 1)

27.  该程序的时间复杂度为 A

(A).Θ(nm)                          (B). Θ(n2 )                            (C). Θ(n log n)                     (D).Θ(m log n)

提示:该程序的输入为一张 n 个点的连通图。

判断题:

28.  (1 分) 由程序的建图方式,可以猜测输入的图 G 为一棵树。   A

29.  函数 dfs(int, int) 用于计算每个节点的深度,并存储至数组 dep[] 。   A

30.  函数 solve() 通过广度优先搜索,在树 T 上构造了一条路径。   A

31.  (2 分) 程序将输出一个大小为 n 的排列。   A

选择题:

32.  该程序读入以下数据后,输出结果为:   A     。

1    8

2    1  2

3    2  3

4    3  4

5    4  5

6    4  6

7    4  7

8    7  8

(A).1 3 8 7 5 6 4 2             (B).1 3 7 8 6 5 4 2             (C).1 3 8 7 5 6 2 4             (D).1 3 7 8 6 5 2 4

33.  (5 分) 该程序对于给定的图 G,构造出另一个图 G\,并在 G\  上构造某条特殊的路径。记 dG (u, v) 为图 G 中 u, v 两点的距离,则有关 G\ (V\ , E\ ) 的构造方法与找出的路径的说法,正确的为: A

(A).V\  = V, E\  = {(u, v) | u, v ∈ V, dG (u, v) ≤ 2},找出的路径为哈密顿路径。

(B).V\  = V, E\  = {(u, v) | u, v ∈ V, dG (u, v) ≤ 2},找出的路径为欧拉路径。

(C).V\  = V, E\  = {(u, v) | u, v ∈ V, dG (u, v) ≤ 3},找出的路径为哈密顿路径。

(D).V\  = V, E\  = {(u, v) | u, v ∈ V, dG (u, v) ≤ 3},找出的路径为欧拉路径。

三、完善程序(单选题,每小题 3 分,共 30 分)

(一)     (15 分)阅读下面一段程序,完成 34 ∼ 38 五道小题。

对于图 G = (V, E),我们定义它的线图 L(G) 为一张 |E| 个点的无向图,满足:

•  原图 G 中的边 e 对应 L(G) 中的一个点 u。

•  L(G) 中点 u, v 之间有连边,当且仅当 G 中 u, v 对应的边有公共的顶点。 下图展示了如何通过 G 构造出 L(G)。

现在,给定一棵树 T ,你需要计算出它的 k 阶线图 Lk (T) 的点数。其中 k 阶线图的定义如下:

Lk (G) =〈 G

输入格式: 输入的第一行包含两个整数 n, k。接下来 n − 1 行,每行两个整数 u, v ,描述树中的一条边。

输出格式: 输出一行一个整数,表示答案。

数据范围: 1 ≤ k ≤ 5, 1 ≤ n ≤ 50。

(二)     (15 分)阅读下面一段程序,完成 39 ∼ 43 五道小题。

给定 n 个区间 [l1 , r1 ], [l2 , r2 ], · · · , [ln , rn ]。你需要求出有多少种不同的方案, 给每个区间涂上黑白两种颜 色之一,使得任意同色区间两两交集为空集。

答案可能很大,因此要对 998, 244, 353 取模。

输入格式: 输入的第一行包含一个整数 n。接下来 n 行,每行两个整数 li , ri。

输出格式: 输出一行一个整数,表示答案。

数据范围: 1 ≤ n ≤ 106 , 1 ≤ li  ≤ ri  ≤ 109。

2020 CCF 非专业级别软件能力认证第一轮(CSP-S) 提高级 C++ 语言试题相关推荐

  1. 2022 CCF 非专业级别软件能力认证第一轮 (CSP-J1)入门级 C++语言试题 认证时间:2022 年 9 月 18 日 09:30~11:30

    今天的考试题,有点乱 2022 CCF 非专业级别软件能力认证第一轮 (CSP-J1)入门级 C++语言试题 认证时间:2022 年 9 月 18 日 09:30~11:30 考生注意事项:  试题 ...

  2. 2020 CCF非专业级别软件能力认证第一轮(LGR-10)洛谷模拟试题试卷

    2020 CCF非专业级别软件能力认证第一轮 (LGR-10)洛谷模拟试题试卷 认证时间:2020年10月8日09:30-11:30 一.单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正 ...

  3. 2020年CSP-J认证 CCF非专业级别软件能力认证第一轮真题--阅读程序题

    2020 CCF认证第一轮(CSP-J)真题 二.阅读程序题 (程序输入不超过数组或字符串定义的范围,判断题正确填√错误填X;除特殊说明外,判断题 1.5分,选择题3分,共计4 分) 第一题 01 # ...

  4. 2021 CCF 非专业级别软件能力认证第一轮(CSP-S1)提高级

    C++语言试题,认证时间:2021 年 9 月 19 日 09:30~11:30 考生注意事项: l 试题纸共有 16 页,答题纸共有 1 页,满分 100 分.请在答题纸上作答,写在试题纸上的 一律 ...

  5. ccfcsp题库c语言,2019年CCF认证第一轮CSP-S信息学C++试题答案A卷

    原标题:2019年CCF认证第一轮CSP-S信息学C++试题答案A卷 CSP-J/S是CCF创办的CSP(软件能力认证)中面向非专业级的软件能力认证,于今年首次开设,分为CSP-J(入门级,Junio ...

  6. 非专业级软件能力认证(CSP-J/S)

    目录 主办方:★★★★★ 中国计算机学会(CCF) 考试内容:★★★★★ C++,分为CSP-J和CSP-S分别有两轮认证. 第一阶段:基础知识,数据结构(入门),第二阶段:算法,上机操作(上机,编程 ...

  7. CCF csp软件能力认证 第15次 第5题 管道清洁 java 100分

    题目csp模拟考试系统201812-5的题目. 我的java张老师是负责csp的,于是java的一个作业就是做这一套题.用java写,行,c++转java而已,写算法题嘛,基本语法懂了就好了,就边学边 ...

  8. CCF软件能力认证201604俄罗斯方块

    试题编号: 201604-2 试题名称: 俄罗斯方块 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏. 游戏在一个1 ...

  9. 2020计算机等级考试软件版本,‎App Store 上的“计算机等级考试C语言版 2020最新”...

    2020最新试题 全国计算机等级考试二级C语言考试通关神器!选择题+上机操作题+最新押题+考点汇总,海量题库含解析,通关无忧! 每一道试题都有答案解析,为考试的提供了充分的复习准备,可随时随地学习练习 ...

最新文章

  1. 【Python】卸载完Python3 之后 Python2 无法打开IDLE
  2. 22Java之JDBCTemplate总结
  3. .NET Core + Kubernetes:Volume
  4. vue保存页面的值_vue中使用localStorage存储信息
  5. 2020年Mybatis源码解读
  6. 管理感悟:知行合一与内化
  7. python实现算法改进_运动目标检测vibe算法及其改进Python实现
  8. TraceView 的使用
  9. 企业微信api,企业微信sdk接口java调用源码
  10. Ubuntu最佳字体推荐
  11. 无人车传感器 IMU 深入剖析
  12. Mac运行ftp报错Error: JAVA_HOME is not defined correctly.
  13. 美国队用计算机计算排球队员,排球理论考试题库
  14. 计算机通信中应用的调制解调与无线电通信,计算机通讯中的一对搭档——调制解调器和通讯软件...
  15. ES6 — ES11 新特性一篇通
  16. vue.js 的学习之路
  17. 求和1+2+......+n
  18. 手把手教你从0开始搭建个人博客,东半球最详细的保姆级博客搭建部署教程 | 程序员人手必备个人博客网站
  19. Mysql 安装及my.ini的创建
  20. 生活小妙招---wifi遥控点火器

热门文章

  1. 河南省继续医学教育学分
  2. 这几天一直在给自己打鸡血~
  3. 【数据库系统】数据库系统概论====第十四章 大数据管理
  4. 学习PySide2基于Python开发人工智能系统应用
  5. 如何实现android手机扫描条码到数据库查询信息并打印
  6. 【DCT笔记】DCT变换、DCT反变换、分块DCT变换
  7. Python使用for循环完成剪刀石头布作业
  8. 小年糕php源码,压缩html_PHP压缩html的函数代码
  9. 肝了一晚上整理出来的前端面试题
  10. 如何添加页面链接网址的图标