选择题 共25道
判断题 共10道
编程题 共3道
下列程序段的运行结果是?( )
def s(n): if n==3: return 4 else: return n+s(n-1) print(s(5))
下列程序段的运行结果是16,则在①处填写的代码是?( )
def s(n): s=1 for a in range(1,5): ① return s print(s(4))
下列程序功能是通过递归来实现将一个十进制数转换为八进制数,则在______处填写的代码是?( )
def s(n): if n < 8: return str(n) else: return _____________ m = s(int(input("输入十进制数字:"))) print("转换后八进制数是:",m)
有如下Python程序,执行该程序的结果是?( )
def nxs(n):
s = 0
while n >0:
s = s * 10 + n % 10
n //= 10
return s
print(nxs(123))
有如下Python程序,执行该程序后变量c的值是?( )
def prime(n): for i in range(2,n): if n % i == 0: return 0 return 1 c = 0 for i in range(2,10): if prime(i): c += 1
有如下Python程序,执行该程序后,输出的结果是?( )
def zdz(s): m = s[0] for i in s[1:]: if i > m: m = i
return m print(zdz('abc789XYZ'))
有如下Python程序,执行该程序后输出的结果是?( )
n = 10 def fun(): global n n = n ** 2 print(n) fun() print(n)
图1是一个水平摆放的小正方体木块,图2,图3是由这样的小正方体木块叠放而成的,按照这样的规律放下去,第七个叠放的图形有多少个正方形木块?这个问题我们可以用以下什么算法解决?( )
以下函数的功能是求长方形面积,函数调用的正确方式是哪一项?( ) def fun(a, b): return a * b
以下函数求圆的面积,运行如下代码结果正确的是哪一项?( ) def fun(r, pi=3.14):
return r * r * pi
print(fun(10, 3))
以下函数用“分治算法”求列表元素之和,请补全代码?( ) def fun(arr): if len(arr) == 1: return arr[0] mid = len(arr) // 2 left = fun(arr[:mid]) right = ____________ return left + right arr = [1,2,3,4,5,6,7,8,9,10] print(fun(arr))
运行下列程序,输出的结果是?( ) def fn(x, y): if x >=y: return x-y else: return y print(fn(4, 7),fn(8, 5))
运行下列程序,输出的结果是?( ) def f(x=2,y=0): return x-y y=f(y=f(),x=5) print(y)
当n为10时,运行下列Python程序后的结果是?( ) def fn(num): if num % 2 == 0: return False else: return True n=int(input("请输入一个正整数:")) print(fn(n))
运行以下代码: def fun(x, y, z): return x + y - z print(fun(1, y=10, 3) 运行结果为:8。( )
米粒问题
阿凡提与国王比赛下棋,国王说要是自己输了的话阿凡提想要什么他都可以拿得出来。阿凡提说那就要点米吧,棋盘一共64个小格子,在第一个格子里放1粒米,第二个格子里放2粒米,第三个格子里放4粒米,第四个格子里放8粒米,以此类推,后面每个格子里的米都是前一个格子里的2倍,一直把64个格子都放满。需要多少粒米呢?根据题意,请完善划线处的代码。
def fun(n): x = ① for i in range(n): ② return x s = ③ for i in range(64): s += fun( ④ ) print(s)
查字典
假如字典为1000页,若用二分法来翻到具体指定的页码,则横线处能正确控制循环体运行的表达式是什么?请完善横线处的代码。x=int(input("请输入要查找的页码(小于1000):")) flagleft=1 flagright=1000 n=0 while ① : mid= (flagleft+flagright)//2 n=n+1 if mid>x: ② elif mid<x: ③ else: break print('需要查找的次数为:',n)
蜗牛爬行
一只蜗牛在如下图所示的数字方格上移动,已知它只能从标号小的方格移动到标号大的相邻方格。现在请你计算:蜗牛从方格M开始爬到方格N,1<=M<N<=1000,有多少种移动路线?以下用Python编程实现,请你补全代码。
def woniu(m , n):
k = ①
a = [0] * (k+1)
a[1]= 1
a[2]= ②
for i in range(3, ③ ):
a[i]= ④
return a[k]
m = int(input())
n = int(input())
print(woniu(m,n))