2024CSP-J原创初赛模拟卷6

(认证时间:2023年9月16日 09:30~11:30)
*
基本信息:
姓名:
姓名:
班级:
班级:
学校:
学校:

一、单项选择题(每题只有一个正确选项,每题2分,共30分)

*
1.考虑以下C++代码片段,正确的输出是():
#include <iostream>
using namespace std;
int main() {
             int x = 3;
             cout << (++x * x) << endl;
             return 0;
}
A. 9
B. 12
C. 16
D. 编译错误
*
2. 从 5 个男生和 4 个女生中选出 3 人参加活动,要求至少有一个男生和一个女生,那么不同的选法有()种
A. 40
B. 50
C. 70
D. 140
*
3. 给定一个数组 arr[] = {1, 2, 3, 4, 5},执行以下代码后,数组的最后一个元素是():
for(int i = 0; i < 5; ++i) {
arr[i] += i;
}
A. 1
B. 2
C. 9
D. 编译错误
*
4.有 8 个人排队,其中甲、乙两人必须相邻,有多少种不同的排法?()
A. 10080
B. 14400
C. 5040
D. 180
*
5. 十进制数 18 对应的二进制数是()。
A. 10010
B. 10110
C. 110
D. 1110
*
6. 快速排序算法的平均时间复杂度是()。
A. O(n)
B. O(nlogn)
C.
D. O(logn)
*
7. 给定一棵完全二叉树,其层序遍历结果为 "A B C D E F G H"。以下哪个选项正确地描述了这棵完全二叉树的某个可能的前序遍历结果?
A. A B D H E C F G
B. A B C D E F H G
C. A D B E C F G H
D. A C B D E F G H
*
8.给定表达式的中缀表达式为 "3 * 4 + 5 - 6",其对应的后缀表达式是()。
A. 3 4 * 5 + 6 -
B. 3 4 * + 5 6 -
C. 3 4 5 * + 6 -
D. 3 4 5 * 6 - +
*
9.对于一个长度为 n 的数组,使用堆排序算法对其排序的时间复杂度是()。
A. O(1)
B. O(n)
C. O(nlogn)
D.O(n^2)
*
10.在一个具有 n 个节点的二叉树中,删除一个节点并重新构建二叉树的最坏时间复杂度是()。
A. O(1)
B. O(log n)
C. O(n)
D.O(n^2)
*
11. 下列不属于图像格式的是:()
A. jpg
B. png
C. mp4
D. gif
*
12. 编译器的功能是:()
A. 将高级语言翻译成软件
B. 将高级语言翻译成低级语言或机器语言
C. 将高级语言翻译成自然语言
D. 将自然语言翻译成高级语言
*
13.字符串 "KIMIN" 的不同子串数量是多少(假设子串长度至少为()?
A. 10
B. 15
C. 20
D. 25
*
14.计算表达式 (2 + 3) * 5 - 6 的结果是()。
A. 13
B. 15
C. 17
D. 19
*
15.在C++ STL中,关于 vector 容器的描述错误的是()。
A. vector 容器可以动态地增加和减少元素
B. vector 容器可以使用下标运算符直接访问元素
C. vector 容器中的元素在内存中是连续存储的
D. vector 容器的容量总是等于其大小

一、程序阅读(共3大题。程序输入不超过数组或字符串定义的范围,除特殊说明外,判断题1.5分,选择题3分,共计40分)

(12分)


[CF177F1 Script Generation - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)](https://www.luogu.com.cn/problem/solution/CF177F1)


l 判断题


*
16.若程序第 10 行++tot变成tot以及第十一行tot改成tot++对程序结果有影响( )
*
17.若程序第 25 行代码去掉后,同样的输入数据运行时间要小于等于原本代码( )
*
18.第 17 行调用 dfs 函数是为了在选点的过程中求出选中第 个节点指向的边的贡献( )(2分)
*
19.若输入以下数据 ,则输出是什么?()
2 1 2
1 2 1
A. 1
B. 2
C. 3
D. 4
*
20.若输入以下数据,则输出是什么()
2 4 3
1 1 1
1 2 2
2 1 3
2 2 7
A. 1
B. 2
C. 3
D. 4.

2.(12分)[P3915 树的分解 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)](https://www.luogu.com.cn/problem/solution/P3915)


判断题


*
21.第16行是判断元素越界的情况( )
*
22.输入的数据为1 4 2 1 2 2 3 3 4 输出的结果是“NO”( )
*
23. 输入的数据为1 4 2 1 2 1 3 1 4 输出的结果是“NO”( )
*
24.第34,35两行处理一个无向图用邻接矩阵存入( )
*
25.若37行改为 int ans=dfs(0,1) 会发生什么()
A. 运行时错误
B. 答案错误
C. 答案正确
D. 运行超时
*
26.为什么第 12 行的 是从 0 开始?()
A. 从 1 开始并不影响
B. 方便计算
C. vector.push_back() 操作的下标从 0 开始
D. 有益于推算ans的值

3.(16分)[Dungeon - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)](https://www.luogu.com.cn/problem/CF1463A)


判断题

*
27. 在这个程序中,函数 M 只会返回三个数中的最小数。( )
*
28. 输入1 3 2 4则输出的结果是"NO"( )
*
29.如果输入2 1 1 1 10 1 7,那么输出:()
A. NO NO
B. NO YES
C. YES NO
D. YES YES
*
30.核心判定部分的条件 sum%9==0&&M(a[i],b[i],c[i])>=sum/9 表示什么意思?()
A. 三个数的和能被 9 整除且最小值不小于和的九分之一
B. 三个数的和不能被 9 整除且最小值不大于和的九分之一
C. 三个数的和能被 9 整除且最大值不小于和的九分之一
D. 三个数的和不能被 9 整除且最大值不大于和的九分之一
*
31.下面哪一组样例输出的结果是“NO NO”()
A. 1 3 2 1
B. 1 4 4 10
C. 2 4 10 4 3 3 3
D. 2 1 2 3 4 5 6
*
32.判定部分的条件 sum%9==0&&M(a[i],b[i],c[i])>=sum/9改为min({a[i],b[i],c[i]})!=sum/9下列哪个输入样例输出“YES”()(4分)。
A. 1 8 8
B. 2 8 8
C. 3 8 8
D. 3 15 15

1.你发现你身处一片森林,你需要找到出口逃离这里。但是在森林中还有其他人和很多树木。他们会给你造成阻碍。

所有人都会沿向终点的最短路径行进。

输出在你到达出口前,到达出口的人数(包括与你同时到达终点的人)。

[Biridian Forest - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)](https://www.luogu.com.cn/problem/CF329B)




*
32.①处应该填写()
A. {1,1,0}
B. {sx,sy,0}
C. make_pair{sx,sy}
D. make_pair{1,1}
*
33..②处应该填写()
A. point p=q.front();
B. point p=q.front(); q.pop();q.push({sx,sy,1});
B. point p=q.front(); q.pop();q.push({sx,sy});
D. point p=q.front(); q.pop();
*
34..③处应该填写()
A .ans+=a[p.x][p.y]-'0';
B .ans=a[p.x][p.y]-'0';
C .q.push({p.x,p.y,a[p.x][p.y]-'0'})
D .q.push({p.x,p.y,a[p.x][p.y]})
*
35. .④处应该填写()
A. int i=1;i<=4;i++
B. int i=1;i<=8;i++
C. int i=0;i<4;i++
D. int i=0;i<8;i++
*
36..⑤处应该填写为 ()
A. q.pop()
B. point p2={tx,ty,p.s+1};q.push(p2);
C. return ;
D. sx=tx,sy=ty;BFS();

2. 给出一个括号序列,求出最长合法子串和它的数量。 合法的定义:这个序列中左右括号匹配,如果没有输出“0 1”


[Longest Regular Bracket Sequence - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)](https://www.luogu.com.cn/problem/CF5C)




*
37. .①处应该填写()
A. return a<b?a:b;
B. return a>b?a:b;
C. return a!=b?a:b;
D. return a!=b?b:a;
*
38. .②处应该填写()
A. len=strlen(c);
B. len=c.size();
C. len=c.empty();
D. len=sizeof c;
*
39. .③处应该填写()
A. p!=0
B. p==0
C. a[i]!=0
D. a[i]==0
*
40. .④处应该填写()
A. sum+=a[i];ans=max(ans,sum);
B. sum+=st[i];ans=max(ans,sum);
C. ans=maximum(ans,st[i]); sum++;
D. ans=maximum(ans,sum); sum=0;
*
41. .⑤处应该填写()
A. if(sum==ans)num++;sum=0;
B. if(sum!=ans)sum++;
C. num++;sum=0;
D. sum++;
问卷星提供技术支持
举报