2022 年第 20 届 NOC Python 赛项决赛
初中 组
选择题
1. 计算机中,一个汉字需占用 2 个字节来记录,请问 2 个字节等于多少个二进制位?
A. 4
B. 8
C. 1 6
D. 3 2
答案: C
2. 电子邮件地址中,作为区分用户名与电脑所在网络位置的符号是?
A. !
B. @
C. #
D. 空格
答案: B
3. 关于 Python 的数据类型,下列选项描述错误的是?
A. 1 0.0 是一个浮点数
B. 字符串可以保存在变量中,也可以单独存在
C. int ( '1.0') 返回的结果是整数
D. 布尔类型的值只有 True 和 F alse
答案: C
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
答案: B
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]
答案: C
6. 请问执行完以下代码后,输出结果为?
ls = [9, 8, 7, [6, 5, [4, 3, 2], 1], 0]
p rint(ls[ - 2][ - 2][1: - 1])
A. 3
B. [ 3]
C. [ 3, 2]
D. [ ]
答案: B
7. 请问执行完以下代码后,输出结果为?
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
答案: D
8. 请问执行完以下代码后,输出结果为?
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
答案: A
程序题
1.
给定一个 5 * 5 的二维列表 ls :
ls = [[1, 2, 2, 1, 2],
[5, 6, 7, 8, 3],
[9, 3, 0, 5, 3],
[7, 2, 1, 4, 6],
[3, 0, 8, 2, 5]]
输入两个正整数 m 、 n ( 1<=m<=5 , 1<= n <=5 ),将 第 n 行和第 m 行交换,输出交换后的
列表 。
【输入示例】
5
4
【输出示例】
[[1, 2, 2, 1, 2], [5, 6, 7, 8, 3], [9, 3, 0, 5, 3], [3, 0, 8, 2, 5], [7, 2, 1, 4, 6]]
参考代码:
m = int(input(" 请输入 m : "))
n = int(input(" 请输入 n : "))
ls = [[1, 2, 2, 1, 2],
[5, 6, 7, 8, 3],
[9, 3, 0, 5, 3],
[7, 2, 1, 4, 6],
[3, 0, 8, 2, 5]]
ls[m - 1], ls[n - 1] = ls[n - 1], ls[m - 1]
print(ls)
2.
每个字母都有自己的积分:它在字母表是第几个它的积分就是几,比如: a 的积分是
1 , z 的积分是 26 。一个字符串的积分为所有字符的积分之和。我们知道中国人觉得特别喜
欢 6 和 9 ,觉得 6 是一个幸运数字,而 9 则是一个霸气的数字,毕竟九五 至 尊嘛 ~ 若一个字
符串的积分既是 6 的倍数,又是 9 的倍数,则此字符串则为吉利又霸气 的 字符串。现在给
你一个英文名,请你来判断这个英文名是不是吉利又霸气,如果是的,请输出 'Yes ',否
则,请输出 'No '。
【输入格式】
一行,一个字符串,表示要判断的英文名,均为小写字母。
【输出格式】
一行,表示判断结果,如果输入的英文名是吉利且霸气的,则输出 'Yes ',否则,输出
'No '。
【 输入样例 1 】
mick
【输出样例 1 】
Yes
【输入样例 2 】
allen
【输出样例 2 】
No
参考代码:
letters = '0abcdefghijklmnopqrstuvwxyz'
name = input()
tot = 0
for l in name:
tot += letters.find(l)
if tot % 6 == 0 and tot % 9 == 0:
print('Yes')
else:
print('No')
3.
编写一段程序,键盘输入任意的十进制正整数,程序输出与其对应的二进制数。
【输入示例 1 】
7
【输出示例 1 】
111
【输入示例 2 】
10
【输出示例 2 】
1010
参考代码:
n = int(input(" 请输入 一个十进制数 : "))
result = []
while n > 0:
result.append(n % 2)
n = n // 2
result.reverse()
for i in result:
print(i, end = '')
4.
使用 Python 编写一个算法来确定一个数字是否 “ 快乐 ” 。
快乐的数字按照如下方式确定:从一个正整数
NOC决赛Python初中组(附答案),NOC大赛Python编程初中组决赛真题附答案