A. 2024CSPJ初赛模拟题(十二)
2024CSPJ初赛模拟题(十二)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
一、单项选择题
- ( )提出计算机的体系结构主要包括运算器、( )、存储器、输入和输出 设备。
{{ select(1) }}
- 图灵 控制器
- 冯诺依曼 控制器
- 图灵 CPU
- 冯诺依曼 CPU
- 下面合法的电子邮件地址是( )。
{{ select(2) }}
- http://www.csp-j.com
- ftp://csp-j.com
- rb@csp-j.com
- rb@www.csp-j.com
- 一个二进制数的反码为 01011100,则其原码为( )。
{{ select(3) }}
- 01011100
- 10100011
- 10100100
- 01011101
- 若 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
- 老师家买了一台4K 超清电视,其屏幕分辨率是 4096 X 2160, 每一个像 素都是 32 位真彩色, 一个视频文件有 2 分钟, 每秒钟播放 24 帧。在没有压 缩的情况下, 这个视频占用空间最接近以下哪个值( )。
{{ select(5) }}
- 80GB
- 25GB
- 100GB
- 200GB
- 表达式
(a+b)*c/d-e%f*g
的前缀表达式为( )。
{{ select(6) }}
/*+abcd-*%efg
/*+abcd-%e*fg
-/*+abcd%e*fg
-/*+abcd*%efg
- 考虑如下递归算法,问调用 solve(24,64)的返回值 ( )
{{ select(7) }}
- 4
- 8
- 12
- 16
- 一个由 10 个结点的无向图至少需要( )边。
{{ select(8) }}
- 0
- 1
- 9
- 45
- C++表达式 15%6/2+14&5^3 的值为( )。
{{ select(9) }}
- 4
- 6
- 7
- 8
- 在数据结构中,链表是( )。
{{ select(10) }}
- 顺序存储的线性表结构
- 非顺序存储的线性表结构
- 非顺序存储的非线性表结构
- 顺序存储的非线性表结构
- 设电文中出现的字母为 A,B,C,D,E,每个字母在电文中出现的次数分别 为 70,270,50,60 和 110,按哈夫曼编码,则字母 C 的编码不可能是( )。
{{ select(11) }}
- 001
- 1001
- 1111
- 1011
- 有一个循环队列,队列空间是 50,当前队首指针head=23,指向队首元素的前一个位置,队尾指针 tail=5,指向队尾元素,那么当前队列中共有( )个元素。
{{ select(12) }}
- 17
- 18
- 31
- 32
- 对一组(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) }}
- 选择
- 冒泡
- 快速
- 插入
-
用数字 0,1,2,3,4 可以组成( )个小于 1000 的且没有重复数字的自然数。
{{ select(14) }}
- 25
- 31
- 65
- 69
- CSP-J 初赛结束后,老师带 4 名女生和 5 名男生排成一行拍照留 念,要求男生必须排在一起,老师要在中间,女生也必须排在一起,那么
不同的排列方式共有( )种 。
{{ select(15) }}
- 2880
- 5760
- 8640
- 11520
二、阅读程序
(程序输入不超过数组或字符串定义的范围;)
阅读程序一
阅读下面程序,完成第 16~20 题。
- 输入的 k 必须大于 0。 ( )
{{ select(16) }}
- 正确
- 错误
- 输入的 k 值只要小于 2000,则 20 和 21 行会得到大于 0 的数。 ( )
{{ select(17) }}
- 正确
- 错误
- 输入的 k 值不能太大,否则会发生运行错误。 ( )
{{ select(18) }}
- 正确
- 错误
- 若输入 k 值为 10,则输出的值是( )。
{{ select(19) }}
- 89 88
- -47 89
- -47 88
- 88 89
- 以下说法正确的是( )。
{{ 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 题。
输入的 n 是不超过 106 的正整数,完成下面的判断题和单选题。
- 将第 8 行的“ int i=2; ”改为“ int i=1; ”,程序输出不变。( )
{{ select(21) }}
- 正确
- 错误
- 将第 12 行删除,程序输出不变。( )
{{ select(22) }}
- 正确
- 错误
- 将第 14 行删除,程序输出不变。 ( )
{{ select(23) }}
- 正确
- 错误
- 将第 22 行的“ int j=prime[i] ”改为“ int j=0 ”,程序会无法执行。 ( )
{{ select(24) }}
- 正确
- 错误
- 如果输入的 n 为 2,输出为 ( )
{{ select(25) }}
- 1
- 2
- 3
- 4
- 该代码中 init() 函数的时间复杂度为( )。
{{ select(26) }}
- O(logn)
- O(n)
- O(nlogn)
阅读程序三
阅读下面程序,完成第 27~32 题。
输入的n是不超过1000的正整数,x,y是不超过n的正整数,完成下面的判断
- 将第 33、34 行上下交换,程序输出不变。 ( )
{{ select(27) }}
- 正确
- 错误
- 将第 15 行删除,程序可能出现递归栈溢出风险。 ( )
{{ select(28) }}
- 正确
- 错误
- 将第 25 行的“continue; ”改为“break; ”,程序输出不变。 ( )
{{ select(29) }}
- 正确
- 错误
- 将第 46 行的“int i=2; ”改为“int i=1; ”,程序输出可能发生变化。( )
{{ select(30) }}
- 正确
- 错误
- 如果输入数据如下所示:
4
1 2
2 3
3 4
则输出为( )。
{{ select(31) }}
- 1 2
- 1 4
- 2 3
- 2 4
- 该代码的时间复杂度为( )。
{{ select(32) }}
- O(n)
- O(nlogn)
- O(n2)
三、完善程序
完善程序一
(1)(数字矩阵)一个 n*m(1<=n,m<=10)的由非负整数构成的数字矩阵,现 在需要从中选出若干个数字,并且保证取出的数字不相邻(规定一个数字与他周 围的八个数字相邻),求出取出的数字的最大的和是多少。
- ①处应填 ( )
{{ select(33) }}
- y!=m
- y==m+1
- y<=m
- y>=m
- ②处应填 ( )
{{ select(34) }}
- mx+=ans
- mx=ans
- mx=min(mx,ans)
- mx=max(mx,ans)
- ③处应填 ( ) {{ select(35) }}
x<=n&&y<=m
x!=n||y!=m
mark[x][y]==0
mark[x][y]!=0
- ④处应填 ( ) {{ select(36) }}
- dfs(x,y)
- dfs(x+1,y)
- dfs(x,y+1)
- dfs(x+1,y+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
- ①处应该填 ( ) {{ select(38) }}
a[i][x] =1
a[i][x]+=1
a[x][i]=1
a[x][i]+=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
- ③处应该填 ( ) {{ select(40) }}
- j==0&&k<=last[1]
- j==1&&k<last[1]
- j==0&&k<last[1]
- j==1&&k<=last[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
- ⑤处应该填 ( ) {{ select(42) }}
a[who][j]-=last[2]
a[who][k]-=last[2]
a[who][j]+=last[2]
a[who][k]+=last[2]