2024年9月中国电子学会青少年软件编程(Python)等级考试试卷(一级)答案 + 解析

一、单选题

1、下列选项中关于 turtle.color('red') 语句的作用描述正确的是?( )

A. 只设置画笔的颜色为红色

B. 只设置填充的颜色为红色

C. 设置画笔和填充的颜色为红色

D. 设置画笔的颜色为红色,设置画布背景的颜色为红色

正确答案:C

答案解析:本题考察的是 turtle 的 color 语句,turtle.color('red') 语句会将画笔和填充颜色都设置为红色。

2、print(14+8) 输出的结果是?( )

A. 22

B. 14+8

C. 14

D. 148

正确答案:A

答案解析:本题考察的是 print 语句,由于14+8不是字符串,所以print在打印前会将表达式14+8进行计算,然后打印出来,因而选A。

3、在编写Python代码中可以在同一行使用多条语句,语句之间需使用某一符号进行分隔。下列选项中哪一符号可以将多条语句进行分隔?( )

A. :

B. ;

C. ,

D. .

正确答案:B

答案解析:在编写Python代码中可以在同一行使用多条语句,语句之间需使用分号(;)进行分隔,B答案正确。

4、在Python中可以使用setup()设置画布大小和起始位置,下列哪一项语句可以将画布大小设置为500*400?( )

A. turtle.setup(500,400,50,50)

B. turtle.setup(400,50,50,500)

C. turtle.setup(50,50,500,400)

D. turtle.setup(50,500,400,50)

正确答案:A

答案解析:setup()方法第一个参数为画布长,第二个参数为画布的高,第三个和第四个参数是画布位于屏幕的相对位置。故要将画布大小设置为500*400,只需要setup(500,400,x,y)即可,A选项符合,故本题正确答案为A。

5、在Python中,如果a=5,b=3,那么执行语句print(a+b==a*b)的结果是?( )

A. 8

B. False

C. True

D. 程序报错

正确答案:B

答案解析:本题中加减乘除运算的优先级高于比较运算符的优先级,故优先计算

加减乘除,a+b = 8,a*b =15,判断8=15,结果是False,故本题正确答案为B。

6、a=input()

b=input()

执行语句print(a+b),并输入1,2,结果为?( )

A. 3

B. 1

C. 2

D. 12

正确答案:D

答案解析:在Python中,不论用户输入什么类型的数据,input()函数的返回结果都是字符串,a+b返回的是'1'+'2'的结果12。

7、红星小学三年级评选优秀少先队员的条件是,期末考试语文成绩和数学成绩和英语成绩都必须等于或者高于90分,用Python程序描述,以下哪个是正确的?( )

A. 语文成绩>=90 and 数学成绩>=90 or 英语成绩>=90

B. 语文成绩>=90 or 数学成绩>=90 or 英语成绩>=90

C. 语文成绩>=90 and 数学成绩>=90 and 英语成绩>=90

D. 语文成绩>=90 or 数学成绩>=90 and 英语成绩>=90

正确答案:C

答案解析:逻辑运算符and表示"与运算",or表示"或运算",由逻辑运算符连接而成的表达式称为逻辑表达式,本题的逻辑表达式中,三种学科的成绩需要同时满足大于等于90分的要求,所以使用and运算符连接。

8、假如从广东到湖南有2种不同的出行方式,从湖南到北京有3种不同的出行方式,那么从广东经过湖南再到北京,总共有几种不同的出行方式?( )

A. 2

B. 3

C. 5

D. 6

正确答案:D

答案解析:从广东到北京的总路线中,包含两个子路线,第一个子路线是广东到湖南,有2种方式,第二个子路线是湖南到北京,有3种方式,总路线是由两个子路线构成的,所以共有2*3=6种不同的出行方式。

9、下面哪个运算符的运算优先级最低?

A. //

B. **

C. ==

D. %

正确答案:C

答案解析:这四个运算符中:B选项优先级最高,其次是A和D属于同一个优先级,C的优先级最低。

10、已知a= 2 or False and False,请问a的运算结果是?( )

A. 2

B. True

C. False

D. 2.0

正确答案:A

答案解析:根据逻辑算符的运算顺序,a= 2 or False and False,先进行and计算,然后进行or计算,所以,a=2。

11、Python自带的IDLE编辑器有两种模式:脚本模式(又称为编辑器模式)和交互模式(又称为Shell模式),下列哪种方法可以实现由交互模式到脚本模式的切换?( )

A. 关闭文件

B. 新建文件

C. 替换文件

D. 运行文件

正确答案:B

答案解析:考察Python自带编程环境IDLE的两种编辑模式:脚本模式和交互模式,编辑器默认打开为交互模式,可以通过新建文件的方式切换到脚本模式,所以答案选B

12、小明同学正在利用Python绘制一个边长为100像素的正三角形,目前已经完成两条边的绘制,箭头为画笔所在位置和方向,如下图所示,请你帮他选择一组正确的答案将此正三角形绘制完整?( )

A. turtle.left(60)

turtle.forward(100)

B. turtle.left(120)

turtle.forward(100)

C. turtle.right(60)

turtle.forward(100)

D. turtle.right(120)

turtle.forward(100)

正确答案:B

答案解析:绘制正三角形中,需要掌握的是旋转角度的理解,每一次旋转中转动的是图形的外角度数,正三角形也就是120度,所以本题正确答案为B。

13、Python中3乘以5应该怎样表示?( )

A. 3×5

B. 3*5

C. 3**5

D. 3+=5

正确答案:B

答案解析:本题考察算术运算符*,数学当中用×表示乘号,计算机中用*来表示乘号,所以本题答案为B。

14、Python中,以下哪个选项是将浮点数转换为整数的正确方法?( )

A. int(3.14)

B. float(3)

C. str(3.14)

D. bool(3.14)

正确答案:A

答案解析:A. int(3.14) - 这个选项使用int()函数将浮点数3.14转换为整数。在Python中,当你使用int()函数转换一个浮点数时,它会舍去小数部分,将浮点数转换为整数。因此,int(3.14)将返回整数3。

B. float(3) - 这个选项使用float()函数将整数3转换为浮点数,而不是将浮点数转换为整数。float(3)将返回浮点数3.0。

C. str(3.14) - 这个选项使用str()函数将浮点数3.14转换为字符串,而不是整数。str(3.14)将返回字符串"3.14"。

D. bool(3.14) - 这个选项使用bool()函数将浮点数3.14转换为布尔值。在Python中,任何非零数字(包括浮点数)转换为布尔值时都为True。因此,bool(3.14)将返回布尔值True,而不是整数。

综上所述,只有选项A是将浮点数转换为整数的正确方法。

15、如果要让turtle向左转45度,应该使用哪个命令?( )

A. turtle.left(45)

B. turtle.turnleft(45)

C. turtle.forward(45)

D. turtle.right(45)

正确答案:A

答案解析:要让turtle向左转45度,应该使用以下命令:

A、turtle.left(45)

解析:

A、turtle.left(45) - 这个命令是正确的。在turtle库中,left() 函数用于让turtle向左转动指定的角度。参数是转动的角度,单位是度。因此,turtle.left(45) 会使得turtle向左转45度。

B、turtle.turnleft(45) - 这个命令是错误的。turtle库中没有 turnleft() 这个函数。正确的函数名是 left()。

C、turtle.forward(45) - 这个命令不会使turtle转向,而是会使它向前移动指定的距离。

D、turtle.right(45) - 这个命令虽然语法上是正确的,但它会让turtle向右转45度,而不是向左转。

综上所述,正确答案是 A、turtle.left(45)。这个命令会让turtle向左转45度。

16、Python中的!=代表的是?( )

A. 反转条件的布尔值

B. 检查左右两边的值是否不相等

C. 检查左右两边的值是否相等

D. 将左右两边值进行交换

正确答案:B

答案解析:在Python中,!= 是一个比较运算符,用于检查其左右两边的值是否不相等。如果两边的值不相等,表达式的结果为 True,否则为 False。

所以正确答案是:

B、检查左右两边的值是否不相等

解析:

A选项描述的是逻辑非运算符 not 的作用,它会反转条件的布尔值。

C选项描述的是等于运算符 == 的作用,它会检查左右两边的值是否相等。

D选项描述的操作并不是Python中任何运算符的标准行为。

17、执行下列哪个选项中的代码,能打印出 Scratch Python C++ 的是( )

A. print('Scratch Python C++')

B. print('Scratch 、Python 、C++')

C. print('Scratch, Python,C++')

D. print('Scratch + Python + C++')

正确答案:A

答案解析:B选项打印出来的是Scratch 、Python 、C++,是包含有顿号的;C选项打印的结果是Scratch, Python,C++,是包含逗号的;D选项打印的结果是Scratch + Python + C++,包含有加号。所以选A。

18、执行下列哪段代码,画笔移动后不会画出线?( )

A. import turtle

turtle.goto(100, 100)

B. import turtle

turtle.goto(100, 100)

turtle.penup()

turtle.pendown()

C. import turtle

turtle.penup()

turtle.goto(100, 100)

turtle.pendown()

D. import turtle

turtle.penup()

turtle.pendown()

turtle.goto(100, 100)

正确答案:C

答案解析:选项A的代码中没有抬起画笔的操作,执行turtle.goto(100, 100)会画出线;

选项B的代码中,因为turtle.goto(100, 100)在抬起画笔之前,所以移动画笔会画出线;

选项C的代码中,先抬起画笔,然后执行turtle.goto(100, 100),再落下画笔。在这个过程中,移动画笔时画笔处于抬起的状态,不会画出线;

选项D的代码中,先抬起画笔,然后落下画笔,再执行turtle.goto(100, 100)。在这个过程中,移动画笔时画笔处于落下的状态,会画出线。答案为C。

19、执行代码 print(3 <= 5 and 7 >= 9),打印结果为?( )

A. True

B. False

C. 3 <= 5

D. 7 >= 9

正确答案:B

答案解析:在Python中,"and"用来判断两个条件是否同时成立。"and"左侧为False时,表达式的结果为False;"and"左侧为True时,表达式的结果和"and"右侧部分的结果一致。题干中 3 <= 5 成立,但是 7 >= 9 不成立,所以 3 <= 5 and 7 >= 9 的结果为False,答案为B。

20、以下哪个函数能够绘制一个半径为60的圆?( )

A. import turtle

turtle.circle(60, 180)

B. import turtle

turtle.forward(60, 180)

C. import turtle

turtle.circle(180, 60)

D. import turtle

turtle.circle(60, 360)

正确答案:D

答案解析:画圆用到的语句是circle,参数顺序为(半径,角度)根据题意参数应该为(60,360)。

21、在 Python 中,这个表达式:3*8//4 的计算结果是多少?( )

A. 6

B. 6.0

C. 3

D. 3.0

正确答案:A

答案解析:已知只有乘法和整除运算,说明结果必为整数类型,所以排除6.0、3.0。*和//优先级相等,从左到右计算,3*8结果为24,24//4整除结果为6。

22、关于缩进的描述,正确的是?( )

A. Python 编码中不需要缩进

B. 缩进的空格数决定了代码块的嵌套级别

C. 缩进仅仅是为了美观,对代码执行没有影响

D. 缩进是语法错误,不应该在代码中使用

正确答案:B

答案解析:Python 编码中需要缩进,缩进的空格数决定了代码块的嵌套级别,缩进不仅仅是为了美观,对代码执行也有影响,应该在代码中使用。

23、运行代码print(float(20)),输出的结果是以下哪一项?( )

A. 20

B. 20.0

C. 20.00

D. 20.000

正确答案:B

答案解析:float()默认保留一位小数,故答案选B。

24、运行以下程序后,画笔的位置坐标是以下哪一个?( )

import turtle

turtle.forward(50)

turtle.left(90)

turtle.forward(50)

turtle.right(90)

turtle.forward(50)

A. (50,0)

B. (50,100)

C. (0,50)

D. (100,50)

正确答案:答案解析:根据题干程序,画笔首先向默认方向右边移动50像素,左转后向上移动50像素,右转后再向右移动50像素,此时的坐标是(100,50),答案选D。

25、以下哪一项运行后能分两行显示以下诗句?( )

但愿人长久,

千里共婵娟。

A. print("但愿人长久,

千里共婵娟。")

B. print(但愿人长久,

千里共婵娟。)

C. print('''但愿人长久,

千里共婵娟。''')

D. print('''但愿人长久,

千里共婵娟。""")

正确答案:C

答案解析:使用三引号('''或""")可以指定一个多行字符串,但是前后要一致。本题选C。

二、判断题

26、在Python中,如果a=4,b=2,那么执行语句print(type(a**b))的结果是16。( )

正确答案:错

答案解析:当a=4,b=2时,a**b=16,type()函数会返回参数的数据类型,16的数据类型是<class 'int'>,故本题说法错误。

27、在Python中,'龙腾虎跃'是一个字符串类型数据,如果将单引号去掉,它就变成了整型数据。( )

正确答案:错

答案解析:根据题意,去掉单引号并非整型数据,而是一个变量,至于变量的对象是什么数据类型,根据题意无法得知。

28、Python中#的符号表示单行注释,###进行多行注释。( )

正确答案:错

答案解析:python的多行注释是 ''' '''或""" """

29、print(int(4.5)==float(4))输出结果是False。( )

正确答案:错

答案解析:输出结果为True

30、在Turtle库中,小明设置画笔速度设为2,小红设置画笔速度为0,如果其他指令完全一致的话,那么小明的绘制速度要快一些。( )

正确答案:错

答案解析:0为最快速度

31、IDLE交互模式的提示符为>>>,脚本模式没有提示符。( )

正确答案:对

答案解析:考察Python自带编程环境IDLE的两种编辑模式,交互模式的提示符

为>>>,脚本模式没有提示符。所以,本题答案为正确。

32、turtle画图库中turtle.circle()不但可以绘制圆或者圆弧,它还可以绘制正多边形。( )

正确答案:对

答案解析:turtle.circle()可以绘制正多边形,circle()可以通过第3个参数steps来设定线段数量,从而实现正多边形的绘制。所以本题答案为正确。

33、else可以作为变量名。( )

正确答案:错

答案解析:在Python中,else是一个保留字(或称为关键字),它用于if-else语句中,以指定当if条件不满足时要执行的代码块。由于else是Python语言的一部分,并且有其特定的语法含义,因此它不能用作变量名。

34、变量名大小写是有区分的,如变量名 age和 Age有区别。( )

正确答案:对

答案解析:在 Python 中,变量名是区分大小写的,age 和 Age 是不同的变量名。

35、print 语句可以同时打印多个变量,比如 print(a, b) 就可以打印出变量 a 和 b 的值。( )

正确答案:对

答案解析:本题考察的 print 语句,print 可以同时打印多个变量。

三、编程题

36、小明的生日到了,他收到了很多彩色的气球。现在我们要用Python来帮助小明绘制一个他最喜欢的彩色气球,如下图所示。

要求:

(1)气球为半径50的圆,气球线条和填充均为蓝色;

(2)圆(气球)和线条(绳子)的连接位置为画布正中心;

(3)气球的绳子在气球正下方,长度为100。颜色不限。

提示:最下方的箭头为海龟默认形状,无需绘制。

参考程序:

import turtle

turtle.color("blue")

turtle.begin_fill()

turtle.circle(50)

turtle.end_fill()

#turtle.color("black") #可有可无

turtle.right(90)

turtle.forward(100)

turtle.done()

试题解析:

评分标准:

(1)导入库文件正确;(2分)

(2)有前进命令;(2分)

(3)有旋转90度命令;(2分)

(4)画圆正确;(2分)

(5)颜色正确;(2分,线条和填充各1分)

(6)指定坐标正确,气球2分,气球绳子2分;(4分)

(7)运行正常;(4分)

(8)绘制的图形正确。(2分)

37、2023年9月23日晚,第十九届亚洲运动会在浙江省杭州市奥体中心隆重开幕。为准时参加开幕式,李叔叔一家于9月23日提前开车前往杭州奥体中心,他家距离杭州奥体中心188km(公里),李叔叔开车用了t小时到达目的地,请问李叔叔开车的平均速度是多少km/h(公里/小时)?

要求:

(1)程序开始运行时,提示"请输入一个数字,代表李叔叔开车用时"; 并要求用户输入整数;

(2)程序根据输入的数字计算出李叔叔开车的平均速度,并转化为整数; (提示:平均速度=总距离÷总时长)

(3)输出的格式为:"李叔叔开车的平均速度是:*km/h"。

参考程序:

t=int(input('请输入一个数字,代表李叔叔开车用时:'))

print('李叔叔开车的平均速度是:',int(188/t),'km/h')

试题解析:

评分标准:

(1)有输入语句;(2分)

(2)有输出语句;(2分)

(3)有类型转化语句;(2分,每个1分)

(4)有计算语句;(2分)

(5)程序符合题目要求。(2分,如果属于类型转换错误,只扣1分)

相关推荐
Theodore_10222 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou2 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
安静读书2 小时前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
----云烟----3 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024064 小时前
SQL SELECT 语句:基础与进阶应用
开发语言
小二·4 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic4 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
向宇it4 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
武子康4 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神5 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式