資源簡介 2022年10月17日高中信息技術作業學校:___________姓名:___________班級:___________考號:___________一、選擇題1.若用1表示進棧操作,用0表示出棧操作,若元素的進棧順序是“q,w,e,r,t”,為了得到出棧序列“ewrtq”,則應進行的操作序列為( )A.1101010100 B.1110010100 C.1110011000 D.11101001002.以下有關棧和隊列的說法正確的是( )A.棧和隊列都是先進后出 B.棧和隊列都是先進先出C.隊列元素前面只有一個,后面有多個 D.棧和隊列只允許在端點插入和刪除數據3.有如下程序:wz=[0,1,2,3,4,5,6]start=0qu=[0]*len(wz)wm="abcdefg"h=0;t=0while len(wz)>0: for i in range(2): start=(start+1)%len(wz) qu[t]=wz[start] t=t+1 wz.pop(start)mm=""while h mm=mm+wm[qu[h]] h=h+1print(mm)程序運行后,顯示的結果為( )A.bdfaecg B.bdfaceg C.cfbgead D.cfbeadg4.在某餐廳點餐系統中, 利用隊列來儲存當前正在排隊顧客的編號,head 指向隊首元素,tail 指向隊尾元素的下一個位置, 若 tail=head+3,則現在排隊的顧客數量為( )A.2 B.3 C.4 D.55.有如下程序段:bt=["A","B","C","D",None,"E","F"]result=[]stack=[]i=0while stack or (i if i < len(bt) and bt[i] is not None: stack.append(i) i=2*i+1 else: i=stack.pop() result.append(bt[i]) i=2*i+2print("-".join(result))則程序運行后輸出的結果為( )A.A-B-D-C-E-F B.D-B-E-F-C-A C.D-B-A-E-C-F D.A-B-C-D-E-F6.一個棧的入棧序列為“6、9、5、7、8、3”,其出棧序列不可能是( )A.3、8、7、5、9、6 B.7、5、9、8、6、3 C.6、5、7、9、3、8 D.5、9、6、3、7、87.某線性表采用順序存儲結構,每個元素占5個存儲單元,首地址為1000,則第8個元素的存儲地址為( )A.1440 B.1444 C.1035 D.10388.下列關于數據結構的說法正確的是( )A.“撤銷”操作,是“隊列”的應用B.排隊就餐, 是“棧”的應用C.“鏈表”存儲相鄰節點不需要連續空間D.“樹”中每個節點的前后都只有一個相鄰節點9.某隊列的數據結構如圖所示,head 和tail 分別為隊列的頭、尾指針。現對該隊列進行 以下操作:①隊首元素出隊輸出②隊首元素出隊再入隊,重復①②操作直到隊列為空。que L U C K Y0 1 2 3 4 5 …若隊列數據元素為“LUCKY”,則輸出順序是( )A.LYUKC B.LCYUK C.LCYKU D.LUCKY10.一個序列的入棧順序為 a,b,c,d,e,則該序列的出棧順序不可能為( )A.b,a,d,c,e B.d,c,b,a,e C.d,c,e,a,b D.c,b,a,e,d11.隊列的特點( )A.先進先出 B.先進后出 C.插入操作只能在隊頭進行 D.刪除操作只能在隊尾進行12.下列有關棧和隊列說法,正確的是( )A.棧的特點是先進先出,隊列的特點是先進后出 B.棧只允在一端進行插入,在另一端進行刪除C.隊列限定僅能在一端進行插入和刪除操作 D.棧和隊列均為操作受限的線性表13.一個棧的初始狀態為空,若它的輸入序列為a、b、c、d,則它的輸出序列為( )A.a、b、c、d B.d、c、b、aC.b、a、c、d D.d、b、a、c14.在日常幻燈片的放映中,可以通過超級鏈接方式進行幻燈片之間的任意跳轉。和這種跳轉方式相似的數據結構是( )A.數 B.鏈表 C.隊列 D.棧15.用棧的數據結構編寫進制轉換中的“除二取余法”的程序段如下:st=[-1]*100top=-1n=int(input("請輸入一個十進制數: "))while n>0:while top!=-1:print(st[top],end="")top-=1方框處的代碼由以下四部分組成:①n=n//2 ②top+=1 ③x=n%2 ④st[top]=x下列選項中,代碼順序正確的是( )A.③④②① B.③①②④ C.①②③④ D.①③④②試卷第1頁,共3頁試卷第1頁,共3頁參考答案:1.B【詳解】本題主要考查棧的操作。為了得到出棧序列“ewrtq”,即e先出棧,按照進棧順序,則qwe先進棧,對應111,接著是ew出棧,對應00,后面依次類推可得到應進行的操作序列為1110010100,故本題選B選項。2.A【詳解】本題主要考查棧和隊列數據結構。棧和隊列都是先進后出,隊頭只允許刪除元素,隊尾只允許插入元素,而棧只允許在棧頂插入和刪除元素,故本題選A選項。3.C【詳解】本題主要考查Python程序的執行。第一次循環后start=2,qu[0]=wz[start]=2;第二至第七次循環后,qu[1]=5,qu[2]=1,qu[3]=6,qu[4]=4,qu[5]=0,qu[6]=3。h初值為0,執行完最后一個while循環,即根據列表qu的值從wm中取對應的元素拼接到mm中,mm=mm+wm[qu[h]],程序運行后,顯示的結果為mm="cfbgead",故本題選C選項。4.B【詳解】本題主要考查隊列數據結構。head 指向隊首元素,tail 指向隊尾元素的下一個位置,則隊尾元素的位置是tail-1,若 tail=head+3,則現在排隊的顧客數量為tail-1-head+1=head+3-1-head+1=3,故本題選B選項。5.C【詳解】本題主要考查Python中stack()用法。分析程序可知,前3輪循環,即當i=0、1、3時均滿足if判斷條件,此時stack=[0,1,3],接下來i=2*i+1=7不滿足if判斷條件,執行else部分, i=stack.pop()=3,result.append(bt[i])=["D"],i=2*i+2=8,繼續執行else,i=stack.pop()=1,result.append(bt[i])=["D","B"],i=2*i+2=4,不滿足if判斷條件,繼續執行else部分,i=stack.pop()=0,result.append(bt[i])=["D","B","A"],此時結合選項可知程序運行后輸出的結果為D-B-A-E-C-F,選C選項。6.D【詳解】本題主要考查棧數據結構。選項D中,先入棧6、9、5,再依次出棧,此時再入棧7、8、3,則出棧順序只能是3、8、7,故出棧序列不可能是5、9、6、3、7、8,故本題選D選項。7.C【詳解】本題考查的是順序存儲。順序存儲結構,每個元素占5個存儲單元,首地址為1000。用表格簡單表示其存儲地址,見下表,第8個元素的首地址為1035。故選項C正確。8.C【詳解】本題主要考查數據結構的描述。“撤銷”操作,是“棧”的應用;排隊就餐, 是“隊列”的應用;“鏈表”存儲相鄰節點不需要連續空間;“樹”結構不一定是二叉樹,也不一定只有一個相鄰節點,故本題選C選項。9.C【詳解】本題主要考查隊列數據結構。根據題意先執行①輸出L,接著執行②,U為隊首出隊加入隊尾,字符串為CKYU;再次執行①輸出C,接著執行②,K為隊首出隊加入隊尾,字符串為YUK;第三次執行①輸出Y,接著執行②,U為隊首出隊加入隊尾,字符串為KU;第四次執行①輸出K,接著執行②,U為隊首出隊加入隊尾,字符串為U;第五次執行①輸出U。因此輸出字符串為LCYKU,故本題選C選項。10.C【詳解】本題主要考查棧數據結構。選項C中先入棧a、b、c、d,接著出棧d、c,再入棧e并出棧,此時只能先出棧b,不可能先出棧a再出棧b,故本題選C選項。11.A【詳解】本題主要考查隊列數據結構。隊列的特點是先進先出,插入操作只能在隊尾進行,刪除操作只能在隊頭進行,故本題選A選項。12.D【詳解】本題主要考查棧和隊列的描述。棧的特點是先進后出,隊列的特點是先進先出;隊列只允在一端進行插入,在另一端進行刪除; 棧限定僅能在一端進行插入和刪除操作; 棧和隊列均為操作受限的線性表,故本題選D選項。13.B【詳解】本題考查的棧的操作。堆棧是一個后進先出的數據結構,若它的輸入序列為a、b、c、d,則它的輸出序列為d、c、b、a。故本題應選B。14.B【詳解】本題考查的是對數據結構的理解。鏈表是一種數據元素按照鏈式存儲結構進行存儲的數據結構,這種存儲結構具有在物理上存在非連續的特點。鏈表由一系列數據結點構成,每個數據結點包括數據域和指針域兩部分。其中,指針域保存了數據結構中下一個元素存放的地址。鏈表結構中數據元素的邏輯順序是通過鏈表中的指針鏈接次序來實現的。故選項B正確。15.B【詳解】本題主要考查棧及Python程序調試。根據題意“除二取余法”可知先要執行取余,然后才能整除2更新n的值。top初值為-1標記此時棧中無元素,每遞增一個元素,top先遞增1,再將x保存到棧中,即st[top]=x,故代碼順序正確的是③①②④,故本題選B選項。答案第1頁,共2頁答案第1頁,共2頁 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫