2022 年第 20 届 NOC Python 赛项决赛
小高组
选择题
第 1题
以下选项的关键字中,不 属 于分支结构的是?
A. elif
B. if
C. else
D. in
第 2题
关于 Python 的数据类型,下列选项描述错误的是?
A. 10.0 是一个浮点数
B. 字符串可以保存在变量中,也可以单独存在
C. int('1.0') 返回的结果是整数
D. 布尔类型的值只有 True 和 False
第 3题
已知字符串 s = 'hello python'( 注意中间有一个空格 ),想要截取其中的 'python', 选
项中不能实现的是?
A. s[6:]
B. s[6: 11]
C. s[ -6: 12]
D. s[ -6:]
第 4题
下列选项的输出结果为 True 的是?
A. 2>0 and 3<0 or 3<0
B. 2>0 or 3<0 and 3<0
C. not ('1' == 1) and 1 != 1.0 or '2' == '2.0'
D. ('test' == 'Test') or 1 != 1.0 and 2 == 2.0
第 5题
下列代码执行完毕后,输出的结果是?
nums = [3, 1, 2, 4, 0]
nums.insert(1, 0)
nums.pop()
nums.append(1)
nums.remove(2)
print(nums)
A. [0, 3, 1, 4, 1]
B. [0, 1, 2, 4, 1]
C. [3, 0, 1, 4, 1]
D. [3, 0, 2, 4, 1]
第 6题
以下选项能正确随机一个 6~8 范围内整数的是?
A. random.randint(6, 9)
B. randint.random(6, 9)
C. random.randint(6, 8)
D. random.choice(6, 8)
第 7题
请问执行完以下代码后,海龟画布上画出的线段长度为多少?
import turtle as t
t.speed(0)
t.color("red")
t.pensize(3)
t.shape("circle")
t.forward(100)
t.forward( -10)
t.forward(20)
t.backward(20)
t.backward( -10)
t.left(90)
t.home()
t.right(90)
A. 120
B. 110
C. 100
D. 90
第 8题
请问执行完以下代码后,输出结果为?
tot = 0
for n in range(3, 66 + 1):
if n % 2 == 0:
continue
if n % 10 == 9:
break
tot += n
print(tot)
A. 18
B. 33
C. 2208
D. 15
第 9题
请问执行完以下代码后,输出结果为?
def is_lucky(num):
if num % 6 == 0:
return True
while num > 0:
if num % 10 == 6 or num % 10 == 8:
return True
num /= 10
return False
ls = [13, 666, 888, 32, 332, 987, 555, 345, 876]
cnt = 0
for n in ls:
if is_lucky(n):
cnt += 1
print(cnt)
A. 3
B. 4
C. 5
D. 6
第 10 题
请问执行完以下代码后,输出结果为?
ls = [1, 2, 3, 4, 5, 1]
n = len(ls)
for i in range(n):
for j in range(i + 1, n):
if ls[j] > ls[i]:
tmp = ls[i]
ls[i] = ls[j]
ls[j] = tmp
print(ls)
A. [1, 2, 3, 4, 5, 1]
B. [1, 1, 2, 3, 4, 5]
C. [5, 4, 3, 2, 1, 1]
D. 报错,无输出
程序题
1、给定列表求最值
ls = [ -1, -3, -345, -22, -2, -999]
# 设置最大值计数器 maxn 初值
maxn = ______
for n in ______:
# 满足什么条件就更新 maxn 呢?
if ______:
maxn = n
# 输出最大值
print(maxn)
2、列表函数
有两个列表 A 和 B,使用列表 C 来获取两个列表中共有的元素。
例如: A = [1, 'a', 4, 90] B = ['a', 9, 'j' , 1] ,则 C = [1, 'a']
A = [1, 'a', 4, 90]
B = ['a', 9, 'j', 1]
C = []
for i in range(0, len(A)):
for j in range(_______):
if A[i] == ___:
________
print(C)
3、吉利又霸气的英文名
每个字母都有自己的积分:它在字母表是第几个它的积分就是几,比如: a的积分
是 1, z的积分是 26 。一个字符串的积分为所有字符的积分之和。我们知道中国人特
别喜欢 6和 9,觉得 6是一个幸运数字,而 9则是一个霸气的数字,毕竟九五 至 尊嘛
~若一个字符串的积分既是 6的倍数,又是 9的倍数,则此字符串为吉利又霸气的字
符串。现在给你一个英文名,请你来判断这个英文名是不是吉利又霸气,如果是的,
请输出 'Yes' ,否则,请输出 'No' 。
【输入格式】
一行,一个字符串,表示要判断的英文名,均为小写字母。
【输出格式 】
一行,表示判断结果,如果输入的英文名是吉利且霸气的,则输出 'Yes' ,否则,输出
'No' 。
【输入样例 1】
mick
【输出样例 1】
Yes
【输入样例 2】
allen
【输出样例 2】
No
4、掷骰子
班级每个周五下课都会进行一次大扫除,阿明和阿强是一组,这次他们的任务是擦玻
璃和打扫厕所,他们都不愿意去打扫厕所,于是聪明的阿明决定用一个掷骰子的游戏
来决定,输的人就去打扫厕所。
游戏规则为:阿明和阿强分别掷一个骰子,每个
2022NOC Python决赛 小学高年级组,2022NOC大赛Python编程决赛 小学高年级组真题