GESP第六次认证真题解析|Python三级真题回顾

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

点击上方蓝字关注我们吧

GESP第六次认证真题解析|Python三级真题回顾-第2张图片-四季读书网

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

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

本次为大家带来的是20246月认证Python三级真题解析。

GESP20246月认证Python三级

  1. 单选题(每题2分,共30分)

题号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

答案

C

B

B

C

C

A

A

D

B

C

D

A

C

B

B

1⼩杨⽗母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级 ,那他可以选择的认证语( )  种。

A. 1

B. 2

C. 3

D. 4

案:C

解析:GESP认证目前支持的语言有ScratchPythonC++三种

2下⾯流程图在yr输⼊2024时,可以判定yr代表闰年,并输出2月是29天,则图中菱形框中应该填入( )。

GESP第六次认证真题解析|Python三级真题回顾-第3张图片-四季读书网

A. (yr%400==0) || (yr%4==0)

B. (yr%400==0) || (yr%4==0 && yr%100 !=0)

C. (yr%400==0) && (yr%4==0)

D.(yr%400==0) && (yr%4==0 && yr%100 !=0)

案:B

解析:闰年判断,四年一闰百年不闰四百年再闰;

3、下列流程图的输出结果是?( )

GESP第六次认证真题解析|Python三级真题回顾-第4张图片-四季读书网

答案B

解析:先手推几次找找规律

sum=0,i=0

i<5 j=0 j>=i i=1

i<5 j=0 j<i sum=1j=1j>=i i=2

i<5 j=0 j<i sum=2, j=1,sum=3,j=2 j>=i i=3

i<5 j=0 j<i sum=4, j=1,sum=5,j=2,sum=6,j=3 j>=i i=4

i<5 j=0 j<i sum=7, j=1, ... sum=10,j=4 j>=i i=5

i>5 sum=10

整体操作是个循环嵌套,不断地给sumi01234)次1后输出sum

4、将⼗进制2024转化成⼋进制 ,可以使⽤下列哪个表达式?  (   )

A. bin(2024)  

B. int(2024)  

C. oct(2024)  

D. hex(2024)

案:C

解析0CT(num)是将num转化为八进制的表达式

5、执⾏下⾯Python代码后 ,输出的结果是?  ( )

GESP第六次认证真题解析|Python三级真题回顾-第5张图片-四季读书网

  1. 1

  2. 2

  3. 3

  4. 4

案:C

解析:执行上述Python代码后,字典b会被字典a的键值对更新。具体来说,b中的' name'键的值会被更新为'Tom',并且会添加一个新的键值对'age': 12。因此,更新后的字典b包含3个键值对,所以输出的结果是3

6、执⾏下⾯Python代码后 ,输出的结果不可能是哪⼀项?  ( )

GESP第六次认证真题解析|Python三级真题回顾-第6张图片-四季读书网A. {0: 8, 4: 4, 6: 2, 2: 6}

B. {8: 0, 6: 2, 4: 4, 2: 6}

C. {4: 4, 6: 2, 8: 0, 2: 6}

D. {8: 0, 2: 6, 4: 4, 6: 2}

案:A

解析:分析zip(range(8, 0, -2), range(0, 8, 2))的结果。

range(8, 0, -2)生成一个序列:[8, 6, 4, 2]

range(0, 8, 2)生成一个序列:[0, 2, 4, 6]

zip函数将这两个序列“打包”成一个元组的列表:[(8, 0), (6, 2), (4, 4), (2, 6)]

dict函数将这个元组的列表转换成字典:{8: 0, 6: 2, 4: 4, 2: 6}

现在,比较选项:

A. {0: 8, 4: 4, 6: 2, 2: 6} ——键的顺序和值都是错误的。

B. {8: 0, 6: 2, 4: 4, 2: 6} ——与我们计算的字典相同。

C. {4: 4, 6: 2, 8: 0, 2: 6} ——键的顺序不同,但值是正确的,字典是无序的,所以这也是可能的。

D. {8: 0, 2: 6, 4: 4, 6: 2} ——键的顺序不同,但值是正确的,字典是无序的,所以这也是可能的。

因此,输出的结果不可能是A选项:{0: 8, 4: 4, 6: 2, 2: 6}

7、执⾏下⾯Python代码后 ,输出的结果是?  (   )

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

  1. ('scratch', 'c++', 'python')

  2. ('python', 'scratch', 'c++')

  3. ('scratch', 'python','c++')  

  4. ( 'c++','python','scratch')

案:A

解析:这段代码先定义了一个元组t1,包含三个字符串:"python", "c++", "scratch"

接着,通过列表推导式(i for i in t1[::-1])和tuple()函数创建了一个新的元组t2

t1[::-1]表示将t1中的元素逆序。

因此,t2会包含t1中元素的逆序,即("scratch", "c++", "python")。

所以,输出的结果是:('scratch', 'c++', 'python')

8、执⾏下⾯Python代码后 ,输出的结果是?  ( )

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

A. (3, 4, 5, 6, 7, 'c', 'd', 'e')

B. (3, 4, 5, 6, 7, 'f', 'e', 'd', 'c')

C. (3, 4, 5, 6, 'f', 'e', 'd', 'c')

D. (3, 4, 5, 6, 7, 'f', 'e', 'd')

案:D

解析:分析表达式t1[2:] + t2[5:2:-1]

t1[2:]表示从元组t1中取索引从2开始到最后的所有元素,即(3, 4, 5, 6, 7)

t2[5:2:-1]表示从元组t2中取索引从5开始到2(不包括2)的所有元素,并且步长为-1, 即逆序取元素。 这会产生 ('f', 'e', 'd')

将这两个结果相加,即(3, 4, 5, 6, 7) + ('f', 'e', 'd'),结果是(3, 4, 5, 6, 7, 'f', 'e', 'd')

所以,输出的结果是(3, 4, 5, 6, 7, 'f', 'e', 'd')。 答案是 D. (3, 4, 5, 6, 7, 'f', 'e', 'd')

9、执⾏下⾯Python代码后 ,输出的结果是?  ( )

GESP第六次认证真题解析|Python三级真题回顾-第9张图片-四季读书网

  1. [9, 7, 5, 3, 1] [8, 6, 4, 2, 0]

  2. [8, 6, 4, 2, 0] [9, 7, 5, 3, 1]

  3. [0, 2, 4, 6, 8] [1, 3, 5, 7, 9]

  D. [1, 3, 5, 7, 9] [0, 2, 4, 6, 8]

案:B

解析:代码首先生成了一个包含09的列表a(通过取1019之间每个数字对10的余数)。

然后,它定义了两个空列表bc,用于存储偶数和奇数。

接着,代码进入一个循环,从列表a中逐个弹出元素,并根据其是偶数还是奇数将其添加到列表bc中。

由于pop()方法默认弹出列表的最后一个元素,所以处理顺序是从90。最终,列表b包含了所有的偶数(8, 6, 4, 2, 0),而列表c包含了所有的奇数(9, 7, 5, 3, 1),因此输出的结果是[8, 6, 4, 2, 0] [9, 7, 5, 3, 1],对应选项B

10、执⾏下⾯Python代码后 ,输出的结果是?  ( )

GESP第六次认证真题解析|Python三级真题回顾-第10张图片-四季读书网

A. ['a', 'e', 'g', 'n', 'o', 'r']

B. ['e', 'g', 'n', 'a', 'r', 'o']

C. ['r', 'o', 'n', 'g', 'e', 'a']

D. ['o', 'r', 'a', 'n', 'g', 'e']

答案:C

解析:分析Python代码的执行流程:

创建一个列表a,包含元素['o', 'r', 'a', 'n', 'g', 'e']

使用sort()方法对列表a进行排序。排序后,列表a变为['a', 'e', 'g', 'n', 'o', 'r']

使用reverse()方法将列表a反转。反转后,列表a变为['r', 'o', 'n', 'g', 'e', 'a']

打印列表a

根据以上分析,输出的结果是['r', 'o', 'n', 'g', 'e', 'a']

因此,正确答案是C. ['r', 'o', 'n', 'g', 'e', 'a']

11、下⾯可以正确输出 They 're planning a party for their friend 's birthday. Python语句是?(    )

A. print('They\ 're planning a party for their friend\ 's birthday.")

B. print("They\ 're planning a party for their friend\ 's birthday. ')

C. print('They 're planning a party for their friend 's birthday. ')  

D. print('They\ 're planning a party for their friend\ 's birthday. ')

案:D

解析:在Python中,单引号内的单引号需要通过转义字符\来转义,否

Python解释器会将其视为字符串的结束。选择D

12、执⾏下⾯Python代码后 ,输出的结果是?  ( )

GESP第六次认证真题解析|Python三级真题回顾-第11张图片-四季读书网

A.  [ 'gesp ', 'ccf.org.cn ']

B.  [ 'gesp ', 'ccf ', 'org.cn ']

C.  [ 'gesp ', 'ccf ', 'org ', 'cn ']  

D.  [ 'gesp.ccf.org.cn ']

案:A

解析:这段代码的作用是将字符串'gesp.ccf.org.cn'在第一个出现的点号(.)处进行分割。split('.', 1) 方法中的参数表示使用点号作为分隔符,并且只分割一次。

因此,字符串被分割成两部分:'gesp''ccf.org.cn'

最后,这两部分作为列表输出,即['gesp', 'ccf.org.cn'],对应选项A

13、执⾏下⾯Python代码后 ,输出的结果可能是?  ( )

GESP第六次认证真题解析|Python三级真题回顾-第12张图片-四季读书网

  1. {'H', 'p', 'w', 'e', 'y', 'a', 'r', 'p', 'n'}

  2. {'p', 'n', 'w', 'r', 'H', 'y', 'a', 'e'}

  3. {'r', 'y', 'w', 'n', 'e', 'a', 'p', 'H', ' '}  

  D. {'r', 'p', 'e', 'a', 'H', 'w', 'n', 'a', 'y'}

案:C

解析:这段代码首先创建了一个字符串"Happy new year",然后将其转换为一个集合。 集合是一个无序且不包含重复元素的数据结构,所以转换后的集合将包含字符串中的所有唯一字符,但不包括任何重复的字符。最后,代码打印出这个集合。

由于集合是无序的,所以打印出的字符顺序可能与原始字符串中的顺序不同。但是,集合中的字符 将包括 'H', 'a', 'p', 'y', ' ', 'n', 'e', 'w', 'y', 'e', 'a', 'r' 中的每一个,但重复的字符(如'p', ' ', 'y', 'e')只会出现一次。

因此,输出的结果是一个包含字符串中所有唯一字符的集合,但字符的顺序可能有所不同。选项C {'r', 'y', 'w', 'n', 'e', 'a', 'p', 'H', ' '}是这种集合的一个可能表示,尽管实际输出时字符的顺序可能不同。

14、⼩杨在做数学题 ,题⽬要求找出从135中能被7整除的数字, 即[7, 14, 21, 28, 35], 以下哪个解析式可以完 成这样的任务?  ( )

A.  [i for i in range(36) if i % 7 == 0]

B.  [i for i in range(1, 36) if i % 7 == 0]  

C.  [i for i in range(1, 35) if i % 7 == 0]  

D.  [i for i in range(1, 36) if i // 7 == 0]

案:B

解析:这个问题要求找出从135中能被7整除的数字,即[7, 14, 21, 28, 35]。需要使用列表推导式来完成这个任务。

A选项的范围是从035,包含了0,但题目要求是从1开始,所以A选项不正确。

B选项的范围是从135,正好符合题目要求。同时,它使用了条件i % 7 == 0来筛选出能被7整除的数字,也符合题目要求。因此,B选项是正确的。

C选项的范围是从134,不包含35,所以C选项不正确。

D选项虽然范围是从135,但它使用的条件i // 7 == 0表示筛选出除以7余数为0且 商也为0的数字,这在135的范围内是不存在的,所以D选项也不正确。

15、某⼩学男⼦篮球队招募新成员 ,要求加⼊球队的成员⾝⾼在135厘⽶以上(不含135厘⽶) 。本次报名的⼈ 员有10⼈ ,她们的⾝⾼分别是125127136134137138126135140145。完善以下代码 ,求出本次球 队能够招募到新成员的⼈数?  ( )

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

A. a.index(135)

B. sum(b)

C. len(b)

D.b.count('True ')

答案B

解析:问题要求计算一个小学男子篮球队能够招募到的新成员人数。招募的条件是成员的身高必须大于135厘米。给定 了一个包含10个人身高的列表,需要筛选出身高符合要求的人数。

通过列表推导式,可以得到一个布尔列表,其中True表示身高符合要求,False表示身高不符合要求。然后,使 用sum()函数来计算这个布尔列表中True的数量,因为True可以被当作1来处理。最终,我们得到了一个数字, 表示能够招募到的新成员人数。

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

题号

1

2

3

4

5

6

7

8

9

10

答案

×

×

×

×

1GESP测试是对认证者的编程能等级认证, 同级别的能基本上与编程语言无关 。  ( )

答案:正确

解析:本题考察对GESP的认识,GESP认证是对认证者的编程能力进行等级认证, 同⼀级别的能力基本上与编程语言无关

2、在Python中 ,print(list("GESP"))将输出['G', 'E', 'S', 'P'] (  )

答案:正

解析:打印list结果为['G', 'E', 'S', 'P']

3、集合是⼀个⽆序的不重复元素序列 ,⽤{}作为界定符 ,如集合 {1, 2, {3: 4}, 5, 6}

答案:错误

解析;集合中的元素应该是不可变的(immutable)。{3: 4} 是一个字典(Dictionary),它是可变的(mutable),因此不能作为集合的元素

4、集合支持索引操作 ,可以通过索引访问元素 。

答案:错误

解析:集合不支持索引操作。由于集合是无序的,所以无法通过索引来访问集合中的元素。

5、整数-616位补码可用十六进制表⽰为FFFA

案:正确

解析:-6=(1000 0000 0000 0110)

              => (1111 1111 1111 1001)

=>(1111 1111 1111 1010)补码

6、十六进制FB 转成⼋进制为363

答案:错

解析:FB转二进制是1111 1011 转 八进制是 373

7ab为整数 ,如果表达式 a ^ b == 0 True,那么说明ab相等。

答案:正

解析:考察位运算中的异或运算,相同为0、相异为1,若a^b==0,表示ab是相同的。

8、执行下⾯Python代码后 ,输出的结果是8

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

答案:错误

解析:(10102 & 0010010000002 == 0

9、执行下⾯Python代码后 ,输出的结果不可能是89781( )

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

答案:正确

解析a0~9之间的随机数,模拟上述代码运算 第一位可以为 2 5 8,第二位可以为0 3 6 9 ,第三位可以为1 4 7,第五位可以为0 3 6 9 因此8 9 7 8 1 的最后一位不符合。

10、把整数3025从中剪开分为3025两个数 ,此时再将这两数之和平⽅ ,计算结果⼜等于原数。(30 + 25) × (30 + 25)= 55 × 55 = 3025 ,这样的数叫“雷劈数” 。可以使⽤枚举的⽅法求出所有符合这样条件的四位数 。

答案:正确

析:枚举1000~9999找出符合要求的情况。

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

题号

1

2

答案



1、移位

题面描述

⼩杨学习了加密技术移位 ,所有⼤写字母都向后按照⼀个固定数⽬进⾏偏移 。偏移过程会将字母表视作⾸尾相接的环,例如,当偏移量是3的时候,⼤写字母A会替换成D⼤写字母Z会替换成C,总体来看,⼤写字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ会被替换成DEFGHIJKLMNOPQRSTUVWXYZABC

注:当偏移量是26的倍数时,每个⼤写字母经过偏移后会恰好回到原来的位置, 即⼤写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ经过偏移后会保持不变。

输入格式

第⼀⾏包含⼀个正整数n

输出格式

输出在偏移量为n的情况下 ,⼤写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ移位替换后的结果。

样例1

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

样例解释

当偏移量是3的时候 ,⼤写字母 A会替换成D,⼤写字母Z会替换成C,总体来看 ,⼤写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ会被替换成DEFGHIJKLMNOPQRSTUVWXYZABC

数据范围

对于全部数据 ,保证有 1 ≤ n ≤ 100

【解析】

周期问题,字符的原始位置是i,向右移动n个字符即 等(i+n)%26;

参考程序

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

2、寻找倍数

题面描述

⼩杨有⼀个包含n个正整数的序列A= [a1 , a2 , … , anGESP第六次认证真题解析|Python三级真题回顾-第18张图片-四季读书网,他想知道是否存在i (1 ≤ i ≤ n) 使得ai是序列A中所有数的倍数。

输入格式

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

接下来是t组测试用例。

对于每组测试用例,一共两行。其中,第一行包含一个正整数n;第二行包含几个正整数,代表序列A

输出格式

对于每组测试用例,如果存在i(1in)满⾜对于所有k(1kn)aiak的倍数,输出Yes,否则输出No

样例1

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

样例解释

对于第⼀组数据 ,对于 a3= 4 ,满⾜a3a1a2的倍数。

数据范围

对于全部数据,保证有1 ≤ t ≤ 10,1 ≤ n ≤ 105,1 ≤ ai≤ 109

【解析】

什么是倍数a的整数倍一定>=a,即 若序列中存在 一个数是所有数的倍数,那么这个数只可能是序列 中最大的那个数。

参考程序

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

技术支持:GESP技术委员会委员 赵晨泽

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

GESP第六次认证真题解析|Python三级真题回顾-第21张图片-四季读书网
GESP第六次认证真题解析|Python三级真题回顾-第22张图片-四季读书网
GESP第六次认证真题解析|Python三级真题回顾-第23张图片-四季读书网
GESP第六次认证真题解析|Python三级真题回顾-第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公众号,了解更多资讯

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

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