当前位置:首页>python>真题解析/GESP9月认证Python二级真题回顾

真题解析/GESP9月认证Python二级真题回顾

  • 2026-10-11 07:05:40
真题解析/GESP9月认证Python二级真题回顾

点击上方蓝字·关注我们

CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为青少年计算机和编程学习者提供学业能力验证的平台。GESP覆盖中小学全学段,符合条件的青少年均可参加认证。GESP旨在提升青少年计算机和编程教育水平,推广和普及青少年计算机和编程教育。GESP考察语言为图形化编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。

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

2023年GESP9月认证Python二级试卷解析

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

题号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

答案

D

B

C

B

C

C

D

A

D

A

B

B

D

A

C

1.我国第一台大型通用电子计算机使用的逻辑部件是( )。

 A.集成电路

 B.大规模集成电路

 C.晶体管

 D.电子管

【答案】D

【解析】本题属于考察计算机历史。1958年8月1日,中国科学院计算技术研究所和北京有线电厂(国营738厂)根据苏联提供的M-3小型机技术资料制成的“八一”型通用电子管计算机(又称103机)完成了四条指令的运行,标志着中国人制造的第一架通用数字电子计算机正式诞生。时隔一年多,1959年9月,根据苏联有关计算机技术资料制成的104大型通用电子计算机通过试运算,运算速度提升到每秒1万次。《人民日报》为此发表消息,正式宣告中国第一台大型通用电子计算机试制成功。故正确答案为D选项。

2.下列流程图的输出结果是( )?

 A. 5 12

 B. 12 5

 C. 5 5

 D. 12 12

【答案】B

【解析】本题属于考察Python中的选择结构(分支结构)流程图。通过设置条件并判断条件是否成立,给程序设置不同的结果,形成程序的分支,这种结构称作分支结构,题目中判断条件不成立,因此a=12,b=5。故正确答案为B选项。

3.如果要找出整数a、b中较大一个,通常要用下面哪种程序结构?( )。

A.顺序结构

B.循环结构

C.分支结构

D.跳转结构

【答案】C

【解析】本题属于考察Python中的选择结构(分支结构)。通过设置条件并判断条件是否成立,给程序设置不同的结果,形成程序的分支,这种结构称作分支结构,题目中判断大小,因此选择分支结构。故正确答案为C选项。

4.以下不是Python关键字的是 ( )。

A. continue

B. print

C. and

D. in

【答案】B

【解析】本题属于考察Python语言中的关键字。print()是Python中的内置函数,故正确答案为B选项。

5.Python表达式int(-123.123//10)的值是 ( )。

A. -124

B. -123

C. -13

D. -12

【答案】C

【解析】本题属于考察Python中基本运算和数据类型转换。//运算符在除法运算时将结果向下舍入到最接近的整数。在两个整数之间使用时,将得到一个整数,同时将结果向下舍入到最接近的整数。与浮点数一起使用时,将获得一个浮点数。int()函数对计算结果进行取整。故正确答案为C选项。

6.以下Python代码实现从大到小的顺序输出能整除N的数(因子),例如N=18时输出18 9 6 3 2 1,横线处应填入( ) 。

A. N

B. 1,  N

C. N,  0,  -1

D. N,  1,  -1

【答案】C

【解析】本题考察了for循环中range()函数参数与变量i的关系。例如,range(9, -1, -1)会生成一个从9到0的整数序列(包含9,不包含-1),并以步长为-1递减。题目要求实现从大到小的顺序输出能整除N的数,包括N。所以range()函数的开始值为N,结束值为0,步长为-1,当步长为负数时,实现从右向左递减输出。故正确答案为C选项。

7.如下图所示,输出N*N的矩阵(行列)N行N列,对角线为1,横线处应填入( )。

 A.i = j

    B.j !=  j

    C.i >= j

    D.i == j

【答案】D

【解析】本题主要考察了for循环中变量i的取值范围和条件判断结构。程序中给出的是双层的循环嵌套结构,在内层循环中设置if...else...结构。要求对角线为1。所以if语句的满足的条件是内层循环的j等于外层循环的i。故正确答案为D选项。

8.下面Python代码用于判断N(大于等于2的正整数)是否为质数(素数),请在横线处填入合适的代码()。

A. break

B. continue

C. pass

D. return

【答案】A

【解析】本题主要考察for…else…循环结构和与循环结构中流程控制关键字break的用法。当使用for…else…结构时,如果循环没有被break终止,会在循环结束后执行else中的语句。题目判断N是否是质数,当判断出不是质数时,直接终止循环。故正确答案为A选项。

9.下面Python代码执行后的输出是( )。

A. 1#0

B. 1#

C. 1#1#1#1#1#1

D. 1#1#1#1#1#1#0

【答案】D

【解析】本题主要考察for…else…循环结构和if单分支结构的用法。当使用for…else…结构时,如果循环没有被break终止,会在循环结束后执行else中的语句。循环遍历得到2,3,4,5,6,7,8。if判断不能被9整除的,输出“1#”。循环结束执行else中的语句,输出“0”。故正确答案为D选项。

10.下面Python代码执行后的输出是( )。

A. 16

B. 28

C. 35

D. 36

【答案】A

【解析】本题主要考察了for循环中变量i的取值范围和双层嵌套循环结构。内层循环次数与外层循环变量的值有关,内层循环次数逐步增长。当内层循环结束值为0,1时,得到空列表,cnt不会变化。故正确答案为A选项。

11.下面Python代码执行后的输出是( )。

A.1

B.3

C.15

D.没有输出

【答案】B

【解析】本题主要考察了for…else…循环结构,if…else…分支语句和流程控制关键字break。通过分析,只有当i等于7时,才会执行else中的语句,故正确答案为B选项。

12.下面Python代码执行后的输出是( )。

  A. 1

  B. 3,9,11

  C. 3,6,9,10

  D. 1,5,7,11,13,15

【答案】B

【解析】本题主要考察了while循环,if…elif…分支结构和基本运算符。通过分析,只会输出3的倍数以及第一个整除10结果非0时的数字。每次循环x增加2,所以x分别为1,3,5,7,9,11。故正确答案为B选项。

13.下面图形每一行从字母A开始,以ABC方式重复,每行字母数量与行所在顺序相同,即第1行1个字母,第2行2个字母,依次类推。行数为输入的整数。请在Python代码横线处填入合适代码( )。

A. chr( j // 3 )

B. chr( ord("A") + j // 3 )

C. ord( chr("A") + j % 3)

D. chr( ord("A") + j %3)

【答案】D

【解析】本题主要考察的是ASCII码和字符之间的转换,ord()函数用于返回给定字符的ASCII值或Unicode值,括号里的参数是一个字符,返回值为该字符对应的整数值。例如,ord('A')返回65,ord('a')返回97。而chr()函数则相反,括号里的参数是一个整数值,返回值为该整数值对应的字符。例如,chr(65)返回字符'A',chr(97)返回字符'a'。每一行从字母A开始,以ABC方式重复,所以要先得到ASCII码值,然后加上每三个一组时对应的具体位置,最后转为对应字符。故正确答案为D选项。

14.为实现以下图形输出,应在Python代码横线处填入( )【注:此处1≤lineCount≤9】。

A. " "*(lineCount-i-1)*2

B. " "*(lineCount-i)*2

C. " "*(lineCount)*2

D. " "*(lineCount-1)*2

【答案】A

【解析】本题主要考察了for循环和i之间的关系。按照题目图示,要求先输出空格再输出具体数字,所以横线上要填上符合行数的空格个数。所以i行的空格数量为lineCount-i-1。又因为每个数字输出内容后跟一个空格,最后空格数量要乘2。故正确答案为A选项。

15.某班级⼈数不知,连续输入成绩直到输入负数停止,输入结束后求出平均成绩。在以下Python代码横线处应填入是( )。

A. true

B. false

C. True

D. False

【答案】C

【解析】本题主要考察了while循环,要求一直执行循环体,所以是死循环。故正确答案为C选项。

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

题号

1

2

3

4

5

6

7

8

9

10

答案

√

√

×

×

√

√

√

×

×

×

1.我们常说的互联网(Internet)是一个覆盖全球的广域网络,它不属于任何一个国家。

 【答案】正确√

 【解析】本题考察计算机网络的基本知识。互联网,又称国际网络,指的是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。互联网是全球性的。这就意味着这个网络不管是谁发明了它,是属于全人类的。所以本题正确。

2.神威·太湖之光超级计算机是中国自主研制的超级计算机,在全球超级计算机TOP500排行榜中多次荣膺榜首。

 【答案】正确√

 【解析】本题考察计算机发展的知识。榜首意思是榜上公布的名单中的首位,泛指第一名。神威·太湖之光超级计算机是由国家并行计算机工程技术研究中心研制,安装在国家超级计算无锡中心的超级计算机。2016年6月20日,德国法兰克福国际超算大会(ISC)公布了新一期全球超级计算机TOP500榜单,由国家并行计算机工程技术研究中心研制的“神威·太湖之光”以超第二名近三倍的运算速度夺得第一。之后多次荣膺榜首。所以本题正确。

3.Python表达式7.8//2的值为整数3。

 【答案】错误×

 【解析】本题考察Python数据类型的知识。//运算符在除法运算时将结果向下舍入到最接近的整数。在两个整数之间使用时,将得到一个整数,同时将结果向下舍入到最接近的整数。与浮点数一起使用时,将获得一个浮点数。所以本题错误。

4.Python表达式2*3**2+5的值为41。

 【答案】错误×

 【解析】本题考察Python数据运算的知识。在进行计算的时候,先计算幂运算,再进行乘除运算,最后进行加减运算。所以正确结果为23。所以本题错误。

5.Python表达式int(9*4**0.5)的值为18。

 【答案】正确√

 【解析】本题考察Python数据运算和数据转换int()函数的知识。在进行计算的时候,先计算幂运算,再进行乘除运算。int()函数可以将字符串转换为整数,要求输入数字或者整数字符。故正确结果为18。所以本题正确。

6.在Python代码中,a的数据类型为整数或浮点数,则表达式a>=5 and a<=10 与5<=a<=10的值相同(即等价)。

 【答案】正确√

 【解析】本题考察Python数据的比较。a<b<c为链式比较,a<b<c可转化为连续比较a<b and b<c。所以表达式a>=5 and a<=10 与5<=a<=10的值相同(即等价)。所以本题正确。

7.下面Python代码执行后将输出10。

 【答案】正确√

 【解析】本题考察for循环的知识。题目会循环10次,每次执行cnt加1,然后循环内i的值加1。但是不会影响循环结构的i的值。通过for循环来制定任意循环次数的话通常是通过range()函数来实现。所以本题正确。

8.执行以下Python代码后将输出0。

 【答案】错误×

 【解析】本题考察for循环语句和range()函数的结合使用。range()函数中有三个参数,从左到右分别代表起始值,结束值,步长。步长值就是相邻两个数之间的差值。如range(0,5,2),即从0开始,到5结束,取不到5,步长为2,依次取到0,2,4。range()的结束值不包括在内,即左闭右开,题目中会依次取到-100,-98,-96...98。最后结果为-100,所以本题错误。

9.执行以下Python代码后将输出30。

 【答案】错误×

 【解析】本题考察for循环语句和range()函数的结合使用。range()函数中有三个参数,从左到右分别代表起始值,结束值,步长。步长值就是相邻两个数之间的差值。如range(0,5,2),即从0开始,到5结束,取不到5,步长为2,依次取到0,2,4。结束值不包括在内,左闭右开原则,题目中会依次取到0,2,4,6,8共循环5次。求和后结果为20。所以本题错误。

10.Python是一种低级程序设计语言,且适合初学者。

 【答案】错误×

 【解析】本题属于对程序设计语言的考察。Python属于高级语言之一,所以本题错误。

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

题号

1

2

答案




1、小杨的
X字矩阵

【问题描述】

小杨想要构造一个X*X的X字矩阵(N为奇数),这个矩阵的两条对角线都是半角加号+,其余都是半角减号-。例如,一个55的X字矩阵如下:

+---+

-+-+-

--+--

-+-+-

+---+

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

【输入描述】

一行一个整数(,保证为奇数)。

【输出描述】

输出对应的“X字矩阵”。请严格按格式要求输出,不要擅自添加任何空格、标点、空行等任何符号。你应该恰好输出N行,每行除了换行符外恰好包含N个字符,这些字符要么是+,要么是-。

【样例输入1】

5

【样例输出1】

+---+

-+-+-

--+--

-+-+-

+---+

【样例输入2】

7

【样例输出2】

+-----+

-+---+-

--+-+--

---+---

--+-+--

-+---+-

+-----+

【题目大意】

输出一个N行由“+”,“-”组成的矩阵。同时要保证第i行的第i个和第n-i-1个为“+”号。其余为“-”。

【解题思路】

本题主要考察for循环和if分支语句的知识:

1.首先输入n,转换为整型;

2.从0开始遍历到n,用来控制行数。设置一个空字符串;

3.再从0开始遍历到n,用来控制每行个数;

4.判断是不是第i行第i个或者第n - i – 1。满足条件,输出“+”,否则,输出“-”。

【参考程序】

2、数字黑洞

【问题描述】

给定一个三位数,要求各位不能相同。例如,352是符合要求的,112是不符合要求的。将这个三位数的三个数字重新排列,得到的最大的数,减去得到的最小的数,形成一个新的三位数。对这个新的三位数可以重复上述过程。神奇的是,最终一定会得到495!

试试看,重新排列352,得到的最大数为532,最小数为235,它们的差是297;变换297,得到972-297=693;变换693,963-369=594;变换594,954-459=495。因此,352经过4次变换得到了495。

现在,输入的三位数,你能通过编程得出,这个三位数经过多少次变换能够得到495吗?

【输入描述】

输入一行,包含一个符合要求的三位数N。

【输出描述】

输出一行,包含一个整数C,表示经过C次变换得到495。

【样例输入1】

352

【样例输出1】

4

【题目大意】

找到各位数字不相同的三位数,将最大的数减去得到的最小的数,形成一个新的三位数。对这个新的三位数可以重复上述过程,求几次变换后可以得到495。

【解题思路】

本题主要考察循环语句的使用:

1.首先输入N;

2.创建变量step存储变换次数,设定初始值为0;

3.当N不等于495,执行循环体;

4.在循环内用Min,Mid,Max存储三位数的各个位的值,使用if语句判断三个值的大小,将最小值存入Min,最大值存入Max中;

5.将三位数组成最大的数减去得到的最小的数,形成一个新的三位数赋值给N;

6.step数值增加1.

【参考程序】

END

GESP 12月认证 

01
认证语言
C++/Python/图形化编程
02
报名及缴费时间
2023年10月19日至11月30日24点截止
03
认证时间

1-4级   2023年12月9日   上午9:30-11:30

5-8级   2023年12月9日   下午13:30-16:30

04
认证方式
全国统一线下机考
05
报名方式

登录GESP官网(https://gesp.ccf.org.cn/)进行报名

联系方式

1. GESP微信:关注“CCF GESP”公众号,将问题以文字方式留言即可得到回复。

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

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

3. GESP电话:0512-67656856

咨询时间:周一至周五(法定节假日除外)

                上午 8:30-12:00;下午 13:00-17:30

扫码关注GESP公众号,了解更多咨询

直播合作媒体:蔻享学术

最新文章

随机文章