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

如果我们在写程序时想要缩进,可以使用哪个按键呢?

A.

回车键

B.

空格键

C.

shift 键

D.

删除键

第 2 题    单选题

按住 shift 再按数字 1,会输入哪个符号?

A.

B.

@

C.

#

D.

%

第 3 题    单选题

下面语句中能够实现输入的是:

A.

input()

B.

print()

C.

int()

D.

import()

第 4 题    单选题

下面哪个选项能够实现将 a 赋值为 2021?

A.

a = 2021

B.

a == 2021

C.

2021 = a

D.

2021 == a

第 5 题    单选题

下述哪个选项可以作为变量的名字?

A.

5fu

B.

num-1

C.

if

D.

a1

第 6 题    单选题

以下哪个选项可以让变量 a 的值减少 1?

A.

a = 1

B.

a - 1

C.

a =- 1

D.

a = a - 1

第 7 题    单选题

下面哪个选项能够导入海龟画图库?

A.

import random

B.

import time

C.

import turtle

D.

import halo

第 8 题    单选题

可以通过以下哪种方式从整数 123 中提取出它的个位,得到数字 3?

A.

123 % 2

B.

123 / 2

C.

123 % 10

D.

123 / 10

第 9 题    单选题

现在有变量 a = “123”,数据类型为字符串类型。现在想要让变量 a 的值变为 123,数据类型为整数类型。以下哪个语句能够实现?

A.

int(a)

B.

a = int(a)

C.

a = str(a)

D.

str(a)

第 10 题    单选题

想从字符串 s = “beautiful”中打印出字母”a”,请问应该用以下哪种方式?

A.

print(s[3])

B.

print(s[a])

C.

print(s[2])

D.

print(s[-2])

第 11 题    单选题

现在已知一个字符串 s = “abcdef”,现在想从中拆出”def”这个部分,应该使用以下哪个选项?

A.

s[3:5]

B.

s[3:6]

C.

s[2:4]

D.

s[2:5]

第 12 题    单选题

请问 range(3)所表示的范围应该是以下哪一个?

A.

0,1,2,3

B.

1,2,3

C.

0,1,2

D.

1,2

第 13 题    单选题

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

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

if a % 2 == 0 :

print(1)

else:

print(2)

A.

0

B.

1

C.

2

D.

3

第 14 题    单选题

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

s = "hello my friend!"

if "hello" in s:

print("True")

else:

print("False")

A.

True

B.

False

C.

hello my friend!

D.

报错

第 15 题    单选题

阅读以下程序,请问程序运行后会输出几个 hello?

n = 2

while n < 5:

print("hello")

n = n + 1

A.

0

B.

3

C.

4

D.

5

第 16 题    单选题

阅读以下程序,请问运行结束后会显示什么?

a = 2

b = 4

a = a * b

b = a * 2

print(a, b)

A.

2 4

B.

a b

C.

8 4

D.

8 16

第 17 题    单选题

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

a = 2

b = 8

if a > 1:

if b > 8:

print(a)

else:

print(b)

else:

if b > 8:

print(a + b)

else:

print(a - b)

A.

2

B.

8

C.

10

D.

-6

第 18 题    单选题

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

n = 10

count = 0

while n < 30:

if n % 5 == 0 :

count += 1

n = n + 2

print(count)

A.

2

B.

4

C.

6

D.

8

第 19 题    单选题

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

num = 15

for i in range(5):

if num % 3 == 0:

num = num / 3

else:

num = 2 * num + 1

print(num)

A.

11.0

B.

23.0

C.

47.0

D.

95.0

第 20 题    单选题

阅读以下程序,请问程序运行后,最后的输出结果是?

  1. ls = [8158192985]

  2. for i in range(2):

  3. max = 0

  4. for j in range(i,len(ls)):

  5. if ls[j] > max:

  6. max = ls[j]

  7. max_index = ls.index(max)

  8. temp = ls[i]

  9. ls[i] = max

  10. ls[max_index] = temp

  11. print(ls)

A.

[81, 58, 19, 29, 85]

B.

[85, 58, 19, 29, 81]

C.

[85, 81, 19, 29, 58]

D.

[85, 81, 58, 29, 19]

二、程序题
第 21 题    问答题

简易计算器:我们想做一个能够计算加法,减法,乘法的简单计算器,例如:

计算 3 + 5,我们依次输入数字 3,符号“+”,数字 5,程序计算后输出结果8,请你完善代码,使代码能够实现这种功能

【输入格式】

一共 3 行

第 1 行:一个整数 a

第 2 行:一个符号 op,代表加号,减号,乘号

第 3 行:一个整数 b

【输出格式】

共 1 行,为 a 和 b 进行运算后的结果

【输入样例】

3

+

5

【输出样例】

8

【预设代码】

  1. a = input()

  2. op = input()

  3. b = input()

  4. a = int(a) __________ # b = int(b)

  5. if op == "+": ____________ # print(a + b)

  6. if op == "-":

  7. print(a - b)

  8. if op == "*":

  9. print(a * b)

第 22 题    问答题

登月楼梯:假设我们有一张特大的纸,而且这种纸能够无限折叠,纸的初始厚度是 0.1 毫米(0.0001 米),每次折叠后,纸的厚度都变为原来的两倍。现在我们知道,地球到月球的距离大约是 38 万千米(380000000 米),请问,我们折叠 46 次之后能否用这张纸到达月球?

【输入格式】

【输出格式】

共一行:

输出 Yes,代表能登月;输出 No,代表不能登月

【预设代码】

  1. h = 0.00001

  2. i = 0

  3. while ________:

  4. h = h * 2

  5. _________

  6. if h > 380000000:

  7. print("Yes")

  8. else:

  9. print("No")

第 23 题    问答题

输入四个整数,如果这些整数能分成两组,这两组数的个数相同,和也相同,则输出"Yes",否则输出"NO"(注意,输出不包括引号)

【输入格式】

一共四行,每行一个整数

【输出格式】

共 1 行,Yes 代表满足题意,No 代表不满足题意

【输入样例】

2

4

6

8

【输出样例】

Yes

【样例说明】

可以分成 2 和 8,4 和 6 两组

【预设代码】

  1. a = input("请输入一个整数:")

  2. a = int(a)

  3. b = input("请输入一个整数:")

  4. b = int(b)

  5. c = input("请输入一个整数:")

  6. c = int(c)

  7. d = input("请输入一个整数:")

  8. d = int(d)

  9. if ___________________:

  10. print("Yes")

  11. else:

  12. print("No")

第 24 题    问答题

现在有 n 个苹果,想要将这 n 个苹果分成若干份,要求每份的苹果个数相等,

请问一共有多少种方案。例如:有 8 个苹果,可以分成分 1 份,每份 8 个,也可以分成 2 份,每份 4 个,分成 4 份,每份 2 个,分成 8 份,每份 1 个,一共4 种方案,

【输入格式】

共一行,为一个整数 n,代表苹果个数

【输出格式】

共一行,为一个整数,代表方案数量

【输入样例】

8

【输出样例】

4

【预设代码】

  1. n = int(input())

  2. i = 1

  3. cnt = 0

  4. while _________:

  5. if n % i == 0: _________

  6. ________ print(cnt)

第 25 题    问答题

有两辆同向而行的汽车,第一辆汽车的每秒行驶距离是 a,第二辆汽车的每秒行驶距离是 b,初始两车相距 x,判断 600 秒内,第二辆车能否超过第一辆车(相遇不算超过),若能则输出第几秒能够超过,若不能超过,则输出 No

【输入格式】

共 3 行

第一行,一个整数 a,代表第一辆车每秒行驶路程

第二行,一个整数 b,代表第二辆车每秒行驶路程

第三行,一个整数 x,代表两车初始距离

【输出格式】

一个整数,代表超过时的秒数,或者 No 代表不能超过

【输入样例】

5

10

20

【输出样例】

5

【样例说明】

第一辆车每秒能走 5,第二辆车每秒能走 10,初始距离为 20,第 4 秒时,两车相遇,但是第 5 秒,第二辆车超过了第一辆车,故输出 5

【预设代码】

  1. a = int(input("请输入第一辆车的每秒能走的距离"))

  2. b = int(input("请输入第二辆车的每秒能走的距离"))

  3. x = int(input("请输入初始的距离"))

  4. time = 0

  5. while ______________:

  6. time += 1

  7. if ______________:

  8. print(time)

  9. break

  10. if time == 600:

  11. print("No")

第 26 题    问答题

画出如图所示图形:

图形说明:一共有 10 条边,从短到长编号分别为 1 到 10

边长说明:第一条边长度为 30,之后每条边长度依次增加 20,

颜色说明:若边长编号为 3 的倍数则为蓝色(blue),若为 5 的倍数则为绿色(green),若为 7 的倍数则为黑色(black),其余都为紫色(purple)

第 27 题    问答题

现有一个字符串列表 ls,列表中一共有 n 个字符串,每个字符串中有小写字母也有可能包括其他的字符,请编写程序分别统计每个字符串中除了小写字母以外的所有其他字符的个数并输出。

提示:

每一个字符都对应一个 ASCII 值,可以使用 ord 函数获取该值

例如:ord("a")得到 97, ord("z")得到 122 ,其中 a~z 是连续的

【输入格式】

共 n + 1 行

第 1 行:一个正整数:n

第 2 到 n+1 行:每行一个字符串

【输出格式】

共 n 行

每一行中输出一个整数,表示字符串中的非字母字符的个数

【输入样例】

3

sda5af$#

fr532@#1

asf

【输出样例】

3

6

0

【样例说明】

3(sda5af$字符串中有 5$#这 3 个非字母字符)

6(fr532@#1 字符串中有 532@#1 这 6 个非字母字符)

0(asf 字符串中没有非字母字符)

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