GESP第七次认证真题解析|C++三级真题回顾

四季读书网 1 0
GESP第七次认证真题解析|C++三级真题回顾
GESP第七次认证真题解析|C++三级真题回顾-第1张图片-四季读书网

点击上方蓝字·关注我们

GESP第七次认证真题解析|C++三级真题回顾-第2张图片-四季读书网
GESP第七次认证真题解析|C++三级真题回顾-第3张图片-四季读书网
GESP第七次认证真题解析|C++三级真题回顾-第4张图片-四季读书网
GESP第七次认证真题解析|C++三级真题回顾-第5张图片-四季读书网

CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为青少年计算机和编程学习者提供学业能力验证的平台。GESP覆盖中小学全学段,符合条件的青少年均可参加认证。GESP旨在提升青少年计算机和编程教育水平,推广和普及青少年计算机和编程教育。

GESP考察语言为图形化编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。

本次为大家带来的是20249月份C++级认证真题解析。

一、单选题(每题3分,共30分)

题号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

答案

B

C

A

D

C

B

C

C

A

D

D

C

D

C

B

  1. 下列代码中 ,输出结果是( )。

GESP第七次认证真题解析|C++三级真题回顾-第6张图片-四季读书网

A. Equal

B. Not equal

C. 程序不能正确执行

D. 没有输出

【答案】B

【题目解析】考察浮点数知识题目,浮点数在计算机中是以二进制形式存储的,而某些十进制小数无法精确表示成二进制小数。因此,在进行浮点数运算时可能会出现微小的舍入误差。例如,0.90.1都无法在二进制下精确表示,这可能导致b - a的结果不完全等于0.1,因此选择B选项。

2、关于计算机中的编码 ,下列说法中正确的是( )

A. 机器数的形式值和真值是一致的

B. 原码就是符号位加上真值

C. 机器数是带符号的

D. [-1]=[1000 0001]=[1111 1111]

【答案】C

【题目解析】计算机基础知识题目,对于正数形式值和真值相等,如果是负数有符号位的区别并不一致,原码应是符号位加上形式值,-1的原码表示正确,但是反码应该是1111 1110,因此选择C选项。

38进制数3703转换成16进制数是(  )

A.7C3

B.7A3

C.7B3

D.7D3

【答案】A

【题目解析】进制转换知识题目,可以采用常规方法,先将八进制3703转换成十进制,再转换为十六进制,也可采用快捷方法利用一分三的技巧将3703转二进制,再利用四合一技巧转换为十六进制,最终结果是7C3,因此选择A选项。

40.8125变成⼆进制是(D

A. 0.1110

B. 0.1 1111 1011 1101

C. 0.1 1111 1011 1100

D. 0.1101

答案】D

【题目解析】考察浮点数进制转换知识题目,将十进制小数转换为二进制小数可以采用不断的乘以2并且记录每次乘积的整数部分来完成,0.8125*2=1.625整数部分为10.625*2=1.25整数部分为10.25*2=0.5整数部分为00.5*2=1整数部分为1,最终是0.1101,因此选择D选项。

5、下⾯说法正确的是 ( )

A. 22&01==22&&01)成立

B. (23 |11)==30  

C.(23 |10)==31

D. (23 |01)==31

【答案】C

【题目解析】考察位运算知识题目,a选项计算后左侧为false右侧为true所以是不成立的,b选项计算结果应为31即(10111|1011),c选项正确,d选项计算结果应为0,因此选择C选项。

6、下列说法正确的是 (   )

A. 2>>11>>1的值是一样的

B. (2>>2)(1>>1)的值是一样的

C. (11^00)(1^0)的值是一样的

D. (~0的输出值是1)

【答案B

【题目解析】考察位运算知识题目,a选项计算结果是10选项错误,b选项计算结果都为0选项正确,从选项计算结果是111选项错误,d选项按位取反,不同类型的输出也不同,对于有符号整数int输出的是-1,因为补码形式是1111 1111,因此选择B选项。

7、下列代码实现的是 (   )

GESP第七次认证真题解析|C++三级真题回顾-第7张图片-四季读书网

A.ab的异或

B.ab的同或

C.ab的值交换

D.ab的高低位互换

【答案】C

【题目解析】考察运算知识题目,最终实现效果就是ab的值互换,此题可以采用举出具体实例的方式求解,可以设置a=2,b=3a0010b0011,第一步后a0001,第二步骤后b0010,第三步骤后a0011,因此选择C选项。

8a&~1运算实现的是(  )。

A.使a的最低位为1

B.使a的最高位为1

C.使a的最低位为8

D.使a的最高位为8

【答案】C

【题目解析】考察位运算知识题目,变量a~1做按位与操作,常规32位整数下1的最低位是1,取反后最低位为0a变量最低位无论是1还是0计算结果都会是使最低位为0,因此选择C选项。

9a=1010 1110,a<<2,下面关于这个说法正确的是 (  )。

A. a的值变为1011 1000

B. a的值变为1011 1010

C. a的值变为0101 1101  

D. a的值变为0101 1100

【答案】A

【题目解析】考察位运算知识题目,此题目直接移动即可,整体左移两位低位补0,最终结果是1011 1000,因此选择A选项。

  1. 下列程序中 , resultresult2输出分别是 (   )

GESP第七次认证真题解析|C++三级真题回顾-第8张图片-四季读书网

A. 123 -1

B. 123  -123

C. 1 -1

D. 1 -123

答案】D

【题目解析】考察位运算知识题目,首先是ab做按位与运算,(0111 1011&0000 0001)最终结果是1,第二组是a2b2按位与运算,(0111 1011&1111 1111)结果是0111 1011也就是123,因为a2-123最高位是1b2是无符号int即所有位数位1的最大值,最高位也为1,相当于符号位计算后也为1,最终是-123,所以选择D选项。

11、陈A歹种植一批农作物,第一天需要浇水一次,随后的两天(第2、第3天),每天需要浇水2次,再随后的3天(第4、第5、第6天),需要每天浇水3次,这样持续下去,随后的n天,每天需要浇水n次。请问在100天里,总共浇了多少次水( )

A. 994

B. 996

C. 995

D. 945

【答案】D

【题目解析】考察逻辑运算题目,按照题面描述分阶段第一天浇水次数是1*1次,第二天浇水次数是2*2...以此类推到所有阶段累加的天数到100天,最终是累加到13的平方和共91天总次数819次,剩余9天第14阶段每天14次再加9*14次共819+126=945,因此选择D选项。

12、关于一维数组,下列程序能够正确执行的是( )。

A. GESP第七次认证真题解析|C++三级真题回顾-第9张图片-四季读书网

  1. GESP第七次认证真题解析|C++三级真题回顾-第10张图片-四季读书网

  2. GESP第七次认证真题解析|C++三级真题回顾-第11张图片-四季读书网

  3. GESP第七次认证真题解析|C++三级真题回顾-第12张图片-四季读书网

【答案】C

【题目解析】考察一维数组知识题目,题目中明显的错误比较容易发现其中ABD三个选项中循环都超范围,设置长度为10数组位置共10个但是下标是0~9不存在a[10]三个选项中都是i<=10,因此选择C选项。

13、下面的程序中,会输出( )。

GESP第七次认证真题解析|C++三级真题回顾-第13张图片-四季读书网

A. 1

B. 0

C. 10

D. 不确定的值

【答案】D

【题目解析】考察一维数组知识题目,设置长度为10数组位置共10个但是下标是0~9不存在a[10],会输出不确定的值,因此选择D选项。

14、有ABCD4个人,其中一个是小偷,每个人说一句话,只有小偷说的是假话,其中A说:不是我。B说:是CC说:是DD说:C瞎说,请问谁是小偷( )。

A. A

B. B

C. C

D. D

【答案】C

【题目解析】考察逻辑推知识题目此题可以采用假设法分别假设四人中的一人是小偷,也就是说的是假话,看是否与另外三人说的话相悖,如果是则排除,如果都不相悖就是小偷,或者其他合理推理方法均可因此选择C选项。

15、下列程序输出的是()

GESP第七次认证真题解析|C++三级真题回顾-第14张图片-四季读书网

A. 9

B. 8

C. 7

D. 6

【答案】B

【题目解析】考察字符串汉字字节数知识题目,find函数返回的是字符A的位置,但是前面是一个汉字占用两字节,输出显示的位置会是8并不是7,因此选择B选项。

二、判断题(每题2分,共20分)

题号

1

2

3

4

5

6

7

8

9

10

答案

×

×

×

1+1-1的原码进行1+-1)计算的结果是-2 ()

【答案】正确

【题目解析】考察编码知识题目,最高位符号位是0+1=1为负数,低位的1+1结果为2,因此题目说法正确。

2~1的输出值是-2()

【答案】正确

【题目解析】考察编码知识题目,~1可以理解为对0000 0001进行取反1111 1110,这个编码恰好是-2的补码,程序中用补码表示,所以输出值是-2,因此题目说法正确。

3~1 = 1111 1110 ()

【答案】正确

【题目解析】考察编码知识题目,与第二题相同,~1是对0000 0001按位进行取反1111 1110,因此题目说法正确。

4、取X的低四位,可以⽤Y = 0000 1111,⽤X&Y获取X的低四位。()

【答案】正确

【题目解析】考察位运算知识题目,y = 0000 1111,最低位是四个1,可以通过和1做&运算的结果来判断出x的低四位分别是什么,因此题目说法正确。

5、下列程序输出的是A()

GESP第七次认证真题解析|C++三级真题回顾-第15张图片-四季读书网

【答案】错误

【题目解析】题面给定的程序中char类型变量x65,加1后为66由于类型是char类型,输出的内容是字符B并不是A,因此题目说法错误。

6、下列程序输出的是3 ()

GESP第七次认证真题解析|C++三级真题回顾-第16张图片-四季读书网

【答案】正确

【题目解析】考察编码字符串知识,下标从0开始汉字两个字节,所以字符A下标是2,字符D下标是3,题面中的size_t通常是无符号整数类型,此处当作int理解即可,不影响题目判断,因此题目说法正确。

7、 下列程序将输出 1()

GESP第七次认证真题解析|C++三级真题回顾-第17张图片-四季读书网

【答案】错误

【题目解析】考察数组知识,题面中这种数组初始化方式,是将a[0]设置为1,其余位置都是0填充,所以应该是输出0而不是1,因此题目说法错误。

8、下列程序将输出A()

GESP第七次认证真题解析|C++三级真题回顾-第18张图片-四季读书网

【答案】正确

【题目解析】考察数据类型转换知识,题目中的65转换成字符char类型,对应ASCII码关系,对应字符A,因此题目说法正确。

9、16进制数 AB,表⽰成2进制数是10101011 ()

【答案】正确

【题目解析】考察进制转换知识,将十六进制数字转换成二进制可以采用一分四的方式,A对应1010B对应1011,因此题目说法正确

10、def (⼗六进制) =  103231 (五进制) ()

【答案】错误

【题目解析】考察进制转换知识,def转换为十六进制可以先将十六进制转换为十进制,再将十进制转换成五进制,def分别对应131415,转为十进制是13*16²+14*16+15*1=3567,转为五进制后是103232,题目中103231最后一位书写错误,因此题目说法错误。

三、编程题(每题25分,共50分)

题号

1

2

答案



1、平衡序列

题面描述

小杨有一个包含n个正整数的序列a,他认为一个序列是平衡的当且仅当存在一个正整数i1≤ i<n)使得序列第1个到第i个数字的总和等于第i+1个到第n个数字的总和。

小杨想请你判断序列a是否是平衡的。

输入格式

第一行包含一个正整数t,代表测试用例组数。

接下来是t组测试用例。对于每组测试用例,一共两行。

第一行包含一个正整数n,代表序列长度。

第二行包含n个正整数,代表序列a

输出格式

对于每组测试用例,如果序列a是否是平衡的,输出Yes,否则输出No

样例1

GESP第七次认证真题解析|C++三级真题回顾-第19张图片-四季读书网

对于第一组测试用例,令i=2,则有1+2=3,因此序列是平衡的;

对于第二组测试用例,令i=2,则有2+3=1+4,因此序列是平衡的;

对于第三组测试用例,不存在满足要求的i

对于全部数据,保证有1 ≤ t ≤ 1001 ≤ n,ai≤ 10000

【题目解析】

根据题面描述的要求,先按着数据组数设置好循环次数,即t次。每组数据正常输入且输入过程中累加求出总和,接下来从第1个位置到第n-1个位置遍历,如果累加中tot变量等于了数组总和得一半,则剩下的一定就是另一半了,这也是为什么遍历到n-1位置的原因,至少保留一个作为平衡的另一半,最后每组数据对应一个输出(Yes/No)配合换行格式即可。

【参考程序】

GESP第七次认证真题解析|C++三级真题回顾-第20张图片-四季读书网

2、回文拼接

题面描述

一个字符串是回文串,当且仅当该字符串从前往后读和从后往前读是一样的,例如,aabaaceddcc都是回文串,但abcd不是。

小杨有n个仅包含小写字母的字符串,他想请你编写程序判断每个字符串是否由两个长度至少为2的回文串前后拼接而成。

输入格式

第一行包含一个正整数n,代表字符串数量。

之后n行每行一个仅包含小写字母的字符串。

输出格式

对于每个字符串输出一行,如果该字符串由两个长度至少为2的回文串前后拼接而成则输出Yes,否则输出No

样例1

GESP第七次认证真题解析|C++三级真题回顾-第21张图片-四季读书网

对于第1,3,4个字符串,都不是由两个长度至少为2的回文串前后拼接而成。

2个字符串由回文串aabbb前后拼接而成,并且两个回文串长度都至少为2

对于全部数据,保证有1 ≤ n ≤ 10,并且每个字符串的长度不超过100

【题目解析】

首先需要清楚回文格式这样一个小概念,题面描述要求是整个字符串是否为连个回文格式的子串拼接而成的,所以可以使用循环从中间切开,分成前后很多组尝试,检测前后两个字串是否都是回文格式,题目是多组输入数据,所以循环n次,每次一个输入是,对应一个输出(Yes/No)。由于题目要求长度至少为2,所以对于每个string s,测量长度后从2开始循环到m-2位置,这样变量j刚好用于strsub函数中的位置和长度,求得两个字串s1s2后使用两个关于k的循环分别反向拼接形成两个反向的串t1t2,如果t1==s1 && t2==s2证明前后两个字符串都是回文格式的,标记fl = 1,根据fl的状态分支判断,输出答案即可。

【参考程序】

GESP第七次认证真题解析|C++三级真题回顾-第22张图片-四季读书网

技术支持:马长明

策划:GESP技术委员会副主席 刘晓庆

GESP第七次认证真题解析|C++三级真题回顾-第23张图片-四季读书网
GESP第七次认证真题解析|C++三级真题回顾-第24张图片-四季读书网
联系方式

1. GESP微信:关注“CCF GESP”公众号,点击“GESP小助手”即可交流。

2. GESP邮箱:gesp@ccf.org.cn

注:请在邮件中详细描述咨询的问题并留下考生的联系方式及姓名、身份证号,以便及时有效处理。

3. GESP电话:0512-67656856

咨询时间:周一至周五(法定节假日除外)上午 8:30-12:00;下午 13:00-17:30

GESP第七次认证真题解析|C++三级真题回顾-第25张图片-四季读书网

扫码关注GESP公众号,了解更多资讯

GESP第七次认证真题解析|C++三级真题回顾-第26张图片-四季读书网

GESP第七次认证真题解析|C++三级真题回顾-第27张图片-四季读书网

点击此处 “阅读原文” 查看更多内容

GESP第七次认证真题解析|C++三级真题回顾-第28张图片-四季读书网
GESP第七次认证真题解析|C++三级真题回顾-第29张图片-四季读书网
GESP第七次认证真题解析|C++三级真题回顾-第30张图片-四季读书网

上一个当前已是最后一个了

下一个当前已是最新一个了

抱歉,评论功能暂时关闭!