资源简介 数据结构大单元——迭代和递归基础练习班级 姓名1.有如下python程序:def count(a,i):for j in range(i+1,len(a)):if a[j]return j-ielse:return len(a)-ia=list(map(int,input().split())) #将输入的字符串按照空格符进行分割后转换为整型列表b=[1]*len(a)for i in range(len(a)-1):b[i]=count(a,i)运行该程序,若输入数据为‘1 2 2 4 7 6’,则b[1]的值为( )A.1 B.4 C.3 D.2.有如下Python 程序段:def f(x):if x==1:return 1else:return x*f(x-1)s=0for i in range(1,6):s+=f(i)执行该程序段后,变量s的值b是( )A.33 B.34 C.154 D.153有如下python程序段:s="python"def f(t):if t == 0:return s[0]return s[t] + f(t - 1)print(f(len(s)-1))运行该段代码后,程序的输出结果为( )A.python B.nohtyp C.pytho D.nohty4. 某Python程序段如下:def doit(x):if x>=6:ans=1else:ans=3*doit(x+1)+2*doit(x+2)return ansprint(doit(3))程序运行后,输出的结果为( )17 B. 21 C. 61 D. 625.有如下 Python 程序段:s="22py4th18" ; sum=t=0for i in range(len(s)):if "0"<=s[i]<="9":t=t*10+int(s[i])else:sum+=tt=0print(sum)执行该程序段后,变量 sum 的值为( )A.22 B.26 C.40 D.44小明想要在数字串s中寻找连续数字之和为k的子串,若有多个子串符合,则输出第一个子串。例如:s="20220520",k=7,则符合要求的子串为"205"。实现该功能的部分python代码如下:i=0 ; j=0 ; sum=0for j in range(len(s)):sum+=int(s[j])while sum>k:c=s[i]①i+=1if sum==k:print("符合要求的子串为:", ② )break划线①②处的语句是( )A.①sum=sum+int(c) ②s[i:j+1] B.①sum=sum-int(c) ②s[i-1:j+1]C.①sum=sum+int(c) ②s[i:j] D.①sum=sum-int(c) ②s[i:j+1]7. 使用Nilakantha级数可用于计算Pi(π)的无穷级数,它的计算机结果比莱布尼茨公式更快地接近 Pi(π)的近似值。有下列代码,通过前n项的计算,求Pi近似值:s=0 ; n=0 ; i=0n=int(input("请输入 n 的值: "))for i in range(2,2*n+1,① ):s=s+②pi=3+s*4print(pi)划线部分代码正确的是( )①1 ② (-1)**(i//2+1)/(i*(i+1)*(i+2)) B.①2 ② (-1)**(i//2+1)/(i*(i+1)*(i+2))C.①1 ② (-1)**(i//2)/(i*(i+1)*(i+2)) D.①2 ② (-1)**(i//2)/(i*(i+1)*(i+2))8. 有表达式s=2/1+3/2+5/3+8/5+ ,现根据输入的表达式项数,求s的值,Python程序段如下:def sum(n):s=0 ; x=2 ; y=1for i in range(0,n):return sn=int(input("请输入表达式的项数:"))print(sum(n))上述程序中方框处可选语句为: ①x=x+y ②y=x ③s=s+x/y ④y=x-y下列选项中,代码顺序正确的是( )A.③②① B.③①② C. ③①④ D. ③④①9.部分算法流程图,如图所示,当12+22+……+i2>=1500时,求i的最小值,以下选项中,图中①、 ②和③处填入不正确的是( )10.某算法的部分流程图如下图所示,执行这部分流程后,下列说法不正确的是( )A. 语句“s<100?”共执行了5次B. 交换“s←s+a*a”和“a←a+2”,执行结果相同C. 循环体共执行了4次D. 变量 a 的值为1011.某算法的流程图如图所示,输入进制 k(k>=2 且k<=16)以及十进制数 n 后,可输出为n 对应的 k进制的数,该程序运行后,下列说法正确的是( )A. 若输入 k=16,n=93,则输出的结果为513B. 若输入 k=8,n=35,共循环了3次C. 流程图中 s←chr(r+55)+s 也可以改成 s←s+chr(r+55),不影响转换结果D. 流程图中 s←chr(r+55)+s 只有当 k>10才会被执行12. 阅读下列材料,回答第12至13题。 某手机APP程序为了增加程序热度,采用“签到换积分”的形式来吸引用户,用户的签到记录由“0” 和“1”的字符串组成,其中字符“0”表示未签到,字符“1”表示签到,积分计算规则如下:签到 1 天 得 1 分,若连续签到 k 天,则 k 天所得分数为 1+2+…+k-1+k分;未签到得0分。例如:实现上述功能的流程图如第 8 题图所示,则图中①、②标记处应填入的内容分别是( )A.t←1 sum←t B.t←0 sum←t C.t←1 sum←sum+t D.t←0 sum←sum+t13.某用户的签到记录为“1011000111100111111”,执行上述流程后,输出结果为( )A. 10 B. 13 C. 35 D. 47答案1——5:BDBCB6——10:DBABB11——13:DDC 展开更多...... 收起↑ 资源预览