2023年12月中国电子学会青少年软件编程(Python)等级考试试卷(一级)答案 + 解析
一、单选题
1、下列程序运行的结果是?( )
print('hello')
print('world')
A.helloworld
B.hello
world
C.hello world
D.'hello''world'
正确答案:B
答案解析:本题考察的 Python 编程基础,print 在打印时,会在打印的末尾默认加上换行符,所以打印出来的内容是两行。
2、下列哪段代码可以将画笔颜色设置为红色?( )
A.turtle.pen('red')
B.turtle.fillcolor('red')
C.turtle.colormode('red')
D.turtle.pencolor('red')
正确答案:D
答案解析:试题解析:本题考察的 turtle 画笔颜色的设置,画笔的颜色是通过 turtle.pencolor() 来设置的。
3、运行下列程序打印的结果是?( )
a = '90'
b = '80'
c = int(a)
d = int(b)
print(c + d)
A.8090
B.170
C.80
D.90
正确答案:B
答案解析:本题考察的是数学运算符,首先将两个字符串都转换成了整型,所以加法运算,会将两个数字求和,结果就是 170。
4、如图所示,小明想要将中间柱子的三个盘子转移到右侧的柱子,规则是每次只能挪动一个圆盘,小盘只能放到大盘上边,可以借助左侧的柱子完成任务。请问最少需要几步可以完成这个任务?( )
A.6
B.7
C.8
D.9
正确答案:B
答案解析:小盘只能放到大盘上边,条件限制,所以选B
5、下列程序运行的结果是?( )
a=5
b=2
a-=b
print(a)
A.4
B.1
C.3
D.2
正确答案:C
答案解析:-=是减法赋值运算符的意思,a-=b是表示a=a-b,a-b等于3,所以a=3,选择C。
6、下列对python变量名命名错误的是?( )
A.123
B.abc
C._123
D._abc
正确答案:A
答案解析:在 Python 中给一个变量命名时,需要遵循以下两个规则,一是变量名由英文字母、下划线_或数字组成,并且第一个字符必须是英文字母或下划线。二是变量名不能是 Python 关键字(又称关键词)。A选项第一个字符是数字所以选择A。
7、下列哪个选项的代码,可以画出一个直径(注意是直径,不是半径)为100的半圆?( )
A.turtle.circle(100,360)
B.turtle.circle(50,180)
C.turtle.circle(100,180)
D.turtle.circle(50,360)
正确答案:B
答案解析:可使用 turtle.circle() 语句画圆,turtle.circle() 语句中,第一个参数是代表圆的半径,第二个参数是代表圆的弧度,直径为100的半圆所以选B。
8、下列不属于Python保留字符的是?( )
A.turtle
B.if
C.import
D.for
正确答案:A
答案解析:Python中的保留字是指被Python内部定义并保留使用的标识字符,包括import、if、else、for等等,turtle是画图库的名字,不是Python的保留字。
9、print(2023 % 10 ** 2)的结果是?( )
A.200
B.23
C.20
D.20.23
正确答案:B
答案解析:幂运算**的优先级高于取余%,所以先计算10**2,也就是10*10结果为100,化简为 2023 % 100,也就是计算2023除以100的余数,也就是23,选择B。
10、执行下列turtle库的指令后,画笔最终为哪种颜色?( )undefined
A.黄色
B.红色
C.蓝色
D.绿色
正确答案:B
答案解析:Python中代码从上往下依次执行,先执行pencolor()函数,只改变画笔颜色为蓝色;再执行color()函数,画笔颜色会改变为红色,填充颜色会变为绿色;最后执行fillcolor()函数,只改变填充颜色为黄色。故最终画笔颜色为红色,选B。
11、下列哪个软件或者编辑器不能打开Python3的程序?( )
A.VSCode
B.Python Sell-IDLE
C.Jupyter Notebook
D.官方的Scratch
正确答案:D
答案解析:官方的未经修改的Scratch是不能打开Python程序的,所以 选D
12、运行程序:print(not(5*2+6) > 8+3*3),它的输出结果是?( )
A.False
B.True
C.1
D.无法确定
正确答案:B
答案解析:首先,根据运算符优先级,首先计算括号内的表达式 5*2+6,得到结果 16。
接下来计算 8+3*3,得到结果 17。
然后,应用逻辑运算符 not,对表达式 16 > 17 的结果取反,即 not(16 > 17),而表达式 16 > 17 运算结果 False,所以 not(16 > 17) 的结果为 True。
最后,print() 函数输出结果为 True 。
13、在Python中,语句 print(a,b) 的功能是?( )
A.打印a, b
B.输出(a, b)
C.输出a, b
D.输出a, b的值
正确答案:D
答案解析:在Python中,print(a,b) 是用于
将变量 a 和 b 的值输出到标准输出设备(通常是控制台)的函数。
14、下列哪个表达式最终的结果为整数类型?( )
A.5.0 % 2
B.5.0 + 2
C.5 / 2
D.5 // 2
正确答案:D
答案解析:(1)在 Python中,取余运算符(%)的结果的数据类型与被除数的数据类型相同。所以,A 选项表达式 5.0 % 2 的结果是浮点数。
(2)B 选项表达式 5.0 + 2,其中一个操作数是浮点数类型,所以结果是浮点数类型。
(3)C 选项中的表达式 5 / 2,除法运算的结果是浮点数类型。
(4)D 选项中的表达式 5 // 2,使用双斜杠 // 进行整除运算,结果会被强制转换为整数类型。
15、想要安装Python,已知以下的操作步骤,请问哪些是必须的?( )
①查看电脑的操作系统
②找到对应python版本下载
③下载IDLE
④下载Turtle库
A.①②③④
B.①②
C.①②③
D.②③④
正确答案:B
答案解析:IDLE和turtle都是python自带不需要额外安装,所以选B
16、已知以下指令,想要绘制一个画笔粗细为5,颜色为红色,半径为50的圆,请问正确的排序方式是?( )
① turtle.pencolor("red")
② import turtle
③ turtle.pensize(5)
④ turtle.circle(50)
A.①②③④
B.①③②④
C.②③①④
D.③④①②
正确答案:C
答案解析:必须首先导入turtle库,所以选C
17、如图所示,一个填充颜色为黑色,边长为100的正方形里边嵌套了一个填充颜色为白色,边长为50的正方形,请问求图形中黑色部分的面积算式是?( )
A.(100*2)-(50*2)
B.(100*4)-(50*4)
C.(100**2)-(50**2)
D.100*50
正确答案:C
答案解析:大正方形面积100**2,小正方形面积是50**2,所以选C
18、如果想要获取用户输入的字符串,下列选项正确的是?( )
A.input("请输入一个字符串:")
B.int(input("请输入一个字符串:"))
C.float(input("请输入一个字符串:"))
D.eval(input("请输入一个字符串:"))
正确答案:A
答案解析:要获取用户输入的字符串,在使用input()函数获取输入值时,不需要进行类型转
换,直接使用input()即可。
19、在下列Python运算符中,下列哪个运算符具有最高的优先级?( )
A.+
B.>
C.*
D.-
正确答案:C
答案解析:Python中的运算符优先级规则如下:
(1)括号优先级:括号具有最高的优先级,可以使用括号来改变表达式的计算顺序。
(2)幂运算符(**):幂运算具有较高的优先级,从右到左进行计算。例如,2 ** 3 ** 2的计算结果是2 ** (3 ** 2),即2的27次方。
(3)乘法、除法和取模运算符(*、/、//、%):这些运算符具有相同的优先级,从左到右进行计算。
(4)加法和减法运算符(+、-):这些运算符具有相同的优先级,从左到右进行计算。
(5)比较运算符(<、>、<=、>=、==、!=):比较运算符具有较低的优先级,从左到右进行计算。
(6)逻辑运算符(and、or、not):逻辑运算符的优先级较低,从左到右进行计算。
故选C
20、如果a=145,b=90,c=a>b,那么c的值是?( )
A.False
B.90
C.145
D.True
正确答案:D
答案解析:根据题目给出的条件,我们有a = 145和b = 90。接下来,我们需要判断c的值。
条件"c = a > b"表示c的值等于判断a是否大于b的结果。如果a大于b,那么c的值为True。否则,c的值为False。
在这个情况下,a是145,b是90。显然,145大于90,因此c的值为True。
所以,c的值是True。
21、执行完下列代码后,坐标的位置是?( )
import turtle
turtle.penup()#抬起画笔
turtle.goto(-50,0)
turtle.pendown()
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.done()
A.(0,0)
B.(-50,0)
C.(50,-50)
D.(50,-100)
正确答案:D
答案解析:import turtle #导入Turtle模块。
turtle.penup() #抬起画笔,使其不再绘制轨迹。
turtle.goto(-50,0) #将画笔移动到坐标 (-50,0) 的位置。
turtle.pendown() #放下画笔,开始绘制轨迹。
turtle.forward(100) #向当前方向前进100个单位长度。
turtle.right(90) #右转90度。
turtle.forward(100) #向当前方向前进100个单位长度。
turtle.done() #完成绘制。
根据以上代码,将画布视为一个平面坐标系,则初始点位于 (-50,0) 处。接着,画笔向右移动100个单位长度,则新的位置为 (50,0)。然后,画笔右转90度,再向前移动100个单位长度,则新的位置为 (50,-100)。
22、下列导入Turtle库的方式正确的是?( )
A.import(turtrle)
B.Import turtle
C.import turtle
D.import turtrle as
正确答案:C
答案解析:使用import turtle语句导入库。
23、下列程序中,注释的使用有错误,但是不知道有几处是错误的,请找出来有几处错误?( )
01 a = float(input('输入第一条边长:')) #输入第一条边
02 b = float(input('输入第二条边长:')) #输入第二条边
03 c = float(input('输入第三条边长:')) #输入第三条边
04 """
05 求周长的一半
06 '''
07 p = (a+b+c)/2
A.1处错误
B.2处错误
C.3处错误
D.0处错误
正确答案:A
答案解析:多行注释需要成对使用三引号,单行注释不需要使用成对的引号,多行注释可以跨行,无论跨多少行都合适,三引号必须是同样的三引号,不能将三单引号与三双引号混合使用。
24、观察下列程序,程序运行后输出结果是?( )
A.7
B.7.0
C.z=7
D.z=7.0
正确答案:D
答案解析:程序代码相对比较简单,把x,y的值代入表达式中,将表达式按照运算优先级进行运算,再使用print()函数输出变量z的值,已知x=6,y=7,计算后结果为7.0,根据输出格式要求,故输出结果为z=7.0,选项D正确。
25、在海龟绘图中,turtle具有绝对方向,对应的命令为turtle.setheading(angel),若想要
让小海龟面向屏幕的下方,下列指令使用正确的是?( )
A.turtle.setheading(-180)
B.turtle.setheading(-90)
C.turtle.setheading(90)
D.turtle.setheading(0)
正确答案:B
答案解析:在海龟绘图中,对于turtle的绝对方向划分中,屏幕下方为270度或-90度,故正确答案选择B选项。
二、判断题
26、小海龟初始在坐标 (0,0) 的位置,方向朝左,在执行 turtle.goto(100,0) 后,
小海龟会往右移动100,并且方向朝右。( )
对
错
正确答案:错
答案解析:本题考察的是 turtle 的 goto 语句,注意 goto 语句并不会改变海龟的朝向。并且,本题目中,海龟的初始方向也不是朝左,而是朝右。
27、circle(100,steps=4),指的是绘制一个边长是100的正方形。( )
对
错
正确答案:错
答案解析:100是圆半径,而不是边长,同时绘制的是菱形,不是正方形。所以错
28、Python语言简洁、易懂、库文件丰富,可以用在很多应用领域。( )
对
错
正确答案:对
答案解析:python语句简洁、易懂、库文件丰富,可以用在很多应用领域,尤其是人工智能领域。
29、变量名的大小写是没有区别的,Name与name表示的是同一个变量。( )
对
错
正确答案:错
答案解析:变量的名称是有严格的格式的,区分大小写,且变量名由英文字母、下划线_或数字组成,并且第一个字符必须是英文字母或下划线,并不能是python中的保留字。
30、执行下列语句,输入"学校",程序最终输出的text结果是"小明同学在学校" 。( )
text = input("小明同学在")
print(text)
对
错
正确答案:错
答案解析:使用input()函数获取输入时,只保存输入的内容,不保存提示语中的内容,故输出变量text时,结果为"学校",本题说法错误。
31、在IDLE的交互模式启动后,可以直接编写程序并运行,无需切换到脚本模式。( )
对
错
正确答案:对
答案解析:启动交互模式后,会显示提示符:>>>然后可以直接在交互模式下编写程
序并运行,本题中说法正确
32、Python中的字符串,整型,浮点型三种数据类型之间完全都可以互相转化。( )
对
错
正确答案:错
答案解析:字符串有些不能转化为其他两种,所以错误
33、在Python程序中,双引号和三引号都是引号,没有用法区别,可以随意替换。( )
对
错
正确答案:错
答案解析:三引号可以跨行使用,双引号不能。故错误
34、print('Hello, World!")代码段会引发报错。( )
对
错
正确答案:对
答案解析:码中的字符串使用了不匹配的引号,导致语法错误。
要么使用双引号表示字符串,要么使用单引号表示字符串。
35、在Python语言中,变量的定义和赋值是同时进行的,不需要在赋值前定义变量 。( )
对
错
正确答案:对
答案解析:在Python语言中,变量的定义和赋值是同时进行的,不需要分开使用两条语句
三、编程题
36、编写一个程序,其功能为:从键盘输入任意三位整数,计算这个整数的百位数字、十位数字、个位数字之和,以及它们的平均值,并输出计算结果。
样例如下:
输入:123
输出:6 2.0
友情提示:
由于考试平台暂不支持eval()命令,同学们可以选用其他命令;当然如果您使用了,只要程序是正确的,我们阅卷时依然按照正常处理。
正确答案:参考程序:
num = input("请输入一个三位整数:")
hundreds = int(num) // 100
tens = int(num) % 100 // 10
ones = int(num) % 10
sum = hundreds + tens + ones
avg = sum / 3
print(sum, avg)
答案解析:试题解析:
评分标准:
(1)有输入函数;(1分)
(2)有数据类型转换语句;(1分)
(3)数据类型转换全部成功;(1分)
(4)应用数位分割算法,正确获取百位、十位、个位的数字;(3分,每个1分)
(5)正确计算百位、十位、个位上的数字之和;(1分)
(6)正确计算平均值;(1分)
(7)正确调用 print() 函数,输出结果。(2分)
37、十一国庆节期间,爸爸带着小明到北京天安门广场观看升旗仪式。在庄严的国歌声中,五星红旗冉冉升起,小明看到国旗上的五个五角星,想要用Python画一个红五角星,你可以帮帮他吗?(提示:五角星的外角为144度)
要求:
(1)五角星为镂空五角星,如图所示;
(2)五角星的每条边的长度为200;
(3)画笔颜色为红色;
(4)画笔粗细为5;
(5)最后将画笔隐藏。
正确答案:标准答案:
参考程序:
import turtle
t=turtle.Turtle()
t.pensize(5)
t.pencolor("red")
t.forward(200)
t.right(144)
t.forward(200)
t.right(144)
t.forward(200)
t.right(144)
t.forward(200)
t.right(144)
t.forward(200)
t.hideturtle()
答案解析:评分标准:
(1)导入库文件正确;(2分)
(2)有前进或者绘制线条的命令;(2分)
(3)转弯命令及角度正确;(每个1分,共计4分)
(4)有画笔颜色工具;(2分)
(5)画笔粗细正确;(2分)
(6)边长符合题意,为200;(2分)
(7)画笔最后隐藏成功;(2分)
(8)五角星工整,符合题目要求。(4分)