資源簡介 數據結構大單元——對分查找鞏固練習班級 姓名1.某二分查找算法的python程序段如下:import randoma = [10,20,30,40,50,60,70,80]key = random.choice(a)i , j = 0,len(a)-1 ; s = ""while i<=j:m = (i+j)//2if key == a[m]:s = s+"M" ; breakelif key < a[m]:j = m-1 ; s = s+"L"else:i = m+1 ; s = s+"R"該段代碼執行后,s的值不可能是( )A. LLM B. LRM C. RRRM D. RRLM2.某算法的python程序段如下:from random import randinta=[23,21,19,18,16,15,14,11]key=randint(0,3)*2+13i , j , c=0 , len(a)-1 , 0while i<=j:m=(i+j+1)//2if a[m]>=key:i=m+1else:j=m-1c+=1該程序段執行后,下列說法不正確的是( )A. i的值為j+1 B. i的值可能是8 C. j的值可能是5 D. c的值一定是33.有如下 Python 程序段:a=[10,15,32,32,45,53,53,65,77,98]k=int(input()) ; s="" ; left,right=0,len(a)-1while left<=right:m=(left+right)//2if a[m]left=m+1 ; s=s+"R"else:right=m-1 ; s=s+"L"該程序運行后,變量s的值可能是( )A. "LR" B. "LRL" C. "LRR" D. "RLR"4.有如下Python程序段:import randoma=[4,2,6,5,4,2,9,7]k=random.randint(1,10)i=0 ; j=len(a)-1 ; x=""while i<=j:m=(i+j)//2if k<=a[m]:j=m-1 ; x=x+"L"else:i=m+1 ; x=x+"R"print(x)執行該程序段后,輸出的結果不可能出現的是( )A. "LLL" B. "LRL" C. "RLR" D. "RRRR"5.某 Python 程序如下:import randoma=[58,69,78,80,83,84,90,90,95]key=random.randint(35,45)*2i=0 ; j=len(a)-1 ; s=[]while i<=j:m=(i+j)//2if key==a[m]:breakelif keyj=m-1else:i=m+1s.append(a[m])則執行該程序段后,數組s中的元素不可能為( )A. 83,90,84 B. 83,69,58 C. 83,69,78 D. 83,90,846.某 Python 程序如下:import randoma=[58,69,78,80,83,84,90,90,95]key=random.randint(35,45)*2i=0 ; j=len(a)-1 ; s=[]while i<=j:m=(i+j+1)//2 ; s.append(a[m])if key==a[m]:breakelif keyj=m-1else:i=m+1則執行該程序段后,數組s的值不可能為( )A. [83, 90, 90, 84] B.[83,78] C. [83,78,69] D. [83,90,95]7.某 Python 程序如下:import randoma=[58,69,78,80,83,84,90,90,95]key=random.randint(35,45)*2i=0 ; j=len(a)-1 ; s=[]while i<=j:m=(i+j+1)//2s.append(a[m])if keyj=m-1else:i=m+1則執行該程序段后,數組s中的元素不可能為( )A. 83,90,95 B. 83,78,80 C. 83,90,90,84 D. 83,78,69,588.有如下Python程序段:a = [99,85,74,68,53,42,34,27,20,13]key = int(input("請輸入一個整數:")) ; i , j , k , c = 0 , 9 , 0 , "N"while i <= j:m = (i + j + 1) //2 ; k = k + 1if key == a[m]:c = "Y" ; breakif key > a[m]:j = m -1else:i = m + 1print(c,k)執行該程序段后,下列說法不正確的是( )A. 若輸出 k 的值為 2,則 c 的值一定為 YB. 該程序段既能用于升序序列的查找,也能用于降序序列的查找C. 若輸入 key 的值為 74,程序執行后變量 i 和 j 的值分別為 0 和 4D. 輸入兩位任意正整數,k 的值介于 1 和 4 之間9.有如下Python程序段:a = [99,85,74,68,53,42,34,27,20,13]key = int(input("請輸入一個整數:")) ; i , j , k , c = 0 , 9 , 0 , "N"while i <= j and flag == False:m = (i + j + 1) //2 ; k = k + 1if key == a[m]:c = "Y" ; flag = Trueif key > a[m]:j = m -1else:i = m + 1print(c,k)執行該程序段后,下列說法正確的是( )A. 若輸出 k 的值為 2,則 c 的值一定為 YB. 該程序段既能用于升序序列的查找,也能用于降序序列的查找C. 若輸入 key 的值為 74,程序執行后變量 i 和 j 的值分別為 0 和 4D. 輸入兩位任意正整數,k 的值介于 1 和 3 之間答案1——5:DBBCB6——9: DDBA 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫