浙江版信息技術(shù)高考總復(fù)習(xí)專題五算法與VB語言基礎(chǔ)(試題部分)教學(xué)講練_第1頁
浙江版信息技術(shù)高考總復(fù)習(xí)專題五算法與VB語言基礎(chǔ)(試題部分)教學(xué)講練_第2頁
浙江版信息技術(shù)高考總復(fù)習(xí)專題五算法與VB語言基礎(chǔ)(試題部分)教學(xué)講練_第3頁
浙江版信息技術(shù)高考總復(fù)習(xí)專題五算法與VB語言基礎(chǔ)(試題部分)教學(xué)講練_第4頁
浙江版信息技術(shù)高考總復(fù)習(xí)專題五算法與VB語言基礎(chǔ)(試題部分)教學(xué)講練_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息技術(shù)專項復(fù)習(xí)PAGE PAGE 63成功只是一步之遙!專題五算法與VB語言基礎(chǔ)探考情悟真題【考情探究】考點考試內(nèi)容考試要求5年考情預(yù)測熱度考題示例考向難度算法及VB語言基礎(chǔ)1.算法的表示流程圖b2015浙江10月選考,5,2分;2016浙江4月選考,5,2分;2016浙江10月選考,5,2分;2017浙江4月選考,6,2分;2017浙江11月選考,5,2分;2018浙江4月選考,7,2分;2018浙江6月學(xué)考,5,2分;2018浙江11月選考,5,2分;2019浙江4月選考,6,2分;2019浙江6月學(xué)考,5,2分循環(huán)結(jié)構(gòu)流程圖2.面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)b注:主觀題第一個程序題第1小題,分值

2、為1分,整合至其他考點,真題此處不再羅列程序界面設(shè)計中的控件、屬性、事件、方法等知識和概念3. VB語言基礎(chǔ)VB基本數(shù)據(jù)類型c注:本知識點是VB基礎(chǔ)知識中的重點,雖然考題中沒有直接考查該知識點,但其是讀懂代碼、分析代碼的基礎(chǔ),分值整合至其他知識點中,真題此處不再羅列整型、字符串型和邏輯型是熱門考點常量、變量的定義及使用c分析變量的作用和類型,是讀懂程序的關(guān)鍵,變量定義語句后的注釋語句有時可作為參考基本運算、表達式及常用標(biāo)準(zhǔn)函數(shù)c2018浙江6月學(xué)考,11,5分;2019浙江1月學(xué)考,5,2分取整函數(shù)Int、整數(shù)除、求余Mod、隨機函數(shù)Rnd、字符串處理函數(shù)Mid和Len是學(xué)考熱門考點4.VB基

3、本語句賦值語句c2016浙江10月選考,11,2分;2019浙江4月選考,14,5分每一道程序題都是VB語句的綜合應(yīng)用,需要熟練掌握這三種基本語句判斷語句循環(huán)語句5.數(shù)組的定義及使用c2015浙江10月選考,12,2分;2017浙江11月選考,11,2分;2017浙江11月選考,17,6分;2018浙江4月選考,11,2分;2018浙江11月選考,11,2分;2019浙江4月選考,11,2分?jǐn)?shù)組加循環(huán)6.過程與自定義函數(shù)c2015浙江10月選考,17,3分;2017浙江4月選考,17,6分;2018浙江4月選考,17,6分;2019浙江4月選考,17,6分分析解讀選、學(xué)卷分開后,整份試卷中,算

4、法與程序的分值加大了,由原來的20分增加到26分,分值組成如下:合卷時20分包括:3個選擇題(1個流程圖分析題、第11題和第12題,共6分)和3個填空題(第14題5分、第16題3分和第17題6分)。分卷時26分包括:6個選擇題(第7至第12題,每題2分)和2個填空題(第15題7分和第16題7分)??梢姺志砗?對算法和程序的考查加強了。到目前為止,分卷的學(xué)考卷已經(jīng)有兩份(2019年1月和2019年6月),分卷的選考卷尚且沒有(2020年1月為第一次),只有樣卷。分析樣卷,可以發(fā)現(xiàn)程序的題型和考法變得多樣。1.6個選擇題預(yù)測如下:流程圖保留,題型為選擇題,容易題。新增考查表達式、運算符和函數(shù),題型

5、為選擇題,容易題。新增考查字符串處理和循環(huán)語句,題型為選擇題,中等難度。新增考查數(shù)組和循環(huán)語句,題型為選擇題,中等難度。也可能考查數(shù)據(jù)庫連接的相關(guān)知識。第11題或第12題中必有一題考對分算法或排序算法,較難。第11題或第12題中通常有一個數(shù)組運用題,較難。2.2個填空題預(yù)測如下:第15題:相當(dāng)于將合卷時的第14題和第16題整合,共7分,第1小題仍然考查面向?qū)ο蠡A(chǔ)知識;后3個小題,一般是2個代碼填空,1個代碼改錯??赡苓€有一個算法分析填空。一般考排序算法或?qū)Ψ炙惴ǖ倪\用,中等偏上的難度。第16題:相當(dāng)于合卷時的第17題,通常有1個算法分析填空,3個代碼填空。一般考數(shù)組、自定義函數(shù)及算法的綜合運

6、用,比較熱門的有:矩陣、動態(tài)規(guī)劃、加密解密、壓縮解壓、區(qū)間合并等問題。本題是考卷的最難題,往往花費較多時間,需要考生合理分配時間。熟練掌握數(shù)組和VB基本語句語法,是解題的關(guān)鍵點。分卷后對數(shù)組的考查明顯加強了,難題和大題往往都是數(shù)組和語句的綜合運用,甚至排序算法和查找算法也是基于數(shù)組和語句的運用。破考點 練考向【考點集訓(xùn)】考點一算法的表示流程圖1.(2019金華十校期末調(diào)研考試)某算法的部分流程如圖所示,輸入“40”并執(zhí)行這部分流程后,輸出的sum的值是() A.91B.90C.21D.1275答案A2.(2018寧波十校聯(lián)考,5,2分)某算法流程圖如圖所示,執(zhí)行這部分流程,變量sum的值為()

7、A.1B.3C.4D.0答案A本題考查循環(huán)結(jié)構(gòu)流程圖。變量x與sum的變化過程如下:初值x=11,sum=0;第1次進循環(huán),sum=0+1-11 mod 2=0,x=5;第2次進循環(huán),sum=0+1-5 mod 2=0,x=2;第3次進循環(huán),sum=0+1-2 mod 2=1,x=1;第4次進循環(huán),sum=1+1-1 mod 2=1,x=0;退出循環(huán)。因此sum=1。3.(2018 浙南名校聯(lián)盟期末考試)某算法的部分流程圖如圖所示。執(zhí)行這部分流程圖后,輸出s的值是()A.15B.-4C.-5D.-6答案B4.(2019寧波新高考選考適應(yīng)性考試)某算法流程圖如圖所示,執(zhí)行該算法,輸出s的值是()

8、A.1.333333B.0.5C.-2D.3答案C考點二面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)1.在Visual Basic窗體中,當(dāng)前對象的屬性窗口如圖所示,下列說法正確的是()A.Command1是對象名B.True為屬性名C.Font為屬性值D.該對象的寬度值為495答案A2.(2018紹興期末調(diào)測)要使程序運行時,按鈕Command1上顯示“轉(zhuǎn)換”,下列方法不可行的是(單選,填字母:A.界面設(shè)計時,選中對象 Command1,設(shè)置 Caption 屬性為“轉(zhuǎn)換” /B.在 Form_Load 事件處理過程中添加語句 Command1.Caption = 轉(zhuǎn)換 / C.在Form_Load事件處理過程中添

9、加語句 Command1.Text=轉(zhuǎn)換)。答案C3.(2018浙江十校聯(lián)盟選考適應(yīng)性考試,14,1分)編寫如下程序:設(shè)計如圖所示的程序界面,至少要使用個類(填數(shù)字)。答案4考點三VB語言基礎(chǔ)1.(2019浙南名校聯(lián)盟第一次聯(lián)考)下列VB 表達式中,只隨機產(chǎn)生9 到99 之間偶數(shù)的是()A.Int(Rnd*90+10)B.Int(Rnd*90+9)C.Int(Rnd*45)*2+10D.Int(Rnd*45)*2+9答案C2.(2019浙江“七彩陽光”聯(lián)盟期初聯(lián)考)下列表達式的運算結(jié)果與其他選項不同的是()A.6 Mod 3 * 3B.Asc(“F”) -64C.Int(Sqr(50) -1D

10、.Mid(“123456”, 6, 1)答案D3.(2019第一學(xué)期五校聯(lián)考)如果一個整數(shù)是另一個整數(shù)的平方,則稱該數(shù)是“完全平方數(shù)”。下列表達式能判斷整數(shù) m 為完全平方數(shù)的是()(Sqr(m)2=mInt(Sqr(m)=Sqr(m)m/Int(Sqr(m)= mInt(Sqr(m)Int(Sqr(m)2=mA.B.C.D.答案C考點四VB基本語句1.有一VB程序的功能如下:在文本框Text1中輸入一串?dāng)?shù)字,以逗號分割。程序運行后,在標(biāo)簽Label1中輸出字符串中的最大數(shù)。例:在文本框Text1中輸入“12,23,9,45,98,58,”,運行結(jié)果為在標(biāo)簽Label1中顯示“98”。部分程序

11、如下:s = Text1.Textj=1:n=0 Do While j Max Then Max = xn = 0ElseEnd IfLoopLabel1.Caption = 最大值: +Str(Max)程序段劃線處應(yīng)填()A.x =Val(Mid(s, j - n, n)n=n+1j=j+1B.x =Val(Mid(s, j - n, n)j=j+1n=n+1C.x =Val(Mid(s, j -n + 1,n)n=n+1j=j+1D.x =Val(Mid(s, j - n + 1, n)j=j+1n=n+1答案A2. (2018浙江紹興柯橋選考模擬,14,5分)編寫一個“二進制數(shù)轉(zhuǎn)十六進制

12、數(shù)”的 VB 程序,實現(xiàn)如下功能:在文本框 Text1中輸入一個二進制數(shù),單擊“轉(zhuǎn)換”按鈕 Command1,在文本框 Text2 中顯示對應(yīng)的十六進制數(shù)。程序界面如圖所示:(1)實現(xiàn)上述功能的 VB 程序如下,請在劃線處填入合適的代碼。Private Sub Command1_Click()Const w = 0123456789ABCDEFDim i As Integer, n As Integer, c As String, s As String, s2 As Strings = Text1.TextFor i=1 To 4 - Len(s)Mod 4s=0+sNext ii = 1:

13、 n = 0Do While i num Then num = b(i)Next i數(shù)組b各元素初始值為0,數(shù)組元素a(1)到a(10)的值依次為“68,17,24,30,36,40,55,58,61,66”,執(zhí)行該程序段后,num的值為()A.2B.3C.4D.5答案D2.有如下VB程序段:Dim a(1 To 10) As IntegerDim s(1 To 10) As IntegerPrivate Sub Form_Load()a(1) = 3: a(2) = 6: a(3) = 8: a(4) = 4: a(5) = 9a(6) = 5: a(7) = 3: a(8) = 3: a(

14、9) = 10: a(10) = 5End SubPrivate Sub Command1_Click()Dim i As Integer, t As Integers(1) = a(1)For i = 2 To 10s(i) = s(i - 1) + a(i)Next it =s(8) - s(4)Text1.Text = Str(t)End Sub程序運行后,文本框Text1顯示的內(nèi)容是()A.24B.12C.7D.20答案D3.有如下VB程序段:Dim a(1 To 5)As Integer,i As Integer,c As Integera(1)=2:a(2)=1:a(3)=3:a(

15、4)=4:a(5)=5c=0For i=3 To 5If a(i-2)+a(i-1)=a(i) Then c=c+1Next iText1.Text=Str(c)該程序段運行后,文本框Text1中顯示的內(nèi)容是()A.1B.2C.3D.4答案B4.某VB程序段如下:For i = 1 To 5b(a(i) = b(a(i) + 1Next ipa = 0For j = 1 To 10For k = 1 To b(j)pa= pa +1 : a(pa) = jNext kNext ja(1)到a(5)的初值依次是7、5、9、4、3,程序段運行后,數(shù)組a值依次是()A.7,9,5,4,3B.3,4,

16、5,7,9C.4,5,7,9,3D.9,7,5,4,3答案B考點六過程與自定義函數(shù)1.找出所有兩位整數(shù)中的“鏡反平方數(shù)對”。所謂“鏡反平方數(shù)對”是指數(shù)對n與m,它們滿足條件:n與m不含有數(shù)字0,且n小于m;n的反序數(shù)是m,n的平方數(shù)的反序數(shù)等于m的平方。例如12與21,12的平方是144,其反序數(shù)是441,而21的平方正好等于441,所以12與21是鏡反平方數(shù)對,請完善程序代碼。Private Sub Command1_Click()Dim i As Integer, fm As Integer, st As String, n As Integer For i = 11 To 99IfThe

17、nn =i : fm = fx(n)If validate(i, fm) And i fm Thenst = i & “ 2=” & i 2 & “,” & fm & “2=” & fm 2List1. AddItem st End If End If Next iEnd SubPrivate Function fx(j As Integer) As Integer Dim s As StringDo While j 0j = j 10Loopfx = Val(s)End FunctionPrivate Function validate(p As Integer,q As Integer)

18、As Boolean If fx(p 2) = q 2 Then validate = TrueEnd Function答案i Mod 10 0 s = s + Str(j Mod 10)2.某游戲規(guī)則如下:將2*n位隊員按2人一組分成n個隊(n10),地面上有一排格子,共2*n個,每個格子都對應(yīng)一個小于10的隨機正整數(shù)。游戲開始后,所有隊員都選擇站到一個空的格子里,等他們站滿格子后,開始為每位隊員進行記分。記分規(guī)則:每組有甲、乙兩個隊員,甲隊員的分?jǐn)?shù)是從自己所站的格子開始,按照格子序號遞減,將這些格子中的數(shù)字一直累加到第1個格子。乙隊員的分?jǐn)?shù)是從自己所站的格子開始,按照格子序號遞增,一直將格

19、子中的數(shù)字累加到第2*n個格子。如果同一隊的兩名隊員得到的分?jǐn)?shù)相同,則該組參賽隊獲勝。例如:如圖所示,有4個隊8位隊員,地上一排格子的數(shù)字依次為:2、1、1、7、9、2、5、6。若某隊甲隊員站在第4個格子,則其分?jǐn)?shù)為2+1+1+7=11;乙隊員站在第7個格子,則其分?jǐn)?shù)為:5+6=11。兩者相等,則該隊獲勝。(1)假設(shè)有3組隊員,地上一排格子的數(shù)字依次為:6、7、3、4、3、9。若某組甲隊員站在第3個格子上,那么該組乙隊員站在第個格子上才能獲勝。(2)實現(xiàn)上述功能的VB程序如下。請在劃線處填入合適的代碼。Dim n As IntegerDim gz(1 To 20) As IntegerPriv

20、ate Sub Command1_Click()Dim dfa As Integer, dfb As Integer Dim ta As Integer, tb As IntegerRandomizeFor i = 1 To 2 * ngz(i) = Int(Rnd* 9 + 1)List1.AddItem gz( & i & ) & gz(i) Next i num = 1For j = 1 To 2 * nta = jdfa = zwdf(ta, True)For k = 1 To 2 * ntb = kIf dfa = dfb ThenList2.AddItem num & 甲隊員(&

21、j &)得分= & dfa & 乙隊員(& k & )得分=& dfbnum = num + 1End IfNext kNext jList2.AddItem 獲勝的站法共有:+ 種End SubFunction zwdf(p As Integer, r As Boolean) As Integer Dim fs As IntegerIf r = True Thenfs = fs +gz(i) Next i ElseFor i = p To 2 * n fs = fs +gz (i) Next i End Ifzwdf = fs End Function答案(1)4 (2)n=Val(Text

22、1.Text)dfb=zwdf(tb, False) 或 dfb=zwdf(k, False)Str(num-1)For i = p To 1 Step -1 或 For i = 1 To p【五年高考】考點一算法的表示流程圖20152019年真題提升題組1.(2019浙江6月學(xué)考,5,2分)十進制數(shù)轉(zhuǎn)換為二進制數(shù)的算法流程圖如圖所示,當(dāng)輸入十進制數(shù) 63 時,該流程圖中循環(huán)體執(zhí)行的次數(shù)為() A.4B.5C.6D.7答案C2.(2019浙江4月選考,6,2分)某算法的部分流程圖如圖所示。執(zhí)行這部分流程后,輸出 c,s的值分別是()A.8,10B.10,14C.12,6D.12,24答案B3.

23、(2018浙江11月選考,5,2分)某算法的部分流程圖如圖所示。執(zhí)行這部分流程,分別輸入35、50、60,則輸出值依次為()A.10,3B.10,4C.7,10,4D.10,12,3答案B4.(2018浙江6月學(xué)考,5,2分)某算法的部分流程圖如圖所示,以下說法正確的是()A.該流程執(zhí)行后,變量k的值是-1B.該流程執(zhí)行后,變量a的值是16C.該流程用于計算并輸出1+8-16的值D.該流程完整執(zhí)行1次,“a32?”共執(zhí)行了3次答案Dska初值118第1次循環(huán)1+1*8=9016第2次循環(huán)9+0*16=9132最后k=1,a=32,s=1+1*8+0*16=9。變量k的值在0和1之間切換。循環(huán)體

24、進入2次,循環(huán)條件判斷了3次,最后一次條件不成立,退出循環(huán)。5.(2018浙江4月選考,7,2分)某算法部分流程圖如圖所示。執(zhí)行這部分流程,依次輸入 12、-5、29、18、7,則輸出值是()A.12B.-5C.29D.7答案C6.(2017浙江11月選考,5,2分)某算法的部分流程圖如圖所示,執(zhí)行這部分流程后,輸出a,b的值分別是()A.5,8B.4,8C.5,11D.4,11答案C7.(2017浙江4月選考,6,2分)某算法的部分流程圖如圖所示。執(zhí)行這部分流程,依次輸入3,4,-1,則輸出s的值是()A.-2B.-1C.0D.1答案B8.(2016浙江10月選考,5,2分)某算法的部分流程

25、圖如圖所示,執(zhí)行這部分流程后,變量a,b的值分別是()A.3,3B.3,4C.6,6D.7,11答案D9.(2016浙江4月選考,5,2分)某算法的部分流程圖如圖所示,執(zhí)行這部分流程后,變量x的值是()A.0B.1C.2D.3答案B考點二面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)考點三VB語言基礎(chǔ)20152019年真題提升題組1.(2019浙江1月學(xué)考,5,2分)下列 VB 表達式的值等于8的是()A.Abs(-8.3)B.Int(Rnd*7+1)C.Len(“2+6”)D.18 Mod 10答案D2.(2015浙江3月學(xué)考,3分)下列屬于Visual Basic實數(shù)常量的是()A.0.618B.1/2C.True

26、D.“2014-9-1”答案A3.(2015浙江3月學(xué)考,3分)在Visual Basic中,若x是3的倍數(shù),則下列表達式值一定為真的是()A.x/3=0B.x*3=0C.x Mod 3=0D.3-x=0答案C4.(2018浙江6月學(xué)考,11,5分)素數(shù)只能被1和它本身整除,不能被其他自然數(shù)整除。編寫VB程序?qū)崿F(xiàn)如下功能:單擊“產(chǎn)生奇數(shù)并判斷”按鈕Command1,隨機產(chǎn)生一個三位正奇數(shù)顯示在文本框Text1中,并在文本框Text2中顯示其是不是素數(shù)的判斷結(jié)果。例如,當(dāng)隨機產(chǎn)生的三位正奇數(shù)為953時,程序運行界面如圖a所示。圖a圖b(1)在設(shè)計程序界面時,應(yīng)使用圖b所示“控件工具箱”中的(填寫

27、相應(yīng)編號)添加文本框Text1。(2)實現(xiàn)上述功能的VB程序如下,請在劃線處填寫合適的代碼。Private Sub Command1_Click()Dim n As Integer, i As IntegerDim flag As Boolean用于標(biāo)記是不是素數(shù)Randomizen = Int()*2-1Text1.Text = Str(n)flag = True標(biāo)記為素數(shù)i = 3Do While i n-1或i=n或i=n或其他等價表達式(3)B考點四VB基本語句20152019年真題提升題組1.(2016浙江10月選考,11,2分)對稱字符串的特征是從左到右讀和從右到左讀完全一樣。如“

28、abba”是對稱的,“abcba”也是對稱的。判斷字符串是否對稱的VB程序段如下:n=Len(s)k=0:j=nFor i=1 To n/2Next iIf k=0 ThenLabel1.Caption=對稱ElseLabel1.Caption=不對稱方框中的代碼由以下三部分組成:j=j-1If c1 c2 Then k=k + 1 c1= Mid(s,i,1):c2=Mid(s,j,1) 代碼順序正確的選項是()A.B.C.D.答案C2.(2019浙江4月選考,14,5分)小王設(shè)計“模擬撤銷”程序,需要用一個“歷史記錄”, “歷史記錄”是在對字符串s進行插入或刪除時,將每步操作信息依次存儲得

29、到的,操作信息由操作符(“+”表示插入,“-”表示刪除)、操作位置和操作字符串(只包含英文字母)構(gòu)成,例如,“+23abc”表示在字符串s第23個位置插入了“abc”, “模擬撤銷”過程按照“歷史記錄”的逆序進行,將字符串s的內(nèi)容恢復(fù)到初始狀態(tài)。對字符串“Book”的操作與撤銷過程,如圖a所示。圖a小王編寫的“模擬撤銷”VB程序如下,文本框 Text1中的內(nèi)容是撤銷前字符串,文本框Text2中的內(nèi)容是歷史記錄,單擊“撤銷”按鈕Command1后,在標(biāo)簽Label1中顯示撤銷過程,程序運行界面如圖b所示。圖b(1)實現(xiàn)上述功能的VB程序如下,在程序中出現(xiàn)的對象沒有Caption屬性的是。(選填,

30、填字母:A.Label1/B.Command1/C.Text1和Text2)(2)請在劃線處填入合適的代碼。Private Sub Command1_Click()Dim s As String, t As String,ch As StringDim c As String, num As String, ss As StringDim n As Integer,i As Integers = Text1.Text: t = Text2.Textc = : num = : ss = sFor i = Len(t) To 1 Step -1If ch = a And ch = A And ch

31、 = Z Thenc =ch + cElseIf ch = 0 And ch = 9 Thennum =ch + numElsen = Val(num)If ch = - Thens = Mid(s, 1, n - 1) +Elses = Mid(s, 1, n - 1) + Mid(s, n + Len(c), Len(s) - n - Len(c) + 1)End Ifss = ss + + sc = : num = End IfNext iLabel1.Caption = ssEnd Sub(3)運行該程序,若文本框Text1中的內(nèi)容是April,文本框Text2中的內(nèi)容是-3p+3ri

32、-6e,單擊撤銷按鈕,For循環(huán)語句執(zhí)行完成后,字符串s的值是。答案(1)C(2)ch=Mid(t,i,1)c+Mid(s,n,Len(s)-n+1)(3)Apple考點五數(shù)組的定義及使用20152019年真題提升題組1.(2019浙江4月選考,11,2分)有如下VB程序段:flag = true : i = 1Do While i 50 Thena(i)=xflag = Not flagi = i + 1End IfLoop執(zhí)行該程序段后,在下列選項中,a(1)a(6)各元素值不可能的是()A.52,95,46,74,77,83B.50,55,46,70,21,97C.62,78,57,61

33、,69,50D.31,54,48,72,50,82答案C2.(2018浙江11月選考,11,2分)有如下VB程序段:For i=1 To 6a(i)=Int(Rnd*10)+1Next iFor i=1 To 5If i Mod 2=1 And a(i) a(i+1) Thent=a(i):a(i)=a(i+1):a(i+1)=tElsea(i)=a(i)+1End IfNext i執(zhí)行程序后,a數(shù)組各元素可能是() A.11,11,7,9,3,9B.6,2,8,10,5,9C.6,9,3,7,8,12D.3,9,0,8,2,7答案A3.(2018浙江11月選考,12,2分)下列VB程序功能為

34、:根據(jù)文本框Text1中各字符的大小關(guān)系,計算各字符升序排列的序號,并將序號保存在數(shù)組y中。如文本框內(nèi)容為“2011”,程序運行后y(1) y(4)各元素的值分別為“4,1,2,3”。s=Text1.Textn=Len(s)For i=1 To ny(i)=1Next iFor i=1 To (1)For j= (2)To nIf (3)Theny(j)=y(j)+1Elsey(i)=y(i)+1End IfNext jNext i上述程序段3個加框處的表達式分別為()A.(1)n(2)1(3)Mid(s, j, 1)=Mid(s, i, 1)B.(1)n(2)1(3)Mid(s, j, 1)

35、Mid(s, i, 1)C.(1)n-1(2)i+1(3)Mid(s, j, 1)=Mid(s, i, 1)D.(1)n-1(2)i+1(3)Mid(s, j, 1)Mid(s, i, 1)答案C 4.(2018 浙江4月選考,11,2 分)有如下 VB 程序段:a(1) = 1: a(2) = 1b(1) = 1: b(2) = 2For i = 3 To 5a(i) = a(i - 1) + a(i - 2)b(i) = b(i - 1) + a(i)Next i執(zhí)行該程序段后,數(shù)組元素 b(5)的值為()A.12B.8C.5D.4答案A5.(2017 浙江 11 月選考,11,2 分)有

36、如下 VB 程序段:n=0For i=1 To Len(Text1.Text)c=Mid(Text1.Text,i,1)If c=0And c3If Leftm*m Thenm=Elsepa=Startpb=StartFor i=1 To m*mb(pb)=a(pa)pb=pb+1If i Mod m=0 ThenElsepa=pa+mEnd IfNext iStart=Start+m*mEnd IfLoopFor i=Start To nb(i)=a(i)Next i依次輸出轉(zhuǎn)換后的數(shù)據(jù) b(1)、b(2)、b(n),代碼略End Sub答案(1)4(2)m-1 或其他等價表達式pa=Sta

37、rt+im 或 pa=pa-(m-1)*m+1或其他等價語句 Left=Left-m*m 或 Left=n-Start-m*m+1或其他等價語句7.(2016浙江4月選考,17,6分)某數(shù)據(jù)壓縮方法描述如下:1)原始數(shù)據(jù)中,某數(shù)不為0且相鄰無重復(fù),壓縮數(shù)據(jù)用該數(shù)據(jù)表示;2)原始數(shù)據(jù)中,某數(shù)為0且相鄰無重復(fù),壓縮數(shù)據(jù)用兩個數(shù)表示,第1個為0,第2個為0;3)原始數(shù)據(jù)中,某數(shù)據(jù)相鄰有重復(fù),壓縮數(shù)據(jù)用3個數(shù)表示:第1個為0,第2個為重復(fù)數(shù)的個數(shù),第3個為該數(shù)本身;根據(jù)上述壓縮方法,對應(yīng)的解壓縮方法示例如圖a所示。圖a小明編寫了一個解壓縮VB程序,功能如下:窗體加載時,自動讀取壓縮數(shù)據(jù),依次存儲在數(shù)組

38、元素a(1)、a(2)、a(3)中,壓縮數(shù)據(jù)的個數(shù)存儲在變量n中,壓縮數(shù)據(jù)顯示在文本框Text1中。單擊“解壓縮”按鈕Command1,程序?qū)嚎s數(shù)據(jù)依次進行解壓縮處理,解壓縮數(shù)據(jù)顯示在文本框Text2中。程序運行界面如圖b所示。圖b(1)如果壓縮數(shù)據(jù)為“23,0,21,66,0,0,77,0,5,0”,則解壓縮數(shù)據(jù)的個數(shù)是。(2)實現(xiàn)上述功能的VB程序如下。請在劃線處填入合適代碼。Dim a(1 To 100) As Integer 存儲壓縮數(shù)據(jù),最大處理個數(shù)為100Dim b(1 To 1000) As Integer 存儲解壓縮數(shù)據(jù),最大處理個數(shù)為1000Dim n As Integer

39、 存儲壓縮數(shù)據(jù)的個數(shù)Private Sub Form_Load()壓縮數(shù)據(jù)由上述壓縮方法生成本過程用于讀取壓縮數(shù)據(jù)并存儲在數(shù)組a中,壓縮數(shù)據(jù)個數(shù)存儲在變量n中代碼略End SubPrivate Sub Command1_Click()Dim pa As Integer 存儲壓縮數(shù)組當(dāng)前處理位置Dim pb As Integer 存儲解壓縮數(shù)組當(dāng)前處理位置Dim firstdata As Integer, count As Integer, i As Integerpa=1:pb=1Do While pa =nfirstdata=a(pa)If firstdata 0 Then示例1)情況處理b

40、(pb)=firstdatapa=pa+1:pb=pb+1Elsecount=a(pa+1)If count=0 Then示例2)情況處理b(pb)=0pa=:pb=pb+1Else示例3)情況處理For i=1 To countNext ipa=pa+3: pb=pb+countEnd IfEnd IfLoopText2.Text=Str(b(1)For i=2 ToText2.Text=Text2.Text+,+Str(b(i)Next iEnd Sub答案(1)29(2)pa+2b(pb+i-1)=a(pa+2)pb-1考點六過程與自定義函數(shù)20152019年真題提升題組1.(2019浙

41、江4月選考,17,6分)給定m個區(qū)間和1個數(shù)組(有n個元素),現(xiàn)要求根據(jù)各區(qū)間限定的取值范圍,將數(shù)組依次分割成m+1個段。具體分割方法如下:第1段是從數(shù)組首個元素開始,元素值都屬于第1區(qū)間的最長連續(xù)元素段,如果首個元素不屬于第1區(qū)間,則第1段元素個數(shù)為0;第1段分割后的剩余元素,用同樣的方法來依次分割第2段、第3段、第m段;第m段分割后的剩余元素分割到第m+1段(剩余段)。若第p(1pm-1)段末尾連續(xù)元素的值也同時屬于第p+1區(qū)間,則這塊連續(xù)元素稱為第p段“重疊塊”,該段其余部分稱為第p段“非重疊塊”。由于不存在第m+1區(qū)間,這里特別規(guī)定:第m段的全部元素都分割到m段“非重疊塊”,第m段“重

42、疊塊”的元素個數(shù)為0。一個數(shù)組分段示例如圖。圖中數(shù)組第1個元素10不屬于第1區(qū)間0,5,因此第1段的元素個數(shù)為0。10和20屬于第2區(qū)間,而33不屬于第2區(qū)間, 因此第2段只包含10和20兩個元素。第3段末尾連續(xù)3個元素的值也同時屬于第4區(qū)間,因此,第3段“非重疊塊”包含33,58,46,第3段“重疊塊”包含55,62,69。(1)給定2個區(qū)間依次為10,50,30,80,數(shù)組各元素為“12,44,34,45,66,50,45,70”,則第1段“重疊塊”中的元素個數(shù)為。(2)小李根據(jù)上述描述,設(shè)計了一個統(tǒng)計各段“非重疊塊”“重疊塊”和剩余段中元素個數(shù)的算法。算法的VB程序如下,請在劃線處填入合

43、適的代碼。Const n = 18: m = 6Dim a(1 To n) As IntegerDim b(1 To 2 * m) As Integerb(1)、b(2)為第1區(qū)間的下限和上限,b(3)、b(4)為第2區(qū)間的下限和上限,Dim c(1 To 2 * m + 1) As Integer數(shù)組c用于保存統(tǒng)計結(jié)果:c(1)、c(2)分別存儲第1段“非重疊塊”和“重疊塊”的元素個數(shù),c(3)、c(4)分別存儲第2段“非重疊塊”和“重疊塊”的元素個數(shù),c(2* m-1)存儲第m段“非重疊塊”元素個數(shù),c(2 m)存儲第m段“重疊塊”的元素個數(shù)(值為0)c(2* m+1)存儲剩余段元素個數(shù)P

44、rivate Sub Command1_Click()Dim i As Integer, p As Integer, L As Integer, LL As Integer讀取n個數(shù)據(jù)并保存在數(shù)組a中,代碼略讀取m個區(qū)間的下限和上限并保存在數(shù)組b中,代碼略For i = 1 To 2 * m + 1c(i) = 0Next ii = 1: p = 1L = 0: LL = 0Do While If IsIn(i, p) ThenIf IsIn(i,p+1) ThenLL = LL + 1ElseLL = 0End Ifi = i + 1Elsec(2 * p - 1) = Lc(2 * p)

45、= LLL = 0LL=0p = p + 1End IfLoopIf i m ThenIsIn=FalseElseIfThen IsIn=True Else IsIn=FalseEnd IfEnd Function答案(1) 3(2)i=n And p=b(2*p-1) And a(i)a(i-1)、下降段(a(i)a(i-1) ThenIf IsSymPeak(flag, steps) Then count=count+1If flag=0 Or flag=-1 ThenElsesteps=steps+1End Ifflag=1ElseIf a(i)=a(i-1) ThenIf IsSymP

46、eak(flag, steps) Then count=count+1steps=0flag=0Elsesteps=steps-1flag=-1End IfNext iIf IsSymPeak(flag, steps) Then count=count+1Text1.Text=Str(count)End SubFunction IsSymPeak(flag As Integer, steps As Integer) As BooleanIf ThenIsSymPeak=TrueElseIsSymPeak=FalseEnd IfEnd Function答案(1)3(2)2steps=1flag=

47、-1 And steps=0 3.(2017浙江4月選考,17,6分)小王編寫了一個依據(jù)成績計算名次的VB程序,成績?yōu)?到100之間的整數(shù)。算法的基本思想:先統(tǒng)計每個分?jǐn)?shù)的個數(shù),然后按照分?jǐn)?shù)從高到低依次計算每個有效分?jǐn)?shù)(該分?jǐn)?shù)的個數(shù)不為0)對應(yīng)的名次,分?jǐn)?shù)相同時名次并列。最高分為第1名,該分?jǐn)?shù)的名次與個數(shù)之和為下一個有效分?jǐn)?shù)的名次,以此類推。程序用數(shù)組A存放每個分?jǐn)?shù)對應(yīng)的個數(shù),數(shù)組B存放每個分?jǐn)?shù)對應(yīng)的名次。例如,下表中最高分100有2個,并列第1名,則分?jǐn)?shù)96的名次為分?jǐn)?shù)100的名次加上分?jǐn)?shù)100的個數(shù),即第3名。分?jǐn)?shù)1009998979695940個數(shù)(A數(shù)組)20001030名次(B數(shù)組)

48、134程序運行時,學(xué)生數(shù)據(jù)顯示在列表框List1中,單擊“計算”按鈕Command1,計算結(jié)果顯示在列表框List2中,程序運行界面如圖所示。實現(xiàn)上述功能的VB程序如下,請回答下列問題:(1)如上表所示,若分?jǐn)?shù)93的個數(shù)為2,則該分?jǐn)?shù)對應(yīng)的名次為。(2)請在劃線處填入合適的代碼。Dim sName(1 To 50) As String存放學(xué)生姓名Dim sScore(1 To 50) As Integer存放學(xué)生分?jǐn)?shù)Dim recCount As Integer存放學(xué)生人數(shù)Private Sub Form_Load()本過程從數(shù)據(jù)庫中讀取學(xué)生數(shù)據(jù),存儲在相應(yīng)的變量中,并在List1中顯示代碼略

49、End Sub整數(shù)轉(zhuǎn)換成長度固定的字符串Function ads(x As Integer, n As Integer) As StringDim sx As String, nx As Integer, i As Integersx=Str(x):nx=Len(sx)For i=1 To n - nxsx= +sxNext iEnd FunctionPrivate Sub Command1_Click()Dim A(0 To 100) As Integer存放每個分?jǐn)?shù)的個數(shù)Dim B(0 To 100) As Integer存放每個分?jǐn)?shù)的名次Dim mc As Integer, score

50、As Integer, i As Integer For i=0 To 100A(i)=0Next iFor i=1 To recCount 計算每個分?jǐn)?shù)的個數(shù)Next imc=1For i=100 To 0 Step -1計算每個分?jǐn)?shù)的名次If A(i) 0 ThenB(i)=mcEnd IfNext iList2.ClearList2.AddItem 姓名分?jǐn)?shù)名次 List2.AddItem For i=1 To recCountscore=sScore(i)mc=B(sScore(i)List2.AddItem sName(i)+ads(score, 5)+第+ads(mc, 3)+名N

51、ext iEnd Sub答案(1)7(2)ads=sxA(sScore(i)=A(sScore(i)+1mc=A(i)+B(i) 或 mc=mc+A(i)解析(1)根據(jù)排名方法:最高分為第1名,該分?jǐn)?shù)的名次與個數(shù)之和為下一個有效分?jǐn)?shù)的名次,以此類推。93分之前的有效分?jǐn)?shù)是94分,排第4名,并且有3個94分,因此4+3=7即為93分的名次。(2)由于分?jǐn)?shù)和名次的數(shù)據(jù)位數(shù)不一樣,為了保證輸出的時候能排列整齊,因此自定義一個函數(shù)ads來處理。在自定義函數(shù)結(jié)束前,必須要給函數(shù)名賦值,確保有函數(shù)的返回值。變量sx是處理完畢的字符串,因此將sx賦值給函數(shù)名,所以處為ads=sx。變量recCount存儲學(xué)

52、生的總?cè)藬?shù),數(shù)組sScore存儲每位學(xué)生的分?jǐn)?shù),因此sScore(1)、sScore(2)、sScore(recCount)分別是第1位、第2位、第recCount位學(xué)生的分?jǐn)?shù)。數(shù)組A存放每個分?jǐn)?shù)的人數(shù),如A(90)存的是90分的人數(shù)。用For語句將所有學(xué)生的分?jǐn)?shù)統(tǒng)計一遍,計算方法是:A(sScore(i)=A(sScore(i)+1,如統(tǒng)計到第i位學(xué)生,若分?jǐn)?shù)是90,則sScore(i)=90,則相當(dāng)于A(90)=A(90)+1,即90分的人數(shù)加1。數(shù)組B存放每個分?jǐn)?shù)的名次。從處前一行代碼:B(i)=mc可得出,mc中存放當(dāng)前有效分?jǐn)?shù)的名次值,因此處應(yīng)該計算下一個有效分?jǐn)?shù)的名次值。當(dāng)前分?jǐn)?shù)的

53、名次B(i)與個數(shù)A(i)之和即為下一個有效分?jǐn)?shù)的名次,因此下一個有效分?jǐn)?shù)的名次為mc=A(i)+B(i)。而mc在賦值之前,存的是當(dāng)前分?jǐn)?shù)的名次B(i),因此處也可以填mc=A(i)+mc。教師專用題組 1.(2016浙江溫州十校聯(lián)考,11,2分)VB表達式98/2+12 Mod 3*3的值是()A.0.5B.7C.3.5D.5答案D2.下列Visual Basic表達式中,與表達式Not x1功能相同的是()A.x1C.x=1D.x3ans=ans+n3n=n3LoopLabel2.Caption=總共能吃到的桃子數(shù)為:+Str(ans)+個End Sub答案(1)10(2)n=3n3+n

54、 Mod 36.小明編寫統(tǒng)計字符串中出現(xiàn)最多的字母和數(shù)字的程序。程序運行如下:在文本框Text1中輸入一個僅包含字母和數(shù)字的字符串。單擊按鈕Command1后,在標(biāo)簽Label1上顯示出現(xiàn)最多的數(shù)字字符,在標(biāo)簽Label2上顯示出現(xiàn)最多的字母字符(字母不區(qū)分大小寫,例如字母G和g統(tǒng)計在一起)。程序運行界面如圖所示。實現(xiàn)上述功能的VB程序如下,請在劃線處填入合適的代碼。Private Sub Command1_Click()Dim a (1 To 10) As Integer存儲09每個數(shù)字出現(xiàn)的次數(shù)Dim b(1 To 26) As Integer存儲az每個字母出現(xiàn)的次數(shù)Dim zf As

55、String,x As String,p As IntegerDim maxa As Integer,maxb As IntegerFor i=1 To Len(zf)x=Mid(zf,i,1)If pd(x)=1 Thenp=Asc(x)-Asc(0)+1a(p)=a(p)+1p=Asc(x)-Asc(A)+1b(p)=b(p)+1Elsep=Asc(x)-Asc(a)+1b(p)=b(p)+1End IfNext ik=a(1):maxa=1For i=2 To 10If a(i)k Then k=a(i):maxa=iNext ik=b(1):maxb=1For i=2 To 26IfT

56、hen k=b(i):maxb=iNext iLabel1.Caption=出現(xiàn)最多的數(shù)字是+Chr(maxa+Asc(0)-1)Label2.Caption=出現(xiàn)最多的字母是+Chr(maxb+Asc(A)-1)End SubFunction pd(ch As String) As Integer函數(shù)用于判斷每個字符的類型If ch=0 And ch=A And ch=a And chk7.趣味數(shù)學(xué)題。小明使用VB編寫程序解一道有趣的數(shù)學(xué)題:將1到9這九個數(shù)字分成三個三位數(shù),不能有重復(fù),三個數(shù)字之間比例滿足123,求所有三位數(shù)組合。程序界面如圖所示,當(dāng)單擊“求解”按鈕Command1時,在列

57、表框List1中顯示所有滿足條件的組合。程序代碼如下,請在劃線處填上合適的代碼。Dim a (0 To 9) As IntegerPrivate Sub Command1_Click()Dim i,n,m As IntegerFor i=123 To 333For n=1 To 9a(n)=0Next ns=0call fenjie(i)使用call調(diào)用自定義過程,下同call fenjie(2*i)call fenjie(3*i)For m=1 To 9s=Next mIf s=9 Then List1.AddItem i&2*i&3*iNext iEnd SubSub fenjie(xAs

58、 Integer)自定義過程,將3位數(shù)分解并修改對應(yīng)下標(biāo)元素的值a(x Mod 10)=1a(x100)=1End Sub答案s+a(m)a(x10 Mod 10)=1或等價答案8.(2016浙江4月選考,16,3分)某地19001999年的平均降水量數(shù)據(jù)保存在數(shù)據(jù)庫中。現(xiàn)要求找出相鄰兩年年平均降水量變化(即本年度與上年度“年平均降水量”差值的絕對值)最大的年份區(qū)間。如果有多個符合要求的年份區(qū)間,只輸入距今最近的。小吳為此編寫了VB程序,程序運行時,單擊按鈕Command1后,在文本框Text1中輸出運行結(jié)果。實現(xiàn)上述功能的VB代碼如下,但加框處代碼有錯,請改正。Dim w(1 To 100)

59、As Single 依次存儲19001999年的年平均降水量數(shù)據(jù)Const n=100Private Sub Form_Load()本過程從數(shù)據(jù)庫中按19001999年依次讀取年平均降水量數(shù)據(jù),并存儲在數(shù)組w中代碼略End SubPrivate Sub Command1_Click()Dim i As Integer,imax As Integerimax=1For i=3 To nIf abs(w(i)-w(i-1)=Abs(w(i-1)-w(i-2)Then imax=iNext iText1.Text=年平均降水量變化最大的年份區(qū)間是+Str(imax+1989)+-+Str(imax+

60、1899)End Sub答案2Abs(w(imax)-w(imax-1)9.(2015浙江10月選考,17,5分)某數(shù)據(jù)加密方法描述如下:(1)以字節(jié)為單位進行加密處理;(2)將1個字節(jié)的8位二進制數(shù)分割成前4位與后4位兩個二進制數(shù);(3)分別將上述兩個4位二進制數(shù)轉(zhuǎn)換為十進制數(shù);(4)將每個十進制數(shù)轉(zhuǎn)換為1個加密字符,對應(yīng)的“密碼表”如下:值(十進制)0123456789101112131415加密字符IlikeCHNPostcard小明按照上述方法,設(shè)計了一個字符串(僅包含ASCII字符)加密的VB程序,功能如下:單擊“加密”按鈕Command1,程序依次將文本框Text1中每個字符的AS

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論