試卷征集
          加入會員
          操作視頻
          當前位置: 試卷中心 > 試卷詳情

          浙教版(2019)選修1《3.2 隊列-3.3 棧》2022年同步練習卷

          發布:2024/4/20 14:35:0

          一、選擇題

          • 1.下列關于數據結構的說法,正確的是(  )

            組卷:28引用:3難度:0.5
          • 2.用python列表模擬隊列,并設置隊首指針head指向隊首元素,隊尾指針tail指向隊尾元素的下一個位置,則當head=3,tail=6時,隊列中元素的個數為(  )

            組卷:3引用:3難度:0.5
          • 3.用python列表模擬循環隊列,并設置隊首指針head指向隊首元素,隊尾指針指向隊尾元素的下一個位置,則當列表長度n=10,head=6,tail=3時,隊列中元素的個數為( ?。?/h2>

            組卷:3引用:3難度:0.3

          二、非選擇題

          • 8.校學生會要從兩個候選人 A 和 B 中選舉一個會長,每個候選人都有自己的支持方?,F在以一個基于輪為過程來進行選舉,在每一輪選舉中,當前成員可以禁止另一位成員的選舉權,即讓另一位成員在這一輪和隨后的幾輪中都喪失選舉權。在選舉過程中一旦有選舉權的成員都來自同一個陣營,則該陣營勝利。
            字母 A 和 B 分別代表兩位候選人,輸入一個字符串代表每個成員的陣營,例如輸入“ABB”,則輸出結果為 B,即候選人 B 為會長。
            說明:第一輪中,第一個成員(A)可以讓第二個成員(B)失去選舉權,第二個成員(B)會被跳過因為他的選舉權被禁止,第三個成員(B)可以讓第一個成員(A)失去選舉權,因此在第二輪只剩下第三個成員(B)擁有選舉權,則輸出結果為 B,即候選人 B 為會長。
            (1)若輸入“ABABB”,則會長為
             

            (2)實現上述功能的 Python 程序如下,請在橫線處填入合適的代碼。
            s=input(“請輸入投票字符串:“)
            queA=[“”]*100;queB=[“”]*100
            headA=headB=0
            tailA=tailB=0
            n=len(s)
            for i in range(n):
            if ①
             

            queA[tailA]=i
            tailA+=1
            else:
            queB[tailB]=i
            tailB+=1
            while②
             

            if queA[headA]<queB[headB]:
            queA[tailA]=queA[headA]+n
            tailA+=1
            else:
            queB[tailB]=queB[headB]+n
            tailB+=1
            headA+=1;headB+=1
            if ③
             

            print(“B“)
            else:
            print(“A“)

            組卷:2難度:0.3
          • 9.小趙同學在某游戲平臺中獲得虛擬的食物、裝備、材料等物品,他們分別有不同的價值,現游戲平臺有兌換機制,即可用多個不同物品換取一個等值的物品(每個物品只能取一樣),如圖1為小趙同學已獲得的物品。

            如要換取游戲中的物品“破天錘”,需要 35 個金幣,有多種的置換方式,為方便計算以節省時間,小趙同學編寫了如下程序,運行界面如圖2,運行代碼如下,請在橫線處填人合適的代碼。
            def exchange(t,pricelist):
            n=len(pricelist)
            stack=[]
            i=0
            num=0
            while①
             

            while t>0 and i<n:
            if t>=int(pricelist[i]):
            stack.jye.ai(i)
             

            i+=1
            if t==0:
            print(“取序號為“,stack,“的物品“)
            num+=1
            if③
             

            i=stack.jye.ai
             

            t+=int(pricelist[i])
             

            if num==0:
            print(“無方案“)
            m=int(input(“目標置換物品的價值:“))
            price=input(“已獲得物品價值依次是:“)
            p=price.jye.ai(“,“)#將輸入的內容以“,”作分隔,并轉換為列表
            print(“依次拿取物品序號的方案有:“)
            exchange(m,p)

            組卷:1引用:1難度:0.3
          APP開發者:深圳市菁優智慧教育股份有限公司| 應用名稱:菁優網 | 應用版本:5.0.7 |隱私協議|第三方SDK|用戶服務條款
          本網部分資源來源于會員上傳,除本網組織的資源外,版權歸原作者所有,如有侵犯版權,請立刻和本網聯系并提供證據,本網將在三個工作日內改正