当前位置: 首页 > news >正文

全国青少年信息素养大赛 Python编程挑战赛初赛 内部集训模拟试卷六及详细答案解析

博主推荐

  • 所有考级比赛学习相关资料合集【推荐收藏】

1、Python比赛

  • 信息素养大赛Python编程挑战赛

  • 蓝桥杯python选拔赛真题详解

  • 蓝桥杯python省赛真题详解

  • 蓝桥杯python国赛真题详解

2、Python考级

  • python等级一级真题解析【电子学会】

  • python等级二级真题解析【电子学会】

  • python等级三级真题解析【电子学会】

  • python等级四级真题解析【电子学会】

信息素养大赛初赛Python编程模拟试卷六

选择题

1、以下程序的运行结果是

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

答案:C

考点分析:考察函数的调用,调用f函数的时候传入了指定的参数及对应的值,所以输出的时候会输出对应的值;如果没有指定实参名字就是按顺序一个一个匹配;答案C

2、关于以下程序,下列表述中错误的一项是

c=1
def fun(n):a=1for b in range(1,n):a*=breturn a
n=int(input('Enter n='))
print(fun(n),c)

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

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

C、程序实现求阶乘

D、range()函数是python内置函数

答案:B

考点分析:考察阅读程序能力,fun函数是实现求阶乘,c是全局变量,a是局部变量,传入形参n,for循环中range的右边界是n,是不包括n的,只能到n-1;所以传入5最后求的是4的阶乘,答案是24;答案B

3、以下关于全局变量和局部变量的表述正确的是

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

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

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

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

答案:D

考点分析:考察变量相关知识,如果在函数中定义的局部变量与全局变量同名,则局部量屏蔽全局变量,可以通过global关键字,通过局部变量修改全局变量,。nonlocal关键字用来在函数或局部作用域使用外层(非全局)变量。局部变量的作用域是指程序内部,全局变量的作用域是整个程序;答案D

4、有如下Python程序段,执行该程序后,结果是

def fun(*p):return sum(p)
print(fun(1,3,5))

A、4 

B、6 

C、8 

D、9

答案:D

考点分析:考察函数的使用,fun函数是实现求和,1+3+5=9,答案D

5、在一个平面中,有几个圆两两相交,但任二个圆不相切,任三个圆无公共点,以下函数能计算出n个园把平面分成的区域个数,空格处填写的语句是

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)

答案:A

考点分析:考察阅读程序能力,因为是选择题,可以使用数字带入的方式更为简单,当2等于2的时候,应该是分成了4个区域,只有A选项符合;答案A

本文作者:小兔子编程 作者首页:https://blog.csdn.net/frank2102

6、观察此题示例代码,以下表述中错误的是

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来返回值,表达式本身结果就是返回值

答案:D

考点分析:考察阅读程序能力,关键字lambda表示匿名函数,冒号之前的表示它们是这个函数的参数,匿名函数不需要retum来返回值,表达式本身结果就是返回值。在定义匿名函数时,需要将它直接赋值给一个变量,然后再像一般函数调用;答案D

7、下面关于递归函数说法正确的是

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

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

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

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

答案:B

考点分析:考察递归函数相关知识,递归函数通常执行效率会低于非递归函数,在Python中默认递归函数的次数为1000次,递归函数通常也都可以通过模拟或者迭代进行改写;答案B

8、下面哪种算法使用了分治的方法

A、插入排序

B、快速排序

C、选择排序

D、冒泡排序

答案:B

考点分析:考察分治算法的使用,上面四种排序算法中快速排序使用的是分治算法,此外归并排序用的也是分治算法;答案B

9、运行以下程序输出的结果是

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

答案:D

考点分析:考察变量的使用,Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global以改变它的值;答案D

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

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

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

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

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

答案:A

考点分析:考察第三方库安装相关知识,可执行文件不需要使用命令行工具就可以安装。没有编译的第三方库,即使能够下载,也无法安装。Anaconda里面包含了800多个第方库,但并不是全部的第三方库;答案A

11、下列程序段的运行结果为

def f(n):if n<=1:return 1else:return f(n-1)*3
print(f(5))

A、9

B、27

C、81

D、243

答案:C

考点分析:考察函数的使用,函数f实现的是3的n-1次方,输入5,得到的就是3的4次方;答案C

12、下面的程序输出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=1改为k=5

C、将k+= 1改为k +=7

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

答案:D

考点分析:考察阅读程序能力,要求的是能被7整除且不能被5整除,所以最好的优化是从7开始,然后每次加7;答案D

13、有如下Python程序,执行该程序后,结果是

g = lambda x,y=3,z=5:x+y+z
print(g(2))

A、2

B、5

C、7

D、10

答案:D

考点分析:考察lambda函数的使用,lambda函数是匿名函数,是非常简洁而且高效的使用,通常适用于一行写完,一般只包含一个表达式,2对应的形参是x,所以得到的是:2+3+5=10;答案D

14、有一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地前,反弹多高?用说归函数解决,下面选项正确的是

A、

def height(n):if n == 1:return 100else:return n*2
print(height(10))

B、

def height(n):if n == 1:return 100else:return height(n-1)/2
print(height(10))

C、

def height(n):if n == 1:return 100else:return height(n+1)/2
print(height(10))

D、

def height(n):if n == 1:return 100else:return height(n-1)*2
print(height(10))

答案:B

考点分析:考察递归函数的使用,题目告知每次弹起的高度是前一次的一半,所以递归规则为height(n-1)2;答案B

15、应用分治算法的前提是

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

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

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

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

答案:A

考点分析:考察分治算法,分治算法将问题分解为多个相似的子问题,递归地解决这些子问题,然后将子问题的解合并以得到原问题的解。分治算法的核心思想是“分而治之”,即将复杂问题分解为更小、更易处理的子问题;所以前提是问题要可以拆分,同时解是可以进行合并的;答案A

本文作者:小兔子编程 作者首页:https://blog.csdn.net/frank2102

16、有如下Python程序,执行该程序后,结果是

x = 3
def  calc():x = 5
print(calc())

A、3

B、5

C、无输出

D、None

答案:D

考点分析:考察函数相关知识,这题很多小朋友可能会选择B,我们要认真看自定义函数calc,并没有返回值,所以函数会返回None,输出的结果应该是None;答案D

17、有如下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

答案:A

考点分析:考察函数的使用,calc函数中是计算x+y,可能很多小朋友们看到函数里面有str强制转换成字符串函数,也就是x和y是进行字符串的拼接“3+5”;但是前面还有一个eval函数,eval函数是会将字符串作为表达式进行计算,返回计算后的结果,答案A

18、阅读下列程序段,数列的第6项值为多少

def fibona(x):if x==1 or x==2:f=1for 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

答案:B

考点分析:考察斐波那契数列,斐波那契数列第i项为前两项之和:1、1、2、3、5、8、13...,所以第六项为8;答案B

19、如下代码运行后下面选项中描述错误的是

def pph(a,b):c=a**2+bb=areturn 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

答案:C

考点分析:考察阅读程序能力,自定义函数调用用的是值传递,所以改变了形参的值并不会改变实参的值,所以执行后,a还是等于10,b还是等于100,c的值为210,pph函数里面是计算a的平方加b并返回;答案C

20、以下有关Python函数的定义表述中错误的是

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

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

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

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

答案:B

考点分析:考察函数相关知识,ACD都正确,B选项刚好说反了,在形参列表中必须先列出没有默认值的形参,再列出有默认值的形参;答案B

相关文章:

  • 如何修改进程优先级?
  • 以影像为笔,劳润智在世界舞台上书写艺术之路
  • vim 查看复杂的宏扩展
  • 人形机器人:主控芯片
  • JGL066生活垃圾滚筒筛分选机实验装置
  • 车载电子电器架构 --- 汽车网关概述
  • 《P7167 [eJOI 2020] Fountain (Day1)》
  • RK3568-OpenHarmony(1) : OpenHarmony 5.1的编译
  • 湖仓一体架构在金融典型数据分析场景中的实践
  • WPF中如何自定义控件
  • HTTP、HTTPS、SSH区别以及如何使用ssh-keygen生成密钥对
  • Pyhton生活手册-NumPy数据类型:从快递单到智能家居的数据变形术
  • 长短期记忆网络(LSTM)深度解析:理论、技术与应用全景
  • [Linux网络_71] NAT技术 | 正反代理 | 网络协议总结 | 五种IO模型
  • 使用FastAPI和React以及MongoDB构建全栈Web应用01 概述
  • MySQL 索引(一)
  • MIT XV6 - 1.4 Lab: Xv6 and Unix utilities - find
  • 数字信号处理|| 快速傅里叶变换(FFT)
  • Google Earth Pro(谷歌地球)2025大陆版安装教程
  • 逐步理解Qt信号与槽机制
  • 呼和浩特推进新一轮国企重组整合:杜绝一项目一公司、一业务一公司
  • 印称一名高级官员在巴基斯坦发动的袭击中死亡
  • 金融监管总局:近五年民企贷款投放年平均增速比各项贷款平均增速高出1.1个百分点
  • 4月外汇储备增加410亿美元,黄金储备连续6个月增加
  • 过半中国上市公司去年都在“扩编”,哪些公司人效最高
  • 吴清:巴菲特即将退休,但价值投资、长期投资、理性投资、努力回报投资者等理念不会退休