C++信息学竞赛初赛笔试答案(2023年北京海淀区)

 目录

一、选择题

二、阅读程序

三、程序完善


一、CCAAB ABCCA CBCBB CBAAC DAACC

二、1.B,A,B, A,D 2. A,B,B,A

三、CCCAC

一、选择题

第1题 正整数319和377的最大公约数是(C)

A.27

B.33

C.29

D.31

解析:利用辗转相除法计算,377%319=58,319%58=29,58%29=0,所以319和377最大公约数是29

第2题 与十进制数1770对应的八进制数是(C)

A. 3350

B. 3351

C. 3352

D. 3450

解析:把四个选项八进制转换成十进制数,A(3350)8=3*8^3+3*8^2+5*8+0=1536+192+40=1768,1768比1770少2,A(3350)8加上2=C(3352)8,所以选择C选项

第3题 十六进制数2070和八进制数34求和的结果是(A)

A 用十进制数表示的结果为8332

B.用十六进制数表示的结果为208A

C.用二进制数表示的结果为100000000110

D.用八进制数表示的结果为20212

解析:不同进制之间的算数运算,我们需要转化成统一的进制,可以借助二进制来转换,(2070)16转换成二进制(一位转换成4位)0010 0000 0111 0000,二进制转换成八进制(三位转换成1位) 0 010 000 0 01 11 0 000 =(20160)8,八进制20160加上34等于20214,所以D选项错误,(20214)8=(010 000 010 001 100)2;所以C选项错误,(010 000 010 001 100)2=010 0000 1000 1100=(208C)16,所以B选项错误;(208C)16=2*16*16*16+8*16+12=8332,所以A选项正确

第4题 在C++语言中,按位或运算符(|)是指参加运算的两个数,按二进制位进行"或"运算,若两个数对应位上有一个为1、则该位上或运算的结果为1,否则为 0。异或运算符(^)是指参加运算的两个数,按二进制位进行“异或"运算,若 两个数对应位值不同,则该位结果异或运算的结果为1,否则为0。请计算表达式(23|2)^5的值是(A)。

A.18

B.1

C.23

D.32

解析:23转换为二进制数为10111;2转换为二进制为10;5转换为二进制为101;10111|10=10111,10111^101=10010,再次转换成十进制,16+2=18

第5题 在C++语言中,三种逻辑运算符运算(注意这里不是按位运算)规则如下:

判断a等于0或b等于0或c等于0的正确的条件表达式是(  B  )

A. !((a!=0)((b!=0)

B.!((a!=0)&&(b!=0)&&(c!=0))

C.!(a==0&&b==0)ll(c!=0)

D.(a=0)&&(b=0)&&(c=0)

解析:(a!=0)&&(b!=0)&&(c!=0)的取反操作就是单反a b c有一个等于0,整个表达式取反就为真,所以符合a等于0或b等于0或c等于0的正确的条件表达式要求。

第6题 如果字符串s在字符串T中出现了,则字符串s被称作字符串T的子串。设字符串T="Olympic",T的非空子串的数目是(A)。

A.28

B.29

C.16

D.17

解析:一个字符串的非空子串的个数公式:n(n+1)/2,其中n为字符串的长度

第7题 将数组{8,23,4,16,77,-5,53,100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换( B )次

A. 4

B. 5

C. 6

D. 7

解析:最少需要交换几次

{100,77,53,23,16,8,4,-5}

{8,23,4,16,77,-5,53,100}

100和8交换,{100,23,4,16,77,-5,53,8}   

77和23交换;8和-5交换;{100,77,4,16,23,8,53,-5}   

4和53交换;16和23交换;{100,77,53,23,16,8,4,-5}   

所以最少5次交换,就可以得到有序的序列了。

第8题 书架上有21本书,编号从1到21、从其中选4本,其中每两本的编号都不相邻的选法一共有( C )种。

A 1530

B.3020

C.3060

D.4096

解析:(出自NOIP2008提高的填空)假装只有18本书,任意选4本 C(18,4),然后四个两两之间加一本书即可C(18,4)=3060

第9题 队列快照问题:队列快照是指在某一时刻队列中的元素组成的有序序列。例如, 当元素1,2,3入队,元素1出队后,此刻的队列快照是2,3。当元素2,3也出队后, 队列快照是"",即为空。现有3个正整数元素依次入队、出队。已知它们的和为8, 则共有(        )种可能的不同的队列快照(不同队列的相同快照只计一次)。例 如,“5,1"、“4,2,2"、“都是可能的队列快照;而"7"不是可能的队列快照,因为 剩下的2个正整数的和不可能是1。

A 36

B.42

C.49

D.58

解析:8=1+1+6=1+2+5=1+3+4=1+4+3=1+5+2=1+6+1        6*3=18种

=2+1+5=2+2+4=2+3+3=2+4+2=2+5+1        5*3=15种

=3+1+4=3+2+3=3+3+2=3+4+1        

=4+1+3=4+2+2=4+3+1

=5+1+2=5+2+1

=6+1+1

第10题 定义字符串的基本操作为:删除一个字符、插入一个字符和将一个字符修改成另外一个字符这三种操作。将字符串A变成字符串B的最少操作步数,称为字符串A到字符串B的编辑距离。字符串“ABCDEFG”到字符串“BADECG”的编辑距离为(A )

A. 3

B. 4

C. 6

D. 7

解析:思考,7个字符变成了6个字符,消失的字符是F,先交换C和F,ABFDECG,在交换A和F,FBADECG,最后删除多余的第1个F,即可得到字符串BADECG,所以最少3次操作

第11题 在数组A[X]中,若存在(i<j)&& (A[i]>A[j]) ,则称(A[i],A[j])为数组A[X]的一个逆序对。对于序列7,5,1,9,3,6,8,4,在不改变顺序的情况下,去掉(  C )会使逆序对的个数减少3。

A. 7

B. 5

C. 3

D. 8

解析:序列7,5,1,9,3,6,8,4的逆序对有7,5;7,1;7,3;7,6;7,4;        5,1;5,3;5,4;        9,3;9,6;9,8;9,4;        6,4;        8,4;        共14种,去掉7,减少5种;去掉5,减少4种;去掉3,减少3种;去掉8,减少1种。

第 12题 定义一种字符串操作,一次可以将其中一个元素移到任意位置。举例说明,对于字符串BCA可以将“A”移到“B”之前,变字符串“ABC”。如果要将字符串“DACHEBGIF”变成“ABCDEFGHI”最少需要(   B )次操作。

A. 3

B. 4

C. 5

D. 6

解析:要将字符串“DACHEBGIF”变成“ABCDEFGHI”,首先A B C三个位置要到D前面去,移动B D位置操作次数最少,2次操作后ABCDHEGIF,HEGIF需要变成EFGHI,移动F H位置操作次数最少,2次操作后EFGHI,所以一共4次就可以完成

第13题 原字符串中任意一段连续的字符所组成的新字符串称为子串。则字符"AAABBBCCC"共有

(  C  )个不同的非空子串。

A. 3

B. 12

C. 36

D. 45

解析:字符串非空子串=n(n+1)/2,n等于字符串长度。但是要求是不同的非空子串,所以换一种思路,长度为1的不同子串有A B C一共3种;长度为2的不同子串有AA AB BB BC CC一共5种;长度为3的子串有AAA AAB ABB BBB BBC BCC CCC一共7种,长度为4的子串AAAB AABB ABBB BBBC BBCC BCCC一共6种,长度为5的子串有AAABB AABBB ABBBC BBBCC BBCCC一共5种,长度为6AAABBB AABBBC ABBBCC BBBCCC一共4种,长度为7有3种,长度为8有2种,合计36种。

第14题  如图,每条边上的数字表示该边的长度,则从A到E的最短距离是( B )。

A.10

B.11

C.12

D.13

解析:A到E最后都得到达C F D三个顶点,这三个顶点到E的距离最短排序D<F<C,排除最后C到E的路径,A到达D最短是A G D,一共8个单位,A到达F最短是A B C F,一共是5个单位,8+4>5+6,所以A到E的最短距离是11

第 15 题 重新排列 1234 使得每一个数字都不在原来的位置上,一共有(  B  )种排法。

A.7

B.9

C.24

D.44

解析:根据排列组合规律,3*3=9种。第一位为2时,一共有2143、2341、2413;第一位为3时,一共有3142、3412、3421;第一位为4时,一共有4123、4312、4321,一共9种

第16题 在某大型国际比赛期间,主办单位为了欢迎来自中国的选手,举行了盛大的晚宴。在第十八桌,有5名大陆选手和 5名港澳选手共同进膳。为了增进交流。他们决定相隔就坐,即每个大陆选手左右旁都是港澳选手,每个港澳选手左右旁都是大陆选手。那么,这一桌一共有( C )种不同的就坐方案。注意:如果在两个方案中,每个选手左边相邻的选手均相同,则视为同一个方案。

A. 1200

B. 2480

C. 2880

D. 14400

解析:相当于1个圆,十个人。先随便找个座,让人去坐,有10个可能,然后顺时针走,下一个座就有5种可能,再下一个就4个,再下一个还是4个,以此类推,就是10*5*4*4*3*3*2*2*1*1。这其中有重复的,同一种坐法,可以绕着桌子走一圈,就是上一个人坐到下一个人的位置,串一下,这样所有坐法就算重复了10次,再除以10就行了。就是5*4*4*3*3*2*2*1*1=2880

第 17 题 在不超过 10000 的正整数中,与10000互质的正整数有( B )个。

A 2000

B.4000

C.6000

D.8000

解析:与10000互质因数不能有2、5,所以不能是偶数以及5的倍数,10000以内2的倍数有5000个,5的倍数有2000个,但是存在重复的,10的倍数都是重复的,一共有1000个重复的,所以与10000互质的正整数有10000-5000-1000=4000个

第 18 题 一个 1x8 的方格图形(不可旋转) 用黑、白两种颜色填涂每个方格。如果每个方格只能填涂一种颜色,且不允许两个黑格相邻,共有 (  A  ) 种填涂方案。

A. 55

B. 68

C. 72

D. 82

解析:8个白格,1种;7个白格,C(8,1) = 8种;6个白格,C(7,2) = 21种;5个白格,C(6,3) = 20种;4个白格,C(5,4) = 5种;3个白格,C(4,4) = 1种,合计8+21+20+5+1=55种

第 19 题 一个人站在坐标(0,0) 处,面朝x轴正方向。第一轮,他向前走1单位距离,然后右转;第二轮,他向前走 2 单位距离,然后右转;第三轮,他向前走 3单位距离,然后右转.....他一直这么走下去。请问第 2017 轮后,它的坐标是: (_,_)。( A )

A. 1009,1008

B. 1009,1010

C. 1008,1009

D. 1008,1008

解析:按照题目可以得到,每进行4轮之后,,这个人的方向会回到X轴正方向,2017/4=54……1,只需要找到右上角那个顶点的规律即可。右上顶点规律:x左边等于1+2a,y坐标等于2a,a等于每4次为一个循环的循环次数。所以(1009,1008)

第 20 题 在1和2015之间 (包括1和2015 在内) 不能被 4,5,6三个数任意一个数整除的数有( C  )个。

A 100

B. 1050

C.1075

D.1080

解析:2015/4=503……3,2015/6=335……5,2015/5=403,所以1-2015能被4、6整除的分别有,503+335+403=1241个,但是存在重复(4和6的最小公倍数是12,2015/12=167.92,4和5的最小公倍数是20,2015/20=100.75,5和6的最小公倍数是30,2015/30=67.16,20和30的最小公倍数是60,2015/60=33),所以1241-167-100-67+33=1241-334+33=940个,这是能被4 5 6整除的个数,2015-940=1075个

(容易漏掉20和30的公倍数,导致计算一些重复的数据)

第 21题 地面上有标号为A、B、C的三根柱,在 A柱上放有 10 个直径相同中间有孔的圆盘,从上到下依次编号为 1,2,3...,将A柱上的部分盘子经过 B 柱移入 C柱,也可以在 B 柱上暂存。如果 B 柱上的操作记录为“进、进、出、进、进、出、出、进、进、出、进、出、出”。那么,在 C柱上,从下到上的编号为( D )

A. 243657

B. 241257

C. 243176

D. 243675

解析:在纸上画图罗列过程,根据栈的特性,先进后出,根据A柱原先的编号,以及B柱进、进、出、进、进、出、出、进、进、出、进、出、出可以得到C柱243675

第 22题 有五副不同颜色的手套(共 10 只手套,每副手套左右手各 1只),一次性从中取6只手套,请问恰好配成两副手套的不同取法有(  A  )种。

A.120

B. 180

C. 150

D.30

解析:先从五副手套中任取二副,有C(5,2) = 10种取法,再从剩下的三副手套中,任选二副手套并各取一只,有C(3,2)*4 = 12种,由分步计数原理可得,恰好能配成两幅手套的不同取法有10*12=120种取法

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

A. 18

B. 15

C.12

D.24

解析:百位固定1的情况,有7种(1 1 2/3 ; 1 2 1/2/3 ;1 3 1/2),百位固定2的情况,有7种(2 1 1/2/3 ; 2 2 1/3 ;2 3 1/2),百位固定3的情况,有4种(3 1 1/2; 3 2 1/2)

第24题  小明希望选到形如“省A.LLDDD“的车牌号。车牌号在“.”之前的内容固定的5位号码中,前2位必须是大写英文字母,后3位必须是阿拉伯数字 (L代表车牌里的大写字母(有字母排除在外),D表示0至9数字,两个L和三个D之间可能相同也可能不同)。请问总共有 (   )个可供选择的车牌号。

A. 20280

B. 52000

C. 576000

D. 1757600

解析:组合问题,两个L和三个D之间可能相同也可能不同,车牌里的字母一共有24个,I和O不在,24*24*10*10*10=576000种

第 25题 假设有 n根柱子,需要按照以下规则依次放置编号为 1,2,3.…的圆环:每根柱子的底部周定,顶部可以放入圆环每次从柱子顶部放入圆环时,需要保证任何两个相邻圆环的编号之和是一个完全平方数。请计算当有 4 根柱子时,最多可以放置()个圆环

A. 7

B. 9

C. 11

D. 5

解析:完全平方数也就是一个整数的平方

二、阅读程序

第26-30题 组合题

阅读下面的程序,完成第(26) 到第(30) 道小题、每道小题 2 分。

第 26题 判断题:如果 h 数组中的输入有负数,则程序会出错。
A. 正确
B. 错误


第 27题 判断题:程序输出的 ans 小于或等于 n。
A. 正确
B. 错误


第 28题 判断题:将第 13 行“a[i]> = a[j]”改为“a[j]>a[i]”输出结果不会改变。
A. 正确
B. 错误


第 29 题 单选题:若输入的数据为: 10
                                                        1 111111111
则程序的输出结果是()
A. 1
B. 2
C. 3
D. 4


第30 题 单选题:若输入的数据为: 10

                             3 2 5 11 12 7 4 10 15 6

程序的输出结果是 (   )

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

第 31-34 题    组合题
阅读下面的程序,完成第(31)到第(34)道小题。

第 27 题 判断题:当m>0时,输出的值一定小于 2n。

A.正确

B.错误

第 28 题 判断题:执行完第 24 行的 ans++ 时,ans 一定是偶数。

A. 正确

B. 错误

第 29 题 判断题:a[i]和 b[i] 不可能同时大于 0。

A. 正确

B. 错误

第 30题 单选题:若m个x两两不同,且m 个两两不同,则输出的值为

A.2n-2m

B.2n+2

C.2n-2

D.2n

三、程序完善

第 35-39 题    组合题

质因数分解:给定一个正整数 n,输出将 n 质因数分解的结果,结果从小到大输出。例如:当 n = 120时程序应该输出 2 2 2 3 5,表示:120 = 2 × 2 × 2 × 3 × 5。输入保证 2 ≤ n ≤ 10^9。提示:先从小到大枚举变量i,然后用 i 不停试除 n 来寻找所有的质因子。

试补全程序。

第35题 单选题:空缺①处应该填(   )

A.1

B.n-1

C.2

D.0

第36题 单选题:空缺②处应该填(   )

A.n/i

B.n/(i*i)

C.i*i

D.i*i*i

第37题 单选题:空缺③处应该填(   )

A.if(n%i==0)

B.if(i*i<=n)

C.while(n%i==0)

D.while(i*i<=n)

第38题 单选题:空缺④处应该填(   )

A.n>1

B.n<=1

C.i<n/i

D.i+i<=n

第39题 单选题:空缺⑤处应该填(   )

A.2

B.n/i

C.n

D.i

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值