A. 2024CSPJ初赛模拟题(十二)

    客观题

2024CSPJ初赛模拟题(十二)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

一、单项选择题

  1. ( )提出计算机的体系结构主要包括运算器、( )、存储器、输入和输出 设备。

{{ select(1) }}

  • 图灵 控制器
  • 冯诺依曼 控制器
  • 图灵 CPU
  • 冯诺依曼 CPU
  1. 下面合法的电子邮件地址是( )。

{{ select(2) }}

  1. 一个二进制数的反码为 01011100,则其原码为( )。

{{ select(3) }}

  • 01011100
  • 10100011
  • 10100100
  • 01011101
  1. 若 A=True,B=True,C=False,D=False,则下面表达式值为真是( )。

{{ select(4) }}

  • (A||B)&&!B||C&&D
  • C&&A&&(B||!C) ||C&&D
  • B&&!B||C||D&&!A
  • D|| (!B||C&&!A) ||!D&&B&&!C
  1. 老师家买了一台4K 超清电视,其屏幕分辨率是 4096 X 2160, 每一个像 素都是 32 位真彩色, 一个视频文件有 2 分钟, 每秒钟播放 24 帧。在没有压 缩的情况下, 这个视频占用空间最接近以下哪个值( )。

{{ select(5) }}

  • 80GB
  • 25GB
  • 100GB
  • 200GB
  1. 表达式(a+b)*c/d-e%f*g 的前缀表达式为( )。

{{ select(6) }}

  • /*+abcd-*%efg
  • /*+abcd-%e*fg
  • -/*+abcd%e*fg
  • -/*+abcd*%efg
  1. 考虑如下递归算法,问调用 solve(24,64)的返回值 ( )

img

{{ select(7) }}

  • 4
  • 8
  • 12
  • 16
  1. 一个由 10 个结点的无向图至少需要( )边。

{{ select(8) }}

  • 0
  • 1
  • 9
  • 45
  1. C++表达式 15%6/2+14&5^3 的值为( )。

{{ select(9) }}

  • 4
  • 6
  • 7
  • 8
  1. 在数据结构中,链表是( )。

{{ select(10) }}

  • 顺序存储的线性表结构
  • 非顺序存储的线性表结构
  • 非顺序存储的非线性表结构
  • 顺序存储的非线性表结构
  1. 设电文中出现的字母为 A,B,C,D,E,每个字母在电文中出现的次数分别 为 70,270,50,60 和 110,按哈夫曼编码,则字母 C 的编码不可能是( )。

{{ select(11) }}

  • 001
  • 1001
  • 1111
  • 1011
  1. 有一个循环队列,队列空间是 50,当前队首指针head=23,指向队首元素的前一个位置,队尾指针 tail=5,指向队尾元素,那么当前队列中共有( )个元素。

{{ select(12) }}

  • 17
  • 18
  • 31
  • 32
  1. 对一组(82,47,25,12,21)排序,数据的次序在排序的过程中的变化为:

(1)82 47 25 12 21

(2)12 47 25 82 21

(3)12 21 25 82 47

(4)12 21 25 47 82

则采用的排序是( )排序。 {{ select(13) }}

  • 选择
  • 冒泡
  • 快速
  • 插入
  1. 用数字 0,1,2,3,4 可以组成( )个小于 1000 的且没有重复数字的自然数。

    {{ select(14) }}

  • 25
  • 31
  • 65
  • 69
  1. CSP-J 初赛结束后,老师带 4 名女生和 5 名男生排成一行拍照留 念,要求男生必须排在一起,老师要在中间,女生也必须排在一起,那么

不同的排列方式共有( )种 。

{{ select(15) }}

  • 2880
  • 5760
  • 8640
  • 11520

二、阅读程序

(程序输入不超过数组或字符串定义的范围;)

阅读程序一

阅读下面程序,完成第 16~20 题。

img

  1. 输入的 k 必须大于 0。 ( )

{{ select(16) }}

  • 正确
  • 错误
  1. 输入的 k 值只要小于 2000,则 20 和 21 行会得到大于 0 的数。 ( )

{{ select(17) }}

  • 正确
  • 错误
  1. 输入的 k 值不能太大,否则会发生运行错误。 ( )

{{ select(18) }}

  • 正确
  • 错误
  1. 若输入 k 值为 10,则输出的值是( )。

{{ select(19) }}

  • 89 88
  • -47 89
  • -47 88
  • 88 89
  1. 以下说法正确的是( )。

{{ select(20) }}

  • 随着 k 值的变大,函数 fun_two(k)和 fun_one(k)的输出结果几乎同时得 到
  • 随着 k 值的变大,函数 fun_two(k)的输出结果快于 fun_one(k)且时间差 越来越大
  • 随着 k 值的变大,函数 fun_two(k)的输出结果慢于 fun_one(k)且时间差 越来越大
  • 无法确定函数 fun_two(k)和 fun_one(k)输出结果的得到时间

阅读程序二

阅读下面程序,完成第 21~26 题。

img

输入的 n 是不超过 106 的正整数,完成下面的判断题和单选题。

  1. 将第 8 行的“ int i=2; ”改为“ int i=1; ”,程序输出不变。( )

{{ select(21) }}

  • 正确
  • 错误
  1. 将第 12 行删除,程序输出不变。( )

{{ select(22) }}

  • 正确
  • 错误
  1. 将第 14 行删除,程序输出不变。 ( )

{{ select(23) }}

  • 正确
  • 错误
  1. 将第 22 行的“ int j=prime[i] ”改为“ int j=0 ”,程序会无法执行。 ( )

{{ select(24) }}

  • 正确
  • 错误
  1. 如果输入的 n 为 2,输出为 ( )

{{ select(25) }}

  • 1
  • 2
  • 3
  • 4
  1. 该代码中 init() 函数的时间复杂度为( )。

{{ select(26) }}

  • O(logn)
  • O(n)O(\sqrt n)
  • O(n)
  • O(nlogn)

阅读程序三

阅读下面程序,完成第 27~32 题。

img

输入的n是不超过1000的正整数,x,y是不超过n的正整数,完成下面的判断

  1. 将第 33、34 行上下交换,程序输出不变。 ( )

{{ select(27) }}

  • 正确
  • 错误
  1. 将第 15 行删除,程序可能出现递归栈溢出风险。 ( )

{{ select(28) }}

  • 正确
  • 错误
  1. 将第 25 行的“continue; ”改为“break; ”,程序输出不变。 ( )

{{ select(29) }}

  • 正确
  • 错误
  1. 将第 46 行的“int i=2; ”改为“int i=1; ”,程序输出可能发生变化。( )

{{ select(30) }}

  • 正确
  • 错误
  1. 如果输入数据如下所示:

4

1 2

2 3

3 4

则输出为( )。

{{ select(31) }}

  • 1 2
  • 1 4
  • 2 3
  • 2 4
  1. 该代码的时间复杂度为( )。

{{ select(32) }}

  • O(n)
  • O(nlogn)
  • O(n2)
  • O(n)O(\sqrt n)

三、完善程序

完善程序一

(1)(数字矩阵)一个 n*m(1<=n,m<=10)的由非负整数构成的数字矩阵,现 在需要从中选出若干个数字,并且保证取出的数字不相邻(规定一个数字与他周 围的八个数字相邻),求出取出的数字的最大的和是多少。

img

  1. ①处应填 ( )

{{ select(33) }}

  • y!=m
  • y==m+1
  • y<=m
  • y>=m
  1. ②处应填 ( )

{{ select(34) }}

  • mx+=ans
  • mx=ans
  • mx=min(mx,ans)
  • mx=max(mx,ans)
  1. ③处应填 ( ) {{ select(35) }}
  • x<=n&&y<=m
  • x!=n||y!=m
  • mark[x][y]==0
  • mark[x][y]!=0
  1. ④处应填 ( ) {{ select(36) }}
  • dfs(x,y)
  • dfs(x+1,y)
  • dfs(x,y+1)
  • dfs(x+1,y+1)
  1. 处应填 ( ) {{ select(37) }}
  • dfs(x+1,y)
  • dfs(x,y+1)
  • ans-=s[x][y]
  • ans+=s[x][y]

完善程序二

(2)(打牌)三名同学在学习编程的休息时间(编号 1,2,3)打扑克,每人一 开始 n 张牌,牌一共 m 种,若干张相同的牌可以一起出。一开始由第一个人出, 打出自己的牌里最小的牌。接下来,以玩家 1,2,3,1,2,3... 的顺序轮流出牌, 每人打出一组比上个人打出的牌大的, 自己能打出的最小的牌,若没有则跳过。 牌的大小是这么决定的:一组张数多的牌比张数少的牌大,如果张数同样多,那 么点数大的牌比较大。例如: (1,1,1)>(3,3)>(2,2)>(4)>(1)。

若一轮中,其余两个人都无法打出牌,则重新下次由打出最后一张牌的人开 始打。谁最先打完所有的牌,谁就赢了。请问最后谁会胜利呢?输出胜者的编号。 对于所有数据,n, m≤50。

输入格式:第 1 行输入 2 个正整数 n, m。第 2 到 4 行,每行输入 n 个 数,表示每个人一开始的牌。

输出格式:输入共 1 行 1 个正整数,表示胜者的编号。

输入样例:

10 3

1 3 3 1 3 3 1 2 3 3

3 2 1 2 2 3 3 1 1 2

2 2 1 2 3 1 2 3 3 1

输出样例: 3

img

  1. ①处应该填 ( ) {{ select(38) }}
  • a[i][x] =1
  • a[i][x]+=1
  • a[x][i]=1
  • a[x][i]+=1
  1. ②处应该填 ( ) {{ select(39) }}
  • last[1]=0,last[2]=0
  • last[1]=0,last[2]=1
  • last[1]=1,last[2]=0
  • last[1]=1,last[2]=1
  1. ③处应该填 ( ) {{ select(40) }}
  • j==0&&k<=last[1]
  • j==1&&k<last[1]
  • j==0&&k<last[1]
  • j==1&&k<=last[1]
  1. ④处应该填 ( ) {{ select(41) }}
  • last[1]=j,last[2]+=who,last[3]=k
  • last[1]=k,last[2]=j,last[3]=who
  • last[1]=k,last[2]+=j,last[3]=who
  • last[1]=j,last[2]+=k,last[3]=who
  1. ⑤处应该填 ( ) {{ select(42) }}
  • a[who][j]-=last[2]
  • a[who][k]-=last[2]
  • a[who][j]+=last[2]
  • a[who][k]+=last[2]

2024初赛模拟二

未参加
状态
已结束
规则
OI
题目
1
开始于
2024-9-17 13:00
结束于
2024-9-17 16:00
持续时间
2 小时
主持人
参赛人数
5