#P8203. 【模拟试卷】2023北京市海淀区信息学竞赛(初赛)试题(ok)
【模拟试卷】2023北京市海淀区信息学竞赛(初赛)试题(ok)
一、 单项选择题(共 25 题,每题 3分,共计 75 分;每题有且仅有一个正确选项)
- [3 分]正整数 和 的最大公约数是( {{ select(1) }} )。
- 27
- 33
- 29
- 31
- [3 分]与十进制数 对应的八进制数是( {{ select(2) }} )。
- 3350
- 3351
- 3352
- 3540
- [3 分]十六进制数 和八进制数 求和的结果是( {{ select(3) }} )。
- 用十进制数表示的结果为 8332
- 用十六进制数表示的结果为 2084
- 用二进制数表示的结果为 100000000110
- 用八进制数表示的结果为 20212
- [3 分]在 C++ 语言中,按位或运算符(|)是指参加运算的两个数,按二进制位进行"或"运算,若两个数对应位上有一个为 1,则该位上或运算的结果为 1,否则为 0。异或运算符(^)是指参加运算的两个数,按二进制位进行"异或"运算,若两个数对应位不同,则该位结果异或运算的结果为 1,否则为 0。 请计算表达式 (23|2)^5 的值是( {{ select(4) }} )。
- 18
- 1
- 23
- 32
- [3 分]
{{ select(5) }}
!((a!=0) || (b!=0))!((a!=0) && (b!=0) && (c!=0))!((a!=0 && b!=0) || (c!=0))(a==0) && (b==0) && (c==0)
- [3 分]如果字符串 在字符串 中出现了,则字符串 被称作字符串 的子串。设字符串 , 的非空子串的数目是( {{ select(6) }} )。
- 28
- 29
- 16
- 17
- [3 分]将数组 中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换( {{ select(7) }} )次。
- 4
- 5
- 6
- 7
- [3 分]书架上有 本书,编号从 到 ,从其中选 本,其中每两本的编号都不相邻的选法一共有( {{ select(8) }} )种。
- 1530
- 3020
- 3060
- 4096
- [3 分]队列快照问题:队列快照是指在某一时刻队列中的元素组成的有序序列。例如,当元素 入队,元素 出队后,此刻的队列快照是 {,}。当元素 也出队后,队列快照是 {},即为空。 现有 3 个正整数元素依次入队、出队。已知它们的和为 8,则共有( {{ select(9) }} )种可能的不同的队列快照(不同队列的相同快照只计一次)。 例如,{5,1},{4,2,2},{} 都是可能的队列快照;而 {7} 不是可能的队列快照,因为剩下的 2 个正整数的和不可能是 1。
- 36
- 42
- 49
- 58
- [3 分]定义字符串的基本操作为:删除一个字符、插入一个字符和将一个字符修改成另外三个字符这三种操作。将字符串 A 变成字符串 B 的最少操作步数,称为字符串 A 到字符串 B 的编辑距离。字符串 ABCDEFG 到字符串 BADECG 的编辑距离为( {{ select(10) }} )。
- 3
- 4
- 6
- 7
- [3 分]在数组 中,若存在 ,则称 为数组 的一个逆序对。对于序列 ,在不改变顺序的情况下,去掉( {{ select(11) }} )会使逆序对的个数减少 3。
- 7
- 5
- 3
- 8
- [3 分]定义一种字符串操作,一次可以将其中一个元素移到任意位置。举例说明,对于字符串 可以将 移到 之前,变成字符串 。如果要将字符串 变成 最少需要( {{ select(12) }} )次操作。
- 3
- 4
- 5
- 6
- [3 分]原字符串中任意一段连续的字符所组成的新字符串称为子串。则字符串 AAABBBCCC 共有( {{ select(13) }} )个不同的非空子串。
- 3
- 12
- 36
- 45
- [3 分]如图,每条边上的数字表示该条边的长度,则从 A 到 E 的最短距离是( )。

{{ select(14) }}
- 10
- 11
- 12
- 13
- [3 分]重新排列 使得每一个数字都不在原来的位置上,一共有( {{ select(15) }} )种排法。
- 7
- 9
- 24
- 44
- [3 分]在某大型国际比赛期间,主办单位为了欢迎来自各国的选手,举行了盛大的晚宴。在第十八桌,有 5 名大陆选手和 5 名港澳选手共同进餐。为了增进交流,他们决定相隔就坐,即每个大陆选手左右旁都是港澳选手,每个港澳选手左右旁都是大陆选手。那么,这一桌一共有( {{ select(16) }} )种不同的就坐方案。
- 1200
- 2400
- 2880
- 14400
- [3 分]在不超过 的正整数中,与 互质的正整数有( {{ select(17) }} )个。
- 2000
- 4000
- 6000
- 8000
- [3 分]一个 的方格图形(不可旋转)用黑、白两种颜色填充每个方格。如果每个方格只能填涂一种颜色,且不允许两个黑格相邻,共有( {{ select(18) }} )种填充方案。
- 55
- 68
- 72
- 82
- [3 分]一个人站在坐标 (0,0) 处,面朝 x 轴正方向。第一轮,他向前走 1 单位距离,然后右转;第二轮,他向前走 2 单位距离,然后右转;第三轮,他向前走 3 单位距离,然后右转……他一直这么走下去。请问第 2017 轮后,他的坐标是:( _________ , _________ )。

{{ select(19) }}
- 1009, 1008
- 1009, 1010
- 1008, 1009
- 1008, 1008
- [3 分]在 和 之间(包括 和 在内)不能被 三个数任意一个数整除的数有( {{ select(20) }} )个。
- 100
- 1050
- 1075
- 1080
- [3 分]地面上有标号为 的三根柱,在 柱上放有 个直径相同中间有孔的圆盘,从上到下依次编号为 将 柱上的部分盘子经过 柱移入 柱,也可以在 柱上暂存。如果 柱上的操作记录为"进、进、出、进、进、出、出、进、进、出、进、出、出"。那么,在 柱上,从下到上的编号为( {{ select(21) }} )。
- 2 4 3 6 5 7
- 2 4 1 2 5 7
- 2 4 3 1 7 6
- 2 4 3 6 7 5
- [3 分]有五副不同颜色的手套(共 10 只手套,每副手套左右手各 1 只),一次性从中取 6 只手套,请问恰好能配成两副手套的不同取法有( {{ select(22) }} )种。
- 120
- 180
- 150
- 30
- [3 分]由 这五个数字组成不同的三位数有( {{ select(23) }} )种。
- 18
- 15
- 12
- 24
- [3 分]小明希望选到形如"省 A-LLDDD"的车牌号。车牌号在"-"之前的内容固定的 5 位号码中,前 2 位必须是大写英文字母,后 3 位必须是阿拉伯数字(L 代表 A 至 Z,D 表示 0 至 9,两个 L 和三个 D 之间可能相同也可能不同)。请问总共有( {{ select(24) }} )个可供选择的车牌号。
- 20280
- 52000
- 676000
- 1757600
- [3 分]假设有 n 根柱子,需要按照以下规则依次放置编号为 1,2,3,… 的圆环:每根柱子的底部固定,顶部可以放入圆环;每次从柱子顶部放入圆环时,需要保证任何两个相邻圆环的编号之和是一个完全平方数。请计算当有 4 根柱子时,最多可以放置( {{ select(25) }} )个圆环。
- 7
- 9
- 11
- 5
二、 阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填✓,错误填 ×;除特殊说明外,判断题 2 分,选择题 2 分,共计 20 分)
(1)

判断题
- [2 分]如果 h 数组中的输入有负数,则程序会出错。 ( {{ select(26) }} )
- 正确
- 错误
- [2 分]程序输出的 ans 小于或等于 n。 ( {{ select(27) }} )
- 正确
- 错误
- [2 分]将第 13 行 a[j]>=a[i] 改为 a[j]>a[i] 输出结果不会改变。 ( {{ select(28) }} )
- 正确
- 错误
单选题
- [2 分]若输入的数据为:
10
1 1 1 1 1 1 1 1 1 1
则程序的输出结果是 ( {{ select(29) }} )
- 1
- 2
- 3
- 4
- [2 分]若输入的数据为:
10
3 2 5 11 12 7 4 10 15 6
则程序的输出结果是 ( {{ select(30) }} )
- 2
- 3
- 4
- 5
(2)

判断题
- [1 分]当m>0 时,输出的值一定小于 2n。 ( {{ select(31) }} )
- 正确
- 错误
- [1 分]执行完第 24 行的 ans++ 时,ans 一定是偶数。 ( {{ select(32) }} )
- 正确
- 错误
- [1 分]a[i] 和 b[i] 不可能同时大于 0。 ( {{ select(33) }} )
- 正确
- 错误
单选题
- [2 分]若 m 个 x 两两不同,且 m 个 y 两两不同,则输出的值为( {{ select(34) }} )。
- 2n−2m
- 2n+2
- 2n−2
- 2n
三、完善程序(单选题,每小题2分,共计 10分)
(分解质因数)

- [2 分]空缺 ① 处应该填 ( {{ select(35) }} )
- 1
- n-1
- 2
- 0
- [2 分]空缺 ② 处应该填 ( {{ select(36) }} )
- n/i
- n/(i*i)
- i*i
- iii
- [2 分]空缺 ③ 处应该填 ( {{ select(37) }} )
- if(n%i==0)
- if(i*i<=n)
- while(n%i==0)
- while(i*i<=n)
- [2 分]空缺 ④ 处应该填 ( {{ select(38) }} )
- n>1
- n<=1
- i < n/i
- i+i<=n
- [2 分]空缺 ⑤ 处应该填 ( {{ select(39) }} )
- 2
- n/i
- n
- i