试卷 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 题    单选题

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

A.

10.0 是一个浮点数

B.

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

C.

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

D.

布尔类型的值只有 True 和 False

第 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 题    单选题

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

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.

[]

第 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

第 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 题    问答题

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

【输入格式】

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

【输出格式】

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

【输入样例 1】

mick

【输出样例 1】

Yes

【输入样例 2】

allen

【输出样例 2】

No

第 11 题    问答题

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

【输入示例 1】

7

【输出示例 1】

111

【输入示例 2】

10

【输出示例 2】

1010

第 12 题    问答题

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

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

【输入示例 1】

19

【输出示例 1】

Yes

【输入示例 2】

2

【输出示例 2】

No

第 13 题    问答题

小 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

第 14 题    问答题

任何一个大于 7 的奇数,都可以表示成 3 个奇质数之和,这就是著名的“奇数哥德巴赫猜想”。现输入一个正整数,请编程验证哥德巴赫猜想是否成立。

如果成立,按照从小到大的顺序输出 3 个质数,中间用空格隔开。有多组答案时,按照第一个数字从小到大的顺序分行输出。

如果不成立或输入的正整数不符合条件(要求是大于 7 的奇数),直接输出 No。

【输入示例 1】

11

【输出示例 1】

3 3 5

【输入示例 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
时间:不限时
QQ
公众号
客服
扫一扫