全国青少年信息素养大赛Python编程挑战赛 初赛 模拟六卷 建议答题时长:60min
1. 单选题

执行如下 Python 代码后, 结果是?(    )

def inverse(s,n=0): while s:

n = n * 10 + s % 10

s = s // 10

return n

print(inverse(456,123))

A

654123

B

123456

C

123654

D

654321

2. 单选题

下列有关循环和递归的描述正确的是?(    )

A

递归思想代码清晰简洁, 可读性强

B

递归代码中不能有循环结构的语句

C

递归是从问题的起点出发, 逐渐将复杂问题化为简单问题, 最终求得问题

D

能用递归实现的, 一定能用循环代码实现

3. 单选题

有如下 Python 语句, 执行该语句后, 结果是?(    )

f=lambda x:5

print(f(3))

A

3

B

没有输出

C

5

D

None

4. 单选题

以下有关 Python 函数的定义表述中错误的是?(    )

A

函数的定义必须在主程序调用语句之前出现

B

在形参列表中必须先列出有默认值的形参, 再列出没有默认值的形参

C

实参是实际占用内存地址的, 而形参不占用

D

def 关键字后面加函数名定义函数, 定义必须以冒号结尾

5. 单选题

下面哪一项不是 pip 指令?(    )

A

pip install Scipy

B

pip uninstall Jieba

C

pip clear

D

pip list

6. 单选题

对于数列 3, 8, 11, 15, 17, 19, 25, 30, 44, 采用“二分查找” 法查找 8, 需要查找多少次?(    )

A

5

B

4

C

3

D

2

7. 单选题

阅读下列程序段, 数列的第 6 项值为多少?(    )

def fibona(x):

if x==1 or x==2:

f=1

for i in range(3,x+1):

f=fibona(x-1)+fibona(x-2)

return f

n=int(input("请输入数列第几项: "))

m=fibona(n)

print("数列的第"+str(n)+"项的值为"+str(m))

A

1

B

8

C

21

D

34

8. 单选题

如下代码运行后下面选项中描述错误的是?(    )

def pph(a,b):

c=a**2+b

b=a

return c

a=10

b=100

c=pph(a,b)+a

print(a,' ',b,' ',c)

A

执行该函数后, 变量 a 的值为 10

B

执行该函数后, 变量 b 的值为 100

C

执行该函数后, 变量 c 的值为 200

D

该函数名称为 pph

9. 单选题

有如下 Python 的自定义函数, 执行该程序后, 结果是?(    )

def calc(x,y,op):

return eval(str(x)+op+str(y))

print(calc(3,5,'+'))

A

8

B

35

C

None

D

-2

10. 单选题

有如下 Python 程序, 执行该程序后, 结果是?(    )

x = 3

def  calc():

    x = 5

print(calc())

A

3

B

5

C

无输出

D

None

11. 单选题

应用分治算法的前提是?(    )

A

问题的可分性和解的可归并性

B

问题的复杂性和解的简单性

C

问题的可分性和解的存在性

D

问题的复杂性和解的可归并性

12. 单选题

有一球从 100 米高度自由落下, 每次落地后反跳回原高度的一半, 再落下, 求它在第 10

次落地前, 反弹多高? 用递归函数解决, 下面选项正确的是?(    )

A

def height(n):

   if n == 1:

        return 100

   else:

         return n*2

print(height(10))

B

def height(n):

   if n == 1:

        return 100

   else:

        return height(n-1)/2

print(height(10))

C

def height(n):

   if n == 1:

        return 100

   else:

        return height(n+1)/2

print(height(10))

D

def height(n):

   if n == 1:

        return 100

   else:

        return height(n-1)*2

print(height(10))

13. 单选题

下面的程序输出 1~100 之间能被 7 整除但不能同时被 5 整除的所有整数。

k=1

while k<101:

  if k%7==0 and k%5 !=0:

    print(k)

  k += 1

根据下面哪个选项的方法优化后, 程序的运行效率最高?(    )

A

将 k=1 改为 k=7

B

将 k

C

将 k += 1 改为 k += 7

D

将 k=1 改为 k=7, 同时将 k += 1 改为 k += 7

14. 单选题

下列程序段的运行结果为?(    )

def f(n):

  if <=1:

      return 1

  else:

      return f(n-1)*3

print(f(5))

A

9

B

27

C

81

D

243

15. 单选题

下列选项中, 关于如何安装第三方库的说法正确的是?(    )

A

如果电脑没有联网, 仍然可以使用 pip 工具安装本地的 whl 文件

B

必须使用命令行工具安装第三方库

C

第三方库只要可以用 pip 完整的下载下来, 就可以成功安装

D

安装上 Anaconda 就安装了所有的第三方库

16. 单选题

运行以下程序输出的结果是?(    )

y=2

def fun():

   global y

   y=1

   print(y)

fun()

print(y)

A

2

1

B

2

2

C

1

2

D

1

1

17. 单选题

有如下 Python 程序, 执行该程序后, 结果是?(    )

g = lambda x,y=3,z=5:x+y+z

print(g(2))

A

2

B

5

C

7

D

10

18. 单选题

观察此题示例代码, 以下表述中错误的是?(    )

nums = range(2,20)

for i in nums:

      nums=list( filter(lambda x:x==i or x % i,nums))

print(nums)

A

filter()函数输出后是一个数组而不是列表 

B

示例代码中的关键字 lambda 表示匿名函数

C

lambda x:x==i or x % i,nums 中冒号:之前的 x 是这个函数的参数

D

匿名函数需要 return 来返回值, 表达式本身结果就是返回值

19. 单选题

以下关于全局变量和局部变量的表述正确的是?(    )

A

如果在函数中定义的局部变量与全局变量同名, 则全局变量屏蔽局部变量

B

可以通过 global 关键字, 通过全局变量修改局部变量

C

nonlocal 关键字用来在函数或局部作用域使用内层(非全局) 变量

D

全局变量的作用域一定比局部变量的作用域大

20. 单选题

在一个平面中, 有 n 个圆两两相交, 但任二个圆不相切, 任三个圆无公共点, 以下函数

能计算出 n 个圆把平面分成的区域个数, 空格处填写的语句是?(    )

def c(n):

   if n=1:

      return 2

   else:

      return _______

A

c(n-1)+2*(n-1)

B

c(n-1)+ c(n-2)

C

c(n-1)+2*n

D

c(n-1)+2*(n+1)

21. 单选题

以下程序的运行结果是?(    )

def f(x,y,z):    print(x,y,z)

f(z=3,x=2,y=1)

A

3 2 1

B

1 2 3

C

2 1 3

D

3 1 2

22. 单选题

关于以下程序, 下列表述中错误的一项是?(    )

c=1

def fun(n):

    a=1

    for b in range(1,n):

          a*=b

    return a

n=int(input('Enter n='))

print(fun(n),c)

A

c 是全局变量, a 是局部变量

B

n 是形式参数, 当 n=5 时, 程序输出 120 1

C

程序实现求阶乘

D

range()函数是 python 内置函数

23. 单选题

下面关于递归函数说法正确的是?(    )

A

一般来说, 递归函数的执行效率高于非递归函数

B

边界条件和递归关系是递归函数编写的关键

C

递归函数的嵌套调用次数没有限制

D

递归函数不可以改写为非递归函数

24. 单选题

下面哪种算法使用了分治的方法?(    )

A

插入排序

B

快速排序

C

选择排序

D

冒泡排序

25. 单选题

有如下 Python 程序段, 执行该程序后, 结果是?(    )

def fun(*p):

   return sum(p)

print(fun(1,3,5))

A

4

B

6

C

8

D

9

试题目录
单选题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
赣ICP备20007335号-2