全国青少年软件编程(Python)等级(四级)考试复习题库汇总(含真题)_第1页
全国青少年软件编程(Python)等级(四级)考试复习题库汇总(含真题)_第2页
全国青少年软件编程(Python)等级(四级)考试复习题库汇总(含真题)_第3页
全国青少年软件编程(Python)等级(四级)考试复习题库汇总(含真题)_第4页
全国青少年软件编程(Python)等级(四级)考试复习题库汇总(含真题)_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE1全国青少年软件编程(Python)等级(四级)考试复习题库汇总(含真题)一、单选题1.在Python程序中,设已定义函数op,它有一个整型传值参数,一个字符串型传值参

数。设x,y为整型变量,z为字符串型变量,则下列能调用该函数的正确语句是?()A、opB、op(x,y,z)C、opx,yD、op(x+y,z)答案:D解析:在调用自定函数时需要用到“函数名<参数表>”的方法,且自定义函数op

共有两个参数。2.下面哪种算法使用了分治的方法?()A、冒泡排序B、选择排序C、插入排序D、对分查找答案:D3.关于递归函数出口的说明,以下选项中错误的是?()A、递归函数的出口决定递归的深度。B、每个递归函数都只能有一个递归出口。C、递归函数必须有出口。D、递归函数的出口不再进行递归。答案:B解析:递归函数的出口必须有一个及以上。比如斐波拉契数列,它的递归出口有两个f(1)=1,f(2)=1。4.已知有n本按照书名拼音排序好的图书,使用对分查找法搜索其中任何一本书,最多

查找次数为6次,则n的值可能为?()A、20B、50C、80D、110答案:B解析:对规模为n的数据进行对分查找时,无论是否查找到,至多进

行|log2n|+1次(|log2n|表示小于等于log2n的最大整数),因此25≤n<26,

即32≤n<64。5.运行以下函数,正确的打印是?()

Defdomain2(a,b):

a=a+b

returna

A=2

Print(domain2(2,a))A、4B、2C、1D、7答案:A解析:知识点:自定义函数的创建与调用6.下列哪个语句段的时间复杂度最低?()A、ifn%2==0:

x=x*2

Else:

x=x+2B、n=1

Whilen<=100:

x=x+2C、foriinrange(100):

forjinrange(10):

x=x+2D、foriinrange(100):

forjinrange(i):

x=x+2答案:A解析:时间复杂度按数量级递增顺序为:常数阶、对数阶、线性阶、线性对数阶、

平方阶7.分治,"分而治之"。从字面上理解就是分治,把大的问题分成小问题,解决一

个一个小问题,之后把问题的答案合并起来,就得到大问题的结果。历史上也

有很多故事属于分治思想,以下属于分治思想的是?()A、三国时,曹操带兵长途行军,士兵们都很口喝,曹操便说:“前面就是

一大片梅林,结了许多梅子,又甜又酸,可以解渴。”士兵们听了,

嘴里都流口水,一时也就不渴了。B、战国时期,秦国通过远交近攻的策略,逐个击破,最后统一六国。C、汉末刘备三次到诸葛亮住的茅屋去邀请他出来帮助自己打天下,最后诸

葛亮才答应出来。D、三个臭皮匠顶个诸葛亮是一个文化术语。指的是三个副将的智慧能顶一

个诸葛亮。答案:B解析:B体现分治思想8.下列关于函数的描述正确的是?()A、使用函数的唯一目的是减少代码的重用B、不带return的函数返回值是NoneC、带有默认值的参数可以放在位置参数之前D、函数可以有多个参数,参数之间使用;隔开答案:B解析:自定义函数中,可以有返回值,return语句;也可以没有返回值,不带return语句的,返回值是None9.在Python中,调用下面函数的返回值为?()

Deffun():

x=101A、NoneB、101C、程序报错D、x=101答案:A解析:没有return语句的函数,返回值是None10.用于安装Python第三方库的工具是?()A、InstallB、pipC、WheelD、Setup答案:B解析:用于安装Python第三方库的工具可以用pipinstall第三方库名。11.运行以下代码,正确的打印结果是?()

Deff(s):

t=0

max=0

foriins:

ifi>="0"andi<="9":

t=t+1

else:

ift>max:

max=t

t=0

print(max)

List="123ab45cd6d"

F(list)A、0B、1C、2D、3答案:D解析:本段代码中,函数f()的作用是求最长的连续数字字符串的长度。12.函数调用可以分为将实际参数的值传递给形式参数,以及将实际参数引用传递给形式参数,如果实际参数是可变对象,以下关于函数形式参数和实际参数的表述正确的是?()A、值传递可以改变实际参数的值,但是形式参数的值不能改变B、值传递可以改变形式参数的值,但是实际参数的值不能改变C、值传递可以同时改变形式参数和实际参数的值D、值传递既不能改变实际参数的值,也不能改变形式参数的值答案:C解析:函数调用可以分为将实际参数的值传递给形式参数,以及将实际参数引用传递给形式参数,如果实际参数是可变对象,值传递可以同时改变形式参数和实际参数的值。13.关于递归与递推方法的比较,错误的观点是?()A、递归是将复杂问题降解成若干个子问题,依次降解,求出低阶规模的解,代入

高阶问题中,直至求出原问题的解;B、递推是构造低阶的问题,并求出解,依次推导出高阶的问题以及解,直至求出

问题的解;C、数学上的递推关系可以通过递归的方法来实现;D、递归算法代码简洁,运行速度比递推快,因此应该尽量采用递归的方法;答案:D解析:D.递归的运行开销大。14.运行以下代码,输出结果正确的是?()

A=1

B=c=[]

Deffun(a,c):

a=2

c.append(a)

Fun(a,c)

Print(a,b,c)A、2[2][2]B、1[][2]C、1[2][2]D、2[][2]答案:C解析:函数体内变量a的值为2,添加到了列表c中,b和c指向同一个列表地址

,因此列表b也随之改变15.关于计算圆面积的匿名函数的定义,以下哪一个语法格式是正确的?()A、lambdar:3.1415926*r*rB、result=lambdar:3.1415926*r*rC、lambdar,3.1415926*r*rD、result=lambdar,3.1415926*r*r答案:B解析:关键字lambda表示匿名函数,冒号之前的表示它们是这个函数的参数,

匿名函数不需要return来返回值,表达式本身结果就是返回值。在定义匿名函数时,

需要将它直接赋值给一个变量,然后再像一般函数调用。16.

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

c=1

deffun(n):

    a=1

    forbinrange(1,n):

        a*=b

    returna

n=int(input('Entern='))

print(fun(n),c)A、c是全局变量,a是局部变量B、n是形式参数,当n=5时,程序输出1201C、程序实现求阶乘D、range()函数是python内置函数答案:B解析:fun(n)函数的功能是求阶乘,range(1,n)是从1循环到n-1。17.以下选项中,哪一个不属于函数的作用?()A、提高代码的执行速度B、提高代码的重复利用率C、增强代码的可读性D、降低编程的复杂度答案:A解析:函数能够提高代码的重复利用率,增强代码的可读性,降低编程的复杂

度,但高代码的执行速度不是它的特点。18.设某算法的计算时间表示为递推关系式T(n)=T(n-1)+n(n为正整数)及T(0)=1,该算法的时间复杂度为以下哪一项?()A、O(log2n)B、O(nlog2n)C、O(n)D、O(n2)答案:D解析:

T(n)=T(n-1)+n

T(n)=(T(n-2)+n-1)+n

T(n)=T(0)n-2+n-1+n=n*(n+1)/2,当n趋近于无穷大的时候,T(n)=n*n。19.以下能正确计算出“1!+3!+5!”值(n!=1x2x3…xn)的自定义函数是?()A、deff():

s=0

t=1

foriinrange(1,6,2):

t=t*i

s=s+t

returnsB、deff():

s=0

t=0

foriinrange(1,6,2):

t=t*i

s=s+t

returnsC、deff():

s=0

t=1

foriinrange(1,6,2):

t=t*i

ifi%2==1:

s=s+t

returnsD、deff():

s=0

t=1

foriinrange(1,6):

t=t*i

ifi%2==1:

s=s+t

returns答案:D解析:A选项和C选项求的是1*1+1*1*3+1*1*3*5的值;B选项由于t=0,乘以任何数都等于0,所以最终结果为0。20.阅读下列程序段,数列的第6项值为多少?()

Deffibona(x):

  ifx==1orx==2:

    f=1

  foriinrange(3,x+1):

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

  returnf

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

M=fibona(n)

Print("数列的第"+str(n)+"项的值为"+str(m))A、1B、8C、21D、34答案:B解析:程序段中的数列其实是斐波那契数列,这个数列从第3项开始,每一项都等于前两项之和。1,1,2,3,5,8,13,21,34,55…21.下列选项中,关于如何安装第三方库的说法正确的是?()A、如果电脑没有联网,仍然可以使用pip工具安装本地的whl文件B、必须使用命令行工具安装第三方库C、第三方库只要可以用pip完整的下载下来,就可以成功安装D、安装上Anaconda就安装了所有的第三方库答案:A解析:可执行文件不需要使用命令行工具就可以安装。没有编译的第三方库,即使能够下载,也无法安装。Anaconda里面包含了800多个第三方库,但是不是全部的第三方库。22.运行下列程序,输出结果正确的是?()

Defdemo(lst,k):

ifk<len(lst):

returnlst[k:]+lst[:k]

Lst=[1,2,3,4,5,6]

Print(demo(lst,4))A、[4,5,6,1,2,3]B、[5,6,1,2,3,4]C、[6,5,4,3,2,1]D、[1,2,3,4,5,6]答案:B解析:运行结果是函数的返回值,返回值为两个列表的合并23.关于Turtle库的表述中,错误的是?()A、Turtle库是Python语言中一个很流行的绘制图像的函数库。B、画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。C、turtle.circle()是只能画一个指定半径为r的圆。D、turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,

数字越大越快。答案:C解析:turtle.circle()是turtle中的常用命令,基本语法是circle(radius,e)

,即画一个指定半径为r,角度e的圆或弧24.有以下程序,运行程序输出的结果是?()

X=1

Defdemo():

x=2

print(x)

Demo()

Print(x)A、1

1B、2

1C、1

2D、2

2答案:B解析:在函数内部声明的变量不能在函数外部访问,函数内部声明的变量为局部变量,其作用域仅限于函数内部。有局部变量就有全局变量,全局变量是指在模块范围内的全局变量,其作用域是整个模块。全局变量可以在模块内的函数内部使用,但需要遵循先声明后使用的原则。25.在一个平面中,有n个圆两两相交,但任二个圆不相切,任三个圆无公共点,以下函数能计算出n个圆把平面分成的区域个数,空格处填写的语句是?() defc(n):  ifn=1:     return2  else:     return           A、c(n-1)+2*(n-1)B、c(n-1)+c(n-2)C、c(n-1)+2*nD、c(n-1)+2*(n+1)答案:A解析:设这n个圆将平面分成an个区域。易知,a1=2,a2=4。现在假设前n-1个圆将平面分成了an-1个区域,当加入第n个圆(虚线圆)时,由题设这个圆与前面的n-1个圆一定交于2(n-1)个点,这2(n-1)个点把第n个圆分成2(n-1)条弧,而每条弧正好将前面的n-1个圆分成的区域中的其经过的每个区域分成2个区域,故新加入的第n个圆使所成的区域数增加了2(n-1)。因此可以建立如下带初值的递推关系:an=an-1+2(n-1)a1=226.运行下列程序,输出结果正确的是?()

Deffun(x,y=5):

returnx*y

A=fun(10,10)

Print(a)A、100B、50C、10D、运行出错答案:A解析:参数的默认值被替换。27.对于数列1,2,8,11,15,17,19,25,30,45,采用“二分查找”法查找11,需要查找多少次?()A、5B、4C、3D、2答案:B解析:按二分查找法的规律,每次先查找中间值,进行比较。28.运行下列这段程序,正确的输出结果是?()

Deff(a,b):

c=a**2+b

b=a

returnc

A=5

B=100

C=f(a,b)+b

Print(c)A、210B、225C、130D、115答案:B解析:函数的形参作用域为本函数,实参变量b的值没有改变,还是100。29.关于Python的自定义函数的说法,下列哪个表述是错误的?()A、函数名的命名规则与变量名的命名规则相同B、如果有多个参数,各参数之间使用“;”隔开C、即使函数没有参数,也必须在函数名后面保留一对空的“()”D、函数体相对于自定义函数的关键字必须保持一定的缩进答案:B解析:自定义函数名的命名规则与变量名的命名规则相同,如果有多个参数,各参数之间使用“,”隔开,即使函数没有参数,也必须在函数名后面保留一对空的“()”,函数体相对于自定义函数的关键字必须保持一定的缩进。30.运行以下函数,正确的打印是?()

Deftest(num):

print("thenumberis%d."%(num))

Test(888)A、thenumberis%d.B、thenumberis888.C、thenumberis%d.888D、thenumberis888.888答案:B解析:知识点:自定义函数的创建与调用31.以下有关算法的表述中正确的是?()A、描述算法可以有不同的方式,可用自然语言也可用流程图等B、算法可以看成按照要求设计好的有限的确切的步骤解决问题,并且这样的步骤

只能解决当前问题C、算法需要一步一步执行,每一步执行的操作必须明确,不能含混不清,而且经

过有限步或无限步后能得出结果D、算法要求按部就班地执行相应的步骤,每一步可以有不同的结果答案:A解析:算法可以看成按照要求设计好的有限的确切的步骤,并且这样的步骤能解

决一类问题,故B不正确;算法是有限步,结果明确性;算法的每一步操作必须是

明确的,不能有歧义或模糊是正确的,故D不正确。32.下列程序段的正确运行结果是?()

Deffun(m,n):

whilem!=n:

ifm>n:

m=m-n

else:

n=n-m

returnm

Print(fun(24,16))A、4B、8C、-8D、2答案:B解析:自定义函数fun(m,n)的作用是求m,n两个整数的最大公约数。33.下列程序使用了哪种算法?()

Deffact(n):

ifn==0:

return1

else:

returnn*fact(n-1)A、递推B、递归C、排序D、分治答案:B34.下列哪个选项的返回值与其他三项不同?()A、round(3.176)B、abs(-3)C、ord('3')D、len([1,2,3])答案:C解析:round(x[,n])对x进行四舍五入(如果给定n,就将数x转换为小数点后有n位的数),所以A选项返回值为3。abs(x)返回x的绝对值,所以B选项的返回值为3。ord(x)返回x对应的ASCII值,所以C选项的返回值为51。len(seq)返回序列的长度,所以D选项的返回值为3。35.对元素规模为n的列表进行对分查找时,无论是否找到,至多进行()次查找?A、nB、(n+1)/2C、n-1D、log2n+1答案:D解析:对元素规模为n的列表进行对分查找时,无论是否找到,至多

进行log2n+1(log2n+1表示大于或等于log2n的最小整数)次查找就能得到结果。36.有如下Python程序,执行该程序后,结果是?()

X=3

Def calc():

  x=5

Print(calc())A、3B、5C、无输出D、None答案:D解析:自定义函数没有return语句,返回值为None,故选D37.下面哪一项不是pip指令?()A、pipinstallScipyB、pipuninstallJiebaC、pipclearD、piplist答案:C解析:pip工具中没有clear方法。38.Python中函数不包括以下哪一个?()A、参数函数B、标准函数C、内建函数D、第三方库函数答案:A解析:Python中函数包括标准函数、内建函数、第三方库函数等39.运行以下函数,正确的打印结果是?()

Defsub(a,b):

returna-b

A,b=5,3

C=sub(b,a)

Print(c)A、2B、-2C、1D、-1答案:B解析:知识点:函数的参数40.下列属于math库中的数学函数是?()A、time()B、round()C、sqrt()D、random()答案:C解析:知识点:第三方库的调用41.变量的作用域是指程序代码所能够访问到该变量的区域,以下表述中哪一个是错误的?()A、在函数内部定义的变量是局部变量B、在函数外部定义的变量是全局变量C、在函数外部可以使用函数内部定义的变量D、在函数内部可以使用函数外部定义的变量答案:C解析:在函数内部声明的变量不能在函数外部访问,函数内部声明的变量为局部变量,其作用域仅限于函数内部。有局部变量就有全局变量,全局变量是指在模块范围内的全局变量,其作用域是整个模块。全局变量可以在模块内的函数内部使用,但需要遵循先声明后使用的原则。42.

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

deff(x,y,z):

  print(x,y,z)

F(z=3,x=2,y=1)A、321B、123C、213D、312答案:C解析:关键字实参43.匿名函数是指没有名字的函数,Python中需要使用哪一个表达式来创建匿名函数?()A、functionB、filterC、lambdaD、global答案:C解析:匿名函数是指没有名字的函数,Python中需要使用lambda关键字表达式来创建匿名函数。44.运行以下代码,正确的打印结果是?()

Deff():

c=0

foriinrange(4,51,4):

ifi%6==0:

c=c+1

returnc

Print(f())A、1B、2C、4D、8答案:C解析:函数f()的作用是求4-50间4和6的公倍数个数,即12的倍数个数。45.以下函数的返回值是?()

Defpic(a:int,b:str)->str:

c=a*b

print(c)

returnc

Pic(5,’*#*’)A、*#**#**#**#**#*B、5C、5*#*D、程序出错答案:A解析:Python是动态语言,自定义函数时不需要声明与指定类型,但是在Python3.5之后,新增了对函数参数和返回值的类型指定和检查。即使参数输入类型与定义时不一致,实际上运行不会报错,Python的本质还是动态语言。46.下面关于递归的描述不正确的是?()A、递归思想是将大型复杂的问题转化为一个与原问题相似的规模较小的问题来求解B、递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,它不是分治策略的具体体现C、递归必须有终止递归的条件D、递归是在过程或函数里调用自身答案:B解析:递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,它是分治策略的具体体现47.观察程序段,以下说法错误的是?()

Deffib(n):

ifn==1orn==2:

s=1

else:

s=fib(n-1)+fib(n-2)

returns

M=int(input("请输入m的值(m>2):"))

Print(fib(m))A、如果输入m的值为8,打印的结果为20B、该程序段用了递归来实现C、如果缺少语句“returns”,程序会报错D、语句“deffib(n):”中的n为形参答案:A解析:定义函数时的语法如下:

def函数名(参数集合):

<函数体>

[return函数值]

本题中的自定义函数fib(m)需要返回值,所以“return函数值”语句不能少,定义

时“函数名<参数集合>”中的参数为形参,调用时“函数名<参数集合>”中的参数为实参。如果输入m的值为8,打印的结果为21。48.以下函数要实现3的阶乘,则应补充选项为?()

Deffunc(m):

if(___):

returnfunc(m+1)*m

else:

return1

Print(func(1))A、m<3B、m<=3C、m<=4D、m<=2答案:B49.10个人站一列,分苹果,问第10个人分到多少个苹果,他说比前面一个人多分到2个

,依次往前,都说比前面一个人多分到2个,最后问第一个人,他说分到10个苹果。

用以下函数求第10个人分到的苹果数,则应补充选项为?()

Defapple(n):

ifn==1:

return10

else:

return

Print(apple(10))A、apple(n)+2B、n+2C、apple(n-1)+2D、apple(n+1)-2答案:C解析:defapple(n):

ifn==1:

return10

else:

returnapple(n-1)+2

Print(apple(10))50.

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

Y=2

Deffun():  

  globaly  

  y=1  

  print(y)

Fun()

print(y)A、

2

1B、

2

2C、

1

2D、

1

1答案:D解析:Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global以改变它的值。51.关于以下程序,下列表述中错误的一项是?()

Defdemo(n):

s=1

foriinrange(1,n):

s*=i

returnsA、demo(n)函数的功能是求n的阶乘B、s是局部变量C、n是形式参数D、range()函数是Python内置函数答案:A解析:demo(n)函数的功能是求阶乘,range(1,n)是从1循环到n-1。52.下列程序段中自定义函数do(n)的作用是?()

Defdo(n):

s=0

f=1

foriinrange(1,n+1,2):

s=s+1/i*f

f=-f

returns

Print(do(10))A、求1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10的值B、求1+1/3+1/5+1/7+1/9的值C、求1-1/3+1/5-1/7+1/9-1/10的值D、求1-1/3+1/5-1/7+1/9的值答案:D解析:当调用自定义函数do(10)时,range(1,11,2)表示生成的序列为1,3,5,7,9,而变量f的作用是在1和-1之间互相转换,所以运算符号“+”、“-”交替出现。53.对比两个求等差数列1+2+…+n的和的程序,其算法效率?()

程序1:

N=int(input())

S=(1+n)*n/2

Print(s)

程序2:

N=int(input())

S=0

Foriinrange(n+1):

s=s+i

Print(s)A、程序1比程序2高B、程序2比程序1高C、一样高D、不能判断答案:A解析:理解算法性能、算法效率概念54.不超过100个元素的有序数列,使用二分查找能找到指定的元素,可能的查找次数不

包括?()A、1次B、6次C、7次D、8次答案:D解析:按照二分查找法的规律,100个元素的有序列表,不管是否找到,至多查找7次。55.用匿名函数方式求两个数中较大的数,下列定义语句格式正确的是?()A、result=lambda'x,y':yifx>yelsexB、result=lambdax,y:yifx>yelsexC、result=lambda'x,y':xifx>yelseyD、result=lambdax,y:xifx>yelsey答案:D解析:匿名函数的定义语法:lambda参数:表达式语法。先写lambda关键字,

然后依次写匿名函数的参数,多个参数中间用逗号连接,然后是一个冒号,冒号后

面写返回的表达式。56.递归算法的执行过程,一般来说,可先后分成以下哪两个阶段?()A、穷举和回归B、递推和回归C、穷举和回溯D、递推和回溯答案:B解析:用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成一些规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模稍大问题的解。特别地,当规模N=1时,能直接得到解。递归算法的执行过程分递推和回归两个阶段。在递推阶段,把较复杂的问题的求解推到比原问题简单一些的问题的求解;在回归阶段,当获得最简单情况的解后,逐级返回,依次获得稍复杂问题的解。57.如果需要在某函数内部调用上一层的局部变量,则可以使用()关键字。A、LocalB、nonlocalC、globalD、nonglobal答案:B解析:仅B可以调用上一层的局部变量58.下列程序段的运行结果为?()

Deff(n):

  ifn<=1:

     return1

  else:

    returnf(n-1)*3

Print(f(5))A、9B、27C、81D、243答案:C解析:f(5)=f(4)*3=f(3)*3*3=f(2)*3*3*3=f(1)*3*3*3*3=1*81=8159.关于python函数参数的说法正确的是?()A、函数一定要有参数和返回值B、在调用一个函数时,若函数中修改了形参变量的值,则对应的实参变量的值也

被修改C、参数的值是否会改变,与函数中对变量的操作有关,与参数类型无关D、函数的形参在函数被调用时获得初始值答案:D解析:函数的形参作用域为本函数,在函数被调用时获得初始值。60.安装wheel,wheel用于离线安装已经下载到本地的whl文件,可以在命令窗口直接运行?()A、piplistB、pipwheelC、pipunistallwheelD、pipinstallwheel答案:D解析:知道pip、wheel、exe安装方法61.对自然数1至n求和,如果将递推式f(n)=f(n-1)+n(n>1)转化成递归函数,则递归出口是?()A、f(1)=1B、f(1)=0C、f(0)=1D、f(0)=0答案:A62.运行以下程序输出的结果是?()

X=1

Defdemo():

globalx

x=2

print(x)

Demo()

Print(x)A、1

1B、2

1C、1

2D、2

2答案:D解析:Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要

在函数内部声明其为global以改变它的值。63.对于数列3,8,11,15,17,19,25,30,44,采用“二分查找”法查找8,需要查找多少次?()A、5B、4C、3D、2答案:D解析:按二分查找法的规律,每次先查找中间值,进行比较。64.下列程序段的运行结果为?()

Deff(n):

ifn<=0:

return1

else:

returnf(n-1)*3

Print(f(4))A、9B、27C、81D、243答案:C解析:f(4)=f(3)*3=f(2)*3*3=f(1)*3*3*3=f(0)*3*3*3*3=1*81=8165.

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

definverse(s,n=0):

  whiles:

    n=n*10+s%10

    s=s//10

  returnn

Print(inverse(456,123))A、654123B、123456C、123654D、654321答案:C解析:调用函数inverse(456,123),将456逐位取出,并累加到123的后面,故选C66.运行以下程序,正确的打印结果是?()

Defsum1(arg1,arg2):

total=arg1+arg2

returntotal

T=sum1(10,20)

Print(t)A、10B、20C、30D、40答案:C解析:知识点:自定义函数的创建与调用67.以下关于全局变量和局部变量的表述正确的是?()A、如果在函数中定义的局部变量与全局变量同名,则全局变量屏蔽局部变量B、可以通过global关键字,通过全局变量修改局部变量C、nonlocal关键字用来在函数或局部作用域使用内层(非全局)变量D、全局变量的作用域一定比局部变量的作用域大答案:D解析:如果在函数中定义的局部变量与全局变量同名,则局部变量屏蔽全局变量。可以通过global关键字,通过局部变量修改全局变量。nonlocal关键字用来在函数或局部作用域使用外层(非全局)变量。局部变量的作用域是指程序内部,全局变量的作用域是整个程序。68.下列有关循环和递归的描述正确的是?()A、递归思想代码清晰简洁,可读性强B、递归代码中不能有循环结构的语句C、递归是从问题的起点出发,逐渐将复杂问题化为简单问题,最终求得问题D、能用递归实现的,一定能用循环代码实现答案:A解析:递归是从问题的目标出发,逐渐将复杂问题化为简单问题,最终求得问题69.

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

k=1

whilek<101:

  ifk%7==0andk%5!=0:

    print(k)

  k+=1

根据下面哪个选项的方法优化后,程序的运行效率最高?()A、将k=1改为k=7B、将kC、将k+=1改为k+=7D、将k=1改为k=7,同时将k+=1改为k+=7答案:D解析:选项A可以少执行6次,选项B可以少执行2次,选项D可以少执行86次。选项C程序不能实现设计的功能。70.以下哪项不是使用分治法解决问题的步骤?()A、分解B、求解C、合并D、判断答案:D71.有如下Python语句,执行该语句后,结果是?()

F=lambdax:5

Print(f(3))A、3B、没有输出C、5D、None答案:C解析:将参数3传递给匿名函数f,返回值为5,故选C72.下列哪个关键词可用来表示返回值?()A、backB、returnC、retD、ok答案:B解析:知识点:函数的相关概念73.有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子。假如兔子都不死,要求输出一年内兔子的数量是多少。如果采用递归算法来编程,则核心的递归逻辑应该是?()A、f(n)=n*f(n-1)B、f(n)=f(n-1)+nC、f(n)=f(n-1)+f(n-2)D、f(n)=f(n-1)+(n-1)f(n-2)答案:C解析:只有C是符合题意的递推式。74.设有以下函数,运行程序输出的结果是?()

Defdemo(a,b):

a*=b

returna

S=demo(5,2)

Print(s)A、5B、10C、12D、20答案:B解析:函数返回5*2的结果。75.在Python中,以下关于函数的描述错误的一项是?()A、默认参数的值可以修改B、引入了函数式编程的思想,函数本身亦为对象C、关键字参数在使用时不允许改变参数列表中的参数顺序D、函数的return语句可以以元组的方式返回多个值答案:C解析:关键字参数在使用时没有顺序限制,但是如果参数中有位置参数,关键字参数必须位于位置参数之后。76.下面的故事与哪一个算法有着异曲同工之妙?()

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,

山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,山里有座庙

,庙里有个老和尚在给小和尚讲故事……A、穷举B、递归C、贪心D、分治答案:B解析:递归函数是指直接或间接调用函数本身的函数。77.应用分治算法的前提是?()A、问题的可分性和解的可归并性B、问题的复杂性和解的简单性C、问题的可分性和解的存在性D、问题的复杂性和解的可归并性答案:A解析:A。问题的可分性和解的可归并性是应用分治算法的前提。78.下面关于递归算法的描述,错误的是?()A、任何递归程序都可以改写成非递归程序B、定义简单,逻辑清晰C、算法的执行效率较高D、原问题与子问题在结构上必须相似答案:C解析:C79.有如下Python程序,执行该程序后,结果是?()

G=lambdax,y=3,z=5:x+y+z

Print(g(2))A、2B、5C、7D、10答案:D解析:匿名函数g的功能是将3个参数x,y,z之和,故选D80.代码:

Defsum(num1,num2):

num1=num1+1

num2=num2+2

result=num1+num2

returnresult

A=3

B=4

C=sum(a,b)

Print("a=",a,"b=",b,"c=",c)

以下说法正确的是?()A、程序的运行结果为:a=3b=4c=10B、程序的运行结果为:a=4b=6c=10C、程序的运行结果为:a=4b=6c=7D、编译错误,程序无法运行。答案:A81.以下有关Python函数的定义表述中错误的是?()A、函数的定义必须在主程序调用语句之前出现B、在形参列表中必须先列出有默认值的形参,再列出没有默认值的形参C、实参是实际占用内存地址的,而形参不占用D、def关键字后面加函数名定义函数,定义必须以冒号结尾答案:B解析:在形参列表中必须先列出没有默认值的形参,再列出有默认值的形参。82.有2*n的一个长方形方格,用一个1*2的骨牌铺满方格,当n=5时,铺法总数为多少?()A、5B、6C、7D、8答案:D解析:对一般的n,要求xn可以这样来考虑,若第一个骨牌是竖排列放置,剩下有n-1个骨牌需要排列,这时排列方法数为xn-1;若第一个骨牌是横排列,整个方格至少有2个骨牌是横排列(1*2骨牌),因此剩下n-2个骨牌需要排列,这是骨牌排列方法数为xn-2。从第一骨牌排列方法考虑,只有这两种可能,所以有:xn=xn-1+xn-2(n>2)x1=1x2=2xn=xn-1+xn-2就是问题求解的递推公式,任给n都可以从中获得解答。例如n=5,x3=x2+x1=3x4=x3+x2=5x5=x4+x3=883.下列选项中,哪个选项调用如下函数会报错?()

Defshow(numbers):

forninnumbers:

print(n)A、show([4,5,6])B、show('Chinese')C、show(3,4)D、show((4,5,6))答案:C解析:调用函数时参数传入,数量必须一致84.执行以下程序,以下表述中错误的一个是?()

Defdemo(a,b):

c=a**2+b

b=a

returnc

A=10

B=100

C=demo(a,b)+aA、该函数名称为demoB、执行该函数后,变量a的值为10C、执行该函数后,变量b的值为100D、执行该函数后,变量c的值为200答案:D解析:调用后函数返回值局部变量c为200,调用结束时程序返回到调用出,全局变量c=200+10=210。85.Python中函数不包括?()A、标准函数B、第三库函数C、内建函数D、参数函数答案:D86.关于import引用,以下选项中描述错误的是?()A、使用importturtle引入turtle库。B、可以使用fromturtleimportsetup引入turtle库。C、使用importturtleast引入turtle库,取别名为t。D、import保留字用于导入模块或者模块中的对象。答案:B87.下列哪个是正确的函数名?()A、Plan_2021B、2021planC、returnD、10plan10答案:A解析:函数的命名规则与变量名一致,由字母、数字和下划线组成,不能以数字开头,字母区分大小写,不能使用Python中的关键字,如return。88.下列哪项不是分治算法所具有的特征?()A、该问题的规模缩小到一定的程度就可以容易地解决B、该问题可以分解为若干个规模较小的不同问题C、利用该问题分解出的子问题的解可以合并为该问题的解D、该问题所分解出的各个子问题是相互独立的答案:B89.下列哪个不是Python中的内建函数?()A、asc(x)B、ord(x)C、chr(x)D、abs(x)答案:A解析:Python中没有asc(x)这个内建函数,ord(x)函数的作用是返回x对应

的ASCII值,chr(x)函数的作用是返回x对应的字符,abs(x)函数的作用是返回x的

绝对值。90.关于函数的定义语句,以下几项中正确的是?()A、deff(c=2,a,b):B、deff(a,b=2,c):C、deff(*c,**d,a,b):D、deff(a,b,*c,**d):答案:D解析:顺序实参必须要放在关键字实参之前,位置参数*args必须要在关键字

参数**kwargs前,否则会程序报错。91.下列关于函数的描述正确的是?()A、函数是可重复使用的,用来实现单一,或相关联功能的代码段B、函数中必须return语句C、函数好处是模块性,但不能提高代码的利用率D、函数内容以冒号起始,可以不缩进答案:A92.在解决问题过程中,常用的“二分法”是一种什么算法?()A、分治B、递归C、推理D、递推答案:A93.关于函数,以下选项中描述错误的是?()A、函数是一段具有特定功能的、可重复用的语句组B、函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可C、使用函数的主要目的是降低编程难度和代码重用D、Python使用del保留字定义一个函数答案:D解析:Python使用def保留字定义一个函数94.下面哪种算法使用了分治的方法?()A、插入排序B、快速排序C、选择排序D、冒泡排序答案:B解析:只有B使用了分治的方法。95.有如下Python程序段,执行该程序后,结果是?()

Deffun(*p):

  returnsum(p)

Print(fun(1,3,5))A、4B、6C、8D、9答案:D解析:该函数功能是将参数1,3,5求和,故选D96.以下哪一个函数是指直接或间接调用函数本身的函数?()A、map函数B、zip函数C、匿名函数D、递归函数答案:D解析:递归函数是指直接或间接调用函数本身的函数。97.有一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地前,反弹多高?用递归函数解决,下面选项正确的是?()A、defheight(n):

   ifn==1:

     return100

   else:

     returnn*2

Print(height(10))B、defheight(n):

   ifn==1:

     return100

   else:

     returnheight(n-1)/2

Print(height(10))C、defheight(n):

   ifn==1:

     return100

   else:

     returnheight(n+1)/2

Print(height(10))D、defheight(n):

   ifn==1:

     return100

   else:

     returnheight(n-1)*2

Print(height(10))答案:B解析:每次弹起的高度都是上次的一半,因此递归式子为height(n-1)/298.

以下程序是用什么算法思维来显示数列1,4,7,10,13,16?()

A=1

Foriinrange(6):

print(a)

a+=3A、递归B、递推C、分治D、枚举答案:B99.关于算法的描述,以下选项中错误的是?()A、算法是指解题方案的准确而完整的描述。B、算法的复杂度主要包括时间复杂度和数据复杂度。C、算法具有可行性、确定性、有穷性的基本特征。D、算法的基本要素包括数据对象的运算和操作及算法的控制结构。答案:B解析:算法复杂度是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。100.下列哪个不是Python第三方库的pip安装方法?()A、使用pip命令B、使用wheel命令C、集成安装方法D、文件安装方法答案:B解析:第三方库安装101.在PythonShell提示符下输入以下哪个选项,回车后,再输入pi,回车,能得到数值3.141592653589793?()A、importmathB、importmathaspiC、frommathimportPID、frommathimport*答案:D解析:掌握import和from方式102.下列几个选项中,不是Python定义函数规则的是?()A、def关键字开头,后接函数名加括号,以冒号结束B、Python定义函数时,必须声明形参类型C、返回值写在return后面D、使用函数名()的方式调用函数答案:B解析:Python定义函数的规则:以def开头,后接函数名和’():’,有参数写在()中,下一行缩进,如果有返回值则写在return后面。Python定义函数时,不需要声明函数参数的类型103.运行以下函数,正确的打印是?()

Deffunction(a):

s=0

while(a>0):

if(a%2==0):

s+=a*(a-1)

else:

s+=a+(a-1)

a=a-1

returns

Print(function(6))A、21B、36C、59D、46答案:C解析:知识点:递归与递推104.若要求出把a个元素分成b个子集,有多少种可能性,例:function(4,2)返回值为7,则返回值中函数的参数分别为?()

Deffunction(a,b):

if(b==1orb==a):

return1

else:

returnfunction()+b*function(a-1,b)A、(a-1,b-1)B、(a+1,b-1)C、(a-1,b+1)D、(a+1,b+1)答案:A解析:知识点:分治算法105.以下选项中不是Python对文件的写操作方法的是?()A、writelinesB、writeC、write和seekD、writetext答案:D解析:

Python文件对象提供了两个“写”方法:write()和writelines()。

write()方法和read()、readline()方法对应,是将字符串写入到文件中。

writelines()方法和readlines()方法对应,也是针对列表的操作。它接收一个字符串列表

作为参数,将他们写入到文件中,换行符不会自动的加入,因此,需要显式的加入换行符。106.关于以下程序,运行程序输出结果正确的是?()

Defdemo(x):

returnx*2;

Print(demo(demo(demo(1))))A、1B、2C、4D、8答案:D解析:调用三次,1乘以三次2,因此结果为8。107.某程序代码设计如下,若输入整数5,则最终输出的结果为?()

Deffact(x):

ifx==1:

s=1

else:

s=fact(x-1)*x

returns

N=int(input("请输入一个大于1的整数:"))

Print(fact(n)+fact(n-1))A、120B、24120C、144D、12024答案:C解析:由于fact(5)=fact(4)*5,fact(4)=fact(3)*4,fact(3)=fact(2)*3,

fact(2)=fact(1)*2,fact(1)=1,所以fact(5)+fact(4)=120+24=144。108.

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

defcalc(x,y,op):

  returneval(str(x)+op+str(y)) 

print(calc(3,5,'+'))A、8B、35C、NoneD、-2答案:A解析:该函数功能是将参数x,y用op的运算符运算,故选A109.以下几项关于函数的说法,错误的是?()A、函数是一段具有特定功能的语句组B、调用函数时,参数传入的顺序必须与定义时保持一致C、在一个程序中,函数的定义可以放在函数调用代码之后D、使用函数可以增加代码重复利用率,还可以降低维护难度答案:C解析:函数是一段具有特定功能的语句组,使用函数能够提高代码的重复利用率,降低维护难度;调用函数时,参数传入的数量、顺序必须与定义时一致;函数必须定义在前,才可以调用。110.下面关于递归函数说法正确的是?()A、一般来说,递归函数的执行效率高于非递归函数B、边界条件和递归关系是递归函数编写的关键C、递归函数的嵌套调用次数没有限制D、递归函数不可以改写为非递归函数答案:B解析:一般来说,递归函数代码简洁,易于理解,但执行效率较低。递归函数的调用次数必须有限制。111.运行以下代码,若d的值为17,则return后面应该填?()

Deffunction(a,b):

c=a+b

return_______

A,b=3,2

D=function(a,b)A、c+a+bB、c-a*bC、c+a*bD、c*a+b答案:D解析:知识点:函数的返回值112.以下函数要计算x的n次方,则应补充选项为?()

Defpower(x,n):

s=1

whilen>0:

_________

s=s*x

returnsA、n=nB、n=n+1C、n=n-2D、n=n-1答案:D解析:知识点:递归与递推113.运行下列代码,正确的输出结果是?()

Defyang(n):

ifn==0:

return[1]

else:

return[([0]+yang(n-1))[i]+(yang(n-1)+[0])[i]foriinrange(n+1)]

Print(yang(4))A、[1,4,6,4,1]B、[1,5,10,10,5,1]C、[1,1,1]D、[1,3,3,1]答案:A解析:知识点:递归与递推114.有100枚金币,其中有1枚轻1克的假金币,现在要找出这枚假金币,但身边只有1个

没有刻度的天秤。小明先是将金币分成50枚一堆,共两堆称重,在轻的那一堆中又分

成两堆,接着在轻的25枚中分成12,12,1三堆称重,若两堆12枚的重量相同,则假币

为单独剩下的那一枚,否则在轻的那一堆中继续按照之前的办法称下去,直到找到假金

币。请问小明采用的办法与哪个算法有着相似之处?()A、递归B、分治C、枚举D、贪心答案:B解析:分治算法就是对一个问题采取各个击破的方法,将一个规模为N的问题分

解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。只要求出子问

题的解,就可得到原问题的解。115.

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

nums=range(2,20)

Foriinnums:

  nums=list(filter(lambdax:x==iorx%i,nums))

Print(nums)A、filter()函数输出后是一个数组而不是列表B、示例代码中的关键字lambda表示匿名函数C、lambdax:x==iorx%i,nums中冒号:之前的x是这个函数的参数D、匿名函数需要return来返回值,表达式本身结果就是返回值答案:D解析:关键字lambda表示匿名函数,冒号之前的表示它们是这个函数的参数,匿名函数不需要return来返回值,表达式本身结果就是返回值。在定义匿名函数时,需要将它直接赋值给一个变量,然后再像一般函数调用。116.如下代码运行后下面选项中描述错误的是?()

Defpph(a,b):

 c=a**2+b

 b=a

 returnc

A=10

B=100

C=pph(a,b)+a

Print(a,'',b,'',c)A、执行该函数后,变量a的值为10B、执行该函数后,变量b的值为100C、执行该函数后,变量c的值为200D、该函数名称为pph答案:C解析:函数基本概念117.调用以下函数时,语句“s=s+i”被执行的次数是?()Deff():s=0i=1whilei<10:ifi%3==0ors%2==1:s=s+ii=i+1print(s)A、3B、4C、5D、6答案:C解析:118.以下选项中关于递归算法的描述,错误的是?()A、书写简单B、一定要有基例(指不需要递归就能求解的解)C、递归算法都可以用非递归的方法实现D、执行效率高答案:D解析:知识点:递归与递推119.以下关于函数参数和返回值的描述,正确的是?()A、关键字传递是根据每个参数的名字传递参数,实参的顺序需要和形参的顺序一致。B、可选参数传递指的是没有传入对应参数值的时候,就不使用该参数。C、函数能同时返回多个值,需要形成一个列表来返回。D、给参数赋予默认值,如果该参数最终没有被传递值,将使用该默认值。答案:D120.以下用于绘制弧形的函数是?()A、turtle.seth()B、turtle.right()C、turtle.circle()D、turtle.fd()答案:C121.对于下列递归式子,当n=4时,F的值是?()

F(n)=F(n-1)+3F(1)=2A、2B、5C、11D、14答案:C解析:用递归式子推导得出。122.调用函数时,使用位置参数接收实际参数,以下表述正确的是?()A、指定的实际参数必须与形式参数的数量一致,位置一致B、指定的实际参数必须与形式参数的数量一致,位置可以不一致C、指定的实际参数必须与形式参数的位置一致,数量可以不一致D、指定的实际参数与形式参数的数量以及位置不需要一致答案:A解析:位置参数,有时也称必备参数,指的是必须按照正确的顺序将实际参数传到函数中,换句话说,调用函数时传入实际参数的数量和位置都必须和定义函数时保持一致,否则Python解释器会抛出TypeError异常,并提示缺少必要的位置参数。123.若以下程序段的运行结果为“*#*#*”,则空格(1)、(2)处填写结果不可能为?()

Deff(n):

s=""

foriinrange((1),n):

ifi%2==1:

s=s+"*"

else:

s=s+"#"

returns

Print(f((2)))A、3,8B、3,7C、9,14D、1,6答案:B解析:当变量i为奇数时,s累计符号“*”,所以range函数的初始值为奇数,又因为总共输出了5个符号,所以range函数的终值为初始值+5。124.以下不可以使用分治法求解的是?()A、棋盘覆盖问题B、选择问题C、归并排序D、0/1背包问题答案:D解析:可使用分治法求解的一些经典问题(1)二分搜索(2)大整数乘法(3)Strassen矩阵乘法(4)棋盘覆盖(5)合并排序(6)快速排序(7)线性时间选择(8)最接近点对问题(9)循环赛日程表(10)汉诺塔125.下列关于递归的描述不正确的是?()A、递归函数一定包含条件控制语句B、递归函数一定包含调用自身的语句C、在调用自身函数时需要明确的边界终止条件D、递归算法一般代码简洁,执行效率高,空间复杂度低答案:D解析:递归算法一般代码简洁,易于理解,但执行效率较低,空间复杂度高。判断题1.执行以下代码:

Deffun(name,age=30):

  print("Name:",name)

  print("Age:",age)

  return

Fun(age=40,name="summy")

Fun(name="summy")

程序输出的结果为:

Name:summy

Age:40

Name:summy

Age:40。A、正确B、错误答案:B解析:调用函数时,默认参数的值如果没有传入,则被认为是默认值。第二次调用fun()时age的值没有传入,则默认是30。2.运行如下图的代码,将不会报错而打印出数字7。请判断对错!A、正确B、错误答案:A解析:这题考查学生对函数“关键字调用”的理解,有意多加了变量a,干扰学生思维。3.在python函数中,局部变量不能与全局变量重名。

正确错误A、正确B、错误答案:B解析:当全局变量和局部变量同名时,首先会找程序内部有没有局部变量,如果

有,则调用,如果没有,才会去调用全局变量。4.如果在printnum(number)函数内部想要使用全局变量value,那么就要在函数内部使用关键词global声明全局变量value。

value=10

defprintnum(number):

globalvalue

num=number+value

returnnum

正确错误A、正确B、错误答案:B解析:在函数内部通过global关键字,通过局部变量修改全局变量的值。5.假设一个一维列表中有200个元素,列表中的元素都已经按降序排列,若采用二分搜索策略查找某一个元素,则最多需要8次比较就能确定是否存在所查找的元素。

正确错误A、正确B、错误答案:A6.执行以下代码:

Defsum_n(n):

ifn==1:

return2

t=sum_n(n-2)

returnn+t

Result=sum_n(5)

Print(result)

程序输出的结果为:10

正确错误A、正确B、错误答案:A7.执行以下代码:

Deffun():

x=15

Print(x)

程序输出的结果为15。

正确错误A、正确B、错误答案:B8.在Python中定义函数时不需要声明函数的返回值类型。A、正确B、错误答案:A9.将一个复杂的问题分解成若干个规模较小的子问题后,能不能利用分解出的子问题的解合并得到原问题的解是最关键的特征,它决定了是否可以使用分治算法。A、正确B、错误答案:A解析:如果一个问题能够分解成若干个相同的规模较小的子问题,但是合并子问题的解不能得到原问题的解,就决定是该问题不能够运用分治算法求解。但是可以深度贪心算法或者动态规划算法求解。10.type(str)函数的返回值是参数str的数据类型。

正确错误A、正确B、错误答案:A解析:type()函数是Python内置的计算参数类型的函数11.对于斐波那契数列:1,1,2,3,5,……,我们只能采用迭代公式以递推的方式求解。A、正确B、错误答案:B解析:斐波那契数列可以用多种方式求解。12.算法复杂度分析的目的是分析算法的效率,以求改进。

正确错误A、正确B、错误答案:A13.下列程序段能正确打印1。

Deff(a,b):

a=a+b

b=a-b

a=a-b

returnb

Print(F(1,4))

正确错误A、正确B、错误答案:B解析:Python中字母区分大小写,所以自定义函数创建和调用时,函数名要一致,

否则调用不成功。14.递归方法的运用不仅会简化主程序的设计,也会大大减少程序的代码量。A、正确B、错误答案:A解析:正确。递归能减少程序的代码量15.对于一个复杂问题,如果所分解出的各个子问题之间相互不独立,则不适合使用分治算法。A、正确B、错误答案:A解析:正确。分治算法要求子问题是相互独立的16.使用分治算法求解,子问题不能重复。

正确错误A、正确B、错误答案:A解析:分治算法的子问题之间不可以包含公共的子问题。17.通常问题的规模越大算法执行的时间就越长,算法执行时间的增长率和问题规模的增长关系,称为空间复杂度。A、正确B、错误答案:B解析:时间复杂度和空间复杂度的概念,本题是时间复杂度的描述,不是空间复杂度。18.新型冠状病毒感染的肺炎是一种全新的冠状病毒肺炎,该病毒具有人群易感

性,预防病毒我们要做到勤洗手、戴口罩,多通风。假设新型冠状病毒每轮

会传染给x人,则经过n轮传染后,有n*x个人感染。

正确错误A、正确B、错误答案:B19.算法的时间复杂度与空间复杂度没有必然关系。A、正确B、错误答案:A20.函数factorialrecursive(n)与factorialcycle(n)分别是运用递归和

循环计算n的阶乘的函数,因为两个函数都能够计算n的阶乘,所以递归

和循环的时间复杂度是一样的。

Deffactorialrecursive(n):

ifn==1:

return1

Returnn*factorial(n-1)

deffactorialcycle(n):

result=1

while(n>1):

result=result*n

n=n-1

returnresult

正确错误A、正确B、错误答案:B解析:递归与循环所执行的时间是不一样的,所以递归与循环的时间复

杂度是不一样的。21.下列程序段运行后,打印结果为9。

Deff():

s=0

foriinrange(3,1,-1):

ifi<=1:

x=1

ifi<=2:

x=2

ifi<=3:

x=3

s=s+x

returns

Print(f())A、正确B、错误答案:B解析:循环结构中循环变量i的值只能取到3和2。当i=3时,x=3,s=3;当i=2时,x=3,s=6。22.设计一个程序来求xn(x的几次方)的值,算法思想是:把xn转换为x*xn-1,而xn-1又

可以转换为x*xn-2,如此重复下去,直到x*x0,而x0=1,从而求出了xn的值。这个程序

可以用递归来实现。

正确错误A、正确B、错误答案:A解析:递归体现了“大事化小,小事化了”的思想,把大问题转换成小问题来解

决,且有终止条件,即算法中的到x0=1为止。23.可以统计字符串、列表、元组、字典等内某元素个数的Python内置函数是index()。A、正确B、错误答案:B解析:可以统计字符串、列表、元组、字典等内某元素个数的Python内置函数是count()。24.在创建自定义函数时,即使函数没有参数,也必须保留一对空的"()"。A、正确B、错误答案:A25.使用python-mpipinstall--upgradepip命令能够升级pip。

正确错误A、正确B、错误答案:A26.执行以下代码:

Deffunct():

print("Ilove")

deffunct_1():

print("Python")

Funct()

程序输出的结果为:IlovePython

正确错误A、正确B、错误答案:B27.已知大写字母“A”对应的ASCII码值为65,变量ch保存输入的大写英文字母,则语句chr((ord(ch)+1-ord("A"))%26+ord("A"))能实现大写英文字母后移一位,如A→B,B→C,……Y→Z,Z→A。A、正确B、错误答案:A解析:ord(x)函数的作用是返回x对应的ASCII值,chr(x)函数的作用是返回x对应的字符,x%y表示x除以y取余数,已知大写英文字母26为一循环,所以语句“chr((ord(ch)+1-ord("A"))%26+ord("A"))”能实现大写英文字母后移一位。28.定义Python函数时,如果函数中没有return语句,则该函数返回值是None。A、正确B、错误答案:A解析:定义Python函数时,如果函数中没有return语句,则该函数返回值None29.当你安装的第三方库有一个或者多个依赖时,我们可以选择自动安装,直接运行pipinstallxxx(xxx为你要安装库的名字)。

正确错误A、正确B、错误答案:A30.运行如下图的代码,变量m无论取值是多少,print打印出的值都不可能大于30。A、正确B、错误答案:B解析:m的值如果是31,打印出的就是31,本题考查学生对函数体之中语句的理解31.power(x,n)函数是计算x的n次幂的函数,power(x,n)函数运用了分治算法的思想,

调用power(3,3)函数的计算结果是:27

Defpower(x,n):

ifn==2:

returnx

ifn%2==0:

returnpower(x,n//2)*power(x,n//2)

else:

returnpower(x,(n+1)//2)*power(x,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论