浙江版信息技術(shù)高考總復(fù)習(xí)專題六算法的程序?qū)崿F(xiàn)(試題部分)教學(xué)講練_第1頁(yè)
浙江版信息技術(shù)高考總復(fù)習(xí)專題六算法的程序?qū)崿F(xiàn)(試題部分)教學(xué)講練_第2頁(yè)
浙江版信息技術(shù)高考總復(fù)習(xí)專題六算法的程序?qū)崿F(xiàn)(試題部分)教學(xué)講練_第3頁(yè)
浙江版信息技術(shù)高考總復(fù)習(xí)專題六算法的程序?qū)崿F(xiàn)(試題部分)教學(xué)講練_第4頁(yè)
浙江版信息技術(shù)高考總復(fù)習(xí)專題六算法的程序?qū)崿F(xiàn)(試題部分)教學(xué)講練_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、信息技術(shù)專項(xiàng)復(fù)習(xí)PAGE PAGE 65成功只是一步之遙!專題六算法的程序?qū)崿F(xiàn)探考情悟真題【考情探究】考點(diǎn)考試內(nèi)容考試要求5年考情預(yù)測(cè)熱度考題示例考向難度解析算法及程序?qū)崿F(xiàn)解析算法的思想方法c2016浙江4月選考,14,5分;2017浙江4月選考,14,5分;2019浙江1月學(xué)考,11,5分;2019浙江6月學(xué)考,11,5分進(jìn)制轉(zhuǎn)換、質(zhì)數(shù)問(wèn)題及其他數(shù)論問(wèn)題、數(shù)學(xué)猜想等解析算法的程序?qū)崿F(xiàn)枚舉算法及程序?qū)崿F(xiàn)枚舉算法的思想方法c2016浙江10月選考,14,5分;2017浙江11月選考,14,5分;2018浙江4月選考,14,5分;2018浙江11月選考,14,5分字符串處理問(wèn)題是考試熱點(diǎn),如在字符

2、串中利用逗號(hào)、空格、數(shù)字等特殊符號(hào),完成一些統(tǒng)計(jì)或計(jì)算功能枚舉算法的程序?qū)崿F(xiàn)排序算法及程序?qū)崿F(xiàn)冒泡排序的思想方法c2015浙江10月選考,16,4分;2016浙江4月選考,11,2分;2016浙江10月選考,16,3分;2017浙江11月選考,16,3分;2019浙江4月選考,16,3分排序算法優(yōu)化;冒泡排序變形,如雙向排序、奇偶分開(kāi)排序、素?cái)?shù)合數(shù)分開(kāi)排序、去重復(fù)數(shù)排序等冒泡排序的程序?qū)崿F(xiàn)選擇排序的思想方法c2017浙江4月選考,12,2分;2018浙江4月選考,16,3分排序變形,如雙向排序、奇偶分開(kāi)排序、素?cái)?shù)合數(shù)分開(kāi)排序等選擇排序的程序?qū)崿F(xiàn)查找算法及程序?qū)崿F(xiàn)順序查找的思想方法c2017浙江

3、4月選考,16,3分順序查找比較簡(jiǎn)單,一般不單獨(dú)考,會(huì)結(jié)合其他知識(shí)點(diǎn),比如在數(shù)列中插入數(shù)、刪除數(shù)列中的重復(fù)數(shù)、查找替換等順序查找的程序?qū)崿F(xiàn)查找算法及程序?qū)崿F(xiàn)對(duì)分查找的思想方法c2015浙江10月選考,11,2分;2016浙江4月選考,12,2分;2016浙江10月選考,12,2分;2017浙江4月選考,11,2分;2017浙江11月選考,12,2分;2018浙江4月選考,12,2分;2018浙江11月選考,16,3分;2019浙江4月選考,12,2分一類題是考查對(duì)分查找的運(yùn)用:如查找次數(shù)、查找中各個(gè)變量值的變化;另一類題是將數(shù)據(jù)源序列由單一的從小到大變成如奇偶分開(kāi)數(shù)列、循環(huán)有序數(shù)列、左右交替上

4、升序列等,此類數(shù)列往往是分成前后兩個(gè)有序數(shù)列,查找過(guò)程中,對(duì)分的主要思想不變,無(wú)非是增加了一些條件設(shè)置對(duì)分查找的程序?qū)崿F(xiàn)遞歸算法及程序?qū)崿F(xiàn)遞歸算法的思想方法b遞歸算法本質(zhì)上是自定義函數(shù)的應(yīng)用,到目前為止,未在真題中出現(xiàn)遞歸算法的程序?qū)崿F(xiàn)算法在數(shù)據(jù)管理中的應(yīng)用通過(guò)Connection對(duì)象連接數(shù)據(jù)庫(kù)a2016浙江10月選考,17,6分目前關(guān)于數(shù)據(jù)庫(kù)一種新的考法是選擇題形式,只要掌握連接數(shù)據(jù)庫(kù)并讀取數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)代碼即可。此外要學(xué)會(huì)分析數(shù)組變量中存儲(chǔ)的數(shù)據(jù)內(nèi)容和類型,并掌握數(shù)組下標(biāo)的靈活運(yùn)用通過(guò)Recordset對(duì)象讀取數(shù)據(jù)表中的數(shù)據(jù)a算法在數(shù)據(jù)管理中的應(yīng)用c分析解讀本專題主要考查幾大算法的思想方法和

5、程序?qū)崿F(xiàn),包括枚舉、解析、排序、查找、遞歸,題型有選擇題和非選擇題。選擇題為第11和12題、非選擇題為第15和16題,這幾題考查排序算法與對(duì)分查找的頻度較高,難度為中等或較難??v觀幾次真題,程序題有逐年加難的趨勢(shì)。試題中對(duì)于算法的考查不再局限于算法的基本形,而是在基本形的基礎(chǔ)上做了許多變形,比如冒泡排序的幾種變式,對(duì)分查找的變式等。還有一種變化是,在基本形的基礎(chǔ)上增加程序的功能,比如對(duì)排序算法進(jìn)行改進(jìn)從而提高排序的效率、記錄排序中數(shù)據(jù)的移動(dòng)過(guò)程,利用查找算法查找并刪除數(shù)列中的重復(fù)數(shù)據(jù)等。還有一個(gè)重要變化是,最近幾次的真題對(duì)幾個(gè)經(jīng)典算法的考查相對(duì)弱化,開(kāi)始加強(qiáng)對(duì)數(shù)組的考查。往往在選擇題最后2個(gè)題

6、中有一個(gè)是考查數(shù)組的綜合運(yùn)用,該題往往難度較大。一般選擇題中保留一題考查排序或?qū)Ψ植檎?考對(duì)分查找的概率較高。數(shù)據(jù)庫(kù)程序題一般難度不大,可能是篇幅太長(zhǎng)的緣故,大題中考數(shù)據(jù)庫(kù)的概率并不高,有很多題都是一句話帶過(guò):從數(shù)據(jù)庫(kù)中讀取了什么數(shù)據(jù)存儲(chǔ)到什么數(shù)組變量中。讀取數(shù)據(jù)并存儲(chǔ)到數(shù)組變量中后,對(duì)數(shù)組的綜合運(yùn)用相對(duì)難度大一些,要學(xué)會(huì)分析題中各數(shù)組變量的作用,分別存儲(chǔ)了什么類型的數(shù)據(jù),以及數(shù)組下標(biāo)的靈活運(yùn)用。目前數(shù)據(jù)庫(kù)可能會(huì)有一種新的考法,以選擇題的形式,考查連接數(shù)據(jù)庫(kù)和讀取數(shù)據(jù)庫(kù)的基本方法和代碼。要掌握從代碼中分析數(shù)據(jù)庫(kù)文件的名稱、數(shù)據(jù)表的名稱,以及數(shù)據(jù)表中字段的讀取方法、記錄集的移動(dòng)方法等基礎(chǔ)知識(shí)。破

7、考點(diǎn) 練考向【考點(diǎn)集訓(xùn)】考點(diǎn)一解析算法及程序?qū)崿F(xiàn)1.(2018寧波“十校聯(lián)考”,16,3分)在VB的算術(shù)運(yùn)算中,最大的實(shí)數(shù)類型Double有效位數(shù)也只有15位。為了實(shí)現(xiàn)除法運(yùn)算保留任意位數(shù),小明根據(jù)除法原理,編寫(xiě)了如下程序,功能如下:在文本框Text1中輸入被除數(shù)(正整數(shù)),在文本框Text2中輸入除數(shù)(正整數(shù)),在文本框Text3中輸入保留小數(shù)位數(shù),單擊按鈕Command1,在標(biāo)簽Label1中顯示除法運(yùn)算的商。程序運(yùn)行界面如圖所示,但加框處代碼有錯(cuò),請(qǐng)改正。Private Sub Command1_Click()Dim x, y As IntegerDim n As IntegerDim

8、s As Stringx= Val(Text1.Text): y = Val(Text2.Text)n= Val(Text3.Text)s = s + Str(x y)s = s + .k = x Mod yFor i = 1 To nx =x+k * 10(1)s=Str(x y)(2)k = x Mod yNext iLabel1.Caption = 商為: + sEnd Sub答案(1) x=k*10(2) s=s+Str(xy)2.(2018浙江十校聯(lián)盟選考適應(yīng)性考試,14,5分)編寫(xiě)“二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)”程序,實(shí)現(xiàn)如下功能:在文本框 Text1中輸入一個(gè)二進(jìn)制數(shù),單擊“轉(zhuǎn)換”按

9、鈕 Command1,將二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)并在文本框 Text2 中顯示。程序運(yùn)行界面如圖所示。(1)設(shè)計(jì)如圖所示的程序界面,至少要使用個(gè)類(填數(shù)字)。(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。Private Sub Command1_Click()Dim s1 As String, s2 As StringDim i As Integer, x As IntegerConst code = 0123456789ABCDEFs1 = Text1.Text : s2 = Do While Len(s1) Mod 4 0s1 = 0 + s1Loopx = 0: i =1D

10、o While i = Len(s1)x = x*2+Val(Mid(s1,i,1)i=i+1If Thens2 = s2 +Mid(code,x+1,1)End IfLoopText2.Text = s2End Sub(3)若文本框 Text1 中輸入的內(nèi)容為“101101”,單擊“轉(zhuǎn)換”按鈕后,文本框 Text2 中顯示的內(nèi)容是。答案(1)4(2) i Mod 4=1 或(i-1) Mod 4=0 (或其他等價(jià)答案) x=0(3)2D考點(diǎn)二枚舉算法及程序?qū)崿F(xiàn)1.(2019寧波新高考適應(yīng)性考試)得分問(wèn)題:給出一個(gè)由A和X組成的字符串,統(tǒng)計(jì)字符的得分之和。每個(gè)A的得分為已經(jīng)連續(xù)出現(xiàn)的A的個(gè)數(shù),

11、X得分為0。例如,AAXXAXXAAA的得分為1+2+0+0+1+0+0+1+2+3。現(xiàn)編寫(xiě)一個(gè)程序,功能如下:在文本框Text1中輸入字符串,單擊“統(tǒng)計(jì)”按鈕Cmd_Sta后,程序計(jì)算得分,結(jié)果顯示在Text2中。(1)Cmd_Sta對(duì)象屬于類(單選,填字母:A.Form / B.Label / C.TextBox /D.CommandButton)。(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)诔绦騽澗€處填入合適的代碼。Private Sub Cmd_Sta_Click()Dim sum As Integer, i As Integer, cnt As IntegerDim c As String

12、, sz As Stringsz = Text1.Text cnt = 0: sum = 0For i = 1 To Len(sz)If c = A Thensum = sum + cntEt = 0End IfNext iText2.Text = Str(sum)End Sub(3)運(yùn)行該程序,輸入數(shù)據(jù)如上圖所示,程序執(zhí)行到循環(huán)結(jié)束時(shí),變量cnt的值為。答案(1) D(2) c = Mid(sz,i,1) 或 c=Mid(Text1.Text,i,1) cnt = cnt + 1(3)32.珠心算是在大腦中以算盤表象作為載體,運(yùn)用珠算法則所進(jìn)行的計(jì)算。某學(xué)校的珠心算老師采用一種快速考查珠心算

13、加法能力的測(cè)驗(yàn)方法。他隨機(jī)給出一個(gè)正整數(shù)集合,集合中的數(shù)各不相同,然后要求學(xué)生回答:其中共有多少個(gè)數(shù)恰好等于集合中另外兩個(gè)(不同的)數(shù)之和?例如對(duì)于集合1,2,3,4,一共有2個(gè)數(shù)等于集合中另外兩個(gè)數(shù)之和,它們是3、4(4=3+1,3=2+1)。將上述算法編寫(xiě)成程序,其功能如下:程序運(yùn)行時(shí)產(chǎn)生n個(gè)范圍在1,100內(nèi)的不同的隨機(jī)整數(shù)存儲(chǔ)在數(shù)組a中,并在列表框List1中顯示。單擊按鈕Command1后,在標(biāo)簽Label1上輸出結(jié)果,如圖所示。(1)對(duì)于集合1,2,3,4,5,6,一共有個(gè)數(shù)等于集合中另外兩個(gè)數(shù)之和。(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適代碼。Const n=12Di

14、m a(1 To n) As IntegerDim flag(1 To 100) As BooleanPrivate Sub Form_Load()Dim i As Integer, t As IntegerFor i=1 To 100 flag(i)=FalseNext ii=1Do While i =n t=Int(Rnd * 100)+1If Not flag(t) Then List1.AddItem Str(t) flag(t)=True i=i+1 End IfLoopEnd SubPrivate Sub Command1_Click()Dim i As Integer, j As

15、 Integer, ans As Integerans=0For i=1 To n For j=i+1 To nIf a(i)+a(j) =100 Then IfThen ans=ans+1 flag(a(i)+a(j)=False End If Next jNext iLabel1.Caption=共有+Str(ans)+個(gè)數(shù)!End Sub答案(1)4(2)a(i)=tflag(a(i)+a(j)或flag(a(i)+a(j)=TrueEnd If考點(diǎn)三排序算法及程序?qū)崿F(xiàn)1.(2019金華十校第一學(xué)期調(diào)研考試,11,2分)有一個(gè)數(shù)組,采用冒泡排序,第一遍排序后的結(jié)果為3,18,5,35,8

16、,9,11,13,32,那么該數(shù)組的原始順序不可能是()A.18,5,35,8,9,11,13,32,3B.18,5,35,8,9,11,3,13,32C.18,5,35,3,8,9,11,13,32D.3,18,5,35,13,11,32,8,9答案D2.(2020屆名校協(xié)作體信息技術(shù)試題)某排序算法的VB程序段如下:k = 1For i = 1 To 2For j = 1 To 6 - 2 * iIf k * a(j) k * a(j + 2) Thent = a(j): a(j) = a(j + 2): a(j + 2) = tEnd Ifk = -kNext jNext i 數(shù)組元素a

17、(1)到a(6)的初始值依次為“15,11,58,38,26,9”,該程序段執(zhí)行后,數(shù)組元素a(1)到a(6) 的值分別為 ()A.58,9,26,11,15,38B.58,38,26,11,15,9C.15,38,26,11,58,9D.58,38,26,15,11,9答案A3.(2018溫州新力量聯(lián)盟期末)有如下 VB 程序段:Const n = 8Dim a(1 To n) As IntegerFor i = 1 To na(i) = Int(Rnd * 20)Next ix = n 2For i = x To 2 Step -1For j = 1 To i - 1If a(j) x +

18、 1k = iFor j = i - 1 To x + 1 Step -1If a(j) a(k) Then k = jNext jIf k i Thent = a(k): a(k) = a(i): a(i) = tEnd Ifi = i - 1Loop執(zhí)行完這段代碼后,數(shù)組 a 中各個(gè)元素的值可能的是()A.2,8,9,11,16,16,7,3B.19,19,18,12,9,8,6,6C.20,17,10,10,5,11,13,16D.14,11,10,5,0,6,15,15答案D4.(2018寧波“十校聯(lián)考”期末)若有以下數(shù)據(jù):64, 57, 22, 96, 71,分別存儲(chǔ)在a(1)至a(

19、5)中,經(jīng)過(guò)以下程序段處理后的數(shù)據(jù)依次為()Dima(1 To 6)As Integers = 0Fori = 1 To 5Ifa(i) Mod 2 = 1Thens = s + 1NextiFori = 1 To 4Ifa(i) Mod 2 = 0ThenForj = 5 To i + 1 Step -1Ifa(j) Mod 2 = 1Thena(6) = a(i): a(i) = a(j): a(j) = a(6): Exit ForEnd IfNextjEnd IfNextiFori = s + 2 To 5 k = i - 1 Forj = i To 5 Ifa(k) a(j)Then

20、k = j Nextj If k i - 1 Thena(6) = a(i - 1): a(i - 1) = a(k): a(k) = a(6) End IfNextiA.22, 57, 64, 71, 96B.71, 57, 22, 96, 64C.71, 57, 22, 64, 96D.57, 71, 22, 64, 96答案C考點(diǎn)四查找算法及程序?qū)崿F(xiàn)1.(2019浙江“七彩陽(yáng)光”聯(lián)盟期初聯(lián)考)某對(duì)分查找算法部分代碼如下:i = 1: j = 1000: flag = True: p = 0key = Val(Text1.Text)Do While i key Then j = m -1

21、Else i = m + 1Loop數(shù)組元素a(1)到a(1000)中存放著升序排列的數(shù)據(jù)。下列說(shuō)法正確的是()A.若key的值小于a(1),則執(zhí)行該段程序后,變量j的值等于1B.若key的值等于a(1),則執(zhí)行該段程序后,變量p的值等于10C.若key的值等于a(1000),則執(zhí)行該段程序后,變量i的值等于1001D.無(wú)論key的值是否在數(shù)組a中,執(zhí)行該段程序后,變量i的值均不可能等于m答案C2.(2018溫州九校聯(lián)考,12,2分)有如下 VB 程序段:i=1:j=10:p=0f=Falsek=Int(Rnd*100)+0.5Do While i=j And Not fm=Fix(i+j)/

22、2+0.5)If k=a(m) Thenf=TrueElseIf ka(m) Thenj=m-1:p=p+1Elsei=m+1:p=p-1End IfLoopLabel1.Caption=Str(p)數(shù)組元素a(1)到a(10)的值依次為“5,16,22,28,35,43,52,67,78,89”,執(zhí)行該程序段后,Label1的值不可能是()A.-3B.-1C.1D.3答案D3.某對(duì)分查找算法的VB程序段如下:k=Val(Text1.Text)i=1: j=6: Label1.Caption=: f=FalseDo While i a(i) ThenIf a(i) =k And k a(m)

23、Then j=m-1 Else i=i+1ElseIf a(m) k And k =a(j) Then i=i+1 Else j=j-1End IfLabel1.Caption=Label1.Caption+Str(a(m)Loop數(shù)組元素a(1)到a(6)的值依次為“58,66,72,24,35,40”,在文本框Text1中輸入的值為35,執(zhí)行該程序段,標(biāo)簽Label1中顯示的值是()A.7235B.2435C.722435D.72242435答案D4.(2019五校聯(lián)考)某對(duì)分查找算法的 VB 程序段如下:Key = Int(Rnd * 49) * 2 + 1s = 0: i = 1: j

24、 = 10Do While i = jm = (i + j) 2If Key = a(m) Then Exit DoIf Key a(m) Thenj = m - 1: s = 2 * sElsei = m + 1: s = 2 * s + 1End IfLoop數(shù)組 a(1)到 a(10)的值依次為“2,6,7,15,20,24,27,43,52,63”,執(zhí)行該程序段后,s 的值不可能為()A.2B.3C.5D.15答案A考點(diǎn)五遞歸算法及程序?qū)崿F(xiàn)1.某同學(xué)用VB編碼如下程序:Private Sub Command1_Click()Dim k As Integer, a As Integer,

25、 b As Integera = Val (Text1.Text) : b = Val (Text2.Text)Label1.Caption = trans(a, b)End SubFunction trans(m As Integer, n As Integer) As String If m 0 Then r =m Mod ntrans = trans (m n, n) + Str(r)Elsetrans=0End IfEnd Function程序運(yùn)行時(shí),在文本框Text1和Text2中分別輸入11和2,則Label1中的輸出結(jié)果是()A.01011B.1011C.01101D.11010

26、答案A2. 樓梯有n階臺(tái)階,上樓可以一步上1階,也可以一步上2階, 探究共有多少種不同的走法。(1)完善程序:Private Sub Command1_Click()Dim n As Integern = Val(Text1.Text)Text2.Text = Str(f(n)End SubFunction f(a As Integer)If a = 1 Thenf = 1ElseIf a = 2 Thenf =Elsef =End IfEnd Function(2)若有10階臺(tái)階,共有種走法。答案(1)2f(a - 1) + f(a - 2)(2)89考點(diǎn)六算法在數(shù)據(jù)管理中的應(yīng)用小林編寫(xiě)了一

27、個(gè)統(tǒng)計(jì)高三16個(gè)班級(jí)選考技術(shù)人數(shù)占比的VB程序。運(yùn)行界面如圖所示,窗體加載時(shí),從數(shù)據(jù)庫(kù)中(其中“選考三”字段中存儲(chǔ)了“技術(shù)”選考信息)調(diào)用數(shù)據(jù),統(tǒng)計(jì)各班選考技術(shù)的人數(shù)占比,并在列表框List1中顯示“班級(jí)”和“選技術(shù)占比”。單擊“排序”按鈕Command1,數(shù)據(jù)按選技術(shù)占比降序排序,在List2中顯示排序結(jié)果。實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)回答下列問(wèn)題:(1)分析程序,可知調(diào)用的數(shù)據(jù)表的名稱為。(2)請(qǐng)?jiān)趧澗€處填入合適的代碼。Dim n As Integer, i As Integer, j As Integer變量n用于統(tǒng)計(jì)學(xué)生總數(shù) Dim rate(1 To 16) As Integer,

28、 num(1 To 16) As Integer, class (1 To 16) As IntegerDim tech(1 To 50) As Integer, cinfo(1 To 5000) As Integer, subj(1 To 5000) As StringPrivate Sub Form_Load()Dim conn As New ADODB.Connection, rs As New ADODB.Recordsetconn.Connectionstring = Provider = Microsoft.ACE.OLEDB.12.0;DATA Source=& App.Path

29、 &stuimfo.accdbconn.OpenSet rs.ActiveConnection = connrs.Open SELECT * FROM xkqk此處代碼略,實(shí)現(xiàn)將每個(gè)學(xué)生班級(jí)存儲(chǔ)到數(shù)組cinfo中,選考三科目存儲(chǔ)到數(shù)組subj中For i = 1 To n 統(tǒng)計(jì)各班人數(shù)存儲(chǔ)到數(shù)組num中,num(1)存儲(chǔ)1班的人數(shù)Next iFor i = 1 To 16class(i) = iFor j = 1 To nIf class(cinfo(j) = i ThenIf subj(j)=技術(shù)Then End IfNext jrate(i) = tech(i) / num(i) * 10

30、0List1.AddItem ads(class(i), 3) + ads(rate(i), 7) + %Next iEnd SubPrivate Sub Command1_Click()Dim i As Integer, t As Integer, s As IntegerFor i = 1 To 15For j = 16 To i + 1 Step -1If Thent=rate(j) : rate(j) = rate(j-1) : rate(j-1) = ts=class(j): class(j)=class(j-1):class(j-1)=sEnd IfNext jNext iList

31、2.AddItem 班級(jí) + + 選技術(shù)占比For i = 1 To 16List2.AddItem Str(class(i)+ + Str(rate(i) + %Next iEnd Sub答案(1)xkqk(2)num(cinfo(i)=num(cinfo(i)+1 tech(i)=tech(i)+1 rate(j)rate(j - 1)【五年高考】考點(diǎn)一解析算法及程序?qū)崿F(xiàn)20152019年真題提升題組1.(2019浙江6月學(xué)考,11,5分)小宇為選定班級(jí)參賽作品編了一個(gè)VB程序,設(shè)計(jì)如下:在文本框Text1中輸入5位評(píng)委對(duì)3個(gè)作品的評(píng)分依據(jù)(評(píng)委對(duì)作品的評(píng)分?jǐn)?shù)據(jù)由3位十進(jìn)制數(shù)組成,第1位對(duì)

32、應(yīng)作品編號(hào),第2、3位對(duì)應(yīng)作品得分,分值范圍為60,99。如“275”表示2號(hào)作品得分75)。單擊“計(jì)分”按鈕后,在標(biāo)簽Label1中輸出3個(gè)作品的平均分,在Label2中輸出參賽的作品(選擇最高平均分作品參賽,若最高平均分存在并列,則從并列作品中隨機(jī)抽取)。程序運(yùn)行界面如圖所示。(1)“計(jì)分”按鈕的對(duì)象名為。(2)程序部分代碼如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。Private Sub jf_Click()Dim s As String, d As String, i As IntegerDim f1 As Single, f2 As Single, f3 As Singles = Text1.T

33、exti = 1Do Whiled = Mid(s, i, 3)If Mid(d, 1, 1) = 1 Thenf1 = f1 + Val(Mid(d, 2, 2)ElseIf Mid(d, 1, 1) = 2 Thenf2 = f2 + Val(Mid(d, 2, 2)Elsef3 = f3 + Val(Mid(d, 2, 2)End IfLoopLabel1.Caption = 作品1平均分為:+Str(f1/5)+作品2平均分為:+Str(f2/5)+作品3平均分為:+Str(f3/5)以下省略“處理并列最高平均分,并在 Label2 中輸出選取的參賽作品”的代碼End Sub(3)運(yùn)行

34、該程序時(shí),在文本框 Text1 中以不同的順序輸入原評(píng)分?jǐn)?shù)據(jù):380/295/283/170/180/385/372/285/190/180/390/384/272/170/276,單擊“計(jì)分”按鈕,則 Label1中顯示的結(jié)果(選填:會(huì)/不會(huì))發(fā)生改變。答案(1)jf(2)i=Len(s)或 iLen(s)或 i=57或其他可行答案i=i+4(3)不會(huì) 2.(2019浙江1月學(xué)考,11,5分)小紅編寫(xiě)了一個(gè)將 5 位以內(nèi)的十六進(jìn)制正整數(shù)轉(zhuǎn)化成十進(jìn)制數(shù)的 VB 程序,功能如下:在文本框 Text1 中輸入一個(gè)十六進(jìn)制正整數(shù),單擊“轉(zhuǎn)換”按鈕 Command1,在標(biāo)簽 Label3 中顯示結(jié)果。

35、程序運(yùn)行界面如圖所示。(1)要使窗體 Form1 標(biāo)題顯示“數(shù)制轉(zhuǎn)換”,則需修改窗體的(單選,填字母:A.Font/B.Caption/C.BackColor)屬性。(2)實(shí)現(xiàn)上述功能的 VB 程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。Private Sub Command1_Click()Dim x As String, ch As StringDim flag As Boolean, i As Integer, result As Longx =i = 1result = 0flag = Truech = Mid(x, 1, 1)Do While i = 0 And ch = A And ch

36、= a And ch 0a = n Mod 2n = n 2t =s = Str(a) + sLoopv = t Mod 2Text2.Text = sLabel3.Caption = 校驗(yàn)位值: +End Sub(3)運(yùn)行該程序,在文本框Text1中輸入22,單擊“計(jì)算”按鈕,則顯示的校驗(yàn)位值是。答案(1)Text(2)t+aStr(1-v)(3)0考點(diǎn)二枚舉算法及程序?qū)崿F(xiàn)20152019年真題提升題組1.(2018 浙江 11 月選考,14,5 分)在平面坐標(biāo)系中,給定一組有序的點(diǎn)。從原點(diǎn)出發(fā),依次用線段連接這些點(diǎn),構(gòu)成一條折線。要求編寫(xiě)一個(gè)“計(jì)算折線長(zhǎng)度”的程序,功能如下:在文本框Tex

37、t1中依次輸入這些點(diǎn)的坐標(biāo)值(數(shù)據(jù)都用逗號(hào)分隔并以逗號(hào)結(jié)尾),單擊“計(jì)算”按鈕Cmd后,程序計(jì)算這條折線的長(zhǎng)度,結(jié)果顯示在Label1中。例如,三個(gè)點(diǎn)的坐標(biāo)為(5,10),(8,12),(6,17),輸入格式如圖所示。(1)Cmd對(duì)象屬于類(單選,填字母:A.Form / B.Label/C.TextBox/D.CommandButton)。(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。Private Sub Cmd_Click()Dim i As Integer,j As Integer,k As IntegerDim x1 As Single,y1 As Single,x2

38、As Single,y2 As SingleDim d As Single,Totald As Single,v As Single,s As Strings=x1=0y1=0出發(fā)點(diǎn)為坐標(biāo)原點(diǎn)k=1j=1Totald=0For i=1 To Len(s)If Mid(s,i,1)=, Thenv=Val(Mid(s,j,i-j)提取坐標(biāo)值,保存在變量v中j=i+1IfThenx2=vElsey2=vd=Sqr(x2-x1)2+(y2-y1)2)Totald=Totald+dx1=x2:y1=y2End Ifk=k+1End IfNext iLabel1.Caption=Str(Totald)E

39、nd Sub(3)運(yùn)行該程序,輸入題干中的數(shù)據(jù),程序執(zhí)行到循環(huán)結(jié)束時(shí),變量k為。答案(1)D(2)Text1.Textk Mod 2=1(3)72.(2018浙江4月選考,14,5分)某種編碼以4位二進(jìn)制碼為一組,每組前兩位表示方向,后兩位表示距離。編寫(xiě)一個(gè)程序,將編碼翻譯成方向和距離,距離值為每組編碼后兩位二進(jìn)制碼轉(zhuǎn)換為十進(jìn)制數(shù)的值。具體功能如下:在文本框Text1中輸入連續(xù)多組編碼,單擊“翻譯”按鈕Command1,結(jié)果顯示在列表框List1中。程序運(yùn)行界面如圖所示。(1)要使程序運(yùn)行時(shí),文本框Text1的Width屬性值為2018,可在Form_Load事件過(guò)程中添加語(yǔ)句(單選,填字母:

40、A.Width=2018/B.Text1.Width=2018/C.Width.Text1=2018)。(2)實(shí)現(xiàn)上述功能的 VB 程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。Private Sub Command1_Click()Dim s As String, c As String, d As StringDim n As Integer, b1 As Integer, b2 As Integer, v As Integer, i As Integers = Text1.Text: n = Len(s): i = 1Do While i = nc = Mid(s, i, 2)If c = 00

41、Thend = 東ElseIf c = 01 Thend = 南ElseIf c = 10 Thend = 西Elsed = 北End Ifb1 = Val(Mid(s, i + 2, 1)b2 = Val(Mid(s, i + 3, 1)v=List1.AddItem d + + Str(v)LoopEnd Sub(3)若文本框 Text1 中輸入的內(nèi)容為“1111”,單擊“翻譯”按鈕,列表框 List1 中顯示的內(nèi)容是。答案(1)B(2)b1*2+b2i=i+4(3)北33.(2017 浙江 11 月選考,14,5 分)編寫(xiě)“字符串生成”程序,實(shí)現(xiàn)如下功能:在文本框Text1 中(字符位置

42、)輸入多個(gè)正整數(shù)(以“,”為分隔符和結(jié)束符),單擊“生成”按鈕 Command1,程序以這些整數(shù)為位置信息,依次從文本框 Text2 中(字典內(nèi)容)提取字符并連接成字符串,最后將字符串顯示在標(biāo)簽 Label1 中(生成內(nèi)容)。程序運(yùn)行界面如圖所示。(1)要使程序運(yùn)行時(shí),窗體Form1標(biāo)題顯示“字符串生成”,可在Form_Load事件過(guò)程中添加語(yǔ)句(單選,填字母:A.Form1=字符串生成/ B.Form1.Text=字符串生成/ C.Form1.Caption=字符串生成)。(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。Private Sub Command1_Click()Di

43、m s As String, t As String, c As StringDim i As Integer, p As Integers=:t=For i=1 To Len(Text1.Text)c=Mid(Text1.Text, i, 1)If c=, Thenp=Val(t)s=s+Mid(Text2.Text, p, 1)t=Elset=End IfNext iLabel1.Caption=End Sub(3)若文本框Text1中輸入內(nèi)容的結(jié)束符缺失(即輸入內(nèi)容為1,18,9,9),單擊“生成”按鈕后,標(biāo)簽Label1中顯示的內(nèi)容是。答案(1)C(2)t+c(或 t&c)s(3)pa

44、s (2)變量t(字符串類型)存儲(chǔ)字符位置。程序通過(guò)Mid函數(shù)將文本框Text1中的字符逐個(gè)讀取并判斷,如果所取字符是逗號(hào),則表示一個(gè)字符位置已經(jīng)讀取完整,將變量t轉(zhuǎn)換成數(shù)值,然后去字典里取對(duì)應(yīng)字符,把它連接到s后面;如果所取字符不是逗號(hào),表示字符位置尚未結(jié)束,則將該字符連接到t后面。在Label1中輸出最后的結(jié)果s。(3)由于程序中將位置轉(zhuǎn)換成字典中字符的指令是在條件c=“,”的情況下才執(zhí)行的,因此輸入“1,18,9,9”,前三個(gè)位置會(huì)從字典中取出字符“pas”。由于最后一個(gè)“9”缺失了“,”,因此不會(huì)從字典中取字符。考點(diǎn)三排序算法及程序?qū)崿F(xiàn)20152019年真題提升題組1.(2017浙江4

45、月選考,12,2分)小趙對(duì)選擇排序算法進(jìn)行了如下改進(jìn):在數(shù)組的所有元素中找出最小和最大數(shù)據(jù)的元素,然后將這兩個(gè)元素分別與第一個(gè)和最后一個(gè)元素交換數(shù)據(jù),在余下的元素中找出最小和最大數(shù)據(jù)的元素,分別與第二個(gè)和倒數(shù)第二個(gè)元素交換數(shù)據(jù),以此類推,直到所有元素的數(shù)據(jù)按升序排列。小趙編寫(xiě)的VB程序段如下:p = 1: q = 10Do While p qiMin = p:iMax = pFor i = p + 1 To qIf a(i) a(iMax) Then iMax = iNext it = a(iMin): a(iMin) = a(p): a(p) = tt = a(iMax): a(iMax)

46、= a(q): a(q) = tp = p + 1q = q - 1Loop要使程序?qū)崿F(xiàn)上述算法思想,則方框中的語(yǔ)句是()A.If iMax = p Then iMax = iMinB.If iMin = p Then iMin = iMaxC.If iMax = p Then iMin = iMaxD.If iMin = p Then iMax = iMin答案A2.(2016浙江4月選考,11,2分)有如下程序段:For i = 1 To 2For j = 5 To i + 1 Step -1If a(j) a(i) Thent = a(j): a(j) = a(i): a(i) = tE

47、nd IfNext jNext i數(shù)組元素a(1)到a(5)的值依次為“33,24,45,16,77”,經(jīng)過(guò)該程序段“加工”后,數(shù)組元素a(1)到a(5)的值依次為()A.77,45,33,16,24B.77,33,45,16,24C.77,24,45,16,33D.77,45,33,24,16答案A3.(2019浙江4月選考,16,3分)小明基于冒泡排序思想設(shè)計(jì)了一個(gè)改進(jìn)的排序算法。該算法先用冒泡法將數(shù)組a中奇數(shù)位置的元素、偶數(shù)位置的元素分別進(jìn)行排序,然后再進(jìn)行后續(xù)處理。算法的VB程序段如下,但加框處代碼有錯(cuò),請(qǐng)改正。待排序數(shù)據(jù)存儲(chǔ)在數(shù)組a中(a(1) a(n),要求升序排列For i =

48、1 To (n - 1) 2For j = 1 To n - i * 2If a(j) a(j + 1)Then(1)t = a(j): a(j) = a(j + 2): a(j + 2) = tEnd IfNext jNext iFor i = 1 To n 2j = 2 * i - 1If a(j) a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = tNext iFor i =1 To n Step 2(2)t = a(i): j = i - 1Do While t a(j+2)或 a(j)=a(j+2) 或其他等價(jià)表達(dá)式(2)3 To

49、 n4.(2018浙江4月選考,16,3分)有一組正整數(shù),要求僅對(duì)其中的素?cái)?shù)進(jìn)行升序排序。排序后素?cái)?shù)在前,非素?cái)?shù)在后。排序示例如下。排序前867154181793789排序后537417179898681實(shí)現(xiàn)上述功能的VB代碼如下,但加框處有錯(cuò),請(qǐng)改正。Const n=8Dim a(1 To n) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As Integer, k As Integer, t As IntegerDim flag As Boolean讀取一組正整數(shù),存儲(chǔ)在數(shù)組a中,代碼略For i = 1 To n -

50、 1k = 1(1)If IsPrime(a(k) Then flag = True Else flag = FalseFor j = i + 1 To nIf IsPrime(a(j) ThenIf a(j) a(k) Then(2)k=jflag = TrueEnd IfEnd IfNext jIf k i Thent=a(k): a(k) = a(i):a(i) = tEnd IfIf Not flag Then Exit ForExit For表示退出循環(huán)Next i依次輸出排序后的數(shù)據(jù)。代碼略End SubFunction IsPrime(m As Integer) As Boole

51、an本函數(shù)判斷m 是不是素?cái)?shù):是素?cái)?shù)返回值為True,不是素?cái)?shù)返回值為False代碼略End Function答案(1) k=i(2)a(j)a(k) Or flag=False5.(2017浙江11月選考,16,3分)小李基于冒泡排序算法編寫(xiě)了一個(gè)VB程序,功能如下:在文本框Text1中顯示排序前的數(shù)據(jù),單擊“排序”按鈕Command1,在文本框Text2中顯示剔除重復(fù)數(shù)據(jù)后的升序排序結(jié)果。程序運(yùn)行界面如圖所示。實(shí)現(xiàn)上述功能的VB程序如下,但加框處代碼有錯(cuò),請(qǐng)改正。Const n = 10Dim a(1 To n) As IntegerPrivate Sub Command1_Click()

52、Dim i As Integer, j As Integer, t As IntegerDim bottom As Integer獲取排序前數(shù)據(jù)依次存儲(chǔ)在數(shù)組a中,并在文本框Text1中顯示。代碼略bottom = ni = 1Do While i = bottom - 1For j = bottom To i + 1 Step -1If a(j) a(i) Then(1)t = a(j): a(j) = a(j - 1): a(j - 1) = tElseIf a(j) = a(j - 1) Then 相鄰兩個(gè)數(shù)據(jù)相等,進(jìn)行剔除處理a(bottom)=a(j)(2)bottom = bott

53、om - 1End IfNext ji = i + 1LoopText2.Text = For i = 1 To bottomText2.Text = Text2.Text + Str(a(i)Next iEnd Sub答案(1)a(j)a(j)(2)a(j)= a(bottom)6.(2016浙江10月選考,16,3分)小吳為了研究冒泡排序過(guò)程中數(shù)據(jù)的“移動(dòng)”情況,編寫(xiě)了一個(gè)VB程序,功能如下:在列表框List1中顯示排序前數(shù)據(jù)(存儲(chǔ)在數(shù)組a中),在文本框Text1中輸入初始位置(即下標(biāo)值),單擊“排序”按鈕Command1后,在標(biāo)簽Label1中顯示指定初始位置的數(shù)據(jù)在排序過(guò)程中的位置變化

54、情況,排序后的數(shù)據(jù)顯示在列表框List2中。程序運(yùn)行界面如圖所示。實(shí)現(xiàn)上述功能的VB程序如下,但加框處代碼有錯(cuò),請(qǐng)改正。Dim a(1 To 8) As IntegerDim n As IntegerPrivate Sub Form_Load()a(1) = 30: a(2) = 47: a(3) = 30: a(4) = 72a(5) = 70: a(6) = 23: a(7) = 99: a(8) = 24n = 8For i = 1 To 8List1.AddItem a(i)Next iEnd SubPrivate Sub Command1_Click()Dim i As Intege

55、r, j As Integer, k As IntegerDim pos As IntegerDim s As Strings = Text1.Textpos = Val(Text1.Text)For i = 1 To n - 1For j = n To i + 1 Step -1If a(j) a(j - 1) Thenk=a(j)(1)a(j - 1) = a(j)a(j) = k如果pos位置的數(shù)據(jù)參與交換,則更新pos值,記錄pos變化位置If pos = j Thenpos = j - 1s = s + + Str(pos)Else(2)pos = js = s + + Str(po

56、s)End IfEnd IfNext jNext iLabel1.Caption = 位置變化情況: + sFor i = 1 To nList2.AddItem Str(a(i)Next iEnd Sub答案(1) k=a(j-1)(2)ElseIf pos=j-1 Then考點(diǎn)四查找算法及程序?qū)崿F(xiàn)20152019年真題提升題組1.(2019浙江4月選考,12,2分)有1個(gè)升序排列的數(shù)組a(a(1)a(n),n3),從左到右相鄰兩個(gè)元素的差值(后一個(gè)元素值減去前一個(gè)元素值)先由小到大、再由大到小,且相鄰兩個(gè)差值不相等,為了查找相鄰兩個(gè)元素的最大差值,小李編寫(xiě)的VB程序段如下:i = 1:j

57、= nDo While i + 1 a(m) - a(m - 1) ThenElseEnd IfLoopLabel1.Caption=相鄰兩個(gè)元素的最大差值是 + Str(a(j) - a(i) 上述程序段兩個(gè)方框處的語(yǔ)句分別為()A. i = m j = mB. i = m j = m - 1C. i = m + 1 j = m - 1D. i = m + 1 j = m答案A2.(2018浙江4月選考,12,2分)數(shù)組a 為一組正整數(shù),奇數(shù)在前,偶數(shù)在后。奇數(shù)與偶數(shù)已分別按升序排序。依據(jù)對(duì)分查找思想,設(shè)計(jì)一個(gè)在數(shù)組a 中查找數(shù)據(jù)Key 的程序。實(shí)現(xiàn)該功能的VB 程序段如下:i = 1: j

58、 = 10Key = Val(Text1.Text)Do While i j Then s = 沒(méi)有找到! Else s = 位置: + Str(m)Text2.Text = s上述程序中方框處可選語(yǔ)句為:i = m + 1j = m - 1If Key a(m) Then j = m - 1 Else i = m + 1則(1)、(2)、(3)處語(yǔ)句依次是()A.、B.、C.、D.、答案C3.(2017浙江11月選考,12,2分)某對(duì)分査找算法的VB程序段如下:i = 1: j = 7: s = key = Int(Rnd*100)Do While i = jm = (i + j) 2If

59、key = a(m) Thens = s + M: Exit DoExit Do表示退出循環(huán)ElseIf key a(m) Thenj = m - 1: s = s + LElsei = m + 1: s = s + REnd IfLoopText1.Text = s數(shù)組元素a(1)到a(7)的值依次為“24,35,38,41,45,69,78”。該程序段執(zhí)行后,文本框Text1中顯示的內(nèi)容可能是()A.RLB.LMRC.RLRD.LRLM答案C4.(2017浙江4月選考,11,2分)某對(duì)分查找算法的VB程序段如下:key = Val(Text1.Text)i = 1: j = 10Text2

60、.Text = Do While i = jm = Int(i + j) / 2 + 0.5)If key = a(m) Then Exit DoExit Do表示退出循環(huán)If key a(m) Then j = m - 1 Else i = m + 1Text2.Text = Text2.Text + Str(a(m)Loop數(shù)組元素a(1)到a(10)的值依次為“8,17,24,30,36,40,55,58,61,66”,文本框Text1中輸入的值是30,執(zhí)行該程序段,文本框Text2中顯示的是()A.40 24B.40 24 36C.36 24D.36 17 24答案B5.(2016浙江

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論