2023CSP-S初赛模拟试题

文章详细解析了多项计算机科学竞赛中涉及的编程题目,包括选择题、编程实践和算法问题,如错误排查、数据结构、编程技巧和计算机基础知识等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、单选题

1.当你在CSP第二轮测试的考场上发现自己程序的输出与期望的不一样时,下列做法错误的是(  B  )。

A.浏览一遍自己的程序尝试找出写错的地方
B.大吵大闹以宣泄自己的情绪
C.输出并查看中间变量的值是否正确
D.再读一遍题面确保自己理解题意正确

2.NOI赛场上机试所使用的计算机系统是(  C )。

A.Windows
B.MacOS
C.Linux
D.UNIX

3.在c++中,表达式!1<<20^23+6*3|14等于(  C )。

A.47
B.0
C.14
D.90

4.以下哪种遍历方式无法确定一棵二叉树(  A )。

A.先序遍历加中序遍历
B.中序遍历加后续遍历
C.先序遍历加后续遍历
D.先序遍历加中序遍历加后序遍历

5.LAN在计算机科学技术领域的常见含义是(B   )。

A.蓝
B.局域网
C.城域网
D.广域网

6.以下哪种语言不是面向对象的高级语言(  B )。

A.C++
B.C
C.Java
D.Simula 67

7.令f(x)表示x的约数个数,求f(1)+f(2)+.......+f(20)=(B   )。

A.64
B.66
C.68
D.70

8.当考试中一道题目的空间限制为512MB时,如果你的程序除了小部分变量只有一个double类型的数组,则这个数组大小的理论上限大概是(  D )。

A.1.3*10^5        B.6.5*10^4        C.1.3*10^8        D.6.7*10^7

9.以下哪种问题采用动态规划解决所需的时间复杂度最低?(C)

A.去同构的子序列数目计数        B.最长公共子序列        C.最长上升子序列                                                D.最长回文子序列

10.5个点的无标号无根树的数量为(  D )个。

A.3        B.4        C.5        D.6

11.以下哪种数据结构无法处理区间翻转操作?(D)

A.Splay        B.Treap        C.无旋Treap        D.块状链表

12.在以下的结构体定义下,四个选项中重载运算符的写法正确的是(  D )。

struct node{
    int a,b;
};
A.
istream & operator>>(istream& myin,node& p){
cin>>p.a>>p.b;
return myin;
}
B.
ostream operator<<(ostream& myout,node& p){
cout<<p.a<<" "<<p.b<<endl;
return myout;
}
C.
bool operator =(node c,node d){
return (c.a==d.a&&c.b==d.b);
}
D.
int operator +(node c,node d){
node p;
p.a=c.a+d.a;p.b=c.b+d.b;
return p;
}

13.将16进制数541BABA 转化为十进制数是(B)

A.520335271        B.520335272        C.520345272        D.520345271

14.一开始有一个装了N个球的盒子,接下来重复以下操作:增加一个盒子并从其他盒子里各拿一个球加入新的盒子里,接着移去所有没有球的盒子,然后按球的个数递增顺序排列所有盒子。已知经过若干轮后,球的分布情况保持不变,则N的值可能是( D  )。

A.7        B.8        C.9        D.10

15.世界上第一台通用计算机ENIAC于哪一年诞生?(B)

A.1943        B.1946        C.1963        D.1966

二、阅读程序


(1)
 

QQ截图20230905143035.png


保证1≤n≤10^5,1≤sum,ai≤10^9

16.对于任意输入,程序都不会陷入死循环。(  T )(是否)

17.程序运行完30行的片段后,一定满足x+1=y。( F  )(是否)

18.程序输出的值不会超过n/2。(  T )(是否)

19.将34行的"n1!=n2"改为"ans*2+1!=n"后,程序运行结果不变。(  F )(是否)20.

20.如果输入数据如下,那么程序运行到22行时,排在队列开头的二元组为(  A )。

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

21.如果输入数据如下,那么程序的输出结果为( C  )。

10 5
1 2 5 2 1 2 3 4 2 4
A.3        B.4        C.5        D.6

(2)


 

输入数据保证是一张n*n的仅由小写字母构成的矩阵。

n小于等于250,Z只会是100到200中的25的倍数。

有T组测试数据。

22.只要Z等于100或者200,程序必定不会输出error。( F  )(是否)

23.如果n等于250,程序可能会访问到未定义的数组。( T  )(是否)

24.如果n小于等于100,程序一定不会访问到未定义的数组。(  F )(是否)

25.将33行的c3[i][j]改成c2[i][j],37行的c3[i][j]改成c2[i][j],程序运行结果不会发生变化。(  F )(是否)

26.如果输入数据如下,那么程序输出为( B  )。

8 125
aaaabbbb
aaaabbbb
aaaabbbb
aaaabbbb
aaaaaaaa
aaaaaaaa
baaaaaaa

A.

error

B.

aaaaabbbbb
aaaaabbbbb
aaaaabbbbb
aaaaabbbbb
aaaaabbbbb
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
bbaaaaaaaa
bbaaaaaaaa

C.

aaaaabbbbb
aaaaabbbbb
aaaaabbbbb
aaaaabbbbb
aaaaabbbbb
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
baaaaaaaaa

D.

aaaaabbbbb
aaaaabbbbb
aaaaabbbbb
aaaaabbbbb
aaaaabbbbb
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
baaaaaaaaa

(3)


保证1≤n≤10^5,1≤m,q≤5×10^5,1≤ui,vi≤n,0<wi,V<2^60

27.将36行的61改为62,程序能正常运行。( F  )(是否)

28.当程序在执行44行到54行的片段时,tmp的值始终大于V。( F  )(是否)

29.将50行或67行的”col = 0;”删去,程序输出结果均不变。(  F )(是否)

30.程序运行过程中tot能达到的最大值为( D  )。

A.58        B.59        C.60        D.61

31.程序运行的理论复杂度是(  B )。

A.O((m+q)logV)
B.O((m+q)logVlogn)
C.O(mα(n)logV+qlogV)
D.O((m+q)α(n)logV)

32.对于如下输入数据,程序的输出是(  D )。

9 8 4 5
1 2 8
1 3 7
2 4 1
3 4 14
2 5 9
4 5 7
5 6 6
3 7 15
1 6
2 7
7 6
1 8

A.0110        B.1010        C.1000        D.1011

三、完善程序


(1)

(匹配)给定整数序列{an},如果满足i-j=ai-aj ,则在图上点i和点j之间连一条权值为(ai+aj)的无向边。求得到的无向图的最大权匹配的值。
其中n≤10^5,|ai|≤10^9
试补全以下程序。

33.①处应填(  D  )

A.a[i]=0        B.b[i]=0        C.v[i]=0        D.v[i].clear()

34.②处应填( A   )

A.unique(b + 1,b + n)-b-1

B.unique(b + 1,b + n)-b

C.unique(b + 1,b + n + 1)-b-1

D.unique(b + 1,b + n + 1)-b

35.③处应填(   B )

A.cnt%2==0

B.cnt%2==1

C.(int)v[i].size()%2==0

D.(int)v[i].size()%2==1

36.④处应填(  A  )

A.cnt%2==0

B.cnt%2==1

C.cnt==0

D.cnt==tot

37.⑤处应填(  ?  )

A.v[i][tot-cnt]+v[i][tot-cnt-1]>0

B.v[i][tot-cnt]+v[i][tot-cnt-1]<0

C.sum+v[i][tot-cnt-1]>0

D.sum+v[i][tot-cnt-1]<0

(2)

(反恐精英)给定n个点m条边的无向图,有k个点被埋了炸弹,你有一个牛B干员,他可以切断任意一个点,你需要雇佣g个普通干员,他们只能切断前g个有炸弹的点,求使得任意未被切断的有炸弹的点不连通的g的最小值。
n,m,k小于等于200000。

QQ截图20230905150544.png

QQ截图20230905150556.png

QQ截图20230905150618.png

38.①处应填( ?   )

A.!del[i]

B.!vis[i]

C.!del[i] && !vis[i]

D.!del[i] || !vis[i]

39.②处应填(   B )

A.depth[to[i]]

B.depth[x]

C.mi[to[i]]

D.mi[x]

40.③处应填( A   )

A.hao = 0;

B.okk = 0;

C.oknow = 0;

D.cur = 0;

41.④处应填( ?   )

A.cur - sum[x] > 1 || (cur - sum[x] == 0 && okk == 1)

B.cur - sum[x] > 1 || (cur - sum[x] == 1 && okk == 1)

C.cur - sum[x] > 0 || (cur - sum[x] == 0 && okk == 1)

D.cur - sum[x] > 0 || (cur - sum[x] == 1 && okk == 1)

42.⑤处应填(  ?  )

A.cur==1

B.hao==0

C.hao==1

D.cur==1

(答案没出,一周后更新,记得私信~)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值