以下有关算法的表述中正确的是?( )
描述算法可以有不同的方式,可用自然语言也可用流程图等
算法可以看成按照要求设计好的有限的确切的步骤解决问题,并且这样的步骤只能解决当前问题
算法需要一步一步执行,每一步执行的操作必须明确,不能含混不清,而且经过有限步或无限步后能得出结果
算法要求按部就班地执行相应的步骤,每一步可以有不同的结果
有 2*n的一个长方形方格,用一个1*2的骨牌铺满方格,当n=5时,铺法总数为多少?( )
5
6
7
8
下面的故事与哪一个算法有着异曲同工之妙?( )
从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事……
穷举
递归
贪心
分治
以下不可以使用分治法求解的是?( )
棋盘覆盖问题
选择问题
归并排序
0/1背包问题
以下函数要计算x的n次方,则应补充选项为?( )
def power(x, n): s = 1 while n >0: _________ s = s * x return s
n = n
n = n+1
n = n-2
n = n-1
运行以下代码,若d的值为17,则return后面应该填?( )
def function(a,b): c = a+b return _______ a,b = 3,2 d = function(a,b)
c+a+b
c-a*b
c+a*b
c*a+b
代码:
def sum(num1,num2): num1=num1+1 num2=num2+2 result=num1+num2 return result a=3 b=4 c=sum(a,b) print("a=",a,"b=",b,"c=",c)
以下说法正确的是?( )
程序的运行结果为:a= 3 b= 4 c= 10
程序的运行结果为:a= 4 b= 6 c= 10
程序的运行结果为:a= 4 b= 6 c= 7
编译错误,程序无法运行。
对元素规模为n的列表进行对分查找时,无论是否找到,至多进行()次查找?
n
(n+1)/2
n-1
log2n+1
下列哪个关键词可用来表示返回值?( )
back
return
ret
ok
运行以下函数,正确的打印是?( )
def test(num): print("the number is %d."%(num)) test(888)
the number is %d.
the number is 888.
the number is %d.888
the number is 888.888
运行以下函数,正确的打印是?( )
def function(a): s = 0 while(a>0): if(a%2 == 0): s += a*(a-1) else: s += a+(a-1) a = a-1 return s print(function(6))
21
36
59
46
Python中函数不包括以下哪一个?( )
参数函数
标准函数
内建函数
第三方库函数
以下用于绘制弧形的函数是?( )
turtle.seth( )
turtle.right( )
turtle.circle( )
turtle.fd( )
以下选项中关于递归算法的描述,错误的是?( )
书写简单
一定要有基例(指不需要递归就能求解的解)
递归算法都可以用非递归的方法实现
执行效率高
运行以下函数,正确的打印是?( )
def domain2(a,b): a = a+b return a a = 2 print(domain2(2,a))
4
2
1
7
分治,"分而治之"。从字面上理解就是分---治,把大的问题分成小问题,解决一个一个小问题,之后把问题的答案合并起来,就得到大问题的结果。历史上也有很多故事属于分治思想,以下属于分治思想的是?( )
三国时,曹操带兵长途行军,士兵们都很口喝,曹操便说:“前面就是一大片梅林,结了许多梅子,又甜又酸,可以解渴。” 士兵们听了,嘴里都流口水,一时也就不渴了。
战国时期,秦国通过远交近攻的策略,逐个击破,最后统一六国。
汉末刘备三次到诸葛亮住的茅屋去邀请他出来帮助自己打天下,最后诸葛亮才答应出来。
三个臭皮匠顶个诸葛亮是一个文化术语。指的是三个副将的智慧能顶一个诸葛亮。
用于安装Python第三方库的工具是?( )
Install
pip
Wheel
Setup
关于以下程序,运行程序输出结果正确的是?( )
def demo(x): return x*2; print(demo(demo(demo(1))))
1
2
4
8
以下哪一个函数是指直接或间接调用函数本身的函数?( )
map函数
zip函数
匿名函数
递归函数
关于以下程序,下列表述中错误的一项是?( )
def demo(n): s=1 for i in range(1,n): s*=i return s
demo(n)函数的功能是求n的阶乘
s是局部变量
n是形式参数
range()函数是Python内置函数
运行以下程序输出的结果是?( )
x=1 def demo(): global x x=2 print(x) demo() print(x)
1
1
2
1
1
2
2
2
关于计算圆面积的匿名函数的定义,以下哪一个语法格式是正确的?( )
lambda r:3.1415926*r*r
result=lambda r:3.1415926*r*r
lambda r,3.1415926*r*r
result=lambda r,3.1415926*r*r
以下选项中,哪一个不属于函数的作用?( )
提高代码的执行速度
提高代码的重复利用率
增强代码的可读性
降低编程的复杂度
以下选项中不是Python对文件的写操作方法的是?( )
writelines
write
write 和 seek
writetext
运行以下函数,正确的打印结果是?( )
def sub(a,b): return a-b a,b = 5,3 c = sub(b,a) print(c)
2
-2
1
-1
新型冠状病毒感染的肺炎是一种全新的冠状病毒肺炎,该病毒具有人群易感性,预防病毒我们要做到勤洗手、戴口罩,多通风。假设新型冠状病毒每轮会传染给x人,则经过n轮传染后,有n*x个人感染。
power(x,n)函数是计算x的n次幂的函数,power(x,n)函数运用了分治算法的思想,调用power(3,3)函数的计算结果是:27
def power(x,n): if n == 2: return x if n%2 == 0: return power(x,n//2) * power(x,n//2) else: return power(x,(n+1)//2) * power(x,(n-1)//2)
执行以下代码:
n=5 def fun(): x=n+1 print (x) fun()
程序输出的结果为:6
运行如下图的代码,变量m无论取值是多少,print打印出的值都不可能大于30。
使用pip install-upgrade numpy命令能够升级numpy科学计算扩展库。
type(str)函数的返回值是参数str的数据类型。
调用嵌套函数outer(),两次输出变量x的值是不一样的。
def outer(): x = "local" def inner(): x = 'nonlocal' print("inner:", x) inner() print("outer:", x)
执行以下代码:
def sum_n(n): if n==1: return 2 t = sum_n(n - 2) return n + t result = sum_n(5) print(result)
程序输出的结果为:10
函数factorialrecursive(n)与factorial cycle(n)分别是运用递归和循环计算n的阶乘的函数,因为两个函数都能够计算n的阶乘,所以递归和循环的时间复杂度是一样的。
def factorialrecursive(n): if n == 1: return 1 return n*factorial(n-1) def factorial cycle(n): result = 1 while(n>1): result = result * n n = n-1 return result
调用函数print_info("李华","16","男")输出的结果是:“姓名:李华,年龄:16,性别:男”
def print_info(name,age,sex); str = "姓名:"+name+",年龄:"+age+",性别:"+sex print(str)
要求:设计一个算法,如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如9889就是一个回文数,求对于用户输入的一个非零正整数判断是否为回文数。
根据上述算法思想,补全下列代码。
示例:输入9889,返回9889是回文数;输入34542,返回34542不是回文数。
i=input("请输入一个非零正整数:") n=len(i) if ① : for j in range(int((n+1)/2)): if ② : if n==2*j+1: print("{}是回文数".format(i)) else: print("{}不是回文数".format(i)) break else: for j in ③ : if i[j]==i[n-j-1]: if ④ : print("{}是回文数".format(i)) else: print("{}不是回文数".format(i)) break
任务:利用分治思想,在50个同学成绩(成绩不重复)中查找指定成绩的同学的编号,学生成绩存储在列表cj中;待查找的成绩由键盘输入到变量key中。根据上述算法思想,编写自定义函数完成程序功能,完善空白处代码。
""" 函数名def search(lft,rgt,key) 参数表:整数lft,rgt表示待查找列表的左右边界,key是待查找的成绩 返回值:找到返回key所在编号,否则返回-1. """ def search(lft,rgt,key): if lft>rgt: return -1 mid = ① if cj[mid] == key: return mid elif ② : lft = mid + 1 else: rgt = mid - 1 ③ import random cj = [random.randint(1,100) for i in range(50)] cj.sort() key = int(input("输入待查找的成绩")) pos = search(0,49,key) print(pos)
要求:设计一个算法,对于给定两个正整数,求它们的最大公约数。
根据上述算法思想,补全下列代码。
函数名:gcd(x,y)
参数表:x-- 整数x,y-- 整数y。
返回值:它们的最大公约数。
示例:当x=6,y=9时,返回3。
def gcd(x,y): if ① : return y else: return ② sums = 0 m = int(input('请输入第一个正整数m = ')) n = int(input('请输入第二个正整数n = ')) sums= ③ print("m和n两个正整数的最大公约数是:%d"% sums)