資源簡介 浙江省金華市江南中學2019-2020學年高二下學期信息技術4月階段考試卷一、選擇題(本大題共7小題,共35.0分)1.(2020高二下·金華月考)若數組元素d(1)到d(8)的值依次為“86,75,58,46,20,18,12,5”,查找某Key值的VB程序段如下:n=0:i=1:j=8Key=Val(Text 1.Text)Do While i<=jm=(i+j)\2If Key=d(m) Then Exit Do ‘Exit Do表示退出循環If Key>d(m) Thenj=m-1:n=n-1Elsei=m+1:n=n+1End IfLoopLabel 1.Caption=Str(n)當輸入不同的Key值, 運行該程序段后, 在標簽Label1中顯示的不同結果共有( )A.5種 B.6種 C.7種 D.8種【答案】D【知識點】常量、變量及變量的賦值;查找算法及程序實現【解析】【解答】分析程序算法可知,查找某Key值主要通過對分查找算法,變量n用于記錄查找過程中中間值指針在第一次定位后的偏移情況,左移一次n-1,右移一次則n+1,則依次查找數列中每一個元素的偏移累計分別為-2、-1、0、0、0、1、2、3,另外若查找key值大于86或小于5,則分別偏移累計為-3和4,當輸入不同的Key值,運行該程序段后,在標簽Label1中顯示的不同結果共有8種輸出結果。故答案選D。【分析】本題考查的是對VB程序的分析理解,重點是掌握對分查找的算法思想。二分查找的基本思想是將n個元素分成大致相等的兩部分,取a[n/2]與x做比較,如果x=a[n/2],則找到x,算法中止;如果x<a[n/2],則只要在數組a的左半部分繼續搜索x,如果x>a[n/2],則只要在數組a的右半部搜索x。2.(2020高二下·金華月考)某對分查找算法的VB程序段如下:key=Val(Text 1.Text)Text 2.Text=“”flag=Truei=1:j=8Do While i<=j And flag=Truem=(i+j)\2If key=a(m) Thenflag=FalseElseIf key>a(m) Theni=m+1Elsej=m-1End IfText 2.Text=Text 2.Text+Str(m)Loop數組元素a(1)到a(8)的值依次為“1,3,5,8,10,13,16,21”,在文本框Text 1中輸入7,執行該程序段,下列說法正確的是( )A.Flag的值為FalseB.文本框Text 2中顯示的內容為4 2 3C.i的值為3D.j的值為4【答案】B【知識點】常量、變量及變量的賦值;查找算法及程序實現【解析】【解答】分析程序代碼,按對分査找算法思想,只有當找到目標值時,Flag的值才置為False,而題中查找數“7”不在數列中,因而不會找到,A錯誤。文本框Text2中顯示的內容為各次的中間值m,根據題意,第一次查找i=1,j=8,m=4;第二次查找i=1,j=3,m=2;第三次查找i=3,j=3,m=3,最后i=i+1=4,所以最終文本框Text2中顯示的內容為4 2 3,B選項正確,CD選項錯誤。故答案選B。【分析】本題考查對對分查找算法的理解和運用。對分查找的基本思想是將n個元素分成大致相等的兩部分,取a[n/2]與x做比較,如果x=a[n/2],則找到x,算法中止;如果x<a[n/2],則只要在數組a的左半部分繼續搜索x,如果x>a[n/2],則只要在數組a的右半部搜索x。3.(2020高二下·金華月考)下列VB程序段是選擇排序程序的主要部分。其中虛線框內代碼用于尋找數據元素d(i)到d(n)的最小值。……For i=1 To n-1k=i For j=i+1 To n If d(j) If i<>k Then kt=d(i): d(i) =d(k): d(k) =ktNext i……框內代碼運行結束時,保存最小值的數組元素一定是( )A.d(n) B.d(j) C.d(i) D.d(k)【答案】D【知識點】常量、變量及變量的賦值;排序算法及程序實現【解析】【解答】題目的思想方法是先假設數組的第i項是最小的(第i遍排序),因此k記為i,然后把從第i+1項開始的所有數組元素跟d(k)進行比較,如果比d(k)小,則用k記錄元素的下標。這樣循環結束后,變量k中存儲的就是數組中第i項至第n項的最小元素的下標,d(k)就是第i項至第n項中的最小元素。故答案選D。【分析】本題主要考查的是對選擇排序及代碼的理解。本題關鍵是尋找最小值或最大值。變量k記錄當前找到的最小值的位置,即數組元素的下標,則d(k)就是當前找到的最小的數組元素。4.(2020高二下·金華月考)以下程序段對數組a中的6個數據a(1)到a(6)進行加工。Dim flag As Booleani=1: flag=TrueDo While i<= 5 And flag=Trueflag=FalseFor j=6 To i+1 Step -1If a(j) k=a(i):a(i)=a(j-1):a(j-1)=kflag=TrueEnd IfNext ji=i+1Loop下列數據序列中,在加工過程中劃線處語句執行次數最多的是( )A.24,29,31,20,15,10 B.10,15,20,24,29,31C.29,10,31,15,20,24 D.31,29,24,20,15,10【答案】D【知識點】常量、變量及變量的賦值;排序算法及程序實現【解析】【解答】根據題意:這個程序是用冒泡法將數組中的數進行由小到大的順序排列。在數組中從第1個數到最后一個數的大小放置正好與所要求的順序相反時,要交換的次數是最多的,D選項恰好是從大到小的排列,這樣交換的次數會最多。故答案選D。【分析】本題考查的是VB程序中冒泡排序的程序。這是冒泡法數據排序的程序,從數組最后一個數開始檢查,當后面的數小于前面的數時就交換兩個數的位置,直到所有的數中都是后面的數大于前面的數,不在交換,代表排序完成,最后所有的數都由小到大排列。5.(2020高二下·金華月考)利用選擇排序對一組原始數據:us,our,my,your,his進行降序排序,第二遍排序結束后的數據序列為( )A.us,our,my,his,your B.your,us,my,our,hisC.your,our,my,us,his D.his,us,our,my,your【答案】B【知識點】排序算法及程序實現【解析】【解答】題中要求降序排序,所以第一遍先在所有單詞中找到字典序中排最后的單詞“your”,將它與“us”交換位置,得到“your,our,my,us,his”。第二遍再在余下的單詞中找出按字典序排最后的單詞“us”,將它與“our”交換位置,得到“your,us,my,our,his”。故答案選B。【分析】本題考查的是排序算法的運算過程。6.(2020高二下·金華月考)在VB中,若a是一個整型數組,a(1)、……、a(4)分別為130、45、278、59,則執行下列程序段后,數組a中各元素的值為( )For i= 1 To 3For j=i+1 To 4If a(i) >a(j) Thena(0)=a(i)a(i)=a(j)a(j)=a(0)End IfNext jNext iA.45 59 130 278 B.130 278 45 59C.278 130 59 45 D.59 45 278 130【答案】A【知識點】常量、變量及變量的賦值;排序算法及程序實現7.(2020高二下·金華月考)有如下VB程序段:For i= 1 To 3j=i+1Do While j<= 4If a(i) t=a(i):a(i)=a(j):a(j)=tEnd Ifj=j+1LoopNext i數組元素a(1)到a(4)的數據依次為“33,6,14,17”,程序運行過程中,語句“t=a(i):a(i)=a(j):a(j)=t”被執行的次數為( )A.1 B.2 C.3 D.4【答案】C【知識點】排序算法及程序實現【解析】【解答】依據題干中代碼可知,該排序下一個元素比上一個元素小,就進行交換。進行三次以后,下一個元素就不會比上一個小。故答案選C。【分析】本題考查的是冒泡排序的改進算法,它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來;走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。二、非選擇題(本大題共1小題,每空5分,共15.0分)8.(2020高二下·金華月考)n個數從小到大選擇排序需要經過n-1遍加工,每遍加工從未排序的數據元素中找出最小的元素與當前元素進行交換。小天同學學習了選擇排序算法和函數的知識后,編寫了一個VB程序,功能如下:運行程序時首先在列表框List 1中顯示10個大于10且小于等于99的隨機自然數,單擊“排序”按鈕Command 1后,在列表框List 2中顯示這些數據按從小到大排序后的結果,運行結果如圖所示。請在劃線處填入合適代碼。Const n= 10Dima(1 To n) As Integer ‘定義數組aPrivate SubForm_Load()RandomizeFor i=1 To n '產生n個隨機自然數,并依次存放在數組a中 List 1.Add ItemS tr(a(i))Next iEnd SubFunction Find Min(x As Integer) '尋找當前需要交換的數組元素下標Dim k As Integer, j As Integerk=xFor j=x+1Ton Next jFind Min=kEnd FunctionPrivate Sub Command 1_Click()Dim i As Integer, k As Integer, t As IntegerFor i= 1 To 9 If k<>i Thent=a(i):a(i)=a(k):a(k)=tEnd IfNext iFor i=1 To nList 2.Add Item Str(a(i))Next iEnd Sub【答案】a(i)=Int(Rnd*89)+11;If a(j)< a(k)Then k=j;k=FindMin(i)【知識點】常量、變量及變量的賦值;排序算法及程序實現1 / 1浙江省金華市江南中學2019-2020學年高二下學期信息技術4月階段考試卷一、選擇題(本大題共7小題,共35.0分)1.(2020高二下·金華月考)若數組元素d(1)到d(8)的值依次為“86,75,58,46,20,18,12,5”,查找某Key值的VB程序段如下:n=0:i=1:j=8Key=Val(Text 1.Text)Do While i<=jm=(i+j)\2If Key=d(m) Then Exit Do ‘Exit Do表示退出循環If Key>d(m) Thenj=m-1:n=n-1Elsei=m+1:n=n+1End IfLoopLabel 1.Caption=Str(n)當輸入不同的Key值, 運行該程序段后, 在標簽Label1中顯示的不同結果共有( )A.5種 B.6種 C.7種 D.8種2.(2020高二下·金華月考)某對分查找算法的VB程序段如下:key=Val(Text 1.Text)Text 2.Text=“”flag=Truei=1:j=8Do While i<=j And flag=Truem=(i+j)\2If key=a(m) Thenflag=FalseElseIf key>a(m) Theni=m+1Elsej=m-1End IfText 2.Text=Text 2.Text+Str(m)Loop數組元素a(1)到a(8)的值依次為“1,3,5,8,10,13,16,21”,在文本框Text 1中輸入7,執行該程序段,下列說法正確的是( )A.Flag的值為FalseB.文本框Text 2中顯示的內容為4 2 3C.i的值為3D.j的值為43.(2020高二下·金華月考)下列VB程序段是選擇排序程序的主要部分。其中虛線框內代碼用于尋找數據元素d(i)到d(n)的最小值。……For i=1 To n-1k=i For j=i+1 To n If d(j) If i<>k Then kt=d(i): d(i) =d(k): d(k) =ktNext i……框內代碼運行結束時,保存最小值的數組元素一定是( )A.d(n) B.d(j) C.d(i) D.d(k)4.(2020高二下·金華月考)以下程序段對數組a中的6個數據a(1)到a(6)進行加工。Dim flag As Booleani=1: flag=TrueDo While i<= 5 And flag=Trueflag=FalseFor j=6 To i+1 Step -1If a(j) k=a(i):a(i)=a(j-1):a(j-1)=kflag=TrueEnd IfNext ji=i+1Loop下列數據序列中,在加工過程中劃線處語句執行次數最多的是( )A.24,29,31,20,15,10 B.10,15,20,24,29,31C.29,10,31,15,20,24 D.31,29,24,20,15,105.(2020高二下·金華月考)利用選擇排序對一組原始數據:us,our,my,your,his進行降序排序,第二遍排序結束后的數據序列為( )A.us,our,my,his,your B.your,us,my,our,hisC.your,our,my,us,his D.his,us,our,my,your6.(2020高二下·金華月考)在VB中,若a是一個整型數組,a(1)、……、a(4)分別為130、45、278、59,則執行下列程序段后,數組a中各元素的值為( )For i= 1 To 3For j=i+1 To 4If a(i) >a(j) Thena(0)=a(i)a(i)=a(j)a(j)=a(0)End IfNext jNext iA.45 59 130 278 B.130 278 45 59C.278 130 59 45 D.59 45 278 1307.(2020高二下·金華月考)有如下VB程序段:For i= 1 To 3j=i+1Do While j<= 4If a(i) t=a(i):a(i)=a(j):a(j)=tEnd Ifj=j+1LoopNext i數組元素a(1)到a(4)的數據依次為“33,6,14,17”,程序運行過程中,語句“t=a(i):a(i)=a(j):a(j)=t”被執行的次數為( )A.1 B.2 C.3 D.4二、非選擇題(本大題共1小題,每空5分,共15.0分)8.(2020高二下·金華月考)n個數從小到大選擇排序需要經過n-1遍加工,每遍加工從未排序的數據元素中找出最小的元素與當前元素進行交換。小天同學學習了選擇排序算法和函數的知識后,編寫了一個VB程序,功能如下:運行程序時首先在列表框List 1中顯示10個大于10且小于等于99的隨機自然數,單擊“排序”按鈕Command 1后,在列表框List 2中顯示這些數據按從小到大排序后的結果,運行結果如圖所示。請在劃線處填入合適代碼。Const n= 10Dima(1 To n) As Integer ‘定義數組aPrivate SubForm_Load()RandomizeFor i=1 To n '產生n個隨機自然數,并依次存放在數組a中 List 1.Add ItemS tr(a(i))Next iEnd SubFunction Find Min(x As Integer) '尋找當前需要交換的數組元素下標Dim k As Integer, j As Integerk=xFor j=x+1Ton Next jFind Min=kEnd FunctionPrivate Sub Command 1_Click()Dim i As Integer, k As Integer, t As IntegerFor i= 1 To 9 If k<>i Thent=a(i):a(i)=a(k):a(k)=tEnd IfNext iFor i=1 To nList 2.Add Item Str(a(i))Next iEnd Sub答案解析部分1.【答案】D【知識點】常量、變量及變量的賦值;查找算法及程序實現【解析】【解答】分析程序算法可知,查找某Key值主要通過對分查找算法,變量n用于記錄查找過程中中間值指針在第一次定位后的偏移情況,左移一次n-1,右移一次則n+1,則依次查找數列中每一個元素的偏移累計分別為-2、-1、0、0、0、1、2、3,另外若查找key值大于86或小于5,則分別偏移累計為-3和4,當輸入不同的Key值,運行該程序段后,在標簽Label1中顯示的不同結果共有8種輸出結果。故答案選D。【分析】本題考查的是對VB程序的分析理解,重點是掌握對分查找的算法思想。二分查找的基本思想是將n個元素分成大致相等的兩部分,取a[n/2]與x做比較,如果x=a[n/2],則找到x,算法中止;如果x<a[n/2],則只要在數組a的左半部分繼續搜索x,如果x>a[n/2],則只要在數組a的右半部搜索x。2.【答案】B【知識點】常量、變量及變量的賦值;查找算法及程序實現【解析】【解答】分析程序代碼,按對分査找算法思想,只有當找到目標值時,Flag的值才置為False,而題中查找數“7”不在數列中,因而不會找到,A錯誤。文本框Text2中顯示的內容為各次的中間值m,根據題意,第一次查找i=1,j=8,m=4;第二次查找i=1,j=3,m=2;第三次查找i=3,j=3,m=3,最后i=i+1=4,所以最終文本框Text2中顯示的內容為4 2 3,B選項正確,CD選項錯誤。故答案選B。【分析】本題考查對對分查找算法的理解和運用。對分查找的基本思想是將n個元素分成大致相等的兩部分,取a[n/2]與x做比較,如果x=a[n/2],則找到x,算法中止;如果x<a[n/2],則只要在數組a的左半部分繼續搜索x,如果x>a[n/2],則只要在數組a的右半部搜索x。3.【答案】D【知識點】常量、變量及變量的賦值;排序算法及程序實現【解析】【解答】題目的思想方法是先假設數組的第i項是最小的(第i遍排序),因此k記為i,然后把從第i+1項開始的所有數組元素跟d(k)進行比較,如果比d(k)小,則用k記錄元素的下標。這樣循環結束后,變量k中存儲的就是數組中第i項至第n項的最小元素的下標,d(k)就是第i項至第n項中的最小元素。故答案選D。【分析】本題主要考查的是對選擇排序及代碼的理解。本題關鍵是尋找最小值或最大值。變量k記錄當前找到的最小值的位置,即數組元素的下標,則d(k)就是當前找到的最小的數組元素。4.【答案】D【知識點】常量、變量及變量的賦值;排序算法及程序實現【解析】【解答】根據題意:這個程序是用冒泡法將數組中的數進行由小到大的順序排列。在數組中從第1個數到最后一個數的大小放置正好與所要求的順序相反時,要交換的次數是最多的,D選項恰好是從大到小的排列,這樣交換的次數會最多。故答案選D。【分析】本題考查的是VB程序中冒泡排序的程序。這是冒泡法數據排序的程序,從數組最后一個數開始檢查,當后面的數小于前面的數時就交換兩個數的位置,直到所有的數中都是后面的數大于前面的數,不在交換,代表排序完成,最后所有的數都由小到大排列。5.【答案】B【知識點】排序算法及程序實現【解析】【解答】題中要求降序排序,所以第一遍先在所有單詞中找到字典序中排最后的單詞“your”,將它與“us”交換位置,得到“your,our,my,us,his”。第二遍再在余下的單詞中找出按字典序排最后的單詞“us”,將它與“our”交換位置,得到“your,us,my,our,his”。故答案選B。【分析】本題考查的是排序算法的運算過程。6.【答案】A【知識點】常量、變量及變量的賦值;排序算法及程序實現7.【答案】C【知識點】排序算法及程序實現【解析】【解答】依據題干中代碼可知,該排序下一個元素比上一個元素小,就進行交換。進行三次以后,下一個元素就不會比上一個小。故答案選C。【分析】本題考查的是冒泡排序的改進算法,它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來;走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。8.【答案】a(i)=Int(Rnd*89)+11;If a(j)< a(k)Then k=j;k=FindMin(i)【知識點】常量、變量及變量的賦值;排序算法及程序實現1 / 1 展開更多...... 收起↑ 資源列表 浙江省金華市江南中學2019-2020學年高二下學期信息技術4月階段考試卷(學生版).docx 浙江省金華市江南中學2019-2020學年高二下學期信息技術4月階段考試卷(教師版).docx 縮略圖、資源來源于二一教育資源庫