資源簡介 數據結構大單元——迭代和遞歸基礎練習班級 姓名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 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫