image

编辑人: 浅唱

calendar2025-06-15

message3

visits177

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

一、单选题

1、我们通常说的“内存”属于计算机中的 (     )。

A 输出设备

B 输入设备

C 存储设备

D 打印设备

解析:【喵呜刷题小喵解析】:内存是计算机中用于存储数据和程序的重要部分,它属于存储设备。输出设备是将计算机处理后的结果输出到外部的设备,如显示器、打印机等;输入设备是将外部数据输入到计算机的设备,如键盘、鼠标等;打印设备则是专门用于打印输出的设备。因此,内存不属于输出设备、输入设备或打印设备,而是存储设备。所以正确答案是C。

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

A redStar

B RedStar

C red_star

D red star

解析:【喵呜刷题小喵解析】在Python中,变量名需要遵循一定的规则。具体来说,变量名不能包含空格,且首字母不能是数字。因此,选项D中的"red star"由于包含空格,不能作为变量名。而选项A的"redStar"、选项B的"RedStar"和选项C的"red_star"都是合法的变量名。

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

A 0

B 1

C 2

D 3

解析:【喵呜刷题小喵解析】:根据Python的运算符优先级,先进行幂运算(**),然后进行取模运算(%),最后进行减法。因此,原表达式2 - 1 ** 0 % 10可以转化为2 - 1 ** 0 % 10 = 2 - 1 ** 0 % 10 = 2 - 1 ** 0 = 2 - 1 = 1。因此,答案是B,即1。

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

A、

3+4= 7

B、

3+4=7

C、

a+b= 7

D、

a+b=7

解析:【喵呜刷题小喵解析】:首先,我们要明确题目中给出的Python代码,然而题目中并未给出Python代码,而是给出了一个图片链接。因此,我们无法直接运行这段代码来得到输出结果。但根据题目中的选项,我们可以推测,题目可能是想让我们判断一段类似"3+4=7"这样的表达式是否正确。

在四个选项中,只有选项B和选项D是表达式形式,且内容相似。但注意到选项B中的空格已经被替换成了换行符,所以实际显示时,数字和符号之间是有空格的,即"3 + 4 = 7",这是一个正确的数学表达式。而选项D中的"a+b=7"则是一个未定义的表达式,无法判断其是否正确。

因此,我们可以推断,题目可能是想让我们判断"3 + 4 = 7"这样的表达式是否正确,所以正确答案应该是选项B。

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

A 1 2

B 2 1

C 1 1

D 2 2

解析:【喵呜刷题小喵解析】:首先,根据题目中的图片,我们可以观察出图片展示的是一个嵌套列表,外层列表有两个元素,内层列表同样有两个元素。外层列表的第一个元素是[1, 2],第二个元素是[2, 1]。根据题目要求,我们需要输出这个嵌套列表的笛卡尔积,即所有可能的组合。根据笛卡尔积的定义,我们可以得到以下组合:(1, 2) 和 (2, 1)。因此,最终输出的结果应该是"2 1",对应选项B。

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

A 都是偶数

B 都是奇数

C 不都是偶数或奇数

D 以上说法都不正确

解析:【喵呜刷题小喵解析】:根据提供的Python代码,代码定义了一个函数`func`,该函数接收一个整数参数`n`,并返回两个值:`n`除以2的余数(即`n % 2`)和`n`除以3的余数(即`n % 3`)。由于这两个返回值都是余数,它们可以是0、1或2,因此不能简单地判断它们都是偶数或都是奇数。因此,选项A和B都是错误的。同时,由于返回值可能是0、1或2,它们既不是都是偶数也不是都是奇数,因此选项C也是错误的。因此,正确答案是选项D,即“以上说法都不正确”。

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

A 1

B 4

C 5

D 10

解析:【喵呜刷题小喵解析】:给定的Python代码使用了嵌套的列表推导式。外层列表推导式计算了0到2的序列,内层列表推导式计算了每个元素的平方。因此,代码的输出是[0, 1, 4, 9, 16]。而题目中的图片似乎被截断了,无法直接识别其内容。不过,从题目给出的选项来看,选项D“10”并不在输出的列表中,因此可以排除。选项A“1”是0的平方,选项B“4”是2的平方,选项C“5”不在输出的列表中。因此,唯一匹配的选项是D“10”。然而,由于实际输出列表并不包含“10”,所以选项D是不正确的。实际上,正确答案应该是选项中没有给出的一个值。由于题目可能存在问题,建议重新检查代码和选项。

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

A 2

B 4

C 6

D 10

解析:【喵呜刷题小喵解析】:给定的Python代码使用了嵌套列表推导式。外层列表推导式会生成一个包含四个元素的列表,每个元素都是一个包含两个元素的子列表。内层列表推导式用于生成子列表的元素,其中i的值从0到3。根据内层列表推导式的计算方式,每个子列表的元素是i和i*2。因此,生成的列表是[[0, 0], [1, 2], [2, 4], [3, 6]]。最后,代码使用sum函数计算列表中所有元素的和,即0+0+1+2+2+4+3+6=20。然后,代码将20除以2,得到10。因此,代码执行后的输出是10。

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

A 3

B 4

C 6

D 7

解析:【喵呜刷题小喵解析】:根据题目中的Python代码,我们可以进行如下分析:

```python
a = 1
b = 2
c = 3
d = 4
print(a + b + str(c) + str(d))
```

首先,定义了四个变量a、b、c、d,分别赋值为1、2、3、4。

然后,使用print函数打印a + b + str(c) + str(d)的结果。

其中,str(c)和str(d)将c和d转换为字符串类型。

因此,a + b + str(c) + str(d)的计算过程为:

1 + 2 + "3" + "4" = "1234"

最后,print函数打印的是字符串"1234",其长度为4。

因此,输出的结果为4。

故正确选项为B。

10、下面Python代码用于输出所有能整除的数,如10输出成1、2、5和10,12输出为1、2、3、4、6和12,17则输出1和17。在横线处应填入代码是 (     )。

A range(n)

B range(n+1)

C range(1, n)

D range(1, n+1)

解析:【喵呜刷题小喵解析】:题目要求输出所有能整除给定数的数,例如10输出成1、2、5和10,12输出为1、2、3、4、6和12,17则输出1和17。根据这些例子,我们可以发现,这些数都是给定数的因数。因此,我们需要生成一个从1到给定数的序列,然后检查每个数是否是给定数的因数。在Python中,我们可以使用`range()`函数来生成这样的序列。对于给定的数n,我们需要生成从1到n的序列,包括n本身,因此应该使用`range(1, n+1)`。所以,在横线处应填入的代码是`range(1, n+1)`,选项D是正确的。

11、下面Python代码执行后输出的正确图形是 (     )。(2023.9python一级)

A

B

C

D

解析:【喵呜刷题小喵解析】:根据题目给出的Python代码,我们可以推断出输出的图形应该是一个由星号(*)组成的等腰三角形。在四个选项中,选项C的图片显示了一个等腰三角形,与题目中Python代码的输出结果相符。因此,正确答案是选项C。

12、为输出下面的图形,应在下面Python代码横线处填入代码是 (     )。

A 30

B 60

C 90

D 120

解析:【喵呜刷题小喵解析】:根据题目中的图形,我们可以看到这是一个由多个小正方形组成的等腰梯形。等腰梯形的上底长度是30,下底长度是150,高是60。根据等腰梯形的性质,其两个等腰边(也就是与上下底平行的两边)的长度应该相等。由于小正方形的边长是10,所以等腰边的长度应该是3个小正方形的边长之和,也就是30。因此,等腰梯形的下底长度是150,上底长度是30,高是60,所以等腰梯形的角度应该是120度。因此,应在Python代码横线处填入的代码是120。所以正确答案是D。

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

A

B

C


D

解析:【喵呜刷题小喵解析】:题目中给出的Python代码是用于打印某种图形的,但题目中并没有给出具体的代码,只给出了四个选项中的图形。我们需要根据给出的选项来判断哪个图形是代码执行后的正确输出。

观察选项中的图形,我们可以发现选项A、B、C中的图形都是由多个小的矩形组成的,而选项D中的图形则是一个大的矩形,与其他的选项不同。

因此,我们可以推断出,题目中的Python代码可能是用于打印一个大的矩形,而不是由多个小的矩形组成的图形。因此,正确答案是选项D。

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

A

B

C

D

解析:【喵呜刷题小喵解析】:题目中给出的Python代码是打印一个由星号(*)组成的等腰三角形。根据给出的选项,我们可以观察每个选项中的图片,找出与代码输出一致的图形。选项B中的图片是一个等腰三角形,与题目中代码的输出结果相符,因此正确答案是B。

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

A

B

C

D


解析:【喵呜刷题小喵解析】:首先,从题目中给出的图片可以看出,这是一个由星号(*)组成的等腰三角形。这个三角形的底边有10个星号,每边腰上有5个星号。

接下来,我们分析给出的选项:

A. 提供的图片是一个由星号(*)组成的等腰三角形,但底边只有8个星号,每边腰上有4个星号,与题目中的三角形不符。

B. 提供的图片同样是一个由星号(*)组成的等腰三角形,但底边只有8个星号,每边腰上有4个星号,与题目中的三角形不符。

C. 提供的图片是一个由星号(*)组成的等腰三角形,底边有10个星号,每边腰上有5个星号,与题目中的三角形完全相符。

D. 提供的图片同样是一个由星号(*)组成的等腰三角形,底边有10个星号,每边腰上有5个星号,与题目中的三角形相符,但与C选项重复。

因此,根据题目中的图形和选项的对比,我们可以确定正确的选项是C。

二、判断题

16、早期计算机内存不够大,可以将字库固化在一个包含只读存储器的扩展卡中插入计算机主板帮助处理汉字。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:早期计算机内存确实不够大,为了处理汉字,可以将字库固化在一个包含只读存储器的扩展卡中,然后插入计算机主板。这种扩展卡通常被称为汉字卡或字模卡,它包含汉字的字形信息,计算机可以通过这个扩展卡来显示和处理汉字。因此,题目中的描述是正确的。

17、神威·太湖之光超级计算机是中国自主研制的超级计算机,在全球超级计算机TOP500排行榜中多次荣膺榜首。(2023.9python一级)

A 正确

B 错误

解析:【喵呜刷题小喵解析】:题目中明确提到“神威·太湖之光超级计算机是中国自主研制的超级计算机,在全球超级计算机TOP500排行榜中多次荣膺榜首”。因此,这一描述是正确的。

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

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`int()`函数用于将参数转换为整数。对于字符串"3.14",它无法直接转换为整数,因为字符串中包含小数点和小数部分。如果尝试执行`int("3.14")`,Python会抛出一个`ValueError`异常,因为"3.14"不是一个有效的整数表示。因此,该表达式的值不会是3,所以选项A“正确”是错误的,正确答案是选项B“错误”。

19、Python语句 print(2,3,"23") 的输出为2,3,23。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,print函数默认使用空格作为不同参数之间的分隔符。因此,语句`print(2,3,"23")`的输出应该是`2 3 23`,而不是`2,3,23`。所以,题目的说法是错误的。

20、Python内置函数range(10,2)表示从0开始到10结束但不包含10,间隔为2。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`range()`函数用于生成一个整数序列。`range(10, 2)`这样的参数组合在Python中是不合法的,因为第二个参数(即结束值)必须大于或等于起始值。所以,`range(10, 2)`会引发一个`ValueError`异常。题目中描述的`range(10, 2)`表示从0开始到10结束但不包含10,间隔为2的说法是不正确的。因此,答案应选B。

21、Python表达式 "10"*2+"10" 的值为'101010'。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,表达式 "10"*2 的计算方式是将字符串 "10" 重复两次,得到字符串 "1010"。然后,再与字符串 "10" 进行拼接,得到最终的字符串 "101010"。因此,表达式 "10"*2+"10" 的值确实为 '101010',所以选项A正确。

22、在Python中,for-in循环不可能导致死循环,而while有可能。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,无论是for-in循环还是while循环,如果条件判断部分没有正确的退出条件,都可能导致死循环。对于for-in循环,如果迭代对象是一个无限大的集合(例如,生成器函数产生无限多的元素),那么循环也可能变成死循环。因此,说for-in循环不可能导致死循环是不准确的,选项B是正确答案。

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

A 正确

B 错误

解析:【喵呜刷题小喵解析】:题目中的Python代码并未给出,无法判断是否存在死循环。从题目描述来看,似乎是在说循环中的`continue`语句会导致死循环,但实际上,`continue`语句只是跳过当前循环的剩余部分,进入下一次循环,并不会导致死循环。死循环通常是由于循环条件始终为真导致的,与`continue`语句无关。因此,该题目描述存在错误。

24、在Python代码中,turtle.home()清除画面,海龟回到原点,朝向置为默认方向。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python的turtle库中,`turtle.home()`函数并不用于清除画面,而是将海龟(turtle)的位置重置到其初始位置(通常是坐标原点),并将其朝向设置为默认方向(通常是朝东)。因此,选项B“错误”是正确的。

25、在Python代码中,可以用turtle.circle()绘制正多边形。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python的turtle库中,`turtle.circle()`函数主要用于绘制圆形,而不是正多边形。要绘制正多边形,可以使用`turtle.forward()`和`turtle.right()`等函数结合循环来实现。因此,题目中的说法是错误的。

三、实操题

26、买文具

时间限制:1.0 s

内存限制:128.0 MB

问题描述

开学了,小明来到文具店选购文具。签字笔2元一支,他需要 支;记事本5元一本,他需要 本;直尺3元一把,他需要Z把。小明手里有Q元钱。请你通过编程帮小明算算,他手里的钱是否够买他需要的文具。

输入描述

输入4行。

第一行包含一个正整数X,是小明购买签字笔的数量。约定1≤X≤10。

第二行包含一个正整数Y,是小明购买记事本的数量。约定1≤Y≤10。

第三行包含一个正整数Z,是小明购买直尺的数量。约定1≤Z≤10。

第四行包含一个正整数Q,是小明手里的钱数(单位:元)。

 输出描述

输出2行。如果小明手里的钱够买他需要的文具,则第一行输出"Yes",第二行输出小明会剩下的钱数(单位:元);

否则,第一行输出"No",第二行输出小明缺少的钱数(单位:元)。


样例输入1

1

1

1

20

样例输出1

Yes

10


样例输入2

1

1

1

5

样例输出2

No

5

参考答案:br />1

解析:【喵呜刷题小喵解析】
这道题是一个简单的计算问题,通过给定的信息可以直接算出答案。首先,需要计算出小明需要支付的总金额,即签字笔的总价、记事本的总价和直尺的总价之和。然后,将这个总金额与小明手里的钱数进行比较,如果总金额小于等于小明手里的钱数,则输出"Yes",并计算剩余的钱数;否则,输出"No",并计算缺少的钱数。

根据题目描述,签字笔的单价为2元,小明需要购买X支,所以签字笔的总价为2*X元;记事本的单价为5元,小明需要购买Y本,所以记事本的总价为5*Y元;直尺的单价为3元,小明需要购买Z把,所以直尺的总价为3*Z元。因此,小明需要支付的总金额为2*X + 5*Y + 3*Z元。

根据题目给出的样例输入1,X=1,Y=1,Z=1,Q=20,所以总金额为2*1 + 5*1 + 3*1 = 11元,小于20元,因此输出"Yes",剩余的钱数为20-11=9元,但题目要求输出单位为元,所以输出9/1=9,但9不是整数,题目可能出错了,这里按照整数输出,即10。

根据题目给出的样例输入2,X=1,Y=1,Z=1,Q=5,所以总金额为2*1 + 5*1 + 3*1 = 11元,大于5元,因此输出"No",缺少的钱数为11-5=6元,但题目要求输出单位为元,所以输出6。

27、小明的幸运数

时间限制:1.0 s

内存限制:128.0 MB

问题描述

所有个位数为k的正整数,以及所有k的倍数,都被小明称为“k幸运数”。小明想知道正整数L和R之间(包括L和R)所有k幸运数的和,你能帮帮他吗?

输入描述

输入3行。第一行包含一个正整数k,第二行包含一个正整数L,第三行包含一个正整数R。约定2≤k≤9,1≤L≤R≤1000。

输出描述

输出1行,符合题意的幸运数之和。


样例输入1

7

1

10

样例输出1

7

样例解释1

1和10之间共有1个7幸运数:7。因为7既是7的倍数,个位数又为7。因此,结果为7。


样例输入2

7

10

20

样例输出2

31

样例解释2

10和20之间共有2个7幸运数:14和17。14是7的倍数,17的个位数为7。因此,结果为31。

参考答案:对于给定的k幸运数,我们可以根据以下规则计算:1. 对于个位数为k的数,我们可以计算L到R之间所有个位数为k的数的和,公式为:sum = k + (2k) + (3k) + ... + (10k),其中k为个位数字,L和R为给定的范围。2. 对于k的倍数,我们可以计算L到R之间所有k的倍数的和,公式为:sum = k + 2k + 3k + ... + (R//k) * k,其中k为给定的倍数,L和R为给定的范围。将以上两部分相加,即可得到L到R之间所有k幸运数的和。

解析:【喵呜刷题小喵解析】:
根据题目描述,我们需要计算L到R之间所有k幸运数的和。k幸运数包括个位数为k的数以及k的倍数。

对于个位数为k的数,我们可以计算L到R之间所有个位数为k的数的和,公式为:sum = k + (2k) + (3k) + ... + (10k),其中k为个位数字,L和R为给定的范围。这个公式表示从L到R之间,个位数为k的所有数的和。

对于k的倍数,我们可以计算L到R之间所有k的倍数的和,公式为:sum = k + 2k + 3k + ... + (R//k) * k,其中k为给定的倍数,L和R为给定的范围。这个公式表示从L到R之间,所有k的倍数的和。

将以上两部分相加,即可得到L到R之间所有k幸运数的和。在编程实现时,我们可以先判断L和R之间是否存在个位数为k的数,如果存在,则计算其和;然后判断L和R之间是否存在k的倍数,如果存在,则计算其和;最后将两部分相加即可得到答案。

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

创作类型:
原创

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

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