2023年全国青少年信息素养大赛(python)初赛真题
选择题(每题5分,共20题,满分100分)
1、关于列表的索引,下列说法正确的是?
A.列表的索引从0开始
B.列表的索引从1开始
C.列表中可能存在两个元素的索引一致
D.列表中索引的最大值为999
参考答案:A
参考解析:列表的索引从0开始,且不可能存在两个元素的索引一致,一个索引确定一个元素,是一 一对应的关系,列表中的索引的最大值要根据元素的数量来确定,如果有n个元素,那么索引的最大值为n-1。
2、质数是指只能被1和自身整除的正整数。例如,2、3、5、7、11、13等都是质数,而4、6、8、9、10等都不是质数,下方的代码可以判断数字47是否为素数,则下划线处应填什么代码?
num = 47
for i in range(2, num):
if _________:
print(num, "不是质数")
else:
print(num, "是质数")
A.num % 2 == 0
B.num % i == 0
C.num % i != 0
D.num % 2 != 0 and num % 3 != 0
参考答案:B
参考解析:根据题意,如果要判断x是否为质数,那就需要计算一下2~x-1是否有数能够把x整除,如果都没有,那么x是质数,但凡2~x-1中有一个数能把x给整除掉,那么x不是质数。
for-else的作用为:for循环可以与else搭配使用,当for循环正常结束时,else也会执行,而当for循环未正常结束,例如使用break提前退出时,则不会执行。
提示:这道题我感觉有问题,输入4的时候,会输出4不是质数和4是质数。
3、运行下方代码,输入 52 ,输出结果为?
height = int(input())
if height > 100:
print("超高层建筑")
elif height > 50:
print("高层建筑")
else:
print("中层建筑")
A.超高层建筑
B.高层建筑
C.中层建筑
D.52
参考答案:B
参考解析:本题考察程序设计结构之多分支结构,if-elif-else为多选一结构,因为52>50,因此会输出"高层建筑"。
4、已知程序已导入了随机库和海龟库,则关于下方代码的描述正确的是?
import turtle
import random
t = turtle.Turtle()
a = random.randint(90, 110)
t.forward(a)
A.执行代码,海龟会后退
B.执行代码,海龟可能前进了120
C.执行代码,海龟前进的距离不可能超过110
D.执行代码,海龟可能前进了50
参考答案:C
参考解析:在Python的turtle图形库中,turtle的默认方向是向右的(也就是x轴的正方向),randint函数的功能是生成90~110之间的一个整数【包括90和110】,因此本道题选择C选项
5、下列关于列表list1 = [True, 6, "6", 4+8]的描述正确的是?
A.列表list1定义有误,列表外侧应用圆括号括起来
B.列表内四个元素的数据类型均不相同
C.列表内第二个元素和第四个元素的数据类型一致
D.列表内第二个元素和第三个元素的数据类型一致
参考答案:C
参考解析:在Python中,列表是由多个值组成的集合,其中的每个值可以是任何类型(数字,字符串,另一个列表等)。列表是用方括号[ ]定义的,A选项错误,列表内第一个元素为bool布尔类型,可以使用list1 = [True,6,"6",4+8];print(type(list1[0]))代码检测数据类型,第二个元素的类型为int整型,第三个元素的类型为str字符串类型,第四个元素的类型为4+8=12,为int整数类型。因此列表内第二个元素与第四个元素类型一致,因此选择C选项。
6、下列不是Python中的关键字的是?
A.and
B.for
C.if
D.range
参考答案:D
参考解析:and代表逻辑与,for代表循环,if代表如果,这三个都是python中的关键字,而range是python中的函数,它用于生成一系列连续的整数。
7、下列代码的执行结果是?
a = 1
b = 2
c = 3
c = c + a * b
print(c)
A.3
B.5
C.7
D.9
参考答案:B
参考解析:*的优先级比+高,因此先计算a*b的值,a*b=1*2=2,然后再+3,最终答案为5
8、for i in range(1,7)中i的取值范围是?
A.1到7
B.1到6
C.0到7
D.0到6
参考答案:B
参考解析:python range() 函数可创建一个整数列表,一般用在 for 循环中。用法为:
- range(start, stop[, step])
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0,5)
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是[0, 1, 2, 3, 4],没有5
- step:步长,默认为1。例如:range(0,5) 等价于 range(0,5,1)
range(1,7),默认步长为1,生成的整数列表不包含7,范围为1~6,因此选择B选项。
9、下列代码的执行结果是?
z = "7"
x = z + z
print(x)
z = int(z)
x = z + z
print(x)
A.77 换行 77
B.14 换行 14
C.77 换行 14
D.14 换行 77
参考答案:C
参考解析:在python中+可以做加法运算,也可以用来做字符串拼接,z="7",代表z是一个字符串类型的数据,那么x=z+z,这里的+号就代表字符串的拼接,于是x的值为"77",z=int(z)代表将z的值从字符串的7强制转换为整型的7,于是z的值为整数7,然后执行x=z+z语句,此时这里的+代表加法运算,因此x=7+7=14,所有答案选C选项。
10、下方代码的运行结果为?
num = [3, 6, 9, 12]
if num[3] == 12:
print(num[0] + num[1])
else:
print(num[2] + num[3])
A.9
B.12
C.18
D.21
参考答案:A
参考解析:列表的索引从0开始,num[3]的值为12,if判断条件成立,因此执行if分支中的代码,计算num[0]+num[1]的值,num[0]的值为3,num[1]的值为6,因此3+6=9,所以答案选择A选项。
11、关于Python中的注释,下列说法正确的是?
A.注释用于改变代码的执行顺序
B.注释的符号是#
C.#print(1+2)的执行结果为3
D.一行中,注释符号只能有一个
参考答案:B
参考解析:#是python中的单行注释,注释的代码不会改变程序是执行顺序,计算机也不会执行所注释的代码,A选项错误,C选项错误,在一行中可以写多个#,D选项错误,因此本题选择B选项。
12、下列代码的运行结果为?
movie = ["雨人", "大鱼", "教父"]
movie[2] = "洛奇"
print(movie[2])
A.movie[2]
B.洛奇
C.教父
D.大鱼
参考答案:B
参考解析:movie是一个列表,列表的下标从0开始,movie[2]="洛奇"的意思为将movie[2]中的教父修改为洛奇,因此本题选择B选项。
13、运行下方代码,输入 1 ,输出结果为?
a = input()
print(a + a + a)
A.a + a + a
B.111
C.3
D.2 + 1
参考答案:B
参考解析:input函数默认情况下输入的数据为字符串类型,输入为1,也就意味着输入的是字符串1,那么a+a+a的功能是将字符串1拼接在一起,于是就会得到111,因此本题选择B。
14、运行下列程序后,输出的结果为?
season = ["春", "夏", "秋", "冬"]
season.remove(season[0])
season.remove(season[0])
print(season)
A. ['夏', '冬']
B. ['春', '冬']
C. ['秋', '冬']
D. ['春', '夏']
参考答案:C
参考解析:season是一个列表,remove为列表中的内置函数,用来移除列表中的数据元素,当执行第一句season.remove(season[0])的时候,就是把"春"这个元素从列表中移除,此时列表中的数据为season=["夏","秋","冬"],紧接着又继续相同的代码,此时season中索引为0的元素为"夏",将其移除,最后列表中剩下"秋"、"冬"两个元素,因此本题选择C选项。
15、根据Python变量的命名规则,下列不可以作为变量名的是?
A.a6b
B.6ab
C.ab6
D.ba6
参考答案:B
参考解析:在Python中,变量的命名遵循以下规则:
变量名只能包含字母、数字和下划线(_)。
变量名不能以数字开头。
不能使用Python内置关键字作为变量名,如while、for、if等
B选项以数字开头,错误,因此本题选择B选项。
16、下列选项不能输出三行 你好 的是?
A.代码如下:
print("你好")
print("你好")
print("你好")
B.代码如下:
for i in range(3):
print("你好")
C.代码如下:
print("你好你好你好")
D.代码如下:
n = 1
while True:
print("你好")
n = n + 1
if n > 3:
break
参考答案:C
参考解析:C选项输出的结果为一行,内容为:"你好你好你好",因此答案选择C选项。
17、已知程序的输出结果为12,则下划线处应填什么?
num = 3
for i in range(_____):
num = num + 3
print(num)
A.2
B.3
C.4
D. 5
参考答案:B
参考解析:num变量的初始值为3,要想其结果变为12,那么需要再加3个3,也就是意味着,for循环语句要循环三次,range函数的使用方法参考第8题的解析,range默认从0开始,当参数填3的时候,循环3次,分别为0、1、2,因此本题选择B选项。
18、谁被誉为计算机之父?
A.艾伦图灵
B.冯诺依曼
C.约翰文森特
D.格蕾丝霍波
参考答案:B
参考解析:约翰·冯·诺依曼被誉为计算机之父,图灵被誉为计算机科学之父和人工智能之父,约翰文森特被誉为电子计算机之父,格蕾丝霍波被誉为计算机软件之母,因此本题选择B选项
19、CPU在执行程序时,程序需要加载到哪里?
A.存储单元
B.GPU
C.内存
D.控制器
参考答案:C
参考解析:任何程序都必须加载到“内存”中才能被cpu执行。内存用于暂时存放cpu中的运算数据,计算机中所有程序的运行都在内存中进行;只要计算机开始运行,操作系统就会把需要运算的数据从内存调到cpu中进行运算,当运算完成,cpu将结果传送出来。本题选C选项
20、下列哪个选项可以正确导入海龟库?
A.from turtle
B.from time import *
C.from turtle import *
D.from random import *
参考答案:C
参考解析:在Python中,from … import语句用于从模块中导入指定的函数、类或变量。这种导入方式可以让我们只导入需要的部分,而不是整个模块,*代表导入所有内容,A选项,from不可以单独用,B是导入time模块中的所有内容,D选项是导入random随机模块中的所有内容。因此本题选择C选项。
更多推荐
所有评论(0)