2021年浙江高考信息技術(shù)復(fù)習(xí)練習(xí)講義:六 算法的程序?qū)崿F(xiàn)_第1頁
2021年浙江高考信息技術(shù)復(fù)習(xí)練習(xí)講義:六 算法的程序?qū)崿F(xiàn)_第2頁
2021年浙江高考信息技術(shù)復(fù)習(xí)練習(xí)講義:六 算法的程序?qū)崿F(xiàn)_第3頁
2021年浙江高考信息技術(shù)復(fù)習(xí)練習(xí)講義:六 算法的程序?qū)崿F(xiàn)_第4頁
2021年浙江高考信息技術(shù)復(fù)習(xí)練習(xí)講義:六 算法的程序?qū)崿F(xiàn)_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

專題六算法的程序?qū)崿F(xiàn)

探考情悟真題

【考情探究】

5年考情預(yù)測(cè)熱

考點(diǎn)考試內(nèi)容考試要求

考題示例考向難度度

解析算法的思想方法2016浙江4月選考,14,5

分;

2017浙江4月選考,14,5

解析算

分;進(jìn)制轉(zhuǎn)換、質(zhì)數(shù)問題及其他數(shù)

法及程C

解析算法的程序?qū)崿F(xiàn)2019浙江1月學(xué)考,11,5論問題'數(shù)學(xué)猜想等

序?qū)崿F(xiàn)

分;

2019浙江6月學(xué)考,11,5

枚舉算法的思想方法2016浙江10月選考,14,5

分;

2017浙江“月選考」4,5字符串處理問題是考試熱

枚舉算分;點(diǎn),如在字符串中利用逗

法及程C號(hào)、空格、數(shù)字等特殊符

枚舉算法的程序?qū)崿F(xiàn)2018浙江4月選考,14,5號(hào)完成_些統(tǒng)計(jì)或計(jì)算功

序?qū)崿F(xiàn)

分;能

2018浙江11月選考.14,5

冒泡排序的思想方法2015浙江10月選考,16,4

分;

2016浙江4月選考,11,2排序算法優(yōu)化;冒泡排序變

排序算

分;形,如雙向排序、奇偶分開

法及程C★★★A

冒泡排序的程序?qū)崿F(xiàn)2016浙江10月選考,16,3排序,素?cái)?shù)合數(shù)分開排★

序?qū)崿F(xiàn)

分;序、去重復(fù)數(shù)排序等

2017浙江11月選考,16,3

分;

2019浙江4月選考,16,3

選擇排序的思想方法2017浙江4月選考,12,2

排序變形,如雙向排序、奇

分;

★★

C偶分開排序、素?cái)?shù)合數(shù)分

選擇排序的程序?qū)崿F(xiàn)

2018浙江4月選考,16,3開排序等

順序查找的思想方法順序查找比較簡(jiǎn)單,一般不

查找算

單獨(dú)考,會(huì)結(jié)合其他知識(shí)

2017浙江4月選考,16,3★★

法及程C點(diǎn),比如在數(shù)列中插入數(shù)、

分☆

順序查找的程序?qū)崿F(xiàn)

序?qū)崿F(xiàn)刪除數(shù)列中的重復(fù)數(shù)、w

找替換等

對(duì)分杳找的思想方法2015浙江10月選考,11,2

分;

2016浙江4月選考,12,2

分.

一類題是考查對(duì)分查找的

2016浙江10月選考,12,2運(yùn)用:如查找次數(shù)、查找中

分;各個(gè)變量值的變化;另一類

2017浙江1月選考,IL2題是將數(shù)據(jù)源序列由單一

查找算分;的從小到大變成如奇偶分

法及程C開數(shù)列、循環(huán)有序數(shù)列、

對(duì)分查找的程序?qū)崿F(xiàn)201711★★★★

浙江月選考,⑵2左右交替上升闞等,此類:

序?qū)崿F(xiàn)

分:數(shù)列往往是分成前后兩個(gè)

2018浙江4月選考,12,2有序數(shù)列,查找過程中,對(duì)

分;分的主要思想不變,無非是

增加了一些條件設(shè)置

2018浙江11月選考,16,3

分;

2019浙江4月選考,12,2

遞歸算遞歸算法的思想方法遞歸算法本質(zhì)上是自定義

法及程b函數(shù)的應(yīng)用,到目前為止,

遞歸算法的程序?qū)崿F(xiàn)

序?qū)崿F(xiàn)未在真題中出現(xiàn)

算法在通過Connection對(duì)象連

目前關(guān)于數(shù)據(jù)庫一種新的

數(shù)據(jù)管接數(shù)據(jù)庫2016

浙江10月選考,17,6考法是選擇題形式,只要掌..

*

分握連接數(shù)據(jù)庫并讀取數(shù)據(jù)☆

理中的通過Recordset對(duì)象讀

應(yīng)用取數(shù)據(jù)表中的數(shù)據(jù)庫的標(biāo)準(zhǔn)代碼即可。此外

要學(xué)會(huì)分析數(shù)組變量中存

算法在數(shù)據(jù)管理中的應(yīng)

儲(chǔ)的數(shù)據(jù)內(nèi)容和類型,并掌

握數(shù)組下標(biāo)的靈活運(yùn)用

分析解讀本專題主要考查幾大算法的思想方法和程序?qū)崿F(xiàn),包括枚舉、解析、排序、查找、遞歸,題型有選擇題和非選擇題。

選擇題為第11和12題、非選擇題為第15和16題,這幾題考杳排序算法與對(duì)分查找的頻度較高,難度為中等或較難。

縱觀幾次真題,程序題有逐年加難的趨勢(shì)。試題中對(duì)于算法的考查不再局限于算法的基本形,而是在基本形的基礎(chǔ)上做了許多

變形,比如冒泡排序的幾種變式,對(duì)分查找的變式等。還有一種變化是,在基本形的基礎(chǔ)上增加程序的功能,比如對(duì)排序算法進(jìn)行改

進(jìn)從而提高排序的效率、記錄排序中數(shù)據(jù)的移動(dòng)過程,利用查找算法杳找并刪除數(shù)列中的重復(fù)數(shù)據(jù)等。

還有一個(gè)重要變化是,最近幾次的真題對(duì)幾個(gè)經(jīng)典算法的考查相對(duì)弱化,開始加強(qiáng)對(duì)數(shù)組的考查。往往在選擇題最后2個(gè)題中

有一個(gè)是考查數(shù)組的綜合運(yùn)用,該題往往難度較大。一般選擇題中保留一題考查排序或?qū)Ψ植檎?考對(duì)分查找的概率較高。

黝§庫程序題一般難度不大,可能是篇幅太長的緣故,大題中考數(shù)據(jù)庫的概率并不高,有很多題都是一句話帶過:從數(shù)據(jù)庫中讀

取了什么數(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ù)庫可能會(huì)有一種新的考法,以選擇題的形式,考查

連接數(shù)據(jù)庫和讀取數(shù)據(jù)庫的基本方法和代碼。要掌握從代碼中分析數(shù)據(jù)庫文件的名稱、數(shù)據(jù)表的名稱,以及數(shù)據(jù)表中字段的讀取

方法、記錄集的移動(dòng)方法等基礎(chǔ)知識(shí)。

破考點(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ù)除法原理,編寫了如下程序,功能如下:在文本框Textl中輸入被除數(shù)(正整數(shù)),在文本框Text2中輸入除數(shù)(正

整數(shù)),在文本框Text3中輸入保留小數(shù)位數(shù),單擊按鈕Commandl,在標(biāo)簽Label1中顯示除法運(yùn)算的商。程序運(yùn)行界面如圖所示,

但加框處代碼有錯(cuò),請(qǐng)改正。

PrivateSubCommand1_C1ick()

Dimx,yAsInteger

DimnAsInteger

DimsAsString

x=Vai(Textl.Text):y=Vai(Text2.Text)

n=Vai(Text3.Text)

s=s+Str(x\y)

s=s+"

k=xMody

Fori=1Ton

|x=x+k*10|'(1)

k=xMody

Nexti

Label1.Caption="商為:"+s

EndSub

答案(Dx=k*10(2)s=s+Str(x\y)

2.(2018浙江十校聯(lián)盟選考適應(yīng)性考試,14,5分)編寫“二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)”程序,實(shí)現(xiàn)如下功能:在文本框Text!中輸

入一個(gè)二進(jìn)制數(shù),單擊“轉(zhuǎn)換”按鈕Commandl,將二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)并在文本框Text2中顯示。程序運(yùn)行界面如圖所示。

⑴設(shè)計(jì)如圖所示的程序界面,至少要使用個(gè)類(填數(shù)字)。

⑵實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。

PrivateSubCommandIClickO

DimsiAsString,s2AsString

DimiAsInteger,xAsInteger

Constcode=”0123456789ABCDEF”

si=Textl.Text:s2="”

DoWhileLen(sl)Mod400

si="0"+si

Loop

x=0:i=1

DoWhilei<=Len(sl)

x=x*2+Val(Mid(si,i,1))

i=i+l

If①Then

s2=s2+Mid(code,x+1,1)

EndIf

Loop

Text2.Text=s2

EndSub

⑶若文本框Textl中輸入的內(nèi)容為“101101”,單擊“轉(zhuǎn)換”按鈕后,文本框Text2中顯示的內(nèi)容是0

答案(1)4⑵①iMod4=1或(i-l)Mod4=0(或其他等價(jià)答案)②x=0⑶2D

考點(diǎn)二枚舉算法及程序?qū)崿F(xiàn)

L(2019寧波新高考適應(yīng)性考試)得分問題:給出一個(gè)由A和X組成的字符串,統(tǒng)計(jì)字符的得分之和。每個(gè)A的得分為已經(jīng)連續(xù)出

現(xiàn)的A的個(gè)數(shù),X得分為0。例如,AAXXAXXAAA的得分為1+2+0+0+1+0+0+1+2+3?,F(xiàn)編寫一個(gè)程序,功能如下:在文本框Text1中輸

入字符串,單擊“統(tǒng)計(jì)”按鈕Cmd_Sta后,程序計(jì)算得分,結(jié)果顯示在Text2中。

(l)Cmd_Sta對(duì)象屬于類(單選,填字母:A.Form/B.Label/C.TextBox/D.CommandButton),

⑵實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)诔绦騽澗€處填入合適的代碼。

PrivateSubCmd_Sta_Click()

DimsumAsInteger,iAsInteger,entAsInteger

DimcAsString,szAsString

sz=TextLText

ent=0:sum=0

Fori=1ToLen(sz)

Ifc="A"Then

sum=sum+ent

Else

ent=0

EndIf

Nexti

Tcxt2.Text=Str(sum)

EndSub

⑶運(yùn)行^亥程序,輸入數(shù)據(jù)如上圖所示,程序執(zhí)行到循環(huán)結(jié)束時(shí),變量ent的值為0

答案(1)D(2)①c=Mid(sz,i,1)或c=Mid(Textl.Text,i,1)②ent=ent+1(3)3

2.珠心算是在大腦中以算盤表象作為載體,運(yùn)用珠算法則所進(jìn)行的計(jì)算。某學(xué)校的珠心算老師采用一種快速考查珠心算加法能力

的測(cè)驗(yàn)方法。他隨機(jī)給出一個(gè)正整數(shù)集合,集合中的數(shù)各不相同,然后要求學(xué)生回答:其中共有多少個(gè)數(shù)恰好等于集合中另外兩個(gè)

(不同的)數(shù)之和?例如對(duì)于集合U,2,3,4},一共有2個(gè)數(shù)等于集合中另外兩個(gè)數(shù)之和,它們是3、4(4=3+1,3=2+1)。將上述算法編

寫成程序,其功能如下:程序運(yùn)行時(shí)產(chǎn)生n個(gè)范圍在[1,100]內(nèi)的不同的隨機(jī)整數(shù)存儲(chǔ)在數(shù)組a中,并在列表框List1中顯示。單擊

按鈕Command1后,在標(biāo)簽Label1上輸出結(jié)果,如圖所示。

⑴對(duì)于集合{1,2,3,4,5.6},一共有個(gè)數(shù)等于集合中另外兩個(gè)數(shù)之和。

⑵實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適代碼。

Constn=12

Dima(lTon)AsInteger

Dimflag(lTo100)AsBoolean

PrivateSubForm_Load()

DimiAsInteger,tAsInteger

Fori=lTo100

flag(i)=False

Nexti

i=l

DoWhilei<=n

t=Int(Rnd*100)+1

IfNotflag(t)Then

Listl.AdditemStr(t)

flag(t)=True

i=i+l

EndIf

Loop

EndSub

PrivateSubCommandl_Click()

DimiAsInteger,jAsInteger,ansAsInteger

ans=0

Fori=lTon

Forj=i+lTon

Ifa(i)+a(j)<=100Then

If?Then

ans=ans+l

flag(a(i)+a(j))=False

EndTf

Nextj

Nexti

Label1.Caption="共有"+Str(ans)+”個(gè)數(shù)!"

EndSub

答案(1)4(2)①a(i)=t②flag(a(i)+a(j))或flag(a(i)+a(j)):True③EndIf

考點(diǎn)三排序算法及程序?qū)崿F(xiàn)

1.(2019金華十校第一學(xué)期調(diào)研考試,11,2分)有一個(gè)數(shù)組,采用冒泡排序,第一翩E序后的結(jié)果為3.18,5,35,8,9,11,13,32,那么

該數(shù)組的原始順序不可能星()

A.18,5,35,8,9,11,13,32,3

B.18,5,35,8,9,11,3,13,32

C.18,5,35,3,8,9,11,13,32

D.3,18,5,35,13,11,32,8,9

答案D

2.(2020屆名校協(xié)作體信息技術(shù)試題)某排序算法的VB程序段如下:

k=1

Fori=1To2

Forj=1To6-2*i

Ifk*a(j)<k*a(j+2)Then

t=a(j):a(j)=a(j+2):a(j+2)=t

EndIf

k=-k

Nextj

Nexti

數(shù)組元素a⑴到a(6)的初始值依次為“15,11,58,38,26,9”,該程序段執(zhí)行后,數(shù)組元素a⑴到a(6)的值分別為()

A.58,9,26,11,15,38B.58,38,26,11,15,9

C.15,38,26,11,58,9D.58,38,26,15,11,9

答案A

3.(2018溫州新力量聯(lián)盟期末)有如下VB程序段:

Constn=8

Dima(lTon)AsInteger

Fori=1Ton

a(i)=Int(Rnd*20)

Nexti

x=n\2

Fori=xTo2Step-1

Forj=1Toi-1

Ifa(j)<a(i)Then

t=a(j):a(j)=a(i):a(i)=t

EndIf

Nextj

Nexti

i=n

DoWhilei>x+1

k=i

Forj=i-lTox+lStep-1

Ifa(j)>a(k)Thenk=j

Nextj

Ifk<>iThen

t=a(k):a(k)=a(i):a(i)=t

EndIf

i=i-1

Loop

執(zhí)行完這段代碼后,數(shù)組a中各個(gè)元素的值可能的是()

A.2,8,9,11,16,16,7,3B,19,19,18,12,9,8,6,6

C.20,17,10,10,5,II,13,16D.14,11,10,5,0,6,15,15

答案D

4.(2018寧波“十校聯(lián)考”期末)若有以下數(shù)據(jù):64,57,22,96,71,分別存儲(chǔ)在a(1)至a(5)中,經(jīng)過以下程序段處理后的數(shù)據(jù)

依次為()

Dima(lTo6)AsInteger

s=0

Fori=1To5

Ifa(i)Mod2=1Thens=s+1

Nexti

Fori=1To4

Ifa(i)Mod2=0Then

Forj=5Toi+1Step-1

Ifa(j)Mod2=1Then

a(6)-a(i):a(i)=a(j):a(j)=a(6):ExitFor

EndIf

Nextj

EndIf

Nexti

Fori=s+2To5

k=i-1

Forj=iTo5

Ifa(k)>a(j)Thenk=j

Nextj

Ifk<>i-1Then

a(6)=a(i-1):a(i-1)=a(k):a(k)=a(6)

EndIf

Nexti

A.22,57,64,71,96B.71,57,22,96,64

C.71,57,22,64,96D.57,71,22,64,96

答案C

考點(diǎn)四查找算法及程序?qū)崿F(xiàn)

1.(2019浙江“七彩陽光”聯(lián)盟期初聯(lián)考)某對(duì)分有找算法部分代碼如下:

i=1:j=1000:flag=True:p=0

key=Vai(Textl.Text)

DoWhilei<=jAndflag

m=(i+j)\2

p=p+1

Ifa(m)=keyThenflag=False

Ifa(m)>keyThenj=m-1Elsei=m+1

Loop

數(shù)組元素a⑴到a(1000)中存放著升序排列的數(shù)據(jù)。下列說法正確的是()

A.若key的值小于a(1),則執(zhí)行該段程序后,變量j的值等于1

B.若key的值等于a(l),則執(zhí)行該段程序后,變量p的值等于10

C.若key的值等于a(1000),則執(zhí)行該段程序后,變量i的值等于1001

D.無論key的值是否在數(shù)組a中,執(zhí)行該段程序后,變量i的值均不可能等于m

答案C

2.(2018溫州九校聯(lián)考,12,2分)有如下VB程序段:

i=l:j=10:p=0

f=False

k=Int(Rnd*100)+0.5

DoWhilei<=jAndNotf

m=Fix((i+j)/2+0.5)

Tfk=a(m)Then

f=True

Elselfk<a(m)Then

j=m-l:p=p+l

Else

i=m+l:p=p-l

EndIf

Loop

Label1.Caption=Str(p)

數(shù)組元素a(1)到a(10)的值依次為“5,16,22,28,35,43,52,67,78,89”,執(zhí)行該程序段后,Label1的值不可能是()

A.-3B.-lC.1D.3

答案D

3.某對(duì)分查找算法的VB程序段如下:

k=Val(Tcxtl.Text)

i=l:j=6:Labell.Caption="":f=Ealse

DoWhilei<=jAndNotf

m=(i+j)\2

Ifa(m)=kThenf=True

Ifa(m)>a(i)Then

Ifa(i)<=kAndk<a(m)Thenj=m-lElsei=i+l

Else

Ifa(m)<kAndk<=a(j)Theni=i+lElsej=j-l

EndIf

Label1.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.2435

C.722435D.72242435

答案D

4.(2019五校聯(lián)考)某對(duì)分查找算法的VB程序段如下:

Key=Int(Rnd*49)*2+1

s=0:i=1:j=10

DoWhilei<=j

m=(i+j)\2

IfKey=a(m)ThenExitDo

IfKey<a(m)Then

j=m-1:s=2*s

Else

i=m+1:s=2*s+1

EndIf

Loop

數(shù)組a⑴到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é)用伯編碼如下程序:

PrivateSubCommand1ClickO

DimkAsInteger,aAsInteger,bAsInteger

a=Vai(Textl.Text):b=Vai(Text2.Text)

Label1.Caption=trans(a,b)

EndSub

Functiontrans(niAsInteger,nAsInteger)AsString

Ifm<>0Then

r=mModn

trans=trans(m\n,n)+Str(r)

Else

trans="0"

EndIf

EndFunction

程序運(yùn)行時(shí),在文本框Text1和Text2中分別輸入11和2,則Label1中的輸出結(jié)果是()

A.01011B.1011C.01101D.11010

答案A

2.樓梯有n階臺(tái)階,上樓可以一步上1階,也可以一步上2階,探究共有多少種不同的走法。

⑴完善程序:

PrivateSubCommand1Click()

DimnAsInteger

n=Vai(Textl.Text)

Text2.Text=Str(f(n))

EndSub

Functionf(aAsInteger)

Ifa=1Then

f=1

Elselfa=2Then

f=①

Else

f=②

EndIf

EndFunction

⑵若有10階臺(tái)階,共有種走法。

答案(D①2②f(a-1)+f(a-2)(2)89

考點(diǎn)六算法在數(shù)據(jù)管理中的應(yīng)用

小林編寫了一個(gè)統(tǒng)計(jì)高三16個(gè)班級(jí)選考技術(shù)人數(shù)占比的YB程序。運(yùn)行界面如圖所示,窗體加載時(shí),從數(shù)據(jù)庫中(其中“選考三”

字段中存儲(chǔ)了“技術(shù)”選考信息)調(diào)用數(shù)據(jù),統(tǒng)計(jì)各班選考技術(shù)的人數(shù)占比,并在列表框Listl中顯示“班級(jí)”和“選技術(shù)占比”。

單擊“排序”按鈕Command1,數(shù)據(jù)按選技術(shù)占比降序排序,在List2中顯示排序結(jié)果。

持序后

10

8

5

L1

實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)回答下列問題:

⑴分析程序,可知調(diào)用的數(shù)據(jù)表的名稱為O

⑵請(qǐng)?jiān)趧澗€處填入合適的代碼。

DimnAsInteger,iAsInteger,jAsInteger,變量n用于統(tǒng)計(jì)學(xué)生總數(shù)

DimratedTo16)AsInteger,num(lTo16)AsInteger,class(1To16)AsInteger

Dimtech(lTo50)AsInteger,cinfo(lTo5000)AsInteger,subj(lTo5000)AsString

PrivateSubFormLoad()

DimconnAsNewADODB.Connection,rsAsNewADODB.Recordset

conn.Connectionstring="Provider=Microsoft.ACE.OLEDB.12.0;DATASource="&App.Path&"\stuimfo.accdb”

conn.Open

Setrs.ActiveConncction=conn

rs.Open,SELECT*FROMxkqk*

'此處代碼略,實(shí)現(xiàn)將每個(gè)學(xué)生班級(jí)存儲(chǔ)到數(shù)組cinfo中,選考三科目存儲(chǔ)到數(shù)組subj中

Fori=1Ton

①‘統(tǒng)計(jì)各班人數(shù)存儲(chǔ)到數(shù)組num中,num(l)存儲(chǔ)1班的人數(shù)

Nexti

Fori=1To16

class(i)=i

Forj=1Ton

Ifclass(cinfo(j))=iThen

Ifsubj(j)="技術(shù)"Then②

EndIf

Nextj

rate(i)=tech(i)/num(i)*100

List1.Addlternads(class(i),3)+"/1,+ads(rate(i),7)+"%”

Nexti

EndSub

PrivateSubCommand1_C1ick()

DimiAsInteger,tAsInteger,sAsInteger

Fori=1To15

Forj=16Toi+1Step-1

If?Then

t=rate(j):rate(j)=rate(j-l):rate(j-l)=t

s=class(j):class(j)=class(j-l):class(j-l)=s

EndIf

Nextj

Nexti

List2.Additem"班級(jí)"+〃"+"選技術(shù)占比”

Fori=1To16

List2.AdditemStr(class(i))+"+Str(rate(i))+"為”

Nexti

EndSub

答案(l)xkqk(2)①num(cinfo(i))=num(cinfo(i))+l

②tech(i)=tech(i)+l③rale(j)>rate(j-1)

【五年高考】

考點(diǎn)一解析算法及程序?qū)崿F(xiàn)

2015—2019年真題■提升題組

1.(2019浙江6月學(xué)考,11,5分)小宇為選定班級(jí)參賽作品編了一個(gè)VB程序,設(shè)計(jì)如下:在文本框Texll中輸入5位評(píng)委對(duì)3個(gè)作

品的評(píng)分依據(jù)(評(píng)委對(duì)作品的評(píng)分?jǐn)?shù)據(jù)由3位十進(jìn)制數(shù)組成,第1位對(duì)應(yīng)作品編號(hào),第2、3位對(duì)應(yīng)作品得分,分值范圍為[60,99]0

如“275”表示2號(hào)作品得分75)。單擊“計(jì)分”按鈕后,在標(biāo)簽Label1中輸出3個(gè)作品的平均分,在Label2中輸出參賽的作品

(選擇最高平均分作品參賽,若最高平均分存在并列,則從并列作品中隨機(jī)抽?。﹐程序運(yùn)行界面如圖所示。

⑴“計(jì)分”按鈕的對(duì)象名為.

⑵程序部分代碼如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。

PrivateSubjf_Click()

DimsAsString,dAsString,iAsInteger

DimflAsSingle,f2AsSingle,f3AsSingle

s=Textl.Text

i=1

DoWhile①

d=Mid(s,i,3)

IfMid(d,1,1)=TThen

fl=fl+Vai(Mid(d,2,2))

ElselfMid(d,1,1)=〃2"Then

f2=f2+Vai(Mid(d,2,2))

Else

f3=f3+Vai(Mid(d,2,2))

EndIf

Loop

Label1.Caption="作品1平均分為:“+Str(f1/5)+”作品2平均分為:"+Str(f2/5)+”作品3平均分為:"+Str(f3/5)

以下省略“處理并列最高平均分,并在Label2中輸出選取的參賽作品”的代碼

EndSub

⑶運(yùn)行該程序時(shí),在文本框Textl中以不同的順序輸入原評(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ā)生改變。

答案⑴jf⑵①i〈=Len(s)或i<Len(s)或i<=57或其他可行答案②i:i+4⑶不會(huì)

2.(2019浙江1月學(xué)考,11,5分)小紅編寫了一個(gè)將5位以內(nèi)的十六進(jìn)制正整數(shù)轉(zhuǎn)化成十進(jìn)制數(shù)的VB程序,功能如下:在文本框

Textl中輸入一個(gè)十六進(jìn)制正整數(shù),單擊“轉(zhuǎn)換”按鈕Commandl,在標(biāo)簽Labe13中顯示結(jié)果。程序運(yùn)行界面如圖所示。

(1)要使窗體Forml標(biāo)題顯示“數(shù)制轉(zhuǎn)換”,則需修改窗體的(單選,填字母:A.Font/B.Caption/C.BackColor)屬

性。

⑵實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。

PrivateSubCommand1Click()

DimxAsString,chAsString

DimflagAsBoolean,iAsInteger,resultAsLong

x二①

i=1

result=0

flag=True

ch=Mid(x,1,1)

DoWhilei<=Len(x)Andflag=True

Ifch>="0"Andch<="9"Then

result=result*16+Vai(ch)

Elselfch>="A〃Andch<=〃Z"Then

result=result*16+(Asc(ch)-Asc("A")+10)

Elselfch>="a"Andch<=〃z"Then

result=result*16+(Asc(ch)-Asc("a")+10)

Else

flag=False

EndIf

i=i+1

ch=②

Loop

Ifflag=TrueThen

Label3.Caption=Str(result)

Else

Labe13.Caption二"輸入錯(cuò)誤”

EndIf

EndSub

⑶若在文本框Text]中輸入5+9,單擊“轉(zhuǎn)換”按鈕后,標(biāo)簽Labe13中顯示的內(nèi)容是(單選,填字母:A.14/B.E/

C.輸入錯(cuò)誤)。

答案(DB(2)①Tex11.TexI或其他等價(jià)表達(dá)式②Mid(x,i,1)或Vid(Texll.Text,i,1)或其他等價(jià)表達(dá)式(3)C

3.(2017浙江4月選考,14,5分)奇偶校驗(yàn)是一種校驗(yàn)數(shù)據(jù)傳輸正確性的方法。其中奇校驗(yàn)方法:統(tǒng)計(jì)二進(jìn)制數(shù)據(jù)的數(shù)位中“1”的

個(gè)數(shù),若個(gè)數(shù)為奇數(shù),則校驗(yàn)位值為0,否則校驗(yàn)位值為1。小李編寫了一個(gè)計(jì)算奇校驗(yàn)位值的VB程序,功能如下:在文本框Textl

中輸入廣255間的十進(jìn)制待校驗(yàn)數(shù),單擊“計(jì)算”按鈕Command1后,在文本框Text2中顯示該數(shù)對(duì)應(yīng)的二進(jìn)制值,并在標(biāo)簽

Label3中顯示該數(shù)的校驗(yàn)位值。程序運(yùn)行界面如圖所示。

⑴在設(shè)計(jì)程序界面時(shí),要清空文本框中的顯示內(nèi)容,應(yīng)修改該文本框中的屬性。

⑵實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。

PrivateSubCommand1_C1ick()

DimaAsInteger,sAsString

DimnAsInteger,tAsInteger,vAsInteger

n=Vai(Textl.Text)

t=0

s=""

DoWhilen>0

a=nMod2

n=n\2

t=?______

s=Str(a)+s

Loop

v=tMod2

Text2.Text=s

Labe13.Caption="校驗(yàn)位值:"+②

EndSub

⑶運(yùn)行該程序,在文本框Textl中輸入22,單擊“計(jì)算”按鈕,則顯示的校驗(yàn)位值是0

答案(l)Text(2)①t+a②Str(l-v)(3)0

考點(diǎn)二枚舉算法及程序?qū)崿F(xiàn)

2015—2019年真題,提升題組

1.(2018浙江11月選考,14,5分)在平面坐標(biāo)系中,給定一組有序的點(diǎn)。從原點(diǎn)出發(fā),依次用線段連接這些點(diǎn),構(gòu)成一條折線。要

求編寫一個(gè)“計(jì)算折線長度”的程序,功能如下:在文本框Texll中依次輸入這些點(diǎn)的坐標(biāo)值(數(shù)據(jù)都用逗號(hào)分隔并以逗號(hào)結(jié)尾),

單擊“計(jì)算”按鈕Cmd后,程序計(jì)算這條折線的長度,結(jié)果顯示在Label1中。例如,三個(gè)點(diǎn)的坐標(biāo)為⑸10),(8,12),(6,17),輸入

格式S口圖所示。

u計(jì)篇折線長度

15,10,8,12,6,17,||1

折線長度為:20.17105

(l)Cmd對(duì)象屬于類(單選,填字母:A.Form/B.Label/C.TextBox/D.CommandButLon)o

⑵實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。

PrivateSubCmd.ClickO

DimiAsInteger,jAsInteger,kAsInteger

DimxlAsSingle,ylAsSingle,x2AsSingle,y2AsSingle

DimdAsSingle,TotaldAsSingle,vAsSingle,sAsString

s二①

xl=0:yl=0'出發(fā)點(diǎn)為坐標(biāo)原點(diǎn)

k=l:j=l:Totald=0

Fori=lToLcn(s)

IfMid(s,i,1)=","Then

v=Val(Mid(s,j,i-j)),提取坐標(biāo)值,保存在變量v中

j=i+l

If?Then

x2=v

Else

y2=v

d=Sqr((x2-xl)-2+(y2-yl)2)

Totald=Totald+d

xl=x2:yl=y2

EndIf

k=k+l

EndIf

Nexti

Label1.Caption=Str(Totald)

EndSub

⑶運(yùn)行該程序,輸入題干中的數(shù)據(jù),程序執(zhí)行到循環(huán)結(jié)束時(shí),變量k為。

答案(DD(2)①Text1.Text②kMod2=1(3)7

2.(2018浙江4月選考,14,5分)某種編碼以4位二進(jìn)制碼為一組,每組前兩位表示方向,后兩位表示距離。編寫一個(gè)程序,將編碼

翻譯成方向和距離,距離值為每組編碼后兩位二進(jìn)制碼轉(zhuǎn)換為十進(jìn)制數(shù)的值。具體功能如下:在文本框Textl中輸入連續(xù)多組編碼,

單擊“翻譯”按鈕Commandl,結(jié)果顯示在列表框Listl中。程序運(yùn)行界面如圖所示。

⑴要使程序運(yùn)行時(shí),文本框Textl的Width屬性值為2018,可在FormLoad事件過程中添加語句(單選填字

母:A.Width=2018/B.Textl.Width=2018/C.Width.Text1=2018)o

⑵實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。

PrivateSubCommand1Click()

DimsAsString,cAsString,dAsString

DimnAsInteger,blAsInteger,b2AsInteger,vAsInteger,iAsInteger

s=Textl.Text:n=Len(s):i=1

DoWhilei<=n

c=Mid(s,i,2)

Tfc="00"Then

d="東〃

Elselfc="01"Then

d一南"

Elselfc-"10"Then

d=〃西〃

Else

d=〃北〃

EndIf

bl=Vai(Mid(s,i+2,1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論