admin 管理员组

文章数量: 1086019


2024年5月9日发(作者:xml格式软件)

全国青少年编程能力等级测评试卷

1

Python

编程(四级)及答案

(考试时间

90

分钟,满分

100

分)

一、单项选择题(共

15

题,每题

3

分,共

45

分)

1.

A, B, C, D, E

5

个元素依次顺序进栈,则下列不会出现的出栈顺序是

..

( )。

A

E, A, B, C, D B

A, B, C, D, E

C

B, C, D, E, A D

E, D, C, B, A

2.

以下步骤描述的分形方式是( )。

步骤

1

:把闭区间平均分为三段,去掉中间的

1/3

部分段,留下剩余两个闭

区间;

步骤

2

:将剩下的两个闭区间各自平均分为三段,同样去掉中间的区间段,

这时剩下四段闭区间;

步骤

3

:重复删除每个小区间中间的

1/3

段,迭代至区间无穷小。

A.Koch曲线 B.谢尔宾斯基三角形

D.牛顿迭代 C.康托尔三分集

3.

下方排序算法的时间复杂度为( )。

x = 0

y = 1

for i in range(n):

x += i

for j in range(n):

y *= j

A

O(n)

B

O(n

2

)

C

O(logn)

D

O(1)

Python

编程(三级)试卷 第

1

页 共

14

4.

下列属于分类算法的是( )。

A

K-Means

算法

B

DBSCAN

算法

C

Koch

曲线递归算贝叶斯算法

D

5.

对于顺序存储的栈和队列,进行插入运算的时间复杂度为( )。

A

O(n)

B

O(n

2

)

C

O(logn)

D

O(1)

6.

下列满足短任务优先且不会发生饥饿现象的调度算法是( )。

A

先来先服务

B

高响应比优先

C

时间片轮转

D

非抢占式短任务优先

7.

下方代码段采取的排序方法是( )。

def sort(data):

d1 = []

while len(data):

min = [0, data[0]]

for i in range(len(data)):

if min[1] > data[i]:

min = [i, data[i]]

del data[min[0]]

(min[1])

return d1

A

快速排序

B

冒泡排序

C

选择排序

D

插入排序

8.

下方代码段通过插入排序的方法完成排序,空白处应补充的代码是(

def insertion_sort(arr):

Python

编程(三级)试卷 第

2

页 共

14

for i in range(1, len(arr)):

current = arr[i]

pre_index = i - 1

while pre_index >= 0 and arr[pre_index] > current:

pre_index -= 1

arr[pre_index + 1] = current

return arr

A

a

rr[pre_index]

arr[pre_index+1]

arr[i] = arr[i+1]

B

C

a

rr[pre_index+1]

arr[pre_index]

arr[i+1] = arr[i]

D

9.

=

=

运行下方代码段,输出的结果是( )。

def isPrefixOfWord(sentence,searchWord):

l = ()

for i in range(len(l)):

if l[i][:len(searchWord)]==searchWord:

return i + 1

return -1

Python

编程(三级)试卷 第

3

页 共

14

sentence = "Python is the best computer language!"

searchWord = "comput"

i = isPrefixOfWord(sentence, searchWord)

print(i)

-1

A

C

5

10.

B

i+1

6

D

使用迪杰斯特拉(Dijkstra)算法,求图中从顶点1到其他各顶点的最短路

径,得到各最短路径的目标顶点依次是( )。

A

5

2

6

3

4

C

5

2

4

3

6

11.

B

5

2

3

6

4

D

5

2

3

4

6

使用冒泡排序将序列

3

4

1

11

15

7

4

升序排列,需要交换( )。

A

2

C

5

B

3

D

6

12.

下列路径算法中,属于贪心算法的是( )。

A.迪杰斯特拉(Dijkstra)算法 B.深度优先搜索算法

Python

编程(三级)试卷 第

4

页 共

14

C.弗洛伊德(Floyd)算法 D.广度优先搜索算法

13.

运行下方代码段,输出的结果是( )。

def search(nums, target):

def helper(tar):

i, j = 0, len(nums) - 1

while i <= j:

m = (i + j) / 2

if nums[m] <= tar:

i = m + 1

else:

j = m - 1

return i

return helper(target) - helper(target-1)

nums = [5,6,6,8,8,8,10]

target = 8

i = search(nums, target)

print(i)

A

7

B

6

C

4

D

3

14.

使用选择排序将序列

3

7

14

1

18

5

8

9

升序排列,需要交换(

Python

编程(三级)试卷 第

5

页 共

14

。 )

A

3

15.

B

4

C

6

D

10

运行下方代码段,输出的结果最接近( )。

import random

n = 1000000

r = 1.0

a, b = (0.0, 0.0)

x_neg, x_pos = a - r, a + r

y_neg, y_pos = b - r, b + r

count = 0

for i in range(0, n):

x = m(x_neg, x_pos)

y = m(y_neg, y_pos)

if x*x + y*y <= 1.0:

count += 1

print (count / float(n)) * 4

A

π

4

C

π

B

π

2

D

二、多项选择题(共

5

题,每题

2

分,共

10

分)

Python

编程(三级)试卷 第

6

页 共

14

16.

下列对Python第三方库sklearn的叙述中,正确的有( )。

A.sklearn库中封装了大量的机器学习算法

B.sklearn库中linear_model是广义的线形模型

C.sklearn库中决策树模型是_bayes

D.from _model import LogisticRefression可以导入线形回归函数

17.

下列排序算法中,基于比较的算法有( )。

A.堆排序 B.冒泡排序 C.桶排序 D.希尔排序

18.

下列对于聚类算法的叙述中,正确的有( )。

A.聚类分析是给定划分类别的情况下,根据类别进行样本分组的方法

B.与传统分群方法相比聚类方法可以发现之前未知的特征因素

C.K-means是常见的聚类方法,速度快,效率高

D.与传统分群方法相比聚类方法能对新的数据快速复制应用

19.

下列有关预测算法的叙述中,属于线性回归模型的优势有( )。

A

模型简单易解释

C

对于非线性关系易捕捉

B

系数大小易理解

D

更好的分析数据之间的相互影响

20.

下列有关常见数据结构的叙述中,正确的有( )。

A.栈由系统自动分配存储空间,堆由人为申请开辟空间

B.栈申请空间的效率较低,堆的申请效率较高

C.栈只允许在栈顶插入和删除元素,堆可以随意存取

Python

编程(三级)试卷 第

7

页 共

14


本文标签: 算法 方法 下列 排序