

第1页 / 共4页

第2页 / 共4页
试读已结束,还剩2页,您可下载完整版后进行离线阅读
THE END
选择题答案:1-5 DCDCC6-8DBD高三信息选考基础练习1.定义函数isPalidrome用于判断回文字符串:def isPalidrome(s):先判断字符串的首尾两个字符,如果不相等即结束递归,if len(s)<=1:返回False,否则继续缩小规模去掉首尾两个字符,继续调用递归函数,直到字符串长度为1,如果能走到这里说return True明前面所有的首尾字符都相等,即为回文串,返回Tu。elif s[O]!=s[len(s)-1]:根据此思路,e1se处应返回继续调用函数,但规模为去掉首尾字符return Falseelse:return己知代码划线处可选语句为:DisPalidrome(s[1:-1])2isPalidrome(s[2:-1])3isPalidrome(s[1:len(s)-1])④isPalidrome(s[2:len(s)-l]),则可填入的语句是DA.②或③B.③或④C.①或②D.①或③2.有如下Python程序段:#程序段1#程序段2def fac(n):def fac(n):s=1迭代0(n)if n 1:递归0(n)for i in range(1,n+1):return 1ss*ielse:return sreturn n*fac(n-l)#①print(fac(⑤))print(fac(5))下列关于两个程序段的说法,正确的是CA.程序1和程序2都使用了递归算法B.若问题规模为,程序1和程序2的时间复杂度不同C.若程序1中问题规模为n,则n的值就是其循环执行的次数D.若程序2中自定义函数内的代码只保留①处语句,也能获取到目标值递只算法进没有出口,即没有结束条件,不能3.有两个自定义函数如下:实现算法要求的目标def pl(a,b):def p2(a,b):if b==0:if b==0:return 1return 1ifb%2=0:return a*p2(a,b-l)】return pl(a,b//2)*p1(a,b//2)else:return a pl(a,b-1)下列说法不正确的是DA.p2(2,3)的返回值为8p2(2,3)=2*和2(2,2)=2*(2*p(2,1)=2*(2*(2*p(2,0)=2*(2*(2*1))=8B.函数p2的时间复杂度是O(n)p1(2,3)C.函数p1和函数p2均采用了递归算法=2*p1(2,2)D.计算p1(2,3),函数p1的调用次数为生6,=2*2*012,0)*2*30)=2*p1(2,1)p1(2,1)4.定义如下递归函数,计算正整数n的每位数字之和,例如=123,函数返回值为6。def f(n):X三(1)n/10if x ==0;return nelse:y=(2)n%10return3)y+f(x)
请登录后查看评论内容