2022年信息学奥赛CSP-J1初赛真题试卷
剩余时间 --:--:--
单选题 共 32 题
1.
以下那种功能没有涉及C++语言面向对象特性的支持(     )
2.

对假设栈S和队列Q的初始状态为空。存在e1~e6六个互不相同的数据,每个数据按照进栈S、出栈S、进队列Q、出队列Q和顺序操作,不同数据间的操作可能会交错。已知栈S中依次有数据e1、e2、e3、e4、e5 和 e6 进栈,队列 Q 依次有数据 e2、e4、e3、 e6、e5和e1出队列。则栈S的容量至少是( )个数据。

3.

链表和数组的区别包括(    )

4.

运行以下代码片段的行为是( )。

int x = 101;
int y = 201;
int *p = &x;
int *q = &y;
p = q;
5.

有 6 个元素,按照 6、5、4、3、2、1 的顺序进入栈 S,请问下列哪个出栈序列是非法的 ( )。

6.

一个字符串中任意个连续的字符组成的子序列成为该字符串的子串,则字符串abcab有(    )个互不相同的子串。

7.

八进制数32.1对应的十进制数是(     )

8.

以下排序算法的常见实现中,哪个选项的说法是错误的(    )

9.

以下哪组操作能完成在双向循环链表结点 之后插入结点 的效果(其中,next 域为结 点的直接后继,prev域为结点的直接前驱):( )。

10.

以下对数据结构的表述不恰当的一项为(     )

11.

考虑N个顶点构成的有向连通图,采用邻接矩阵的数据结构表示时,该矩阵中至少存在(   )个非零元素

12.

一棵有 n 个结点的完全二叉树用数组进行存储与表示,已知根结点存储在数组的第 1 个位 置。若存储在数组第 9 个位置的结点存在兄弟结点和两个子结点,则它的兄弟结点和右子 结点的位置分别是( )。

13.

假设字母表 {a, b, c, d, e} 在字符串出现的频率分别为 10%, 15%, 30%, 16%, 29%。若使用哈夫曼编码方式对字母进行不定长的二进制编码,字母 的编码长度为 ( )位。

14.

对表达式a+(b-c)*d的前缀表达式为(     ),其中+-*/时运算符。

15.

以下对递归方法的描述中,正确的是(     )

16.

当输入为“13 8”时,输出为(     )

17.

算法g(n,m)最为准确的时间复杂度分析结果为

18.
若输入数据为“20 2”,输出的第一行为
19.
当输入为“100 100”时,输出的第一行为
20.
若输入数据为“2 1”则程序输出的第一个数为(     )。
21.
若输入数据为“3 10”则程序输出的第一个数为(     )。
22.
当输入为“256 11”时,输出的第一个数(     )。
23.
①处应填(     )
24.
②处应填(     )
25.
③处应填(     )
26.
④处应填(     )
27.
⑤处应填(     )
28.
①处应填(     )。
29.
②处应填(     )。
30.
③处应填(     )。
31.
④处应填
32.
⑤处应填(     )。
判断题 共 12 题
1.

删去第7行与第13行的unsigned,程序行为不变(    )

2.

将第7行与第13行的short均改为char,程序行为不变(    )

3.

程序总是输出一个整数“0”(    )

4.

当输入为“2 2” 时,输出为“10”(    )

5.

当输入为“2 2”时,输出为“59” (    )

6.

当输入为7,3时,第19行采用来去最小值的min函数执行了449次

7.
输出的两行整数总是相同的
8.

当m为1时,输出的第一行总为n

9.
该算法最准确的时间复杂度分析结果为O(logn+k)
10.
当输入为“9801 1”时,输出的第一个数为“99” 
11.
对于任意输入的n,随着所输入k的增大,输出的第二个数会变成“1” 
12.
该程序有存在缺陷。当输入的n过大时,第12行的乘法有可能溢出,因此应当将mid强制转换为64位整数再计算
C++ 编辑器
输入
输出