image

编辑人: 青衫烟雨

calendar2025-06-16

message8

visits254

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

一、单选题

1、小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是?(   )(2024.3py1级)

A 小程序

B 计时器

C 操作系统

D 神话人物

解析:【喵呜刷题小喵解析】:华为手表上跑的是鸿蒙,这个"鸿蒙"是指操作系统。所以,选项C"操作系统"是正确答案。而选项A"小程序"是指轻量级的应用程序,通常运行在特定的平台或设备上;选项B"计时器"是一种用于计算时间的设备或功能;选项D"神话人物"与问题中提到的"鸿蒙"无关。因此,只有选项C"操作系统"与问题中的描述相符。

2、中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是(   )。(2024.3py1级)

A 制造自动驾驶汽车

B 创立培训学校

C 发明汉字激光照排系统

D 成立方正公司

解析:【喵呜刷题小喵解析】:王选先生是中国计算机学会(CCF)的重要贡献者之一,他的主要贡献在于发明了汉字激光照排系统,这项技术对于汉字的排版印刷具有革命性的意义,极大地提高了印刷效率和质量。因此,选项C“发明汉字激光照排系统”是正确的答案。其他选项如制造自动驾驶汽车、创立培训学校、成立方正公司等都不是王选先生的主要贡献,因此不正确。

3、Python表达式 (3 - 2) * 3 + 5 的值是(   )。

A -13

B 8

C 2

D 0

解析:【喵呜刷题小喵解析】首先,我们按照运算优先级,先计算括号内的运算,即(3 - 2) = 1。然后,我们将1乘以3,得到3。最后,我们将3加上5,得到8。所以,整个表达式的值为8,选项B正确。

4、Python语句 print("5%2=",5 % 2) 执行后的输出是(   )。

A 2 2

B 1 1

C 5%2=2

D 5%2= 1

解析:【喵呜刷题小喵解析】在Python中,`%`是取模运算符,用于计算两个数相除后的余数。在这个例子中,`5 % 2`计算的是5除以2的余数,结果是1。`print("5%2=",5 % 2)`语句会先输出字符串"5%2=",然后输出5除以2的余数1,所以最终输出的是"5%2= 1"。因此,正确选项是D。

5、执行Python语句 a = input() 时如果输入 5+2 ,下述说法正确的是(   )。

A 变量 a 将被赋值为整数7

B 变量 a 将被赋值为字符串,字符串内容为 5+2

C 语句执行将报错,不能输入表达式

D 语句执行将报错,因为 input() 函数的括号内没有提示字符串作为参数

解析:【喵呜刷题小喵解析】:Python的`input()`函数用于从标准输入读取一行文本,并将其作为字符串返回。因此,当执行`a = input()`时,无论输入的是什么,变量`a`都将被赋值为一个字符串。在本题中,输入的是表达式`5+2`,但这个表达式不会被计算,而是直接作为字符串`"5+2"`被赋值给变量`a`。因此,正确选项是B。

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

A a+1= 2

B a+1=2

C 2=2

D 2= 2

解析:【喵呜刷题小喵解析】:题目中给出的Python代码为 `a = 1; print(a+1)`, 这段代码首先定义了变量 `a` 并赋值为 1,然后使用 `print` 函数打印 `a+1` 的值。因此,代码执行后的输出为 `a+1=2`。选项B与此相符,所以选B。

7、下面Python代码执行时输入21后,有关描述正确的是(   )。

A 仅有代码4行被执行

B 第4和第7行代码都被执行

C 仅有代码第7行被执行

D 第8行代码将被执行,因为 input() 输入为字符串

解析:【喵呜刷题小喵解析】:根据题目中的Python代码,当输入21后,会依次执行各行代码。

代码第1行定义了一个变量x,并通过input()函数接收用户的输入。

代码第2行将输入的字符串转化为整数。由于输入的是字符串"21",所以x的值为21。

代码第3行判断x的值是否大于10,由于x的值为21,大于10,所以条件成立,执行if语句块内的代码。

代码第4行和第7行都在if语句块内,因此当if语句的条件成立时,这两行代码都会被执行。

代码第5行和第6行在else语句块内,由于if语句的条件成立,所以else语句块内的代码不会被执行。

代码第8行是一个独立的print语句,不受if语句块的控制,因此无论输入的值是什么,都会执行这行代码。

综上所述,选项B“第4和第7行代码都被执行”是正确的。

8、下面Python代码第2行,总共被执行次数是(   )。

A 0

B 10

C 19

D 20

解析:【喵呜刷题小喵解析】:在这段Python代码中,循环`for i in range(10):`会执行10次,每次循环中,`for j in range(2):`会执行2次,所以内部循环总共执行了10*2=20次,而`print(i, j)`语句在内部循环中,所以总共被执行了20次。然而题目中要求的是第二行的代码,第二行的代码是`print(i, j)`,因此其总共被执行次数为20次,故选择选项C。

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

A 0

B 7

C 18

D 20

解析:【喵呜刷题小喵解析】:根据题目中的Python代码,我们可以分析出代码的执行过程。代码首先定义了一个函数`f`,该函数接受一个参数`n`,并返回`n*3`。然后,代码调用了函数`f`,并将结果赋值给变量`result`。在调用函数时,参数`n`的值为6,所以`result`的值为`6*3=18`。因此,代码执行后的输出为18,对应选项C。

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

A 9#6#3#

B 9#6#3#0#

C 8#7#5#4#2#1#

D 10#8#7#5#4#2#1#

解析:【喵呜刷题小喵解析】首先,我们来分析Python代码。由于提供的代码是一个图片,所以我们不能直接执行代码,但我们可以通过观察图片来猜测其功能。

从图片中我们可以看到,它似乎是一个计算器或类似的工具,上面有一系列的按键,如“7”,“5”,“4”,“2”,“1”,“0”,“#”等。我们可以猜测,这个工具可能允许用户输入一个由数字和“#”字符组成的字符串。

然后,我们观察提供的选项,这些选项看起来像是可能的输入。其中,“#”字符被当作特殊字符,因为它在数字之间。

考虑到这一点,我们可以推测,这个工具可能按照从左到右的顺序处理输入的字符,每遇到一个数字就将其添加到结果中,每遇到一个“#”字符就停止添加数字。

现在,我们来看每个选项:

A. 9#6#3# - 这将产生“963”,因为当遇到第一个“#”时,它停止添加数字。

B. 9#6#3#0# - 这将产生“9630”,因为当遇到第一个“#”时,它停止添加数字,但当遇到第二个“#”时,它再次开始添加数字。

C. 8#7#5#4#2#1# - 这将产生“875421”,因为当遇到“#”时,它停止添加数字。

D. 10#8#7#5#4#2#1# - 这将产生“10875421”,因为当遇到“#”时,它停止添加数字。

由于我们不能直接运行代码,我们只能基于图片和选项进行推测。从图片中,我们看不到任何明显的提示告诉我们应该选择哪个选项。然而,如果我们假设这个工具的行为类似于常见的计算器,那么它可能会按照上述方式处理输入。

在这种情况下,选项C和D都包含“#”字符,所以它们的结果将包含多个数字段。但是,由于选项D的开头是“10”,它似乎不太可能是计算器上可能出现的输入,因为通常用户不会输入一个非零数字作为输入的开始。

因此,最合理的选择是选项C,因为它包含了与计算器上可能出现的输入类似的数字序列。所以,我们的答案是C。

11、下面Python代码用于判断键盘输入的整数是否为质数。质数是只能被1和它本身整除的数。在横线处应填入代码是(   )。

A n % i

B、

n % i == 0

C、

n // i

D、

n / i

解析:【喵呜刷题小喵解析】:在判断一个数是否为质数时,我们需要检查这个数是否能被2到它平方根之间的任何整数整除。如果能被整除,那么这个数就不是质数。在Python中,检查一个数是否能被另一个数整除通常使用模运算符(%)。所以,选项B中的"n % i == 0"表示检查n是否能被i整除。因此,在横线处应填入的代码是"n % i == 0"。

12、下面Python代码执行后的描述,正确的是(   )。

A 有4条蓝色线段5条红色线段,总计9条线段

B 有4条红色线段5条蓝色线段,总计9条线段

C 有5条蓝色线段5条红色线段,总计10条线段

D 只有1条线段,线段颜色为蓝色

解析:【喵呜刷题小喵解析】根据题目中的Python代码,我们可以观察到代码创建了一个列表,列表中包含两个元组。第一个元组包含4个元素,元素的值均为1,表示蓝色线段,第二个元组包含5个元素,元素的值均为2,表示红色线段。因此,总共有4条蓝色线段和5条红色线段,总计9条线段。所以,选项A“有4条蓝色线段5条红色线段,总计9条线段”是正确的。

13、下面Python执行后输出是(   )。

A 红色正方形,四周封闭

B 红色正方形,左边有缺口

C 红色正方形,右边有缺口

D 红色正方形,底边有缺口

解析:【喵呜刷题小喵解析】根据题目中的图片,我们可以看到一个红色的正方形,在正方形的左边有一个缺口。因此,根据图片信息,输出的应该是红色正方形,左边有缺口。选项B符合这一描述,因此选项B是正确的答案。

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

A 完整圆形,但原位置重复三次,看起来是一个圆

B 以坐标(150,90)为圆心的完整圆形

C 不是完整圆形,缺少左下角的四分之一

D 不是完整圆形,缺少右下角的四分之一

解析:【喵呜刷题小喵解析】:根据提供的图片,我们可以看到图形并不是一个完整的圆形,而是缺少左下角的四分之一。因此,选项C“不是完整圆形,缺少左下角的四分之一”是正确的。其他选项与图片不符。

15、为画出如下所示图形,下面Python代码横线处应填入(   )。

A 150

B 100

C 50

D 0

解析:【喵呜刷题小喵解析】根据题目中给出的图片,可以观察到图形的特点是正方形的边长逐渐减半。根据这个规律,每次边长都会减半,因此,下一个正方形的边长应该是当前正方形边长的一半。根据这个规律,我们可以推断出,下一个正方形的边长应该是74/2=37,再下一个正方形的边长应该是37/2=18.5,但边长不能是小数,所以应该取整为18。再下一个正方形的边长应该是18/2=9,再下一个正方形的边长应该是9/2=4.5,同样取整为4。最后,下一个正方形的边长应该是4/2=2。但是,题目中要求的是下一个正方形的边长,所以应该选择4之前的那个正方形的边长,即100。因此,答案是B选项,即100。

二、判断题

16、小杨今年春节回奶奶家了,奶奶家的数字电视可以通过遥控器输入电视剧名称来找到想播放的电视剧,所以可以推知里面有交互式程序在运行。(2024.3py1级)

A 正确

B 错误

解析:【喵呜刷题小喵解析】:根据题目描述,小杨在奶奶家的数字电视可以通过遥控器输入电视剧名称来找到想播放的电视剧。这表明电视系统具有交互式功能,能够响应遥控器的输入并执行相应的操作。因此,可以推断出电视系统里确实有交互式程序在运行,以便根据用户的输入找到并播放相应的电视剧。因此,题目中的陈述是正确的。

17、任何一个 for 循环都可以转化为等价的 while 循环。(2024.3py1级)

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在编程中,for循环和while循环都是用来重复执行一段代码的结构。虽然它们在使用方式和语法上有所不同,但它们的核心思想都是相同的:重复执行一段代码。

对于任何一个for循环,我们都可以找到一种方法将其转化为等价的while循环。这是因为for循环的结构可以分解为三个部分:初始化、条件判断和迭代更新。这三个部分都可以在while循环中通过相应的代码实现。

例如,对于一个for循环:


```python
for i in range(5):
print(i)
```
我们可以将其转化为等价的while循环:


```python
i = 0
while i < 5:
print(i)
i += 1
```
因此,任何一个for循环都可以转化为等价的while循环,这个命题是正确的。

18、在Python代码中变量 n 被赋值为27,则 print(n // 10) 执行后输出的是 7 。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`//`表示整数除法。在这个例子中,`n // 10`将变量`n`除以10并返回整数结果。变量`n`被赋值为27,所以`n // 10`的结果为2。因此,`print(n // 10)`将输出2,而不是7。所以题目的说法是错误的。

19、Python语句 print(2,3,sep="#",end="&") 执行后输出的是 2#3& 。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`print`函数允许你自定义输出的格式。`sep`参数用于指定字符串之间的分隔符,而`end`参数用于指定字符串的结束符。在这个例子中,`print(2, 3, sep="#", end="&")`将会输出"2#3",然后由于`end`参数被设置为"&",所以输出后面会跟着"&"。因此,整个输出应该是"2#3&",与题目中的描述一致。所以,答案是A,即正确。

20、在Python中, while 可能是死循环,而 for-in 循环不可能是死循环。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,无论是while循环还是for-in循环,如果条件没有正确地设置,都可能导致死循环。例如,如果while循环的条件永远为真,或者for-in循环的迭代次数没有限制,都可能导致死循环。因此,说"while可能是死循环,而for-in循环不可能是死循环"是不准确的。

21、Python表达式 "10"*2 执行时将报错,因为 "10" 是字符串类型而 2 是整数类型,它们数据类型不同,不能在一起运算。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,表达式 "10"*2 实际上不会报错,而是会按照字符串的重复操作来执行。这里的 "10" 是一个字符串,而2是一个整数,但Python允许将整数用作字符串重复的次数。因此,表达式 "10"*2 的结果将是 "1010",即字符串 "10" 重复了两次。所以,题目中的描述是错误的。

22、在Python, break 语句用于提前终止当前层次循环,适用于 while 循环,但不适用于 for-in 循环。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python中,`break`语句可以用于提前终止当前层次的循环,这适用于`while`循环和`for-in`循环。所以题目中的描述是错误的。实际上,`break`语句在`for-in`循环中同样有效,当遇到`break`语句时,循环会立即终止。

23、以下Python代码默认将绘制一条水平直线。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:题目中的图片并非Python代码,因此无法判断其是否能绘制一条水平直线。题目描述有误,图片中的图像并不能代表Python代码,因此选项B“错误”是正确的。如果题目中给出的是Python代码,并且代码能够绘制一条水平直线,那么选项A“正确”才是正确的。因此,根据题目给出的信息,选项B“错误”是正确的。

24、Python代码执行后,将绘制一个边长为100的等边三角形,且填充颜色为红色。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:题目要求Python代码执行后,绘制一个边长为100的等边三角形,且填充颜色为红色。然而,提供的图片并不是一个边长为100的等边三角形,且没有填充颜色为红色。因此,题目描述与图片内容不符,选项B正确。

25、Python代码 turtle.right() 也可以实现海龟指向左旋转。

A 正确

B 错误

解析:【喵呜刷题小喵解析】:在Python的turtle模块中,`turtle.right()`函数是用来使海龟向右转的。如果想要让海龟向左旋转,应该使用`turtle.left()`函数。因此,题目的陈述是不正确的。

三、实操题

26、小杨买书

题面描述

小杨同学想用零花钱购买图书,已知图书单价为13元,请根据输入的零花钱数量,编写程序计算出最多可以购买多少本图书,以及还剩余多少零花钱。

输入格式

只输入一个正整数,表示小杨零花钱的数量。【注意:零花钱的数量大于0但小于200,该条件不必体现在程序之中】

输出格式

输出为两行。第1行,最多购买图书的数量,第2行为购买图书后剩余的零花钱数量。

样例输入1

100

样例输出1

7
9

样例1解释

100为小杨可用于购买图书的金额,7为最多可以购买图书的数量,每本13元,最多可以购买7本,剩余9元不够购买一本,9为购买图书后的剩余零花钱数量。

样例输入2

199

样例输出2

15
4

参考答案:br />```pythonmoney = int(input())books = money // 13remaining_money = money % 13print(books)print(remaining_money)```

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

这个程序首先接收用户输入的零花钱数量,然后将其除以每本书的价格(13元),得到可以购买的图书数量。使用整除操作`//`确保结果是一个整数。接着,程序使用取余操作`%`计算购买图书后剩余的零花钱数量。最后,程序输出最多可以购买的图书数量和剩余的零花钱数量。

在样例1中,输入的零花钱数量是100元,除以每本书的价格13元,得到的结果是7,所以最多可以购买7本书。剩余的零花钱数量是100元减去7本书的价格(7*13元),结果是9元。

在样例2中,输入的零花钱数量是199元,除以每本书的价格13元,得到的结果是15,所以最多可以购买15本书。剩余的零花钱数量是199元减去15本书的价格(15*13元),结果是4元。

27、找因数

问题描述

小杨同学最近刚刚学习了因数的概念,具体来说,如果一个正整数N可以被另一个正整数M整除,我们则说M是N的因数。如6可以被2整除,因此2是6的因数。

请编写一个程序,从小到大输出正整数N的所有因数。如输入6,则逐行输出1、2、3、6。

输入描述

输入一行一个正整数N,假设N≤1000【注意:不必反应到编程代码之中】。

输出描述

输出若干行,为N的所有约数,从小到大排列。

特别提醒

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

样例输入 1

1

样例输出 1

1

样例输入 2

6

样例输出 2

1
2
3
6

样例输入 3

10

样例输出 3

1
2
5
10

样例输入 4

17

样例输出 4

1
17

参考答案:为了解决这个问题,我们可以编写一个程序,从1开始遍历到N,检查每个数是否可以被N整除。如果可以被整除,就输出这个数。

解析:【喵呜刷题小喵解析】:
这个问题是一个经典的编程问题,要求找出给定正整数N的所有因数。解决这个问题的基本思路是从1开始遍历到N,检查每个数是否可以被N整除。如果可以被整除,就输出这个数。由于题目要求从小到大输出,因此输出顺序是从小到大的。

具体来说,我们可以使用一个循环,从1遍历到N,对于每个数i,如果i可以被N整除(即N % i == 0),则输出i。由于题目要求输出多行,因此每次输出后需要换行。

需要注意的是,由于题目中限制了N的范围(N≤1000),因此在实际编程时,不需要对N的范围进行额外的判断。另外,由于题目要求输出格式规范,因此在输出时需要注意换行和空格的使用。

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

创作类型:
原创

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

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