image

编辑人: 人逝花落空

calendar2025-06-13

message7

visits891

2023年12月CCF-GESP编程能力等级认证Python编程一级真题答案及解析

一、单选题

1、某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的。(   )(2023年12月py一级)

A、

麦克风

B、

扬声器

C、

油量表

D、

传感器

解析:【喵呜刷题小喵解析】:这款无人驾驶小汽车通过声控智能驾驶系统来实现自动驾驶。声控意味着汽车需要通过某种设备接收乘客的语音指令,而智能驾驶系统则需要分析这些指令并做出相应反应,比如自动选择优化路线。在这个过程中,麦克风用来接收乘客的语音,扬声器可能用来播放路线信息或其他提示给乘客,传感器用来检测车辆周围的环境和其他车辆,以便进行路径规划和避让。油量表与这些功能没有直接关系,因此不是驾驶系统完成选路所必须的。所以,正确答案是C选项。

2、现代计算机是指电子计算机,它所基于的是( B )体系结构。(2023年12月py一级)

A、

艾伦·图灵

B、

冯·诺依曼

C、

阿塔纳索夫

D、

埃克特-莫克利

解析:【喵呜刷题小喵解析】:现代计算机是基于冯·诺依曼的体系结构设计的。冯·诺依曼是计算机科学的先驱之一,他提出了存储程序的概念,即计算机应该能够存储和执行程序,这是现代计算机的基本工作原理。因此,选项B“冯·诺依曼”是正确答案。其他选项如艾伦·图灵、阿塔纳索夫和埃克特-莫克利虽然也在计算机发展史上做出了贡献,但与现代计算机的体系结构没有直接关系。

3、以下Python不可以作为变量的名称的是(   )。

A、

CCF GESP

B、

ccfGESP

C、

CCFgesp

D、

CCF_GESP

解析:【喵呜刷题小喵解析】在Python中,变量名需要遵循一定的命名规则。具体来说,变量名必须以字母或下划线开头,不能以数字开头,并且不能包含空格。同时,Python是大小写敏感的,因此"CCF GESP"和"ccfgesp"是不同的变量名。在本题中,选项A "CCF GESP"、选项B "ccfGESP"、选项C "CCFgesp"都不符合命名规则,因为它们都以大写字母开头,而Python变量名通常以小写字母开头。而选项D "CCF_GESP"虽然使用了下划线连接单词,但它是符合Python变量命名规则的。因此,正确答案是D。

4、Python表达式 10 - 3 ** 2 % 10 的值是(   )。

A 0

B 1

C 2

D 3

解析:【喵呜刷题小喵解析】首先,我们需要了解运算符的优先级。在Python中,**(指数运算)的优先级高于%(取余运算),而取余运算的优先级又高于-(减法运算)。所以,首先计算**(指数运算),然后是%(取余运算),最后是-(减法运算)。

所以,原表达式10 - 3 ** 2 % 10可以分解为:

1. 计算3 ** 2,结果为9(因为3的平方是9)
2. 计算9 % 10,结果为9(因为9除以10的余数是9)
3. 最后进行10 - 9的减法运算,结果为1

因此,表达式10 - 3 ** 2 % 10的值是1,所以正确答案是C。

5、假设现在是上午十点,求出N小时(正整数)后是第几天及时,如输入20小时则为第2天6点,如N输入4则为今天14点。为实现相应功能,应在横线处填写代码是(   )。

A、

(10 + N) % 24 , (10 + N) // 24

B、

(10 + N) // 24 , (10 + N) % 24

C、

N % 24 , N // 24

D、

10 // 24 , 10 % 24

解析:【喵呜刷题小喵解析】:题目要求求出N小时(正整数)后是第几天几点。我们可以将时间分为两部分,一部分是小时数,另一部分是天数。

对于小时数,我们需要将当前时间10小时加上N小时,然后对24取模,得到的是剩余的小时数。

对于天数,我们需要将当前时间10小时加上N小时,然后整除24,得到的是天数。由于一天有24小时,所以每过24小时,天数就加1。

因此,代码应为:(10 + N) // 24 , (10 + N) % 24。

所以,选项B是正确的。

6、下面的程序用于判断N是否为偶数,横线处应填写代码是(   )。

A、

N % 2 == 0

B、

N % 2 = 0

C、

N % 2

D、

N % 2 != 0

解析:【喵呜刷题小喵解析】:判断一个数是否为偶数,通常的方法是检查该数除以2的余数是否为0。在Python中,使用模运算符(%)可以得到余数。因此,判断N是否为偶数的代码应该是`N % 2 == 0`。选项A中的代码`N % 2 == 0`是正确的。选项B中的`N % 2 = 0`是赋值语句,不是比较语句,因此是错误的。选项C中的`N % 2`只返回余数,并没有比较,所以也是错误的。选项D中的`N % 2 != 0`表示余数不为0,也就是表示N不是偶数,虽然技术上来说是正确的,但与题目要求判断N是否为偶数的目的不符,因此也不是正确答案。

7、下面对Python代码执行后输出的描述,正确的是(   )。

A、

如果输入的N是小于2的整数,第5行将输出0。

B、

如果输入的N是大于等于2的整数,第5行将输出N-1。

C、

如果输入的N是大于等于2的整数,第5行将输出N。

D、

以上说法均不正确。

解析:【喵呜刷题小喵解析】:根据题目中的Python代码,当输入的N是大于等于2的整数时,第5行将输出N。因此,选项C是正确的。其他选项均不正确。

8、下面Python代码执行后的输出是(   )。

A、

5

B、

6

C、

9

D、

10

解析:【喵呜刷题小喵解析】:根据题目中的Python代码,我们可以分析出代码的执行过程。代码首先定义了一个函数`f`,该函数接受两个参数`x`和`y`,然后返回`x+y`的结果。在代码的主执行部分,依次执行了以下操作:

1. `a = 2`,将数字2赋值给变量`a`。
2. `b = 3`,将数字3赋值给变量`b`。
3. `c = f(a, b)`,调用函数`f`,传入参数`a`和`b`,即传入2和3,函数返回5,将5赋值给变量`c`。
4. `print(c*2)`,打印变量`c`的值乘以2,即5*2=10。

因此,代码执行后的输出是10,对应选项C。

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

A 0

B 1

C 2

D 3

解析:【喵呜刷题小喵解析】:该Python代码执行的是求列表[1, 2, 3, 4, 5]中所有元素小于3的元素的个数。列表中小于3的元素有1和2,共2个,所以输出结果为2。因此,正确答案为C。

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

A、

11

B、

10

C、

5

D、

4

解析:【喵呜刷题小喵解析】:给定的Python代码使用了列表解析(List Comprehension)来计算列表中所有元素值的和。在这个例子中,列表`lst`包含了数值`1`,`2`,`3`,`4`,`5`。列表解析式`[i for i in lst]`会遍历列表中的每个元素,并生成一个新的列表,其中每个元素都与原列表中的元素相同。然后,`sum()`函数计算了新列表中所有元素的总和,即`1+2+3+4+5=15`。最后,`result`变量存储了这个总和,即`15`。然后,代码执行了`result = result // 2`,将`15`除以2,得到`7.5`,但是结果变量`result`只能存储整数,因此,它会被向下取整,变成`7`。最后,`result = result - 2`,从`7`中减去`2`,得到`5`。因此,最后`result`的值为`5`,代码执行后的输出应该是`5`。所以正确答案是D。

11、下面Python代码用于判断一个数是否为质数(素数),在横线处应填入代码是(   )。

A、

cnt = 1

B、

cnt = 2

C、

cnt =+ 1

D、

cnt += 1

解析:【喵呜刷题小喵解析】:根据题目中的图片,代码应该用于判断一个数是否为质数。在判断质数的过程中,通常会使用一个循环从2开始到这个数的平方根,检查这个数是否能被其中的任何一个数整除。如果能被整除,那么这个数就不是质数。如果不能被整除,那么这个数就是质数。在循环中,使用一个计数器(cnt)来记录已经检查过的数。当找到一个能整除这个数的数时,循环就会结束。因此,在循环中应该使用`cnt += 1`来递增计数器。选项D中的`cnt += 1`就是正确的选择。

12、当执行 turtle.forward() 时,提示如下信息: NameError: name 'turtle' is not defineDid you mean: 'tuple'? ,下面描述正确的是(   )。

A 提示的含义有“ turtle 没有定义”之意,故先执行 turtle = 0 即可

B 将 turtle 修改为 tuple 后将不会报错

C turtle.forward() 中的 forward 错误,必须先执行 turtle.pendown()

D 因为没有执行 import turtle ,故有此错误。

解析:【喵呜刷题小喵解析】:根据题目提示,`NameError: name 'turtle' is not defined`,表示`turtle`这个名称没有被定义。因此,需要首先执行`import turtle`来导入turtle模块,才能使用`turtle.forward()`等函数。选项A中的`turtle = 0`并不能解决问题,因为`turtle`仍然不是一个模块或对象;选项B中的修改`turtle`为`tuple`与题目中的错误信息无关;选项C中的`turtle.pendown()`与错误信息也没有关系。因此,选项D“因为没有执行`import turtle`,故有此错误”是正确的。

13、先后执行Python代码 import turtle 和 turtle.circle(10,steps = 3) 后,正确的说法是(   )。

A 将绘制出半径为10,弧度为3的圆

B 将绘制出半径为10,角度为3的圆

C 将绘制出边长为10的正三边形,即等边三角形

D 将绘制出半径为10的内接圆正三边形,即等边三角形

解析:【喵呜刷题小喵解析】

首先,Python的turtle模块是用于绘制图形的。

在代码`turtle.circle(10, steps=3)`中,`turtle.circle`函数用于绘制一个圆。其中,第一个参数`10`是圆的半径,第二个参数`steps`指定了圆的边数。

因此,`turtle.circle(10, steps=3)`实际上会绘制一个半径为10的内接圆正三边形,即等边三角形,而不是一个圆。

选项A和B都是描述一个圆,但它们与代码实际执行的效果不符。选项C描述了一个正三边形,但这并不是代码实际绘制的图形。选项D正确描述了代码执行后绘制的图形。

因此,正确的说法是选项D:将绘制出半径为10的内接圆正三边形,即等边三角形。

14、下面Python代码执行后输出的正确图形是(   )。

A

B

C

D

解析:【喵呜刷题小喵解析】:从给出的Python代码可以看出,该代码会输出一个图形,而这个图形的样式需要从给定的四个选项中进行选择。观察给出的四个选项的图片,选项C的图片与代码所描述的内容最匹配。因此,正确的选择应该是C。

15、为实现下图所示效果,请完善随后的Python代码,并在横线上填入相应代码(   )。


A、

-10

B、

10 * i

C、

10 * (i + 1)

D、

-10 * (i + 1)

解析:【喵呜刷题小喵解析】:根据题目中的图片,我们可以观察到图案是由一系列的同心圆组成,每个圆上的数字都是前一个数字加10。因此,要得到当前圆上的数字,我们可以使用公式"10 * (i + 1)",其中i是当前圆的序号(从0开始)。所以,正确答案是C选项。

二、判断题

16、小杨最近在准备考GESP,他用的Python IDLE来练习和运行程序,所以Python IDLE也是一个小型操作系统。(   )(2023年12月py一级)

A 正确

B 错误

解析:【喵呜刷题小喵解析】:本题考查对Python IDLE的理解。Python IDLE是Python的集成开发环境,主要用于编写、运行和调试Python程序,但它并不是一个小型操作系统。操作系统是管理计算机硬件和软件资源的软件,而Python IDLE只是Python的一个开发环境,不具备操作系统的功能。因此,本题答案为B,即错误。

17、任何一个 while 循环都可以转化为等价的 for 循环(   )。(2023年12月py一级)

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,while循环和for循环都是控制流语句,用于重复执行一段代码。虽然它们的形式和功能有所不同,但它们在逻辑上是等价的。也就是说,任何一个while循环都可以转化为等价的for循环,反之亦然。因此,该题目中的陈述是正确的。

18、Python表达式 int(3.14) 的值为3。(   )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`int()`函数用于将浮点数转换为整数,但它会舍弃小数部分。所以,`int(3.14)`的结果是3,而不是3.14。因此,题目的表述是错误的,应该选择选项B。

19、Python语句 print(2 ** 3, 3 % 10, 2+3) 的输出为 8,3,5 。 (   )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:Python语句print(2 ** 3, 3 % 10, 2+3)的输出为8,3,5。在Python中,指数运算符**的优先级高于取模运算符%,所以2 ** 3的结果会首先被计算,得到8。然后,3 % 10的结果为3,最后,2+3的结果为5。因此,print语句的输出顺序是8,3,5,而不是8,3,5。题目中给出的输出顺序是错误的,所以答案是B。

20、Python内置函数 range(1,10,3) 表示从1开始到10结束间隔为3,相当于1、4、7、10。(   )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:Python内置函数`range(1, 10, 3)`表示从1开始到10结束,间隔为3,生成的是1、4、7这三个数,并不包括10。所以题目中的描述“相当于1、4、7、10”是错误的。因此,正确答案是B。

21、Python表达式 int("10"*2+"10")+101 的值为101111。(   )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:这个Python表达式的值并非101111。让我们详细解析一下这个表达式。

首先,字符串"10"重复两次得到"1010",然后将其转换为整数,得到1010。

接着,1010加上101,得到1111。

所以,Python表达式 int("10"*2+"10")+101 的值为1111,而不是101111。因此,题目的陈述是错误的。

22、在Python中,判断语句如果有多个条件,条件之间通常不应重叠,否则可能导致误判。(   )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,当使用多个条件进行判断时,条件之间是可以重叠的。重叠的条件并不会导致误判,而是会按照逻辑运算的优先级(如与(and)、或(or)等)来执行判断。因此,选项A的陈述是错误的,正确答案是B。

23、在下面的Python代码中,由于循环中的 continue 是无条件被执行,因此将导致死循环。(   )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在给出的Python代码中,`continue`语句是在一个`if`条件语句中,而不是无条件执行的。因此,它不会导致死循环。如果`if`条件始终为`False`,那么循环将不会执行`continue`语句,从而不会陷入死循环。所以,该判断题是错误的。

24、在Python代码中, turtle.reset() 和 turtle.clear() 功能相同,都是清除画面,海龟回到原点,朝向置为默认方向。(   )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python的turtle库中,`turtle.reset()`和`turtle.clear()`虽然都涉及清除画面,但它们的功能并不完全相同。`turtle.reset()`不仅清除画面,还会将海龟的位置重置到原点,朝向也会设置为默认方向。而`turtle.clear()`只是清除画面,海龟的位置和朝向不会改变。因此,题目中的说法是错误的。

25、在Python的turtle库中, turtle.right() 与 turtle.rt() 等价。(   )

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python的turtle库中,`turtle.right()`和`turtle.rt()`并不等价。`turtle.right()`是一个正确的方法用于让turtle向右转一个特定的角度,而`turtle.rt()`并不是一个turtle库中的标准方法。因此,该题目的说法是错误的。

三、实操题

26、小杨的考试

时间限制:1.0 s

内存限制:128.0 MB

问题描述

今天是星期X,小杨还有N天就要考试了,你能推算出小杨考试那天是星期几吗?(本题中使用7表示星期日)

输入描述

输入 2 行,第一行一个整数X(1≤X≤7);第二行一个整数N(1≤N≤364)。

输出描述

输出一个整数,表示小杨考试那天是星期几。

特别提醒

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


样例输入 1

6
1

样例输出 1

7

样例解释 1

今天是星期 1,那么 6 天后就是星期日,星期日在本题中用7表示。

样例输入 2

5
3

样例输出 2

1

样例解释 2

今天是星期 5,那么 3 天后就是星期 1。

参考答案:输入整数X和N,输出一个整数,表示小杨考试那天是星期几。

解析:【喵呜刷题小喵解析】:
根据题目描述,小杨还有N天就要考试了,今天是星期X。我们需要找出N天后是星期几。

这个问题可以通过模运算来解决。一周有7天,所以N天后的星期数可以通过(X + N) % 7来计算。

如果(X + N) % 7等于0,那么N天后就是星期日,输出7。
如果(X + N) % 7等于1,那么N天后就是星期一,输出1。
以此类推,直到(X + N) % 7等于6,输出6。

样例输入1中,X=6,N=1,所以(6 + 1) % 7 = 1,输出1,表示星期日。
样例输入2中,X=5,N=3,所以(5 + 3) % 7 = 1,输出1,表示星期一。

27、小杨报数

时间限制:1.0 s

内存限制:128.0 MB

问题描述

小杨需要从1到N报数。在报数过程中,小杨希望跳过M的倍数。例如,如果N=5,M=2,那么小杨就需要依次报出1 、3 、5 。

现在,请你依次输出小杨报的数。

输入描述

输入 2 行,第一行一个整数N(1≤N≤1000);第二行一个整数M(2≤M≤100)。

输出描述

输出若干行,依次表示小杨报的数。

特别提醒

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


样例输入 1

5
2

样例输出 1

1
3
5

样例输入 2

10
3

样例输出 2

1
2
4
5
7
8
10

参考答案:br />```pythonN, M = map(int, input().split())for i in range(1, N+1):if i % M != 0:print(i)```

解析:【喵呜刷题小喵解析】

首先,我们需要读取输入的两个整数N和M。然后,我们使用一个for循环从1遍历到N,检查每个数是否是M的倍数。如果不是M的倍数,我们就打印出这个数。这样就可以依次输出小杨报的数。

在这个问题中,我们使用了Python的内置函数`map()`和`split()`来读取输入。`map()`函数将输入字符串转换为整数,`split()`函数将输入字符串按照空格分割成两部分。

然后,我们使用一个for循环来遍历从1到N的所有数。对于每个数,我们使用模运算符`%`来检查它是否是M的倍数。如果不是,我们就打印出这个数。

注意,我们使用了Python的`print()`函数来打印输出。在Python中,`print()`函数用于输出信息到控制台。在这个问题中,我们使用了`print(i)`来打印每个符合条件的数。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2023年12月CCF-GESP编程能力等级认证Python编程一级真题答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share