版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、專題六算法的程序?qū)崿F(xiàn)探考情悟真題【考情探究】考點考試內(nèi)容考試要求5年考情預(yù)測熱度考題示例考向難度解析算法的思想方法2016浙江4月選考,14,5分;解析算2017浙江4月選考,14,5分;進(jìn)制轉(zhuǎn)換、質(zhì)數(shù)問題及其他數(shù)法及程序?qū)崿F(xiàn)解析算法的程序?qū)崿F(xiàn)c2019浙江1月學(xué)考,11,5分;論問題、數(shù)學(xué)猜想等枚舉算法的思想方法2019浙江6月學(xué)考,11,5分2016浙江10月選考,14,5分;枚舉算法及程序?qū)崿F(xiàn)枚舉算法的程序?qū)崿F(xiàn)c2017浙江11月選考,14,5分;2018浙江4月選考,14,5分;字符串處理問題是考試熱點,如在字符串中利用逗號、空格、數(shù)字等特殊符號,完成一些統(tǒng)計或計算功能冒泡排序的思想方
2、法2018浙江11月選考,14,5分2015浙江10月選考,16,4分;排序算法及程序?qū)崿F(xiàn)冒泡排序的程序?qū)崿F(xiàn)2016浙江4月選考,11,2c分;2016浙江10月選考,16,3排序算法優(yōu)化;冒泡排序變形,如雙向排序、奇偶分開排序、素數(shù)合數(shù)分開排序、去重復(fù)數(shù)排序等分;2017浙江11月選考,16,3選擇排序的思想方法分;2019浙江4月選考,16,3分2017浙江4月選考,12,2選擇排序的程序?qū)崿F(xiàn)c分;2018浙江4月選考,16,3排序變形,如雙向排序、奇偶分開排序、素數(shù)合數(shù)分開排序等分順序查找的思想方法順序查找比較簡單,一般不查找算單獨考,會結(jié)合其他知識法及程序?qū)崿F(xiàn)順序查找的程序?qū)崿F(xiàn)c201
3、7浙江4月選考,16,3分點,比如在數(shù)列中插入數(shù)、刪除數(shù)列中的重復(fù)數(shù)、查找替換等對分查找的思想方法2015浙江10月選考,11,2分;2016浙江4月選考,12,2分;2016浙江10月選考,12,2分;一類題是考查對分查找的運(yùn)用:如查找次數(shù)、查找中各個變量值的變化;另一類查找算法及程序?qū)崿F(xiàn)對分查找的程序?qū)崿F(xiàn)c2017浙江4月選考,11,2分;2017浙江11月選考,12,2分;題是將數(shù)據(jù)源序列由單一的從小到大變成如奇偶分開數(shù)列、循環(huán)有序數(shù)列、左右交替上升序列等,此類數(shù)列往往是分成前后兩個2018浙江4月選考,12,2分;2018浙江11月選考,16,3分;2019浙江4月選考,12,2分有序
4、數(shù)列,查找過程中,對分的主要思想不變,無非是增加了一些條件設(shè)置遞歸算遞歸算法的思想方法遞歸算法本質(zhì)上是自定義法及程序?qū)崿F(xiàn)遞歸算法的程序?qū)崿F(xiàn)b函數(shù)的應(yīng)用,到目前為止,未在真題中出現(xiàn)算法在通過Connection對象連數(shù)據(jù)管接數(shù)據(jù)庫a2016浙江10月選考,17,6分目前關(guān)于數(shù)據(jù)庫一種新的考法是選擇題形式,只要掌理中的通過Recordset對象讀a握連接數(shù)據(jù)庫并讀取數(shù)據(jù)應(yīng)用取數(shù)據(jù)表中的數(shù)據(jù)算法在數(shù)據(jù)管理中的應(yīng)用庫的標(biāo)準(zhǔn)代碼即可。此外要學(xué)會分析數(shù)組變量中存c儲的數(shù)據(jù)內(nèi)容和類型,并掌握數(shù)組下標(biāo)的靈活運(yùn)用分析解讀本專題主要考查幾大算法的思想方法和程序?qū)崿F(xiàn),包括枚舉、解析、排序、查找、遞歸,題型有選擇題和
5、非選擇題。選擇題為第11和12題、非選擇題為第15和16題,這幾題考查排序算法與對分查找的頻度較高,難度為中等或較難。縱觀幾次真題,程序題有逐年加難的趨勢。試題中對于算法的考查不再局限于算法的基本形,而是在基本形的基礎(chǔ)上做了許多變形,比如冒泡排序的幾種變式,對分查找的變式等。還有一種變化是,在基本形的基礎(chǔ)上增加程序的功能,比如對排序算法進(jìn)行改進(jìn)從而提高排序的效率、記錄排序中數(shù)據(jù)的移動過程,利用查找算法查找并刪除數(shù)列中的重復(fù)數(shù)據(jù)等。還有一個重要變化是,最近幾次的真題對幾個經(jīng)典算法的考查相對弱化,開始加強(qiáng)對數(shù)組的考查。往往在選擇題最后2個題中有一個是考查數(shù)組的綜合運(yùn)用,該題往往難度較大。一般選擇題
6、中保留一題考查排序或?qū)Ψ植檎?考對分查找的概率較高。數(shù)據(jù)庫程序題一般難度不大,可能是篇幅太長的緣故,大題中考數(shù)據(jù)庫的概率并不高,有很多題都是一句話帶過:從數(shù)據(jù)庫中讀取了什么數(shù)據(jù)存儲到什么數(shù)組變量中。讀取數(shù)據(jù)并存儲到數(shù)組變量中后,對數(shù)組的綜合運(yùn)用相對難度大一些,要學(xué)會分析題中各數(shù)組變量的作用,分別存儲了什么類型的數(shù)據(jù),以及數(shù)組下標(biāo)的靈活運(yùn)用。目前數(shù)據(jù)庫可能會有一種新的考法,以選擇題的形式,考查連接數(shù)據(jù)庫和讀取數(shù)據(jù)庫的基本方法和代碼。要掌握從代碼中分析數(shù)據(jù)庫文件的名稱、數(shù)據(jù)表的名稱,以及數(shù)據(jù)表中字段的讀取方法、記錄集的移動方法等基礎(chǔ)知識。破考點練考向【考點集訓(xùn)】考點一解析算法及程序?qū)崿F(xiàn)1.(201
7、8寧波“十校聯(lián)考”,16,3分)在VB的算術(shù)運(yùn)算中,最大的實數(shù)類型Double有效位數(shù)也只有15位。為了實現(xiàn)除法運(yùn)算保留任意位數(shù),小明根據(jù)除法原理,編寫了如下程序,功能如下:在文本框Text1中輸入被除數(shù)(正整數(shù)),在文本框Text2中輸入除數(shù)(正整數(shù)),在文本框Text3中輸入保留小數(shù)位數(shù),單擊按鈕Command1,在標(biāo)簽Label1中顯示除法運(yùn)算的商。程序運(yùn)行界面如圖所示,但加框處代碼有錯,請改正。PrivateSubCommand1_Click()Dimx,yAsIntegerDimnAsIntegerDimsAsStringx=Val(Text1.Text):y=Val(Text2.T
8、ext)n=Val(Text3.Text)s=s+Str(xy)s=s+.k=xModyFori=1Tonx=x+k*10(1)s=Str(xy)(2)k=xModyNextiLabel1.Caption=商為:+sEndSub答案(1)x=k*10(2)s=s+Str(xy)2.(2018浙江十校聯(lián)盟選考適應(yīng)性考試,14,5分)編寫“二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)”程序,實現(xiàn)如下功能:在文本框Text1中輸入一個二進(jìn)制數(shù),單擊“轉(zhuǎn)換”按鈕Command1,將二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)并在文本框Text2中顯示。程序運(yùn)行界面如圖所示。(1)設(shè)計如圖所示的程序界面,至少要使用個類(填數(shù)字)。(2)實現(xiàn)上
9、述功能的VB程序如下,請在劃線處填入合適的代碼。PrivateSubCommand1_Click()Dims1AsString,s2AsStringDimiAsInteger,xAsIntegerConstcode=0123456789ABCDEFs1=Text1.Text:s2=DoWhileLen(s1)Mod40s1=0+s1Loopx=0:i=1DoWhilei=Len(s1)x=x*2+Val(Mid(s1,i,1)i=i+1IfThens2=s2+Mid(code,x+1,1)EndIfLoopText2.Text=s2EndSub(3)若文本框Text1中輸入的內(nèi)容為“10110
10、1”,單擊“轉(zhuǎn)換”按鈕后,文本框Text2中顯示的內(nèi)容是。答案(1)4(2)iMod4=1或(i-1)Mod4=0(或其他等價答案)x=0(3)2D考點二枚舉算法及程序?qū)崿F(xiàn)1.(2019寧波新高考適應(yīng)性考試)得分問題:給出一個由A和X組成的字符串,統(tǒng)計字符的得分之和。每個A的得分為已經(jīng)連續(xù)出現(xiàn)的A的個數(shù),X得分為0。例如,AAXXAXXAAA的得分為1+2+0+0+1+0+0+1+2+3?,F(xiàn)編寫一個程序,功能如下:在文本框Text1中輸入字符串,單擊“統(tǒng)計”按鈕Cmd_Sta后,程序計算得分,結(jié)果顯示在Text2中。(1)Cmd_Sta對象屬于類(單選,填字母:A.Form/B.Label/C
11、.TextBox/D.CommandButton)。(2)實現(xiàn)上述功能的VB程序如下,請在程序劃線處填入合適的代碼。PrivateSubCmd_Sta_Click()DimsumAsInteger,iAsInteger,cntAsIntegerDimcAsString,szAsStringsz=Text1.Textcnt=0:sum=0Fori=1ToLen(sz)Ifc=AThensum=sum+cntElsecnt=0EndIfNextiText2.Text=Str(sum)EndSub(3)運(yùn)行該程序,輸入數(shù)據(jù)如上圖所示,程序執(zhí)行到循環(huán)結(jié)束時,變量cnt的值為。答案(1)D(2)c=Mi
12、d(sz,i,1)或c=Mid(Text1.Text,i,1)cnt=cnt+1(3)32.珠心算是在大腦中以算盤表象作為載體,運(yùn)用珠算法則所進(jìn)行的計算。某學(xué)校的珠心算老師采用一種快速考查珠心算加法能力的測驗方法。他隨機(jī)給出一個正整數(shù)集合,集合中的數(shù)各不相同,然后要求學(xué)生回答:其中共有多少個數(shù)恰好等于集合中另外兩個(不同的)數(shù)之和?例如對于集合1,2,3,4,一共有2個數(shù)等于集合中另外兩個數(shù)之和,它們是3、4(4=3+1,3=2+1)。將上述算法編寫成程序,其功能如下:程序運(yùn)行時產(chǎn)生n個范圍在1,100內(nèi)的不同的隨機(jī)整數(shù)存儲在數(shù)組a中,并在列表框List1中顯示。單擊按鈕Command1后,在
13、標(biāo)簽Label1上輸出結(jié)果,如圖所示。(1)對于集合1,2,3,4,5,6,一共有個數(shù)等于集合中另外兩個數(shù)之和。(2)實現(xiàn)上述功能的VB程序如下,請在劃線處填入合適代碼。Constn=12Dima(1Ton)AsIntegerDimflag(1To100)AsBooleanPrivateSubForm_Load()DimiAsInteger,tAsIntegerFori=1To100flag(i)=FalseNextii=1DoWhilei=nt=Int(Rnd*100)+1IfNotflag(t)ThenList1.AddItemStr(t)flag(t)=Truei=i+1EndIfLoo
14、pEndSubPrivateSubCommand1_Click()DimiAsInteger,jAsInteger,ansAsIntegerans=0Fori=1TonForj=i+1TonIfa(i)+a(j)=100ThenIfThenans=ans+1flag(a(i)+a(j)=FalseEndIfNextjNextiLabel1.Caption=共有+Str(ans)+個數(shù)!EndSub答案(1)4(2)a(i)=tflag(a(i)+a(j)或flag(a(i)+a(j)=TrueEndIf該數(shù)組的原始順序不可能是()考點三排序算法及程序?qū)崿F(xiàn)1.(2019金華十校第一學(xué)期調(diào)研考試,
15、11,2分)有一個數(shù)組,采用冒泡排序,第一遍排序后的結(jié)果為3,18,5,35,8,9,11,13,32,那么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=1Fori=1To2Forj=1To6-2*iIfk*a(j)k*a(j+2)Thent=a(j):a(j)=a(j+2):a(j+2)=tEndIfk=-kNextjNexti數(shù)組元素a(1)到a(6)的初始值依次為“1
16、5,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程序段:Constn=8Dima(1Ton)AsIntegerFori=1Tona(i)=Int(Rnd*20)Nextix=n2Fori=xTo2Step-1Forj=1Toi-1Ifa(j)x+1k=iForj=i-1Tox+1Step-1Ifa(j)a(k)Thenk=jNextjIfkiThent=a(k)
17、:a(k)=a(i):a(i)=tEndIfi=i-1Loop執(zhí)行完這段代碼后,數(shù)組a中各個元素的值可能的是()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,分別存儲在a(1)至a(5)中,經(jīng)過以下程序段處理后的數(shù)據(jù)依次為()Dima(1To6)AsIntegers=0Fori=1To5Ifa(i)Mod2=1Thens=s+1NextiFori=1To4Ifa(i)Mod2=0Th
18、enForj=5Toi+1Step-1Ifa(j)Mod2=1Thena(6)=a(i):a(i)=a(j):a(j)=a(6):ExitForEndIfNextjEndIfNextiFori=s+2To5k=i-1Forj=iTo5Ifa(k)a(j)Thenk=jNextjIfki-1Thena(6)=a(i-1):a(i-1)=a(k):a(k)=a(6)EndIfNextiA.22,57,64,71,96B.71,57,22,96,64C.71,57,22,64,96D.57,71,22,64,96答案C考點四查找算法及程序?qū)崿F(xiàn)1.(2019浙江“七彩陽光”聯(lián)盟期初聯(lián)考)某對分查找算法
19、部分代碼如下:i=1:j=1000:flag=True:p=0key=Val(Text1.Text)DoWhileikeyThenj=m-1Elsei=m+1Loop數(shù)組元素a(1)到a(1000)中存放著升序排列的數(shù)據(jù)。下列說法正確的是()A.若key的值小于a(1),則執(zhí)行該段程序后,變量j的值等于1B.若key的值等于a(1),則執(zhí)行該段程序后,變量p的值等于10C.若key的值等于a(1000),則執(zhí)行該段程序后,變量i的值等于1001D.無論key的值是否在數(shù)組a中,執(zhí)行該段程序后,變量i的值均不可能等于m答案C2.(2018溫州九校聯(lián)考,12,2分)有如下VB程序段:i=1:j=1
20、0:p=0f=Falsek=Int(Rnd*100)+0.5DoWhilei=jAndNotfm=Fix(i+j)/2+0.5)Ifk=a(m)Thenf=TrueElseIfka(m)Thenj=m-1:p=p+1Elsei=m+1:p=p-1EndIfLoopLabel1.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.某對分查找算法的VB程序段如下:k=Val(Text1.Text)i=1:j=6:Label1.Caption=
21、:f=FalseDoWhileia(i)ThenIfa(i)=kAndka(m)Thenj=m-1Elsei=i+1ElseIfa(m)kAndk=a(j)Theni=i+1Elsej=j-1EndIfLabel1.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.7235C.722435B.2435D.72242435答案D4.(2019五校聯(lián)考)某對分查找算法的VB程序段如下:Key=Int(Rnd*49)*2
22、+1數(shù)組a(1)到a(10)的值依次為“2,6,7,15,20,24,27,43,52,63”,執(zhí)行該程序段后,s的值不可能為(s=0:i=1:j=10DoWhilei=jm=(i+j)2IfKey=a(m)ThenExitDoIfKeya(m)Thenj=m-1:s=2*sElsei=m+1:s=2*s+1EndIfLoopA.2B.3C.5D.15答案A考點五遞歸算法及程序?qū)崿F(xiàn)1.某同學(xué)用VB編碼如下程序:PrivateSubCommand1_Click()DimkAsInteger,aAsInteger,bAsIntegera=Val(Text1.Text):b=Val(Text2.Te
23、xt)Label1.Caption=trans(a,b)EndSubFunctiontrans(mAsInteger,nAsInteger)AsStringIfm0Thenr=mModntrans=trans(mn,n)+Str(r)Elsetrans=0EndIf)EndFunction程序運(yùn)行時,在文本框Text1和Text2中分別輸入11和2,則Label1中的輸出結(jié)果是()A.01011B.1011C.01101D.11010答案A2.樓梯有n階臺階,上樓可以一步上1階,也可以一步上2階,探究共有多少種不同的走法。(1)完善程序:PrivateSubCommand1_Click()Di
24、mnAsIntegern=Val(Text1.Text)Text2.Text=Str(f(n)EndSubFunctionf(aAsInteger)Ifa=1Thenf=1ElseIfa=2Thenf=Elsef=EndIfEndFunction(2)若有10階臺階,共有種走法。答案(1)2f(a-1)+f(a-2)(2)89考點六算法在數(shù)據(jù)管理中的應(yīng)用小林編寫了一個統(tǒng)計高三16個班級選考技術(shù)人數(shù)占比的VB程序。運(yùn)行界面如圖所示,窗體加載時,從數(shù)據(jù)庫中(其中“選考三”字段中存儲了“技術(shù)”選考信息)調(diào)用數(shù)據(jù),統(tǒng)計各班選考技術(shù)的人數(shù)占比,并在列表框List1中顯示“班級”和“選技術(shù)占比”。單擊“排
25、序”按鈕Command1,數(shù)據(jù)按選技術(shù)占比降序排序,在List2中顯示排序結(jié)果。實現(xiàn)上述功能的VB程序如下,請回答下列問題:(1)分析程序,可知調(diào)用的數(shù)據(jù)表的名稱為。(2)請在劃線處填入合適的代碼。DimnAsInteger,iAsInteger,jAsInteger變量n用于統(tǒng)計學(xué)生總數(shù)Dimrate(1To16)AsInteger,num(1To16)AsInteger,class(1To16)AsIntegerDimtech(1To50)AsInteger,cinfo(1To5000)AsInteger,subj(1To5000)AsStringPrivateSubForm_Load()
26、DimconnAsNewADODB.Connection,rsAsNewADODB.Recordsetconn.Connectionstring=Provider=Microsoft.ACE.OLEDB.12.0;DATASource=&App.Path&stuimfo.accdbconn.OpenSetrs.ActiveConnection=connrs.OpenSELECT*FROMxkqk此處代碼略,實現(xiàn)將每個學(xué)生班級存儲到數(shù)組cinfo中,選考三科目存儲到數(shù)組subj中Fori=1Ton統(tǒng)計各班人數(shù)存儲到數(shù)組num中,num(1)存儲1班的人數(shù)NextiFori=1To16class(
27、i)=iForj=1TonIfclass(cinfo(j)=iThenIfsubj(j)=技術(shù)ThenEndIfNextjrate(i)=tech(i)/num(i)*100List1.AddItemads(class(i),3)+ads(rate(i),7)+%NextiEndSubPrivateSubCommand1_Click()DimiAsInteger,tAsInteger,sAsIntegerFori=1To15Forj=16Toi+1Step-1IfThent=rate(j):rate(j)=rate(j-1):rate(j-1)=ts=class(j):class(j)=cla
28、ss(j-1):class(j-1)=sEndIfNextjNextiList2.AddItem班級+選技術(shù)占比Fori=1To16List2.AddItemStr(class(i)+Str(rate(i)+%NextiEndSub答案(1)xkqk(2)num(cinfo(i)=num(cinfo(i)+1tech(i)=tech(i)+1rate(j)rate(j-1)【五年高考】考點一解析算法及程序?qū)崿F(xiàn)20152019年真題提升題組1.(2019浙江6月學(xué)考,11,5分)小宇為選定班級參賽作品編了一個VB程序,設(shè)計如下:在文本框Text1中輸入5位評委對3個作品的評分依據(jù)(評委對作品的評
29、分?jǐn)?shù)據(jù)由3位十進(jìn)制數(shù)組成,第1位對應(yīng)作品編號,第2、3位對應(yīng)作品得分,分值范圍為60,99。如“275”表示2號作品得分75)。單擊“計分”按鈕后,在標(biāo)簽Label1中輸出3個作品的平均分,在Label2中輸出參賽的作品(選擇最高平均分作品參賽,若最高平均分存在并列,則從并列作品中隨機(jī)抽取)。程序運(yùn)行界面如圖所示。(1)“計分”按鈕的對象名為。(2)程序部分代碼如下,請在劃線處填入合適的代碼。PrivateSubjf_Click()DimsAsString,dAsString,iAsIntegerDimf1AsSingle,f2AsSingle,f3AsSingles=Text1.Texti=
30、1DoWhiled=Mid(s,i,3)IfMid(d,1,1)=1Thenf1=f1+Val(Mid(d,2,2)ElseIfMid(d,1,1)=2Thenf2=f2+Val(Mid(d,2,2)Elsef3=f3+Val(Mid(d,2,2)EndIfLoopLabel1.Caption=作品1平均分為:+Str(f1/5)+作品2平均分為:+Str(f2/5)+作品3平均分為:+Str(f3/5)以下省略“處理并列最高平均分,并在Label2中輸出選取的參賽作品”的代碼EndSub(3)運(yùn)行該程序時,在文本框Text1中以不同的順序輸入原評分?jǐn)?shù)據(jù):380/295/283/170/180
31、/385/372/285/190/180/390/384/272/170/276,單擊“計分”按鈕,則Label1中顯示的結(jié)果(選填:會/不會)發(fā)生改變。答案(1)jf(2)i=Len(s)或iLen(s)或i=57或其他可行答案i=i+4(3)不會2.(2019浙江1月學(xué)考,11,5分)小紅編寫了一個將5位以內(nèi)的十六進(jìn)制正整數(shù)轉(zhuǎn)化成十進(jìn)制數(shù)的VB程序,功能如下:在文本框Text1中輸入一個十六進(jìn)制正整數(shù),單擊“轉(zhuǎn)換”按鈕Command1,在標(biāo)簽Label3中顯示結(jié)果。程序運(yùn)行界面如圖所示。(1)要使窗體Form1標(biāo)題顯示“數(shù)制轉(zhuǎn)換”,則需修改窗體的(單選,填字母:A.Font/B.Capti
32、on/C.BackColor)屬性。(2)實現(xiàn)上述功能的VB程序如下,請在劃線處填入合適的代碼。PrivateSubCommand1_Click()DimxAsString,chAsStringDimflagAsBoolean,iAsInteger,resultAsLongx=i=1result=0flag=Truech=Mid(x,1,1)DoWhilei=0Andch=AAndch=aAndch0a=nMod2n=n2t=s=Str(a)+sLoopv=tMod2Text2.Text=sLabel3.Caption=校驗位值:+EndSub(3)運(yùn)行該程序,在文本框Text1中輸入22,單
33、擊“計算”按鈕,則顯示的校驗位值是。答案(1)Text(2)t+aStr(1-v)(3)0考點二枚舉算法及程序?qū)崿F(xiàn)20152019年真題提升題組1.(2018浙江11月選考,14,5分)在平面坐標(biāo)系中,給定一組有序的點。從原點出發(fā),依次用線段連接這些點,構(gòu)成一條折線。要求編寫一個“計算折線長度”的程序,功能如下:在文本框Text1中依次輸入這些點的坐標(biāo)值(數(shù)據(jù)都用逗號分隔并以逗號結(jié)尾),單擊“計算”按鈕Cmd后,程序計算這條折線的長度,結(jié)果顯示在Label1中。例如,三個點的坐標(biāo)為(5,10),(8,12),(6,17),輸入格式如圖所示。(1)Cmd對象屬于類(單選,填字母:A.Form/B
34、.Label/C.TextBox/D.CommandButton)。(2)實現(xiàn)上述功能的VB程序如下,請在劃線處填入合適的代碼。PrivateSubCmd_Click()DimiAsInteger,jAsInteger,kAsIntegerDimx1AsSingle,y1AsSingle,x2AsSingle,y2AsSingleDimdAsSingle,TotaldAsSingle,vAsSingle,sAsStrings=x1=0y1=0出發(fā)點為坐標(biāo)原點k=1j=1Totald=0Fori=1ToLen(s)IfMid(s,i,1)=,Thenv=Val(Mid(s,j,i-j)提取坐標(biāo)值
35、,保存在變量v中j=i+1IfThenx2=vElsey2=vd=Sqr(x2-x1)2+(y2-y1)2)Totald=Totald+dx1=x2:y1=y2EndIfk=k+1EndIfNextiLabel1.Caption=Str(Totald)EndSub(3)運(yùn)行該程序,輸入題干中的數(shù)據(jù),程序執(zhí)行到循環(huán)結(jié)束時,變量k為。答案(1)D(2)Text1.TextkMod2=1(3)72.(2018浙江4月選考,14,5分)某種編碼以4位二進(jìn)制碼為一組,每組前兩位表示方向,后兩位表示距離。編寫一個程序,將編碼翻譯成方向和距離,距離值為每組編碼后兩位二進(jìn)制碼轉(zhuǎn)換為十進(jìn)制數(shù)的值。具體功能如下:
36、在文本框Text1中輸入連續(xù)多組編碼,單擊“翻譯”按鈕Command1,結(jié)果顯示在列表框List1中。程序運(yùn)行界面如圖所示。(1)要使程序運(yùn)行時,文本框Text1的Width屬性值為2018,可在Form_Load事件過程中添加語句(單選,填字母:A.Width=2018/B.Text1.Width=2018/C.Width.Text1=2018)。(2)實現(xiàn)上述功能的VB程序如下,請在劃線處填入合適的代碼。PrivateSubCommand1_Click()DimsAsString,cAsString,dAsStringDimnAsInteger,b1AsInteger,b2AsIntege
37、r,vAsInteger,iAsIntegers=Text1.Text:n=Len(s):i=1DoWhilei=nc=Mid(s,i,2)Ifc=00Thend=東ElseIfc=01Thend=南ElseIfc=10Thend=西Elsed=北EndIfb1=Val(Mid(s,i+2,1)b2=Val(Mid(s,i+3,1)v=List1.AddItemd+Str(v)LoopEndSub(3)若文本框Text1中輸入的內(nèi)容為“1111”,單擊“翻譯”按鈕,列表框List1中顯示的內(nèi)容是。答案(1)B(2)b1*2+b2i=i+4(3)北33.(2017浙江11月選考,14,5分)編寫
38、“字符串生成”程序,實現(xiàn)如下功能:在文本框Text1中(字符位置)輸入多個正整數(shù)(以“,”為分隔符和結(jié)束符),單擊“生成”按鈕Command1,程序以這些整數(shù)為位置信息,依次從文本框Text2中(字典內(nèi)容)提取字符并連接成字符串,最后將字符串顯示在標(biāo)簽Label1中(生成內(nèi)容)。程序運(yùn)行界面如圖所示。(1)要使程序運(yùn)行時,窗體Form1標(biāo)題顯示“字符串生成”,可在Form_Load事件過程中添加語句(單選,填字母:A.Form1=字符串生成/B.Form1.Text=字符串生成/C.Form1.Caption=字符串生成)。(2)實現(xiàn)上述功能的VB程序如下,請在劃線處填入合適的代碼。Priva
39、teSubCommand1_Click()DimsAsString,tAsString,cAsStringDimiAsInteger,pAsIntegers=:t=Fori=1ToLen(Text1.Text)c=Mid(Text1.Text,i,1)Ifc=,Thenp=Val(t)s=s+Mid(Text2.Text,p,1)t=Elset=EndIfNextiLabel1.Caption=EndSub(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)pas(2)變
40、量t(字符串類型)存儲字符位置。程序通過Mid函數(shù)將文本框Text1中的字符逐個讀取并判斷,如果所取字符是逗號,則表示一個字符位置已經(jīng)讀取完整,將變量t轉(zhuǎn)換成數(shù)值,然后去字典里取對應(yīng)字符,把它連接到s后面;如果所取字符不是逗號,表示字符位置尚未結(jié)束,則將該字符連接到t后面。在Label1中輸出最后的結(jié)果s。(3)由于程序中將位置轉(zhuǎn)換成字典中字符的指令是在條件c=“,”的情況下才執(zhí)行的,因此輸入“1,18,9,9”,前三個位置會從字典中取出字符“pas”。由于最后一個“9”缺失了“,”,因此不會從字典中取字符??键c三排序算法及程序?qū)崿F(xiàn)20152019年真題提升題組1.(2017浙江4月選考,12
41、,2分)小趙對選擇排序算法進(jìn)行了如下改進(jìn):在數(shù)組的所有元素中找出最小和最大數(shù)據(jù)的元素,然后將這兩個元素分別與第一個和最后一個元素交換數(shù)據(jù),在余下的元素中找出最小和最大數(shù)據(jù)的元素,分別與第二個和倒數(shù)第二個元素交換數(shù)據(jù),以此類推,直到所有元素的數(shù)據(jù)按升序排列。小趙編寫的VB程序段如下:p=1:q=10DoWhilepqiMin=p:iMax=pFori=p+1ToqIfa(i)a(iMax)TheniMax=iNextit=a(iMin):a(iMin)=a(p):a(p)=tt=a(iMax):a(iMax)=a(q):a(q)=tp=p+1q=q-1Loop要使程序?qū)崿F(xiàn)上述算法思想,則方框中的
42、語句是()A.IfiMax=pTheniMax=iMinB.IfiMin=pTheniMin=iMaxC.IfiMax=pTheniMin=iMaxD.IfiMin=pTheniMax=iMin答案A2.(2016浙江4月選考,11,2分)有如下程序段:Fori=1To2Forj=5Toi+1Step-1Ifa(j)a(i)Thent=a(j):a(j)=a(i):a(i)=tEndIfNextjNexti數(shù)組元素a(1)到a(5)的值依次為“33,24,45,16,77”,經(jīng)過該程序段“加工”后,數(shù)組元素a(1)到a(5)的值依次為()A.77,45,33,16,24C.77,24,45,1
43、6,33B.77,33,45,16,24D.77,45,33,24,16答案A3.(2019浙江4月選考,16,3分)小明基于冒泡排序思想設(shè)計了一個改進(jìn)的排序算法。該算法先用冒泡法將數(shù)組a中奇數(shù)位置的元素、偶數(shù)位置的元素分別進(jìn)行排序,然后再進(jìn)行后續(xù)處理。算法的VB程序段如下,但加框處代碼有錯,請改正。待排序數(shù)據(jù)存儲在數(shù)組a中(a(1)a(n),要求升序排列Fori=1To(n-1)2Forj=1Ton-i*2Ifa(j)a(j+1)Then(1)t=a(j):a(j)=a(j+2):a(j+2)=tEndIfNextjNextiFori=1Ton2j=2*i-1Ifa(j)a(j+1)Then
44、t=a(j):a(j)=a(j+1):a(j+1)=tNextiFori=1TonStep2(2)t=a(i):j=i-1DoWhileta(j+2)或a(j)=a(j+2)或其他等價表達(dá)式(2)3Ton4.(2018浙江4月選考,16,3分)有一組正整數(shù),要求僅對其中的素數(shù)進(jìn)行升序排序。排序后素數(shù)在前,非素數(shù)在后。排序示例如下。排序前867154181793789排序后537417179898681實現(xiàn)上述功能的VB代碼如下,但加框處有錯,請改正。Constn=8Dima(1Ton)AsIntegerPrivateSubCommand1_Click()DimiAsInteger,jAsInt
45、eger,kAsInteger,tAsIntegerDimflagAsBoolean讀取一組正整數(shù),存儲在數(shù)組a中,代碼略Fori=1Ton-1k=1(1)IfIsPrime(a(k)Thenflag=TrueElseflag=FalseForj=i+1TonIfIsPrime(a(j)ThenIfa(j)a(k)Then(2)k=jflag=TrueEndIfEndIfNextjIfkiThent=a(k):a(k)=a(i):a(i)=tEndIfIfNotflagThenExitForExitFor表示退出循環(huán)Nexti依次輸出排序后的數(shù)據(jù)。代碼略EndSubFunctionIsPrim
46、e(mAsInteger)AsBoolean本函數(shù)判斷m是不是素數(shù):是素數(shù)返回值為True,不是素數(shù)返回值為False代碼略EndFunction答案(1)k=i(2)a(j)a(k)Orflag=False5.(2017浙江11月選考,16,3分)小李基于冒泡排序算法編寫了一個VB程序,功能如下:在文本框Text1中顯示排序前的數(shù)據(jù),單擊“排序”按鈕Command1,在文本框Text2中顯示剔除重復(fù)數(shù)據(jù)后的升序排序結(jié)果。程序運(yùn)行界面如圖所示。實現(xiàn)上述功能的VB程序如下,但加框處代碼有錯,請改正。Constn=10Dima(1Ton)AsIntegerPrivateSubCommand1_Cl
47、ick()DimiAsInteger,jAsInteger,tAsIntegerDimbottomAsInteger獲取排序前數(shù)據(jù)依次存儲在數(shù)組a中,并在文本框Text1中顯示。代碼略bottom=ni=1DoWhilei=bottom-1Forj=bottomToi+1Step-1Ifa(j)a(i)Then(1)t=a(j):a(j)=a(j-1):a(j-1)=tElseIfa(j)=a(j-1)Then相鄰兩個數(shù)據(jù)相等,進(jìn)行剔除處理a(bottom)=a(j)(2)bottom=bottom-1EndIfNextji=i+1LoopText2.Text=Fori=1TobottomTe
48、xt2.Text=Text2.Text+Str(a(i)NextiEndSub答案(1)a(j)a(j)(2)a(j)=a(bottom)6.(2016浙江10月選考,16,3分)小吳為了研究冒泡排序過程中數(shù)據(jù)的“移動”情況,編寫了一個VB程序,功能如下:在列表框List1中顯示排序前數(shù)據(jù)(存儲在數(shù)組a中),在文本框Text1中輸入初始位置(即下標(biāo)值),單擊“排序”按鈕Command1后,在標(biāo)簽Label1中顯示指定初始位置的數(shù)據(jù)在排序過程中的位置變化情況,排序后的數(shù)據(jù)顯示在列表框List2中。程序運(yùn)行界面如圖所示。實現(xiàn)上述功能的VB程序如下,但加框處代碼有錯,請改正。Dima(1To8)As
49、IntegerDimnAsIntegerPrivateSubForm_Load()a(1)=30:a(2)=47:a(3)=30:a(4)=72a(5)=70:a(6)=23:a(7)=99:a(8)=24n=8Fori=1To8List1.AddItema(i)NextiEndSubPrivateSubCommand1_Click()DimiAsInteger,jAsInteger,kAsIntegerDimposAsIntegerDimsAsStrings=Text1.Textpos=Val(Text1.Text)Fori=1Ton-1Forj=nToi+1Step-1Ifa(j)a(j-
50、1)Thenk=a(j)(1)a(j-1)=a(j)a(j)=k如果pos位置的數(shù)據(jù)參與交換,則更新pos值,記錄pos變化位置Ifpos=jThenpos=j-1s=s+Str(pos)Else(2)pos=js=s+Str(pos)EndIfEndIfNextjNextiLabel1.Caption=位置變化情況:+sFori=1TonList2.AddItemStr(a(i)NextiEndSub答案(1)k=a(j-1)(2)ElseIfpos=j-1Then考點四查找算法及程序?qū)崿F(xiàn)20152019年真題提升題組1.(2019浙江4月選考,12,2分)有1個升序排列的數(shù)組a(a(1)a
51、(n),n3),從左到右相鄰兩個元素的差值(后一個元素值減去前一個元素值)先由小到大、再由大到小,且相鄰兩個差值不相等,為了查找相鄰兩個元素的最大差值,小李編寫的VB程序段如下:i=1:j=nDoWhilei+1a(m)-a(m-1)ThenElseEndIfLoopLabel1.Caption=相鄰兩個元素的最大差值是+Str(a(j)-a(i)上述程序段兩個方框處的語句分別為()A.i=mj=mB.i=mj=m-1C.i=m+1j=m-1答案AD.i=m+1j=m2.(2018浙江4月選考,12,2分)數(shù)組a為一組正整數(shù),奇數(shù)在前,偶數(shù)在后。奇數(shù)與偶數(shù)已分別按升序排序。依據(jù)對分查找思想,設(shè)
52、計一個在數(shù)組a中查找數(shù)據(jù)Key的程序。實現(xiàn)該功能的VB程序段如下:i=1:j=10Key=Val(Text1.Text)DoWhileijThens=沒有找到!Elses=位置:+Str(m)Text2.Text=s上述程序中方框處可選語句為:i=m+1j=m-1IfKeya(m)Thenj=m-1Elsei=m+1則(1)、(2)、(3)處語句依次是()A.、B.、C.、D.、答案C3.(2017浙江11月選考,12,2分)某對分査找算法的VB程序段如下:i=1:j=7:s=key=Int(Rnd*100)DoWhilei=jm=(i+j)2Ifkey=a(m)Thens=s+M:ExitD
53、oExitDo表示退出循環(huán)ElseIfkeya(m)Thenj=m-1:s=s+LElsei=m+1:s=s+REndIfLoopText1.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分)某對分查找算法的VB程序段如下:key=Val(Text1.Text)i=1:j=10Text2.Text=)DoWhilei=jm=Int(i+j)/2+0.5)Ifkey=a(m)ThenExitDoExitDo表示退出循
54、環(huán)Ifkeya(m)Thenj=m-1Elsei=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.4024B.402436C.3624D.361724答案B5.(2016浙江10月選考,12,2分)某對分査找算法的VB程序段如下:i=1:j=9:n=0key=Val(Text1.Text)DoWhilei=jn=n+1m=Fix(i+j)/2)Ifkey=d(m)ThenExitDoIfk
55、eyd(m)Thenj=m-1Elsei=m+1Loop數(shù)組元素d(1)到d(9)的值依次為“7,12,18,25,39,58,61,72,86”。若該程序段運(yùn)行結(jié)束后,n的值為2,則key的值是()A.39B.18或61C.18或72D.12或61答案D6.(2016浙江4月選考,12,2分)已知一無序數(shù)組a(下標(biāo)1到n),通過引入數(shù)組b(下標(biāo)1到n),使得a(b(1)a(b(2)a(b(3)a(b(n)(示例如圖所示),對這些有序數(shù)據(jù)可進(jìn)行對分查找。則第一次查找時,中點位置m與中點值分別是()A.m的值是Fix(1+n)/2),中點值是a(m)B.m的值是Fix(1+n)/2),中點值是a
56、(b(m)C.m的值是Fix(b(1)+b(n)/2),中點值是a(m)D.m的值是Fix(b(1)+b(n)/2),中點值是a(b(m)答案B7.(2018浙江11月選考,16,3分)數(shù)組a中存儲的是左右交替上升的n個正整數(shù),如下表所示:a(1)3a(2)25a(3)38a(n-2)a(n-1)a(n)553112依據(jù)對分查找思想,設(shè)計一個在數(shù)組a中查找數(shù)據(jù)key的程序,實現(xiàn)該功能的VB程序如下,但加框處代碼有錯,請改正。PrivateSubCommand1_Click()Constn=6Dima(1Ton)AsInteger,flagAsBooleanDimiAsInteger,jAsIn
57、teger,mAsInteger,keyAsInteger讀取一組正整數(shù),按上述規(guī)則存入數(shù)組a中,代碼略key=Val(Text1.Text)i=1j=(n+1)2flag=FalseDoWhileijAndNotflag(1)m=(i+j)2Ifkey=a(m)Thenflag=TrueElseIfkey0Thenm=n-i(2)Ifkey=a(m)Thenflag=TrueEndIfIfflagThenText2.Text=Str(m)ElseText2.Text=找不到EndIfEndSub答案(1)i=j(2)n-i+2或n-j+1考點五遞歸算法及程序?qū)崿F(xiàn)考點六算法在數(shù)據(jù)管理中的應(yīng)用2
58、0152019年真題提升題組(2016浙江10月選考,17,6分)小王與小李合作編寫一個成績統(tǒng)計的VB程序:小王編寫一個過程,該過程從數(shù)據(jù)庫讀取某一指定科目的相關(guān)數(shù)據(jù),存儲在數(shù)組a中;小李編寫一個過程,該過程依據(jù)數(shù)組a中的相關(guān)數(shù)據(jù)統(tǒng)計各班級平均分,小王與小李約定的數(shù)組a各元素含義如下表所示。數(shù)組元素a(1)a(2)a(n+1)a(n+2)數(shù)組元素的含義存儲班級數(shù)n從a(2)到a(n+1)依次存儲第1、第2、第n個班級的人數(shù)從a(n+2)開始依次存儲第1個班級每個學(xué)生的單科成績、第2個班級每個學(xué)生的單科成績、第n個班級每個學(xué)生的單科成績程序功能如下:在文本框Text1中輸入科目名稱,單擊“讀數(shù)據(jù)
59、庫”按鈕Command1,程序從數(shù)據(jù)庫讀取數(shù)據(jù);單擊“開始統(tǒng)計”按鈕Command2,程序進(jìn)行統(tǒng)計處理,結(jié)果輸出在列表框List1中。程序運(yùn)行界面如圖所示。實現(xiàn)上述功能的VB程序如下,請回答下列問題:(1)根據(jù)程序運(yùn)行界面中的數(shù)據(jù)及數(shù)組a各元素的含義進(jìn)行分析,數(shù)組元素a(5)的值為(填寫數(shù)值)。(2)分析程序,可知數(shù)據(jù)庫的文件名為。(3)請在劃線處填入合適的代碼。Dima(1To600)AsInteger數(shù)組大小滿足處理要求PrivateSubCommand1_Click()本過程由小王完成,從數(shù)據(jù)庫讀取指定科目的各相關(guān)數(shù)據(jù),存儲在數(shù)組a中DimconnAsNewADODB.Connectio
60、nDimrsAsNewADODB.Recordsetconn.ConnectionString=provider=Microsoft.ACE.OLEDB.12.0;datasource=+Score.accdbconn.OpenSetrs.ActiveConnection=conn本過程的其他語句略EndSubPrivateSubCommand2_Click()本過程由小李完成,依據(jù)數(shù)組a中的相關(guān)數(shù)據(jù)統(tǒng)計各班級平均分DimiAsInteger,jAsInteger,nAsIntegerDimpAsInteger,sumAsInteger,averAsSinglep=n+2Fori=1Tonsu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)學(xué)生家長委員會制度
- 企業(yè)辦公設(shè)備采購管理制度
- 2026年物流管理專業(yè)考試供應(yīng)鏈管理與優(yōu)化題目
- 2026年心理咨詢室干預(yù)流程實操題目
- 2026年體育產(chǎn)業(yè)發(fā)展趨勢下的教練員專業(yè)素質(zhì)測試題
- 燙傷疤痕修復(fù)治療合同
- 傳聲港輿情優(yōu)化公司白皮書:汽車行業(yè)輿情優(yōu)化解決方案
- 護(hù)理應(yīng)急管理制度內(nèi)容
- 廣西來賓市2025-2026學(xué)年高二上學(xué)期期末模擬卷(一)地理試卷(含部分解析)
- 2025年湖北科技職業(yè)學(xué)院單招職業(yè)技能考試模擬測試卷附答案解析
- 38000t化學(xué)品船施工要領(lǐng)
- 極兔快遞合作合同協(xié)議書
- 加油站安全環(huán)保課件
- co中毒遲發(fā)性腦病診斷與治療中國專家共識解讀
- 新版預(yù)算管理制度
- 2024版人教版八年級上冊英語單詞表(含音標(biāo)完整版)
- “轉(zhuǎn)作風(fēng)、換腦子、促管理”集中整頓工作心得體會
- 提高幕墻主龍骨安裝合格率(QC)
- 高層樓宇門窗安裝安全施工方案
- 河南省天一大聯(lián)考2024-2025學(xué)年高一化學(xué)上學(xué)期期末考試試題
- 高血壓病的中醫(yī)藥防治
評論
0/150
提交評論