试卷 2022年第20届NOC大赛_Python软件创意编程赛项_选拔赛_初中组真题(忽略分值)
2022年第20届NOC大赛_Python软件创意编程赛项_选拔赛_初中组真题(忽略分值)
一、选择题
第 1 题    单选题

下列选项中,不能作为计算机的输入设备的是?( )

A.

键盘

B.

鼠标

C.

普通显示器

D.

摄像头

第 2 题    单选题

下述选项中,不可以作为变量名的是?

A.

b1

B.

nameA

C.

message_1

D.

2022NOC

第 3 题    单选题

已知 a = 10,b = 20,c = 30,以下代码运行后,变量 a 的值为 30 的是:

A.

a, b = b, a 

B.

a, c = b, a

C.

a, b = b, c

D.

a, c = c, a+b

第 4 题    单选题

想从字符串 s = '我是一个字符串',打印出'字符串',可用以下哪种方式?

A.

print(s[4:])

B.

print(s[4:6])

C.

print(s[3:6])

D.

print(s[5:])

第 5 题    单选题

以下是不可变类型的是?

A.

集合

B.

元组

C.

字典

D.

列表

第 6 题    单选题

想要输出 0-100 的数字,横线处应填写的是?

for n in range(____):

 print(n)

A.

99

B.

100

C.

101 

D.

102

第 7 题    单选题

请看下列代码,若想要输出 yes,可以输入的内容是?

s = input('请输入:')

if s == s[::-1]:

 print('yes')

else:

 print('no')

A.

level

B.

yes

C.

no

D.

hahaha

第 8 题    单选题

程序运行后,输出['草莓', '车厘子', '芒果', '榴莲'],则横线上的代码是?

fruit1 = ['芒果','车厘子','草莓']

fruit2 = ['榴莲']

for f in fruit1:

 ______________

print(fruit2)

A.

fruit2.pop()

B.

fruit1.append(f)

C.

fruit2.append(f)

D.

fruit2.insert(0,f)

第 9 题    单选题

想要生成 0 到 9 的随机小数,选项中正确的是?

A.

random.uniform(0,10)

B.

random.uniform(0,9)

C.

randint.uniform(0,9)

D.

random.random(0,9)

第 10 题    单选题

下列程序运行后,显示的图形形状是?

import turtle

for i in range(5):

 turtle.forward(50)

 turtle.left(90)

A.

正方形

B.

三角形

C.

正五边形

D.

正六边形

第 11 题    单选题

请看下列代码:

a = int(input('请输入 a:'))

b = int(input('请输入 b:'))

if b == 50 or a == 30 and a < 50:

 print('Yes')

else:

 print('No')

当输入 60,50 时,最终运行结果是?

A.

没有效果

B.

No

C.

Yes

D.

报错

第 12 题    单选题

请看下列代码,运行后的输出结果是?

a = [x for x in range(9) if x % 2 == 1]

print(a) 

A.

[0, 2, 4, 6, 8] 

B.

[1, 3, 5, 7, 9] 

C.

[1, 3, 5, 7] 

D.

程序运行报错

第 13 题    单选题

阅读以下程序,请问程序运行后输入 20,会输出什么结果?

num = int(input('请输入:'))

if num % 2 == 1:

 print(num * 2)

else:

 print(num / 2)

A.

40.0

B.

10

C.

40

D.

10.0

第 14 题    单选题

现在有一段程序如下,请问程序运行的结果是什么?

def fun(level):

 if level < 1:

 raise Exception('Invalid level!')

 print(3)

try:

 fun(0)

except Exception as err:

 print(1)

else:

 print(2)

A.

0

B.

1

C.

2

D.

3

第 15 题    单选题

阅读以下程序,程序输出的结果为?

start = 1900

end = 1920

cnt = 0

for num in range(start, end):

 if num % 4 == 0 and num % 100 != 0 or num % 400 == 0:

 cnt += 1

print(cnt)

A.

3

B.

4

C.

5

D.

报错

第 16 题    单选题

阅读以下程序,程序输出的结果为?

numbers = [12, 3, 1, 5, 2, 4, 7, 9, 11, 100]

index = 0

newList = []

while index < len(numbers):

 if numbers[index] % 2 == 0:

 newList.append(numbers[index])

 index += 1

print(newList)

A.

[12, 2, 4, 100]

B.

[0, 4, 5, 9]

C.

[3, 1, 5, 7, 9, 11]

D.

[12, 2, 4]

第 17 题    单选题

已知代码如下:

class Plane():

 def __init__(self, a, b, c):

 self.a = a

 self.b = b

 self.c = c

planes = [Plane('战斗机', '黑色', '小型'),

 Plane('客机', '白色', '中型'),

 Plane('航母', '灰色', '超大型')]

for plane in planes:

 print(plane.b, end=' ')

代码运行后控制台的效果是:()

A.

黑色 白色 灰色

B.

战斗机 客机 航母

C.

小型 中型 超大型

D.

客机 白色 中型

第 18 题    单选题

请看下列代码:

a = 3

b = 0

def change():

 global a, b

 b = b + a

 print(b, end = ' ')

while a > 0:

 change()

 a = a - 1

运行后输出结果正确的是()

A.

3 5

B.

3 5 6

C.

3 5 6 6

D.

3 4 5

第 19 题    单选题

请看下列代码: 

x = str(input('请输入购买数量:')) 

if x < 5: 

 print('不打折') 

else if x < 10: 

 print('打 8 折') 

elif x < 15: 

 print('打 7 折') 

else: 

print('打 5 折') 

代码中包含几处错误?( )

A.

1

B.

2

C.

3

D.

4

第 20 题    单选题

请看下列程序,运行后的结果是?

import numpy as np

def numpy_sum():

 a = np.array([1, 2, 3])

 b = np.array([4, 5, 6])

 c = a ** 1 + b ** 2

 return c

print(numpy_sum())

A.

[17 27 39]

B.

[5 7 9]

C.

[9 12 15]

D.

[2 4 6]

二、编程题
第 21 题    问答题

“逢 4 必过”:一群小朋友们围坐在一起,玩“逢 4 必过”游戏,游戏规则是:第 1 个小朋友从 1 开始报数,其他人接力报数;如果遇到尾数是 4 就不报数,而报“过”;谁报错了数,就要接受惩罚表演才艺。

我们要编写程序,模拟 15 人报数的情况。

提示:

print('输出内容', end=' '),可以实现不换行输出,输出内容之间空格间隔

例如:

print('输出内容 1', end=' ')

print('输出内容 2', end=' ')

运行效果:输出内容 1 输出内容 2

【输入格式】

【输出格式】

共 1 行,模拟 15 人报数的情况

【输入样例】

【输出样例】

1 2 3 过 5 6 7 8 9 10 11 12 13 过 15

【预设代码】

for i in ___________:

if ___________:

print('过', end=' ')

else:

______________

第 22 题    问答题

小明想要给居委会工作的妈妈制作一个小程序:列表中存储一组居民的年龄,将其中所有大于 60 的值保存在字典的第一个 key 中,将其他的值保存在字典的第二个 key 中。

【输入样例】

【输出样例】

{'B': [20, 9, 13, 47, 18, 25, 30, 10], 'A': [75, 61, 80, 67, 88]}

【预设代码】

dic = {}

all_list = [20, 75, 61, 80, 9, 13, 47, 18, 25, 30, 67, 88, 10]

for i in all_list:

 if i > 60:

 grade = 'A'

 else:

 grade = 'B'

 if ____________:

 ______________

 else:

 dic[grade] = [i]

print(dic)

第 23 题    问答题

开学第一课,班主任老师准备召集班中的学生们,大家一起来玩一个破冰游戏。游戏规则是:

1、所有学生按照座位蛇形排列,依次报数;

2、学生报数时,如果所报数字是 3 的倍数,那么不能说该数字,而要说 2022;

3、如果学生所报数字是 4 的倍数,那么要说 NOC;

4、如果学生所报数字是 3 和 4 的倍数,要说 2022NOC。

请按照此游戏规则完成程序,输入玩游戏学生的人数,输出每个学生要说的话。

【输入格式】

输入一个正整数 n

【输出格式】

输出列表,包含 n 个元素,如题干所述

【输入样例】

14

【输出样例】

['1', '2', '2022', 'NOC', '5', '2022', '7', 'NOC', '2022', '10', '11', '2022', '13', '14']

【预设代码】

num = int(input('请输入:'))

results = []

for i in range(1, num + 1):

if _______________:

__________________

elif i % 3 == 0:

results.append('2022')

elif i % 4 == 0:

results.append('NOC')

else:

__________________

print(results)

第 24 题    问答题

编写一个可以计算给定数阶乘的程序,并且将计算结果输出。例如输入5,则求出 5x4x3x2x1 的结果。

注:使用递归的方法来解决这个问题

【输入格式】

输入一个正整数

【输出格式】

输出给定数的阶乘结果

【输入样例】

3

【输出样例】

6

【预置代码】

def fact(var):

 if var == 0:

 return 1

 res = _________

 return res

var = int(input('请输入一个正整数:'))

print(fact(var))

第 25 题    问答题

动画片中有一个神奇道具,只需 1 滴药水,就可以将物品进行克隆。现在是第 1 分钟,有 1 个汉堡。当使用药水后,从第 3 分钟开始,每 1 分钟都会克隆出一个新的汉堡。每个新汉堡诞生 2 分钟后,也会保持每 1 分钟克隆出 1个新汉堡。请问经过 30 分钟后,我们一共会拥有多少个汉堡?

提示:

第 1 分钟:1 个

第 2 分钟:1 个

第 3 分钟:2 个(开始第一次克隆)

第 4 分钟:3 个

第 5 分钟:5 个(第 3 分钟新产生的汉堡开始克隆)

【输入格式】

【输出格式】

一个数字,表示汉堡的数量

第 26 题    问答题

画出如图所示图形:

图形说明:图形由四个扇形组成,每个扇形的圆心角是 45 度,扇形之间的角度也为 45 度

边长说明:扇形圆弧距圆心的半径为 150

颜色说明:四个扇形的颜色依次为红色(red), 橙色(orange), 蓝色(blue), 绿色(green)

第 27 题    问答题

使用循环语句,可以用字符组合出有规律的图形,观察下图的规律,输出由#和空格组成的中括号吧!

【输入格式】

输入一个正整数

【输出格式】

对应的图案

【输入样例 1】

5

【输出样例 1】

【输入样例 2】

4

【输出样例 2】

答题卡
一、选择题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
二、编程题
题目总数:27
总分数:170
时间:不限时
QQ
公众号
客服
扫一扫