试卷 2022年第20届NOC Python赛项决赛 (初中组)真题试卷
2022年第20届NOC Python赛项决赛 (初中组)真题试卷
单选题
第 1 题    单选题

计算机中,一个汉字需占用 2 个字节来记录,请问 2 个字节等于多少个二进制位?

A.

4

B.

8

C.

16

D.

32

第 2 题    单选题

电子邮件地址中,作为区分用户名与电脑所在网络位置的符号是?

A.


B.

@

C.

#

D.

空格

第 3 题    单选题

下列代码执行完毕后,输出的结果是?

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]

第 4 题    单选题

下列选项的输出结果为 True 的是?

A.

2>0 and 3<0 or 3<0

B.

2>0 or 3<0 and 3<0

C.

not('1'==1)and1!=1.0or'2'=='2.0'

D.

('test' == 'Test') or 1 != 1.0 and 2 == 2.0

第 5 题    单选题

关于 Python 的数据类型,下列选项描述错误的是?

A.

10.0 是一个浮点数

B.

字符串可以保存在变量中,也可以单独存在

C.

int('1.0')返回的结果是整数

D.

布尔类型的值只有 True 和 False

第 6 题    单选题

请问执行完以下代码后,输出结果为?

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

第 7 题    单选题

请问执行完以下代码后,输出结果为? 

ls = [9, 8, 7, [6, 5, [4, 3, 2], 1], 0] 

print(ls[-2][-2][1: -1])


A.

3

B.

[3]

C.

[3, 2]

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

程序题
第 9 题    问答题

给定一个 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]]

第 10 题    问答题

小 Y 特别喜欢环湖赛跑,因为这样空气非常好,跑起来特别有动力。正值一年一度的环湖跑王者争霸赛开始了,小 Y 就立刻报名了。比赛主办方在周长为 8000 米的湖周围一 圈设置了 n 个夺分点,逆时针编号为 1~n,每个夺分点的积分不一定相同,每个积分点的 具体位置和积分数量由主办方在比赛开始前公布。比赛规定:参赛者可以选择从赛道的任 意一点出发,只能逆时针跑,需要在 5 分钟内尽可能多拿分,只要到达积分点即可得到该 积分点的积分,不同人到达同一积分点均能得到积分,互不影响。经过小 Y 自己赛前的反 复测试发现,平均下来,自己比赛时的速度为 3.5 米每秒。请问小 Y 以这个速度最多能拿 多少分呢?最多能拿的分和最少能拿的分差多少呢?

输入格式】
2n + 1 行,第一行,一个整数 n,表示积分点的个数。接下来 n 行,每行一个数,表示积分点的距离,这个距离是相对于 1 号积分点的距离。距 离按照积分点的编号从 1 到 n 进行输入,由小到大,保证一圈的距离足够大,无法跑完一 整圈;再接下来的 n 行,每行一个数,表示每个积分点的积分,也是按照积分点的编号顺序进行 输入,保证积分总和不超过 1000000000。
【输出格式】
两行,第一行为小 Y 能得到的最多积分;第二行为小 Y 能拿到最多积分与最少积分的差值。
【输入样例】
5
0
123
555
6111
7521
23
54
21
76
32
【输出样例】
130
109

第 11 题    问答题

使用 Python 编写一个算定一个数字是否“快乐”。 快乐的数字按照如下方式确定:一个正整数开始,用每位数的平方之和数,并重复这过程直到最后数字要么收敛等于 1 等于 1,要么无休止循环去且 最终不会收敛等于 1。能够最终收敛等于 1 的数就是快乐的数字。

例如,数字 19 就是一个快乐的数字,计算过程如下:

12+92=82

82+22=68

62+82=100

12+02+02=1(最终收敛为1)

【输入示例 1】 

19
【输出示例 1】 

Yes

【输入示例 2】 

2
【输出示例 2】 

No

第 12 题    问答题

编写一段程序,键盘输入任意的十进制正整数,程序输出与其对应的二进制数。 

【输入示例 1】
7
【输出示例 1】
111
【输入示例 2】
10
【输出示例 2】
1010

第 13 题    问答题

每个字母都有自己的积分:它在字母表是第几个它的积分就是几,比如:a 的积分是1,z 的积分是 26。一个字符串的积分为所有字符的积分之和。我们知道中国人觉得特别喜 欢 6 和 9,觉得 6 是一个幸运数字,而 9 则是一个霸气的数字,毕竟九五至尊嘛~若一个字 符串的积分既是 6 的倍数,是 9 的倍数,则字符串则为吉利又霸气的字符串。在给 一个英文名,请判断这英文名是吉利又霸气,如果是的,请输出'Yes',否 则,请输出'No'。

【输入格】 

一行,一个字符串,表示要判断英文名,小写字母。 

【输出格

一行,表示判断结果,如果输入的英文名是吉利且霸气的,则输出'Yes',则,输出 'No'。
【输入
例 1】
mick

【输出例 1】

 Yes
【输入
例 2】

 allen 

【输出例 2】

No

第 14 题    问答题

任何一个于 7 的数,都可以表示成 3 个奇质数之和,就是名的“奇哥德巴赫猜想”输入一个正整数,请编程验证哥德巴赫猜想否成立。 如果成立按照从小到大顺序输出 3 个数,中用空格隔开。有多答案按照第一个数字从小到大顺序分行输出。 如果不成立或输入的正整数合条件(要求于 7 的数),直接输出 No。

【输入示例 1】 

11
【输出示例 1】 

335 

【输入示例 2】 

27

【输出示例 2】 

3 5 19
3 7 17
3 11 13

5 5 17
5 11 11
7 7 13 

【输入示例 3】 

6
【输出示例 3】

No

第 15 题    问答题

用数字 1-9,组成一个位数减三位数位数的子,并且要求每个数字不能重复, ,可以使形如 ABC - DEF = GHI 的等式成立。如 981 - 746 = 235 就是一组满足条件的三 位数,981 - 235 = 746 也是一组新满足条件的位数。一有多少组满足条件的位 数?输出的结果。

【输出示例】
100 (100 
并非最后答案)

答题卡
单选题
1 2 3 4 5 6 7 8
程序题
题目总数:15
总分数:100
时间:120分钟