GESP第五次认证真题解析|Python二级真题回顾

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

点击上方蓝字关注我们吧

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

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

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

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

GESP20243月认证Python二级

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

题号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

答案

C

C

B

B

A

C

B

C

D

B

C

A

D

C

A


1、⼩杨的⽗母最近刚刚给他买了⼀块华为⼿表,他说⼿表上跑的是鸿蒙,这个鸿蒙是?( )

A.⼩程序

B.计时器

C.操作系统

D.神话⼈物

【答案】C

【解析】鸿蒙是华为开发的操作系统,正式名称为HarmonyOS,它被设计为一个多设备、跨平台的操作系统,可用于智能手机、平板电脑、智能手表、智能家居设备等多种类型的智能设备。本题小杨父母给小杨买了一块华为手表,华为产品的操作系统为鸿蒙系统,因此选C

2、中国计算机学会(CCF)在2024127⽇的颁奖典礼上颁布了王选奖,王选先⽣的重⼤贡献是( )。

A.制造⾃动驾驶汽车

B.创⽴培训学校

C.发明汉字激光照排系统

D.成⽴⽅正公司

【答案】C

【解析】王选先生是中国著名的计算机科学家,他的重大贡献是在汉字激光照排技术方面的突破。他领导的团队研发了世界上第一台汉字激光照排打印系统,极大地推动了中文出版业的现代化,提高了印刷质量和效率。王选先生因此被誉为中国现代出版业和印刷业的奠基人之一。

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

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

A.优秀

B.良好

C.不及格

D.没有输出

【答案】B

【解析】cj初始值为75,大于60。当cj大于60时,程序从上半区运行,但是cj小于90,所以在输出“良好”后结束程序,答案为B

4题 以下选项中不符合 Python变量命名规则的是?( )

A.student

B.2_from

C._to

D.Text

【答案】B

【解析】Python变量命名规则主要包括以下几点:字母、数字和下划线:变量名只能包含字母(a-zA-Z)、数字(0-9)和下划线(_)。变量名的第一个字符不能是数字。大小写敏感:变量名是区分大小写。

5、以下选项中,不能⽤于表⽰分⽀结构的python保留字是?( )

A.switch

B.elif

C.else

D.if

【答案】A

【解析】if,else,elif是用于表示分支结构的保留字(关键字),

switch不是python保留字,所以选A

6、下列说法错误的是?( )

A. while 循环满⾜循环条件时不断地运⾏,直到指定的条件不满⾜为⽌

B. if 语句通常⽤于执⾏条件判断

C.Python中可以使⽤do..while循环

D. break continue语句都可以⽤在for循环和while循环中

【答案】C

【解析】选项C是错误的。在Python中,并没有 do..while 循环这种结构。Python支持的循环结构有 for 循环和 while 循环。

7、下列4个表达式中,答案不是整数8的是?( )

A.abs(-8)

B.min(float(8),9,10,11)'

C.int(8.88)

D.round(7.55)

【答案】B

【解析】选项Aabs()表示取绝对值,abs(-8)的输出为8。选项B中在float(8),9,10,11中取最小值,同时float(8)输出为8.0,所以B最后输出8.0,并且不是整数,所以选B。选项Cint()表示对括号内数值取整,输出为8.选项D中的round表示对括号内数值四舍五入,round(7.55)输出结果为8

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

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

A.8

B.14

C.26

D.50

【答案】C

【解析】两个变量na,分别赋值为35m的值根据a的值算出等于8。接下来,代码进入一个 for 循环,循环的次数是 n - 1,即 3 - 1 = 2 次。在这个循环中,每一次迭代都会将 的值更新为 (m - 1) * 2,第一次迭代:m的初始值是8,所以m更新为(8 - 1) * 2 = 14,第二次迭代:m现在是14,所以m更新为(14 - 1) * 2 = 26,所以最后打印出的值为26

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

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

A.16

B.36

C.49

D.81

【答案】D

【解析】 本题中, 循环执行条件是 i**2 <= 81,即 当i的值为9时循环执行最后一次。

故可以直接将i=9带入程序中,检查得出result的值为81,所以本题 选D。

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

GESP第五次认证真题解析|Python二级真题回顾-第6张图片-四季读书网

A.2

B.3

C.4

D.5

【答案】B

【解析】设立初始值st,分别为210,同时用ans来记录总共需要需要多少步骤。在这个程序中,“t”可以通过两种操作来减小:如果“t”是偶数,并且“t”除以2之后仍然大于或等于“s”,那么“t”就除以2。整个过程为:1. `t`是偶数,并且`t/2`5,大于`s`,所以我们将`t`除以2`t`变为5,步数`ans`1s = 2t = 5ans = 12. `t`现在是奇数,不能除以2,所以我们将`t`减去1`t`变为4,步数`ans`1s = 2t = 4ans = 23. `t`是偶数,并且`t/2`2,等于`s`,所以我们将`t`除以2`t`变为2,步数`ans`1s = 2t = 2ans = 3。所以最后的答案是3。

11、下⾯Python代码执⾏后的输出是?()

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

A.5

B.6

C.7

D.8

【答案】C

【解析】流程如下,masks = 10,days = 0, cur = 2,第一次循环,masks = 10- 1 =9,days = 0+1 = 1,cur = 3;第二次循环,masks = 9-1 = 8,days = 1+1 = 2,cur  =4;第三次循环,masks= 8-1 = 7,days = 2+1 =3,cur =5。第四次循环,masks = 7-1 =6,days = 3+1 =4,cur  = 6。第五次循环,masks = 6-1 =5, days =4+1 =5,cur = 6。第六次循环,masks = 5+7-1 =11,days = 5+1 =6,cur = 0。第七次循环,masks = 11+7-1=17,days = 6+1 =7,cur =1。在第7天结束时,我们正好有17masks,满足条件masks != n 不再成立,因此循环结束。程序将输出days的值,即7。所以,代码的输出应该是7天。

12、以下Python代码判断⼀个正整数N的各个数位是否都是偶数,例如N=2024时输出“是”,否则输出“否”,横线处应填⼊(    )。

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

A. break

B. continue

C. N = N/10

D. N = N%10

【答案】A

【解析】当输入结果为2024时,N%2==0,将横线上为break时,说明中断循环,返回Flag = True,否则会继续向下运行。 

13、有句俗话叫“三天打渔,两天晒⽹”。如果⼩杨前三天打渔,后两天晒⽹,⼀直重复这个过程,以下程序代码⽤于判断,第n天⼩杨是在打鱼还是晒⽹,横线处应填写?( )

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

A. i == 0

B. i == 4

C. i == 0 and i == 4

D. i == 0 or i == 4

【答案】D

【解析】第一次条件判断的返回结果为print(“晒网”),说明小杨属于后两天的晒网阶段,也就是第四天和第五天,所以n%5应该返回4%5或者5%5的结果,即40,所以选D

14、⼀个数的所有数字倒序排列后这个数的⼤⼩保持不变,这个数就是回⽂数,⽐如1016886都是回⽂数,⽽100不是回⽂数。以下程序代码⽤于判断⼀个数是否为回⽂数,横线处应填写?( )

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

A. 10 * a + n % 10

B. a + n % 10

C. 10 * a + n // 10

D. a + n // 10

【答案】A

【解析】将a乘以10(移位),然后加上n的最低位(n % 10 n除以10的余数)。 

15、给定两个整数nk,打印出⼀个栅栏图形,这个栅栏应该分成n段,段与段之间的间隔为+, 段内的填充为 k-。形如n=5k=6时,图形如下:

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

以下程序代码⽤于绘制该图形,横线处应填写?(  )

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

A. print('+')

B. print('+', sep='')

C. print('+', end='')

D. print('+', sep='', end='')

【答案】C

【解析】 在第二个循环中,有了打印"-"的输出,因此只需要考虑"+"的输出即可,sep ="" 意味着每打印一次换行,end = ""代表着每打印后空一格。所以选C。

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

题号

1

2

3

4

5

6

7

8

9

10

答案

×

×

1、任何⼀个for循环都可以转化为等价的while循环。

【答案】√

【解析】 在任何一个 for 循环都可以转换为一个等价的 while 循环。for 循环通常用于遍历一个已知的范围、列表、字符串或任何其他可迭代对象。while 循环则更加通用,它会继续执行,直到满足某个条件。

2、⼩杨今年春节回奶奶家了,奶奶家的数字电视要设置ip地址并接⼊到WIFI盒⼦才能收看节⽬,那这个WIFI盒⼦具有路由器的功能。

【答案】√

【解析】 如果一个 WIFI盒子需要设置IP地址以连接设备,如数字电视,并允许它访问网络以收看节目,那么这个WIFI盒子具备了路由器的功能。路由器的主要功能之一是将网络连接分配给不同的设备,通常通过分配本地IP地址,并管理这些设备的网络流量。

3、执⾏以下Python代码,最后⼀⾏输出是28.5

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

【答案】×

【解析】int()代表着取数值的整数,所以t= 18+10=28,而不是28.5,所以该题是错的。

4XyzxYzxyZ是三个不同的变量。

【答案】√

【解析】Python语言中变量名是区分大小写的。这意味着 XyzxYz 和 xyZ 会被视为三个完全不同的变量。

5print(8< 9 < 10) 的输出结果为True

【答案】√

【解析】在Python中,表达式 8 < 9 < 10 等同于 (8 < 9) and (9 < 10)。既然8确实小于9,且9也小于10,那么整个表达式的结果为 True

6for i in range(100) 语句中变量i的变化范围是099

【答案】√

【解析】。在Python中,for i in range(100) 语句会创建一个循环,其中变量 的值从0开始,增加到99。每次循环迭代,的值会依次取这个序列中的下一个数。

7float(2022)float("2022")运⾏后的输出结果均为2022.0

【答案】√

【解析】在Python中,float 函数可以将一个整数或者一个表示数字的字符串转换成浮点数。

8、执⾏代码a = min(3, 2, 4) ,变量a的值是2

【答案】√

【解析】min() 会从它的参数中返回最小的值。

9、已知AASCII码值为65,表达式ord('C')+abs(-5.8)的值为72.8

【答案】√

【解析】ASCII码值中,字符'C'对应的值是67。函数 ord() 可以返回一个字符的ASCII码值。因此 ord('C') 的值是67abs() 函数返回一个数的绝对值。因此 abs(-5.8) 的值是 5.8。将两者相加:ord('C') + abs(-5.8) = 67 + 5.8 = 72.8 所以,表达式 ord('C') + abs(-5.8) 的值确实是 72.8

10bool()函数用与将给定参数或表达式转换为布尔类bool(-1)返回的是Flase值。

【答案】×

【解析】实际上,bool() 函数在Python中用于将给定的参数或表达式转换为布尔值。对于大多数参数,如果参数是某种形式的“空”值,如 0, None, ""(空字符串), [](空列表), {}(空字典)等,bool() 函数会返回 False。对于其他的非空值,包括 -1bool() 函数会返回 True。所以,bool(-1) 返回的是 True,而不是 False

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

题号

1

2

答案



1、乘法问题

题面描述

小杨同学最近刚刚学习了乘法,为了帮助他练习,我们给他若干个正整数,并要求他将这些数乘起来。

对于大部分题目,小杨同学可以精准地算出答案,不过,如果这些数的乘积超过106,小杨同学就不会做了。

请编写程序,告诉小杨同学会如何作答。

输入描述

第一行一个整数n,表示随后将输入的正整数个数。

接下来”行,每行一个整数a。小杨同学需要将所有的a乘起来。如第1行输入3,则表示随后将输入3个正整数,并在随后的输出中,将这3个正整数相乘的结果输出。

保证n ≤50a ≤100【注意:这个两个条件为限制输入,不必反应到编写代码之中】。

输出描述

输出一行,如果乘积超过106,则输出>1000000;否则输出所有数的乘积。

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

样例输入1

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

样例输出1

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

样例输入2

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

样例输出2

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

样例输入3

GESP第五次认证真题解析|Python二级真题回顾-第18张图片-四季读书网

样例输出3

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

【解题思路】首先,本题小杨同学要在python中计算若干个数字的乘积,当乘积的结果超过1000000时,小杨同学便不会算了,也就是当乘积大于1000000时,整个程序便结束。同时,第一行代表着输入数字的个数,后面的行代表着有n个数字的不同值。例如样例1中,2代表有两个数,35是这两个数,输出1则是3 *5 =15 这一结果。所以,第一次输入的数字为总共的个数,后续的输入为每一次所选取的值,然后将第一次之后输入的值分别相乘。3.1.11表示这样的数字,n代表了相乘数字的个数,a是参与乘积的具体的值,product则等于1乘每一次输入的值(因为product初始值为1,所以是1乘其他数)。当product小于1000000时,输出product的值,当product大于1000000时,返回“>1000000"

【参考程序】

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

2、小杨的日字矩阵

问题描述

小杨想要构造一个N × N的日字矩阵(N为奇数),具体来说,这个矩阵共有N行,每行N个字符,其中最左列、最右列都是|,而第一行、最后一行、以及中间一行(即第GESP第五次认证真题解析|Python二级真题回顾-第21张图片-四季读书网)的第2~N-1个字符都是-,其余所有字符都是半角小写字母x。例如,一个N=5的日字矩阵如下:

GESP第五次认证真题解析|Python二级真题回顾-第22张图片-四季读书网

请你帮小杨根据给定的N打印出对应的“日字矩阵”。

输入描述

一行一个整数N(5≤ N≤ 49,保证N为奇数)

输出描述

输出对应的“日字矩阵”。

请严格按格式要求输出,不要擅自添加任何空格、标点、空行等任何符号。你应该恰好输出N行,每行除了换行符外恰好包含N个字符,这些字符要么是-,要么是|,要么是x你的输出必须和标准答案完全一致才能得分,请在提交前仔细检查。

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任

何提示信息。

样例输入1

GESP第五次认证真题解析|Python二级真题回顾-第23张图片-四季读书网

样例输出1

GESP第五次认证真题解析|Python二级真题回顾-第24张图片-四季读书网

样例输入2

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

样例输出2

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

【解题思路】根据题目要求,需要生成一个两边都是|,第一行、最后一行和中间一行((N+1)/2)都是-,其他行都是xxx 的日字矩阵。同时,该矩阵也要使得行数和列数都是N 个字符。因此,首先设立一个输入程序来表示N,接着for i in range(n)表示n行,同时需要一个变量来构建图案。接着,主要来生成具体的图案样式,首先两边都是|,所以一行中的第一个和最后一个都应该生成|,也就是if j == 0 or j == n-1: ch = "|"。接着第一行、最后一行以及中间的行都是“-”,所以当行数为1n-1,或者n//2时,输出“-”,否则输出"x"来表示其他行。最后将最初构建的buf 和变量ch(表示每一行的具体图案的变量)相加,输出就是题目中要求的图案。

【参考程序】

GESP第五次认证真题解析|Python二级真题回顾-第27张图片-四季读书网

技术支持:GESP技术委员会委员 宋旭彤

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

GESP第五次认证真题解析|Python二级真题回顾-第28张图片-四季读书网
GESP第五次认证真题解析|Python二级真题回顾-第29张图片-四季读书网
GESP第五次认证真题解析|Python二级真题回顾-第30张图片-四季读书网
GESP第五次认证真题解析|Python二级真题回顾-第31张图片-四季读书网
联系方式

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二级真题回顾-第32张图片-四季读书网
GESP第五次认证真题解析|Python二级真题回顾-第33张图片-四季读书网

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