CSP-J初赛模拟试题及答案

这篇具有很好参考价值的文章主要介绍了CSP-J初赛模拟试题及答案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

请点击↑关注、收藏,本博客免费为你获取精彩知识分享!有惊喜哟!! 

一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)

1.以下关于CSP-J/S的描述错误的是()

A.参加CSP-S/J两组两轮认证均须在网上注册报名。未注册者,无认证成绩

B.CSP-J/S是中国计算机学会举办的程序设计竞赛

C.CSP-JS第二轮实行网上注册、报名,未通过网上报名的认证者可向所在省份特派员申请获得第二轮参加认证的资格

D.CSP-J/S认证成绩优异者,可参加NOI省级选拔,省级选拔成绩优异者可参加NOI

2.在8位二进制补码中,10110110表示的是十进制下的()  

A.202      B.74      C.-202      D.-74

3.2019年10月14日是星期一,1978年10月14日是()

A.星期日         B.星期五         C.星期一      D.星期六

4.图G是一棵n节点的树,G上有()条边

A.n            B.2*n            C.n-1         D.n+1

5.由五个不同的节点构成的树有()种

A. 3125    B. 125   C.32   D.1024

6.有一个长为6的A序列:{3,20,4,6,1},现通过进行交换其中相邻两个数字的操作进行排序,要将A序列排成从小到大的递增序列最少要进行多少次交换操作()

A.5        B.6            C.7            D.15

7.某算法计算时间表示为递推关系式:  T(N)=N+T(N/2) ,则该算法时间复杂度为( )。

A.O(N*N)      B.O(NlogN)      C.O(N)      D.O(1)

8.一棵6节点二叉树的中序遍历为DBAGECF,先序遍历为ABDCEGF,后序遍历为()

A.  DGBEFAC                     B.  GBEACFD                     C.  DBGEFCA              D. ABCDEFG

9.一张有9个节点的无向图最多有()条边

A.40         B.81         C.72      D.36

10.下列不属于面向对象程序设计语言的是( )

A.C++         B. C         C.JAVA      D.C#

11.G是一张有n个点m条边的连通图,必须删去()条边才能将其变成一棵n节点的树

A.1         B.m-n-1      C.m+n-1      D.m-n+1

12.字符串”abcab”本质不同的子串个数(),不考虑空串

A.15     B.14      C.13       D.12

13.十进制小数13.375对应的二进制数是():  

A.1101.011    B.1011.011    C.1101.101   D.1010.01

14.若某算法的计算时间表示为递推关系:

CSP-J初赛模拟试题及答案

则该算法的复杂度为()

CSP-J初赛模拟试题及答案

15. 一家三口人,恰好仅有两个人生日在同一天的概率是()   【假设每年都是365天】

A.1/365         B.365/(364*365)               C.(3*364)/(365*365)            D.1/12

二、阅读程序写结果(共8小题,每小题5分,共计40分)

第一题

#include

using namespace std;

int a,b,c;

int main()

{

   cin>>a>>b>>c;

   int t=b;

   b=a,a=t;

   c=a;

   cout<<a<<" "<<b<<" "<<c;< span=""></c;<>

}

16. 若输入3 9 1,则输出9 3 3

A.正确

B.错误

17. 若输入12300400000 3 7,将一定能输出3 12300400000 3

A.正确

B.错误

18.该程序中,头文件#include可以改成#include

A.正确

B.错误

19.若输入3 6 9,输出()

A. 6 3 6

B. 9 3 3

C. 6 9 3

D. 6 3 3

20.若将c=a改成c=t,则若输入3 6 9,输出()

A. 6 3 6

B. 9 3 3

C. 6 9 3

D. 6 3 3

21.若将c=a改成c=b,则若输入3 6 9,输出()

A. 6 3 6

B. 6 3 9

C. 6 3 3

D. 3 6 3

第二题

#include

#include

#include

using namespace std;

int w[35000],d[35000],dp[35000];

int main()

{

    int n,m;

    scanf("%d%d",&n,&m);

    for(int i=1;i<=n;i++)< span="">

       scanf("%d%d",&w[i],&d[i]);

    for(int i=1;i<=n;i++)< span="">

    {

        for(int j=m;j>=w[i];j--)

        {

            dp[j]=max(dp[j],dp[j-w[i]]+d[i]);

        }

    }

    printf("%d\n",dp[m]);

    return 0;

}

22. 上述代码中,双重循环里循环变量j的枚举顺序改为从w[i]到m,输出结果一定不变

A.正确

B.错误

23. 上述代码中,双重循环中变量i的枚举顺序改为从n到1,输出结果一定不变

A.正确

B.错误

24. 当输入为:

   4 6
   1 4
   2 6
   3 12
   2 7

输出为()

A.17

B.28

C.29

D.23

25.若输入数据中,1<=n<=30000,1<=m<=30000,1<=w[i]<=30000,1<=d[i]<=30000,则所求答案一定没有溢出()< span="">

A.正确

B.错误

26.若输入数据中,1<=n<=30000,1<=m<=30000,1<=w[i]<=30000,1<=d[i]<=1000000000,则所求答案一定没有溢出()< span="">

A.正确

B.错误

27.上述代码的时间复杂度为()

A.O(n)

B.O(n*n*m)

C.O(n*m)

D.O(n*m*m)

第三题

#include

#include

#include

#define N 500+10

using namespace std;

int a[N],n;

int main()

{

 cin>>n;

 for(int i=1;i<=n;i++)cin>>a[i];

 for(int i=1;i<n;i++)< span=""></n;i++)<>

 {

 int tmp=i;

 for(int j=i+1;j<=n;j++)< span="">

 if(a[j]<a[tmp])tmp=j;< span=""></a[tmp])tmp=j;<>

 swap(a[i],a[tmp]);

 }

 for(int i=1;i<=n;i++)cout<<a[i]<<" ";

 cout<<endl;< span=""></endl;<>

 return 0;

}

28. 上述代码实现了对一个长度为n的序列进行排序()

A.正确

B.错误

29. 我们将上述算法称为()

A. KMP

B. 冒泡排序

C. 选择排序

D. 归并排序

30.上述代码的时间复杂度为()

A. O(n)  B. O(nlogn)  C. O(n*n)   D. O(n*n*n)

31.若输入数据为:

5

3 2 1 5 4

则if(a[j]<a[tmp])这句话中的条件会成立多少次(即后面的tmp=j会被执行多少次)  </a[tmp])这句话中的条件会成立多少次(即后面的tmp=j会被执行多少次)()

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

32.去掉头文件#include后程序仍能正常编译运行()

A.正确

B.错误

33.去掉using namespace std;后程序仍能正常编译运行()

A.正确

B.错误

五、完善程序(每题15分,共计30分)

1. 请完善下面的程序,使用BFS统计一张边权都为1的图中,从给定起点到所有点的距离:

#include

#include

#include

#define N 200020

using namespace std;

int n,m;

vectorG[N];

int q[N],hd,tl;

int dis[N];

void BFS(___(1)_____)

{

   hd=1,tl=0;

   for(int i=1;i<=n;i++)dis[i]=-1;< span="">

   q[++tl]=st,dis[st]=0;

   while(____(2)_____)

   {

      int u=q[hd++];

      for(int i=0;i<g[u].size();i++)< span=""></g[u].size();i++)<>

      {

         int v=G[u][i];

         if(____(3)____)continue;

         dis[v]=dis[u]+1;

         q[++tl]=v;

      }

   }

}

int main()

{

   scanf("%d%d",&n,&m);

   for(int i=1;i<=m;i++)< span="">

   {

      int x,y;

      scanf("%d%d",&x,&y);

      G[x].push_back(y);

      ______(4)________;

   }

   int st;

   scanf("%d",&st);

   BFS(st);

   for(_____(5)_____)printf("%d ",dis[i]);

}

34.上述程序___(1)___中应该填写()

A.int u;

B.int st;

C.int &st;

D.int st

35.上述程序___(2)___中应该填写()

A.hd<tl< span=""></tl<>

B.hd>tl

C.hd<=tl< span="">

D.hd>=tl

36.上述程序___(3)___中应该填写()

A.vis[v]==true

B.dis[v]<=dis[u]< span="">

C.dis[v]!=-1

D.dis[v]>dis[u]

37. 上述程序___(4)___中应该填写()

A.G[y].push_back(x)

B.G[y].insert(x)

C.G[y][x]=1

D.G[y].push(x)

38. 上述程序___5___中应该填写()

A. int j=1;j<=n;j++< span="">

B. int i=1;i<=n;i++< span="">

C. int i=0;i<n;i++< span=""></n;i++<>

D. int i=1,i<=n,i++< span="">

2.(拓扑排序)给出一张n节点m条边的有向图,求出该图的一个拓扑排序,若无拓扑排序输出-1

输入:

第一行两个正整数 n,m 表示点数和边数。
接下来 m 行,每行三个正整数 x,y表示节点 x->y之间有一条边。

输出:

一个拓扑序:按拓扑序输出点的编号。若拓扑序不唯一,输出任意一个均可。若无拓扑序,输出 -1.

#include
#include
#include
#define N 200020
using namespace std;
int n,m;
vectorG[N];
int q[N],hd,tl;
int du[N];
int ans[N],tot;
void topo()
{
   hd=1,tl=0;
   for(int i=1;i<=n;i++)if(___(1)____)q[++tl]=i;< span="">
   while(hd<=tl)< span="">
   {
      int u=q[hd++];
      ans[++tot]=u;
      for(int i=0;____(2)____;i++)
      {
         int v=G[u][i];
         du[v]--;
         if(!du[v])____(3)____;
      }
   }
   if(tot!=n)puts("-1");
   else
   {
      for(int i=1;i<=n;i++)< span="">
         printf("%d ",ans[i]);
   }
}
int main()
{
   scanf("%d%d",&n,&m);
   for(int i=1;i<=m;i++)< span="">
   {
      int x,y;
      scanf("%d%d",&x,&y);
      _____(4)___________;
      _____(5)___________;
   }
   topo();

}

39. 上述程序___1___中应该填写()

A. du[i]

B. q[i]

C. hd<=tl< span="">

D. !du[i]

40. 上述程序___2___中应该填写()

A. i<=n< span="">

B. i<n< span=""></n<>

C. i<g[u].size()< span=""></g[u].size()<>

D. i<=g[u].size()< span="">

41. 上述程序___3___中应该填写()

A. q[++tl]=v

B. q[tl++]=v

C. q[++hd]=v

D. q[hd++]=v

42. 上述程序___4___中应该填写()

A.G[y].push_back(x)

B.G[x].push_back(y)

C.G[x].push(y)

D.G[y].push(x)

43. 上述程序___5___中应该填写()

A.G[y].push_back(x)

B.G[y].push(x)

C.du[y]++

D.du[x]++

CSP-S模拟卷参考答案

1

2

3

4

5

6

7

8

   9

10

C

D

D

C

B

B

C

C

D

B

11

12

13

14

15

16

17

18

19

20

D

D

A

B

C

B

B

B

A

A

21

22

23

24

25

26

27

28

29

30

C

B

A

D

A

B

C

A

C

C

31

32

33

34

35

36

37

38

39

40

C

A

B

D

C

C

A

B

D

C

41

42

43

A

B

C

 2021年CSP-S提高级第一轮试题

一、单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)

1. 以下不属于面向对象程序设计语言的是(D)。

A. C++

B. Python

C. Java

D. C

2. 以下奖顼与计算机领域最相关的是(B)。

A. 奧斯卡奖

B. 图灵奖

C. 诺贝尔奖

D. 普利策奖

3. 目前主流的计算机储存数据最终都是转换成(A)数据进行存储。

A. 二进制

B. 十进制

C. 八进制

D. 十六进制

4. 以比较作为基本运算,在N个数中找出最大数,最坏情况下所需要的最少的比较次数为(C)。

A. N^2

B. N

C. N-1

D. N+1

5.  对于入栈顺序为a,b,c,d,e的序列,下列(D)不是合法的出栈序列。

A. a,b,c,d,e

B. e,d,c,b,a

C. b,a,c,d,e

D. c,d,a,e,b

6. 对于有n个顶点、m条边的无向联通图(m>n),需要删掉(D)条边才能使其成为一棵树。

A. n-1

B. m-n

C. m-n-1

D. m-n+1

7. 二进制数101.11对应的十进制数是(C)。

A. 6.5

B. 5.5

C. 5.75

D. 5.25

8. 如果一棵二叉树只有根结点,那么这棵二叉树高度为1。请问高度为5的完全二叉树有(A)种不同形态?

A. 16

B. 15

C. 17

D. 32

9. 表达式a*(b+c)*d的后缀表达式为(B),,其中”*”和”+”是运算符。

A. **a+bcd

B. abc+*d*

C. abc+d**

D. *a*+bcd

10. 6个人,两个人组一队,总共组成三只,不区分队伍的编号,不同的组队情况有(B)种。

A. 10

B. 15

C. 30

D. 20

11. 在数据压缩编码中的哈夫曼编码方法,在本质是一种(B)的策略。

A. 枚举

B. 贪心

C. 递归

D. 动态规划

12. 由1, 1, 2, 2, 3这五个数字组成不同的三位数有(A)种。

A. 18

B. 15

C. 12

D. 24

13. 考虑如下递归算法

solve(n)

if n<=1 return 1

else if n>=5 return n*solve(n-2)

else return n*solve(n-1)

则调用solve(7)得到的返回结果为(C)。

A. 105

B. 840

C. 210

D. 420

14. 以a为起点,对右边的无向图进行深度优先遍历,则b、c、d、e四个点中有可能作为最后一个遍历到的点个数为(B)。

CSP-J初赛模拟试题及答案

A. 1

B. 2

C. 3

D. 4

15. 有四个人要从A点做一条船过河到B点,船一开始在A点。该船一次最多可坐两个人。已知这四个人中每个人独自坐船的过河时间分别为1, 2, 4, 8, 且两个人坐船的过河时间为两人独自过河时间的较大者。则最短(B)时间可以让四个人都过河到B点(包括从B点把船开回A点时间)。

A. 14

B. 15

C. 16

D. 17 

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

(1)

CSP-J初赛模拟试题及答案

判断题

16. 输入的n等于1001时,程序不会发生下标越界。(X)

17. 输入的a[i]必须全为正整数,否则程序将陷入死循环。(X)

18. 当输入”5 2 11 9 16 10”时,输出为”3 4 3 17 5” 。(X)

19. 当输入为”1 511998“时,输出为”18” 。(√)

20. 将源代码中g函数的定义(13-16行)移到main函数的后面,程序可以正常编译运行。(X)

单选题

21. 当输入为”2 -65536 2147483647”时,输出为(B)。

A. "65532 33”

B. "65552 32"

C. "65535 34"

D. "65554 33" 

(2)

CSP-J初赛模拟试题及答案

判断题

22. 输出的第二行一定是由小写字母、大写字母、数字和“+”、“/”、“=”构成的字符串。(X)

23. 可能存在输入不同,但输出的第二行相同的情形。(√)

24. 输出的第一行为“-1”。( √)

单选题

25. 设输入字符串长度为n,decode函数的时间复杂度为(B)。

A. θ(√n)

B. θ(n)

C. θ(nlogn)

D. θ(n^2)

26. 当输入为“Y3Nx”时,输出的第二行为(B)。

A. “csp”

B. “csq”

C. “CSP”

D. “Csp”

27. (3.5分)当输入为“Y2NmIDIwMjE=”时,输出的第二行为(C)。

A. “ccf2021”

B. “ccf2022”

C. “ccf 2021”

D. “ccf 2022” 

(3)

CSP-J初赛模拟试题及答案

假设输入的x是不超过1000的自然数,完成下面的判断题和单选题:

判断题

28. 若输入不为"1",把第12行删去不会影响输出的结果。(√)

29. (2分)第24行的" f[i]/c[i*k]"可能存在无法整除而向下取整的情况。(X)

30. (2分)在执行完init()后,f数组不是单调递增的,但g数组是单调递增的。(X)

单选题

31. init函数的时间复杂度为(A)。

A. θ(n)

B. θ(nlogn)

C. θ(n√n)

D. θ(n^2)

32. 在执行完init()后,f[1], f[2], f[3] ...... f[100]中有(C)个等于2。

A. 23

B. 24

C. 25

D. 26

33. (4分)当输入"1000"时,输出为(C)。

A. "15 1340"

B. "15 2340"

C. "16 2340"

D. "16 1340"

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

 (1)(Josephus 问题)有 n 个人围城一个圈,依次标号 0 至 n-1。从 0 号开始,依次 0, 1, 0, 1, ... 交替报数,报到 1 的人会离开,直至圈中只剩下一个人。求最后剩下人的编号。

试补全模拟程序。

CSP-J初赛模拟试题及答案

34. ①处应填(D)

A. i < n

B. c < n

C. i < n - 1

D. c < n - 1

35. ②处应填(C)

A. i % 2 == 0

B. i % 2 == 1

C. p

D. !p

36. ③处应填(C)

A. i++

B. i = (i + 1) % n

C. c++

D. p ^= 1

37. ④处应填(D)

A. i++

B. i = (i + 1) % n

C. c++

D. p ^= 1

38. ⑤处应填(B)

A. i++

B. i = (i + 1) % n

C. c++

D. p ^= 1 

(2)(矩形计数)平面上有n个关键点,求有多少个四条边都和x轴或者y轴平行的矩形,满足四个顶点都是关键点。给出的关键点可能有重复,但完全重合的矩形只计一次。

试补全枚举算法。

CSP-J初赛模拟试题及答案

39. ①处应填(B)

A. a.x != b.x ? a.x < b.x : a.id < b.id

B. a.x != b.x ? a.x < b.x : a.y < b.y

C. equals(a,b) ? a.id < b.id : a.x < b.x

D. equals(a,b) ? a.id < b.id : (a.x != b.x ? a.x < b.x : a.y < b.y)

40. ②处应填(D)

A. i == 0 || cmp(A[i], A[i - 1])

B. t == 0 || equals(A[i], A[t - 1])

C. i == 0 || !cmp(A[i], A[i - 1])

D. t == 0 || !equals(A[i], A[t - 1])

41. ③处应填(C)

A. b - (b - a) / 2 + 1

B. (a + b + 1) >> 1

C. (a + b) >> 1

D. a + (b - a + 1) / 2

42. ④处应填(B)

A. !cmp(A[mid], p)

B. cmp(A[mid], p)

C. cmp(p, A[mid])

D. !cmp(p, A[mid])

43. ⑤处应填(D)

A. A[i].x == A[j].x

B. A[i].id < A[j].id

C. A[i].x == A[j].x && A[i].id < A[j].id

D. A[i].x < A[j].x && A[i].y < A[j].y

2021年CSP-S提高级第一轮试题                                                                                                                                                                                                                    

CSP-J初赛模拟试题及答案文章来源地址https://www.toymoban.com/news/detail-409361.html

到了这里,关于CSP-J初赛模拟试题及答案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软考A计划-试题模拟含答案解析-卷六

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、工具、素材、源码、游戏等) 有什么需要

    2024年02月06日
    浏览(33)
  • Java基础程序设计期末模拟试题及参考答案

    一、选择题(每小题3分,共计45分) 1. Java属于那种语言?( ) A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 2. 下列选项中,那些属于合法的标识符?( ) A、 username B、 class C、 123username D、 Hello World 3. 以下整形数据类型中,能表示的数据长度最长的是( ) A、b

    2024年02月03日
    浏览(52)
  • CSP-J/S——初赛复习(未完)

    废话不多说,马上开始。 还是说一点吧:个人认为《信息学奥赛一本通——初赛篇》里有些废话,不够精炼,CSP-J/S重点不够突出, 本人想将知识整理起来,并总结提炼 ,以便备考以及复习。 本文参考了《信息学奥赛一本通——初赛篇》,是对它一个整理、总结与简化。

    2024年02月10日
    浏览(51)
  • csp-j(2022)初赛解析【选择题】

    答案:A。 【解析】面向对象考察的内容与类相关,题中唯一没有出现类的选项是A选项。printf函数在c语言中就存在。 答案:C 【解析】栈的特征:后进先出。 A选项:65进栈,5出栈,4进栈,4出栈,3进栈,3出栈,6出栈,21进栈,1出栈,2出栈。 B选项:654进栈,4出栈,5出栈,

    2024年02月16日
    浏览(49)
  • CSP-J初赛复习大题整理笔记

    本篇全是整理,为比赛准备. 在这里插入代码片

    2024年02月09日
    浏览(37)
  • 2022 CSP-J1 CSP-S1 初赛 第1轮 真题讲评 真题解析

    CSP-J/S 2022初赛讲评 CSP-J/S 2022初赛讲评_哔哩哔哩_bilibili CSP-J2022 初赛第一轮解析 选择题 CSP-J2022 初赛第一轮解析 选择题_哔哩哔哩_bilibili 2022csp j初赛解析-单项选择题 2022csp j初赛解析-单项选择题_哔哩哔哩_bilibili CSP-J2022 初赛第一轮 解析 阅读程序1 CSP-J2022 初赛第一轮 解析 阅读

    2024年02月12日
    浏览(43)
  • 2022 CSP-J CSP-S 第1轮 初赛 第2轮 复赛 分数线 晋级率 获奖名单 汇总 整体成绩分析解读

    2022年CSP-JS初赛北京及全国各省市分数线汇总! 2022年CSP-JS初赛北京及全国各省市分数线汇总! - 知乎 CSP-J/S 2022第一轮认证评级全国分数线各省分数线和晋级率 CSP-J/S 2022第一轮认证评级全国分数线各省分数线和晋级率-童程童美少儿编程招生网 2022 CSP-S1 提高组 第1轮 初赛 视频

    2024年02月12日
    浏览(50)
  • 2019 CSP-J 真题 题目、答案以及解析

    最近快要CSP了,为了帮助大家[zì jǐ]更好的复习历年真题特地作此题解一篇。 我写完之后看了一遍,感觉有点啰嗦,大家看不看随意。 还有,有没有大佬讲讲阅读程序最后一题的倒数第二问? 蒟蒻我看不懂😭😭😭😭😭😭😭😭😭😭 洛谷版 CCF版 建议使用CCF版。因为洛谷

    2024年02月11日
    浏览(52)
  • [ECE]模拟试题-1

    有一个索引task2,有field2字段,用match匹配the能查到很多数据,现在要求对task2索引进行重建,重建后的索引叫new_task2,然后match匹配the查不到数据 Text analysis› Token filter reference stop 有一个索引task3,其中有fielda,fieldb,fieldc,fielde,现要求对task3重建索引,重建后的索引新增一个字

    2024年02月08日
    浏览(39)
  • 《C语言程序设计》模拟试题

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1、已知字符’A’的ASCII码值为65,若变量x为char型,以下不能正确判断出x为大写字母的表达式是( )。 A、x = ‘A’ x = ‘Z’ B、!(x = ‘A’ || x = ‘Z’) C、(x + 32) = ‘a’ (x + 32) = ‘z’ D、x = 65 x = 90 2、下列关系表达式中,结果为“假”的是( )。

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包