#P8203. 【模拟试卷】2023北京市海淀区信息学竞赛(初赛)试题(ok)

【模拟试卷】2023北京市海淀区信息学竞赛(初赛)试题(ok)

一、 单项选择题(共 25 题,每题 3分,共计 75 分;每题有且仅有一个正确选项)

  1. [3 分]正整数 319319377377 的最大公约数是( {{ select(1) }} )。
  • 27
  • 33
  • 29
  • 31
  1. [3 分]与十进制数 17701770 对应的八进制数是( {{ select(2) }} )。
  • 3350
  • 3351
  • 3352
  • 3540
  1. [3 分]十六进制数 20702070 和八进制数 3434 求和的结果是( {{ select(3) }} )。
  • 用十进制数表示的结果为 8332
  • 用十六进制数表示的结果为 2084
  • 用二进制数表示的结果为 100000000110
  • 用八进制数表示的结果为 20212
  1. [3 分]在 C++ 语言中,按位或运算符(|)是指参加运算的两个数,按二进制位进行"或"运算,若两个数对应位上有一个为 1,则该位上或运算的结果为 1,否则为 0。异或运算符(^)是指参加运算的两个数,按二进制位进行"异或"运算,若两个数对应位不同,则该位结果异或运算的结果为 1,否则为 0。 请计算表达式 (23|2)^5 的值是( {{ select(4) }} )。
  • 18
  • 1
  • 23
  • 32
  1. [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)
  1. [3 分]如果字符串 ss 在字符串 TT 中出现了,则字符串 ss 被称作字符串 TT 的子串。设字符串 T=OlympicT=OlympicTT 的非空子串的数目是( {{ select(6) }} )。
  • 28
  • 29
  • 16
  • 17
  1. [3 分]将数组 8,23,4,16,77,5,53,100{8,23,4,16,77,−5,53,100} 中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换( {{ select(7) }} )次。
  • 4
  • 5
  • 6
  • 7
  1. [3 分]书架上有 2121 本书,编号从 112121,从其中选 44 本,其中每两本的编号都不相邻的选法一共有( {{ select(8) }} )种。
  • 1530
  • 3020
  • 3060
  • 4096
  1. [3 分]队列快照问题:队列快照是指在某一时刻队列中的元素组成的有序序列。例如,当元素 1,2,31,2,3 入队,元素 11 出队后,此刻的队列快照是 {22,33}。当元素 2,32,3 也出队后,队列快照是 {},即为空。 现有 3 个正整数元素依次入队、出队。已知它们的和为 8,则共有( {{ select(9) }} )种可能的不同的队列快照(不同队列的相同快照只计一次)。 例如,{5,1},{4,2,2},{} 都是可能的队列快照;而 {7} 不是可能的队列快照,因为剩下的 2 个正整数的和不可能是 1。
  • 36
  • 42
  • 49
  • 58
  1. [3 分]定义字符串的基本操作为:删除一个字符、插入一个字符和将一个字符修改成另外三个字符这三种操作。将字符串 A 变成字符串 B 的最少操作步数,称为字符串 A 到字符串 B 的编辑距离。字符串 ABCDEFG 到字符串 BADECG 的编辑距离为( {{ select(10) }} )。
  • 3
  • 4
  • 6
  • 7
  1. [3 分]在数组 A[x]A[x] 中,若存在 (i<j)(A[i]>A[j])(i < j) ∧ ( A[i] > A[j]),则称 (A[i],A[j])(A[i],A[j]) 为数组 A[x]A[x] 的一个逆序对。对于序列 7,5,1,9,3,6,8,47,5,1,9,3,6,8,4 ,在不改变顺序的情况下,去掉( {{ select(11) }} )会使逆序对的个数减少 3。
  • 7
  • 5
  • 3
  • 8
  1. [3 分]定义一种字符串操作,一次可以将其中一个元素移到任意位置。举例说明,对于字符串 BCABCA 可以将 AA 移到 BB 之前,变成字符串 ABCABC。如果要将字符串 DACHEBGFDACHEBGF 变成 ABCDEFGHABCDEFGH 最少需要( {{ select(12) }} )次操作。
  • 3
  • 4
  • 5
  • 6
  1. [3 分]原字符串中任意一段连续的字符所组成的新字符串称为子串。则字符串 AAABBBCCC 共有( {{ select(13) }} )个不同的非空子串。
  • 3
  • 12
  • 36
  • 45
  1. [3 分]如图,每条边上的数字表示该条边的长度,则从 A 到 E 的最短距离是( )。

{{ select(14) }}

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

{{ select(19) }}

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

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

(1)

判断题

  1. [2 分]如果 h 数组中的输入有负数,则程序会出错。 ( {{ select(26) }} )
  • 正确
  • 错误
  1. [2 分]程序输出的 ans 小于或等于 n。 ( {{ select(27) }} )
  • 正确
  • 错误
  1. [2 分]将第 13 行 a[j]>=a[i] 改为 a[j]>a[i] 输出结果不会改变。 ( {{ select(28) }} )
  • 正确
  • 错误

单选题

  1. [2 分]若输入的数据为:
10
1 1 1 1 1 1 1 1 1 1

则程序的输出结果是 ( {{ select(29) }} )

  • 1
  • 2
  • 3
  • 4
  1. [2 分]若输入的数据为:
10
3 2 5 11 12 7 4 10 15 6

则程序的输出结果是 ( {{ select(30) }} )

  • 2
  • 3
  • 4
  • 5

(2)

判断题

  1. [1 分]当m>0 时,输出的值一定小于 2n。 ( {{ select(31) }} )
  • 正确
  • 错误
  1. [1 分]执行完第 24 行的 ans++ 时,ans 一定是偶数。 ( {{ select(32) }} )
  • 正确
  • 错误
  1. [1 分]a[i] 和 b[i] 不可能同时大于 0。 ( {{ select(33) }} )
  • 正确
  • 错误

单选题

  1. [2 分]若 m 个 x 两两不同,且 m 个 y 两两不同,则输出的值为( {{ select(34) }} )。
  • 2n−2m
  • 2n+2
  • 2n−2
  • 2n

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

(分解质因数)

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