資源簡(jiǎn)介 保密★啟用前選修一過關(guān)測(cè)試信息技術(shù)(全卷滿分100分,考試用時(shí)90分鐘)一、選擇題1.采用冒泡排序算法對(duì)某數(shù)據(jù)序列進(jìn)行排序,經(jīng)過第一輪排序后的結(jié)果是“2,8,3,9,5,6,7”,那么原數(shù)據(jù)序列不可能的是( )A.8,3,9,5,2,7,6 B.8,3,9,2,6,5,7C.8,2,9,3,5,7,6 D.8,3,2,9,6,5,72.有如下對(duì)分查找程序段:Private Sub Command1_Click()Dim a(l To 8)As Integera(1)=3:a(2)=6:a(3)=9:a(4)=6:a(5)=11:a(6)=20:a(7)=15:a(8)=24i=1:j=8Key Val(Text1. Text):n=0Do While i<=j m=(i+j)\2 If m Mod 2<> Key Mod 2 Then m=m+1 If a(m)= Key Then Exit Do n=n+1 If a(m)>Key Then j=m-2 Else i=m+2 End IfLoopText2.Text=Str(n)End Sub程序運(yùn)行后,下列說法不正確的是( )A.若輸入Key值為15,則Text2中顯示1B.若輸入Key值為12,運(yùn)行程序結(jié)束后,i-j=1C.若輸入Key值為7,運(yùn)行程序結(jié)束后,m=1D.Text2中顯示的值可能為03.有如下 VB 程序段:i=1 : j=10key=Val(Text1.Text)Do While im=Fix((i+j)/2)If key>a(m) Theni=m+1Elsej=mEnd IfLoop數(shù)組元素 a(1)到 a(10)依次為 2,3,7,9,9,10,13,13,13,19,如果key是數(shù)組a中的一個(gè)數(shù),那么程序執(zhí)行后正確的是( )A.i=j+1 B.a(chǎn)(i+1)=key C.i=j D.i>j4.某對(duì)分查找算法的VB程序如下: i = 1: j = 20m = (i + j + 1) \2Do While i < j And Key <> a(m) If a(m) > Key Then i = m+ 1 Else j = m -1 m = (i + j + 1) \2'①Loop數(shù)組元素a(1)到a(20)各不相同且按降序排列,若查找鍵key與a(4)相等,執(zhí)行該程序段,①處語句的執(zhí)行次數(shù)有( )A.5 B.4 C.3 D.25.利用冒泡排序給數(shù)組[15,78,88,23,69,71,20,53]升序排序,第三遍冒泡加工之后的數(shù)據(jù)結(jié)果是( )A.[15,20,23,78,88,69,71,53] B.[15,20,23,53,78,88,69,71]C.[15,78,23,69,71,20,53,88] D.[15,23,69,71,20,53,78,88]6.?dāng)?shù)組a(1)-a(n) (n>1)中的數(shù)據(jù)為非遞增序列,為了在數(shù)組中查找出最后一個(gè)大于等于key的元素下標(biāo),小楊采用對(duì)分法的思想,編寫了如下代碼:key= Val(Text1. Text)L=1:R=nDo While L < Rm=(L+R)\2If ① ThenL=m+1Else②End IfLoopLabel1 Caption=”最后一個(gè)不小于”&Su(key)&"的元素下標(biāo)是:"&Str( ③ )劃線處的內(nèi)容是( )A.①keyB.①key<=a(m) ②R=m-1 ③RC.①key<=a(m) ②R=m-1 ③mD.①key<=a(m) ②R=m ③R7.在面對(duì)較大項(xiàng)目時(shí),隨著堆砌的代碼越來越多,我們不可以通過______來簡(jiǎn)化代碼。( )A.重復(fù)的順序結(jié)構(gòu)轉(zhuǎn)換為循環(huán)結(jié)構(gòu)B.重復(fù)代碼封裝為函數(shù)C.優(yōu)化算法D.刪除不理解的代碼8.某 VB 程序中有語句:Command1.Caption="確定"。該語句中的"Caption"是( )A.對(duì)象名 B.類名 C.屬性名 D.屬性值9.如圖所示的程序設(shè)計(jì)界面中,若要利用窗體裝載事件過程對(duì)程序進(jìn)行初始化,圖中所選中的窗體對(duì)應(yīng)的裝載事件過程應(yīng)該是( )。A.F1_ Load B.Form1_Load C.Form_Load D.Form1_Show10.有如下VB程序段:Private Sub Command1_Click()Dim i As IntegerDim x As IntegerDim s As StringRandomizei = 1: s = "1"Do While i <= 6 x = Int(Rnd * 9) + 1 If x Mod 2 = i Mod 2 Then s = s + Str(x) i = i + 1 End IfLoopLabel1.Caption = sEnd Sub運(yùn)行程序后,標(biāo)簽 Label1 中可能出現(xiàn)的是( )A.1 8 3 4 5 2 B.1 9 4 3 7 5 6 C.1 9 4 7 6 5 2 D.1 8 1 2 7 6 111.有如下VB程序段:For i=1 To 6j=7Do While j>iIf a(j)>a(j-1) Thena(j)=a(j)+a(j-1):a(j-1)=a(j)-a(i-1):a(j)=a(j)-a(j-1)End Ifj=j-1LoopNext iFor i=3 To 6s=s+a(i)Next iLabel1.Caption=Str(s)已知數(shù)組元素a(1)到a(7)的值依次為“8,2,3,7,10,6,5”,則執(zhí)行該程段后,標(biāo)簽Label1中顯示的是( )A.21 B.26 C.41 D.1812.回文字符串的特征是從左到右讀和從右到左讀是完全一樣的,如“aba”、“aabbaa”,判斷字符串中忽略“,”字符后,該字符串是否是回文字符串的VB程序段如下:s = "ab,,,cb,a"n = Len(s)i = 1: j = Len(s)flag = TrueDo While i <= jIf Mid(s, i, 1) = Mid(s, j, 1) Theni = i + 1: j = j - 1Else End IfLoopIf flag = False Then Print ("不是回文") Else Print ("回文")橫線處的代碼由以下三部分組成:① If Mid(s, i, 1) = "," Or Mid(s, i, 1) = "," Then i = i + 1② If Mid(s, j, 1) = "," Or Mid(s, j, 1) = "," Then j = j – 1③ If Mid(s, i, 1) <> "," And Mid(s, j, 1) <> "," Then flag = False: Exit Do下列選項(xiàng)中,代碼順序正確的是( ):A.①②③ B.②①③ C.②③① D.③②①13.【加試題】有如下程序段:c=0For i=1 to 5 f=False For j=1 to 6-i If a(j) > a(j+1) Then f=True : c=c+1 t=a(j) : a(j)=a(j+1) : a(j+1)=t End If Next j If f=False Then Exit ForNext i數(shù)組元素 a(1)到 a(6)的值依次為“19,65,27,53,48,36”,經(jīng)過該程序段“加工”后,變量 c 的值為( )A.5B.6C.7D.814.下列運(yùn)算結(jié)果中,表達(dá)式值最大的是A.2 Mod 3 B.3 Mod 2 C.2 / 3 D.2 \ 315.某算法的流程圖如圖所示。執(zhí)行這部分流程,則輸出n的值是( )A.3 B.4 C.5 D.616.某對(duì)分查找算法的VB程序段如下:i =1:j=10:nc=0:f=FalseKey = Val(Textl. Text)Do Whilei < = j And Not fm=(i+j)\ 2nc=nc+1If a(m) = Key Thenf = TrueElseIf Key > a(m) Thenj = m-1Elsei = m+1End IfLoop數(shù)組元素a(1)到a(10)的值依次為“94,91,87,76,73,70,67,61,18,17”,該程序段運(yùn)行結(jié)束后,若nc的值為2,則Key的值是 ( )A.76或67 B.91或61 C.87或61 D.94或9117.分別采用選擇排序和冒泡排序?qū)?shù)據(jù)序列“15 89 60 34 10 28 70”完成升序排序,則在兩種排序方法過程中,數(shù)據(jù)“60”發(fā)生交換的次數(shù)分別可能為( )A.3 3 B.2 4 C.21 4 D.3 418.有如下 VB 程序段:Const n= 10Dim a(1 To n) As Integer , b(1 To n) As IntegerFor i = 1 To nb(i) = iNext iFor i = 2 To nj = i - 1t = b(i)Do While a(b(j)) > a(t)b(j + 1) = b(j)j = j - 1If j = 0 Then Exit DoLoopb(j + 1) = tNext i若數(shù)組a中的數(shù)據(jù)依次為:69,16,44,17,34,46,10,29,37,51 ,執(zhí)行程序后,b(1)~b(10)的值為( )A.3 5 4 10 1 9 8 6 7 2 B.7 2 4 8 5 9 3 6 10 1C.5 8 2 1 4 7 3 9 10 6 D.1 6 2 4 8 9 7 10 3 519.若希望TEXT1中的內(nèi)容不能編輯但可獲得焦點(diǎn),則( )屬性的值應(yīng)為TRUE.A.ALIGNMENTB.LOCKEDC.TEXTD.BACKCOLOR20.小明為機(jī)器人設(shè)計(jì)算法“機(jī)器人走棋盤”。觀察圖a棋盤,為使機(jī)器人從A位置沿著箭頭方向到達(dá)B位置,圖b流程圖中的條件應(yīng)該設(shè)置成( )。A.i<=3 B.i<=4 C.i<7 D.i<=521.有如下VB程序段:s = "Live on No evil"n = Len(s):ans = ""For i = 1 To nc = Mid(s, i, 1)If Abs(i - n) < n\2 ThenIf c > = "a" And c < = "z" Then c = Chr(Asc("A") + Asc(c) - Asc("a"))ans = C + ansEnd IfNext iText1. Text = ans執(zhí)行上述程序段后,文本框Text1中顯示的內(nèi)容是( )A.live oN B.No evil C.LIVE ON D.NO EVIL22.某算法的部分流程圖如圖所示。執(zhí)行這部分流程,依次輸入“3,6,5 ,0,-1,-2”,則輸出s的值是( )A.8 B.10 C.14 D.1623.某對(duì)分查找算法的VB程序段如下:t-="": i=0:j=9 : key=62 : f=FalseDo While i <=j And Not f m=Fix((i+j)/ 2) t=t+Str(m) If a(m)= key Then f=TrueEIself a(m)>key Then i=m+1 t=t+"→"Else j=m-1 t=t+"←- "End If .Loop數(shù)組元素a(0)到a(9)的值依次為99,94,90,87,78,70,63,56,45,36”執(zhí)行該程序段的值是( )A."4→7←5→" B."4→7←5→6→"C."4→7←5→6" D."4→7←-5"24.當(dāng)現(xiàn)有的軟件無法解決問題時(shí),我們可以利用編程語言自己編制程序解決問題。下列選項(xiàng)中用編程來解決比較合適的是( )A.將一組統(tǒng)計(jì)數(shù)據(jù)轉(zhuǎn)換成圖表顯示B.制作二維動(dòng)畫C.用計(jì)算機(jī)修復(fù)發(fā)黃的舊照片D.找出所有的4位水仙花數(shù)二、填空題25.小明設(shè)計(jì)了一個(gè)Visual Basic程序:求 1~n(不超過10000)之間能被5整除但不能被3整除的自然數(shù)。其設(shè)計(jì)界面如圖1所示、代碼編輯窗口如圖2所示。圖1圖2(1)解決此問題主要采用的算法為 ① (填:解析算法 / 枚舉算法)。(2)圖2中標(biāo)注A處應(yīng)填寫的代碼為 ② 。(3)圖2中List1.AddItem Str(i)語句中AddItem是List1的 (填: 事件/屬性/方法)。26.編寫一段程序求1 2 3 …… 100的值,程序代碼如下:Private Sub Command1_Click()Dim i As Integer, t As Integert = 1For i =" 1" To 100①Next iText1.Text = Str(t)End Sub(1) 請(qǐng)補(bǔ)充①處的代碼___________________。(2) 運(yùn)行此程序,單擊Command1按鈕,出現(xiàn)對(duì)話框如圖所示:請(qǐng)分析出現(xiàn)該錯(cuò)誤的原因__________,如何修改可以解決此問題_______________________。27.若依次輸入5、8、-7、12,則輸出的結(jié)果為_________。28.設(shè)計(jì)VB程序,該程序?qū)⑤斎氲淖址行懽帜皋D(zhuǎn)換成大寫字母后輸出。在文本框Text1中輸入一串字符(數(shù)字、字母均可),單擊“轉(zhuǎn)換”按鈕Command1,在標(biāo)簽Label2中輸出結(jié)果。(提示:Asc(x):將字符x轉(zhuǎn)換為ASCII碼值;Chr(x):將ASCII代碼x轉(zhuǎn)換為所對(duì)應(yīng)的字符)該程序的設(shè)計(jì)界面如圖所示,請(qǐng)根據(jù)算法將下列程序補(bǔ)充完整。Private Sub Command1_Click()Dim ch As String, s As StringDim i As Integer, j As Integerch = Text1.TextFor i =" 1" To (1)j =" Asc(Mid(ch," i, 1))If j > 96 And j < 123 Thens =" s" + Chr(j - 32)Elses =" s" + Chr(j)End IfNext(2)End Sub29.酒店房間管理:酒店房間(房間數(shù)小于10000)編號(hào)按1、2、3…連續(xù)編號(hào),老板對(duì)于沒有出租的房子使用如下的方法來登記管理。連續(xù)的空房間,登記第一間的編號(hào)和連續(xù)的空房間數(shù),比如空房間1,2, 6,7,8,10,則登記3條記錄,分別為(1 2),(6 3),(10 1),某旅客退房了,需要把這房子也登記上去,有四種情況需要處理:1)上靠,例如退的房間號(hào)為3,則原來登記的3條記錄變成(1 3), (6 3),(10 1);2)下靠,例如退的房間號(hào)為5,則原來登記的3條記錄變成(1 2), (5 4), (10 1);3)上下不靠,例如退的房間號(hào)為4,則登記的記錄數(shù)變成4條(1 2) ,(4 1), (6 3),(10 1);4)上下靠,例如退的房間號(hào)為9,則登記的記錄數(shù)變成2條(1,2),(6,5);小王依據(jù)上述描述設(shè)計(jì)了如下VB程序。請(qǐng)回答下列問題:(1)當(dāng)?shù)怯浀挠涗浻?條,分別為(1,4),(6,2),(10,3),現(xiàn)在某旅客退掉5號(hào)房間,則登記的記錄變成_______________________________(2)請(qǐng)?jiān)趧澗€處填入合適的代碼。Const n = 5000Dim a(0 To n) As Integer 'a(i)保存第i條記錄的開始房間號(hào)Dim b(0 To n) As Integer ' b(i)保存第i條記錄的房間數(shù)Dim c As Integer, k As Integer, sp As Integer 'k為原始記錄數(shù)'讀取原始k條記錄的數(shù)據(jù),依次存入a(1),b(1),a(2),b(2)…a(k),b(k),代碼略'為了程序處理方便,虛設(shè)了下面2條記錄a(0) = 0 : b(0) = 0 : sp = k + 1 :a(sp) = 10000 : b(sp) = 0Private Sub Command1_Click()Dim i As Integerc = Val(Text1.Text) 'c為退掉的房間號(hào)i = 1Do While a(i) < c '查找房間c,應(yīng)該登記在某位置 i = i + 1Loopi = i - 1'下面為處理退房登記問題If a(i) + b(i) = c Then If __________ Then '第4種情況,上下靠 b(i) = b(i) + 1 + b(i + 1) For j = i + 1 To sp - 1 a(j) = a(j + 1) : b(j) = b(j + 1) Next j sp = sp - 1 Else '第1種情況,上靠 b(i) = b(i) + 1 End IfElseIf c + 1 = a(i + 1) Then '第2種情況,下靠 a(i + 1) = c : b(i + 1) = b(i + 1) + 1Else '第3種情況,上下不靠 For j =_____________________ a(j) = a(j - 1) : b(j) = b(j - 1) Next j a(i + 1) = c : b(i + 1) = 1 : sp = sp + 1End If‘下面為輸出登記的記錄,不包括虛設(shè)的兩條記錄For i =1 to _______ List3.AddItem "第" & Str(i) & "記錄(" & Str(a(i)) & "," & Str(b(i)) & ")"Next iEnd Sub30.現(xiàn)有如下Visual Basic程序:Private Sub Command1_Click()Dim i As Integer, c As String, s As String, t As Strings = Text1.textt = ""For i = 1 To Len(s)c = Mid(s, i, 1)If c >= "0" And c <= "9" Then t = t + cNext iText2.text = tEnd Sub運(yùn)行該程序,在文本框Text1中輸入“2016_Student”(不包含引號(hào)),單擊命令按鈕Command1后,文本框Text2中顯示的內(nèi)容是_________。三、操作題31.質(zhì)數(shù)又稱素?cái)?shù),是指除了 1 和本身之外不再有其他因數(shù)的數(shù)。如果兩個(gè)質(zhì)數(shù)的差為 2,則這兩個(gè)質(zhì)數(shù)稱為孿生質(zhì)數(shù)對(duì);編寫 VB 程序,功能:?jiǎn)螕簟帮@示孿生質(zhì)數(shù)對(duì)”按鈕 Command1,在列表框 List1 中顯示 100以內(nèi)的所有孿生質(zhì)數(shù)對(duì)(運(yùn)行效果如圖所示)。實(shí)現(xiàn)上述功能的 VB 代碼如下, 請(qǐng)?jiān)趧澗€處填入合適代碼。Dim a(1 To 50) As IntegerPrivate Sub Command1_Click()Dim i As Integerk = 0: i = 3Do While i <= 100If________________Thenk = k + 1a(k) = i____________________i = i + 2LoopFor i = 2 To kIf______________________ThenList1.AddItem Str(a(i-1)) + "和" + Str(a(i))End IfNext iEnd SubFunction prime(x As Integer) As Boolean '判斷是否是質(zhì)數(shù)prime = TrueFor i = 2 To Int(Sqr(x))If x Mod i = 0 Then prime = False : Exit ForNext iEnd Function32.對(duì)分查找算法可用于求解方程的近似解。現(xiàn)要求方程x3-4x2+x+5=0的一個(gè)近似解,可設(shè)f(x)=x3-4x2+x+5,若有區(qū)間[a,b],使f(a)與f(b)異號(hào),則該區(qū)間內(nèi)必存在該方程的一個(gè)解。小吳為比編寫了VB程序,功能如下:分別在本框Text1和Text2中輸入求解的區(qū)間值a和b(a實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)趧澗€處填上合適的代碼。Private Sub Command1_Click()Dim a As Double, b As Double, m As Double, x As DoubleDim ym As Double, yb As Doublea=Val(Text1.text):b=Val(Text2.Text)If a>b Then t=a:a=b:b=tDo While ①____m=(a+b)/2ym=m^3—4*m^2+m+5yb=b^3-4*b^2+b+5If Abs(ym)<0.00001 Then Exit DoIf ②___ Thenb=mElsea=mEnd IfLoopText3.Text=Str(Int(m*10000)/10000)End Sub試卷第2頁,共2頁試卷第1頁,共1頁參考答案:1.D【詳解】本題考查的是冒泡排序。冒泡排序,它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過來,走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。8,3,9,5,2,7,6從后往前冒泡,按從升序排列,排序后為:2,8,3,9,5,6,7,故選項(xiàng)A可能;8,3,9,2,6,5,7從后往前冒泡,按從升序排列,排序后為:2,8,3,9,5,6,7,故選項(xiàng)B可能;8,2,9,3,5,7,6從后往前冒泡,按從升序排列,排序后為:2,8,3,9,5,6,7,故選項(xiàng)C可能;8,3,2,9,6,5,7從后往前冒泡,按從升序排列,排序后為:2,8,3,5,9,6,7,故選項(xiàng)D不可能,本題應(yīng)選D。2.B【詳解】本題考查的是對(duì)分查找。若輸入Key值為12時(shí),初始值i=1,j=8。i<=j成立,第一次查找,m=(i+j)\2=4,m Mod 2<> Key Mod 2 不成立, a(m)= Key不成立,a(4)=6>12不成立,執(zhí)行i=m+2=6;i<=j成立,第二次查找,m=(i+j)\2=7,m Mod 2<> Key Mod 2 成立,執(zhí)行m=m+1=8,a(8)=24>12成立,執(zhí)行j=m-2=6;i<=j成立,第三次查找,m=(i+j)\2=6,m Mod 2<> Key Mod 2 不成立, a(m)= Key不成立,a(6)=20>12成立,執(zhí)行j=m-2=4;(i=6)<=(j=4)不成立,程序結(jié)束,i-j=2,故選項(xiàng)B說法錯(cuò)誤。3.C【詳解】 本題主要考查二分查找算法。i=1,j=10,m=Fix((1+10)/2)=5,a(5)=9,第一種情況,若key>9,則i=m+1=6,m=Fix((6+10)/2)=8,a(8)=13,若key>13,經(jīng)驗(yàn)證不成立,結(jié)合數(shù)組元素,假設(shè)key=10,得到i=j=6;第二種情況,若key<=9,j=5,m=Fix((1+5)/2)=3,a(3)=7,若key=9,i=m+1=4,m=Fix((4+5)/2)=4,a(4)=9,j=m=4,即i=j=4成立。若key<=7,j=3,m=Fix((1+3)/2)=2,a(2)=3,假設(shè)key=2或key=3均可得到i=j,故程序執(zhí)行后正確的是i=j,故本題選C選項(xiàng)。4.B【詳解】本題主要考查對(duì)分查找算法及VB程序?qū)崿F(xiàn)。數(shù)組元素a(1)到a(20)各不相同且按降序排列,key=a(4),i=1,j=20,m = (i + j + 1) \2=11,第一次循環(huán), a(11)key,i=m+1=4,m = (i + j + 1) \2=5;第四次循環(huán),a(5)5.B【詳解】本題主要考查冒泡排序。利用冒泡排序給數(shù)組[15,78,88,23,69,71,20,53]升序排序,第一遍冒泡加工之后的數(shù)據(jù)結(jié)果是[15,20,78,88,23,69,71,53],第二遍冒泡加工之后的數(shù)據(jù)結(jié)果是[15,20,23,78,88,53,69,71],第三遍冒泡加工之后的數(shù)據(jù)結(jié)果是[15,20,23,53,78,88,69,71],故本題選B選項(xiàng)。6.B【詳解】本題考查的是查找算法相關(guān)知識(shí)。方法一,由題干非遞增序列可知數(shù)據(jù)為遞減序列,則可通過帶幾個(gè)值的方法解題;但是這一類題,我們?cè)O(shè)出的數(shù)據(jù)一定要符合題干所給的條件,才能帶出答案。方法二,這個(gè)對(duì)分查找找的是最后一個(gè)數(shù),就是循環(huán)結(jié)束的時(shí)候,而結(jié)束的條件就是讓R7.D【詳解】本題主要考查程序優(yōu)化。在面對(duì)較大項(xiàng)目時(shí),隨著堆砌的代碼越來越多,我們可以通過重復(fù)的順序結(jié)構(gòu)轉(zhuǎn)換為循環(huán)結(jié)構(gòu)、重復(fù)代碼封裝為函數(shù)、優(yōu)化算法等來簡(jiǎn)化代碼,不可以刪除不理解的代碼,故本題選D選項(xiàng)。8.C【詳解】本題主要考查VB程序語句。Command1.Caption="確定"。該語句中的"Caption"是屬性名,Command1是對(duì)象名,"確定"是屬性值,故本題選C選項(xiàng)。9.C【詳解】本題主要考查程序設(shè)計(jì)界面知識(shí)點(diǎn)。利用窗體裝載事件過程對(duì)程序進(jìn)行初始化,圖中所選中的窗體對(duì)應(yīng)的裝載事件過程應(yīng)該是Form_Load,故本題選C選項(xiàng)。10.C【詳解】本題主要考查VB程序的執(zhí)行。 x = Int(Rnd * 9) + 1,x是隨機(jī)生成[1,9]之間的整數(shù),如果x和i同奇同偶,執(zhí)行 s = s + Str(x),i=i+1,初值s="1",當(dāng)i=1時(shí),x的值為奇數(shù),排除A、D選項(xiàng)。同理當(dāng)i=4時(shí),x的值應(yīng)為偶數(shù),排除B選項(xiàng),故運(yùn)行程序后,標(biāo)簽 Label1 中可能出現(xiàn)的是1 9 4 7 6 5 2,故本題選C選項(xiàng)。11.B【詳解】本題考查的知識(shí)點(diǎn)是冒泡排序算法。這三條語句a(j)=a(j)+a(j-1):a(j-1)=a(j)-a(i-1):a(j)=a(j)-a(j-1)的作用是交換a(j)和a(j-1),因此是從后往前的冒泡升序算法。把5+6+7+8輸出。故正確答案為B選項(xiàng)。12.D【詳解】本題主要考查VB程序的調(diào)試。變量i、j分別是左右對(duì)應(yīng)位置,因?yàn)樽址杏卸禾?hào),如果Mid(s, i, 1) <> Mid(s, j, 1),需進(jìn)一步判斷,若i、j對(duì)應(yīng)位置字符均不為逗號(hào),即對(duì)應(yīng)的字母不相等,說明不是回文,退出循環(huán),即③ If Mid(s, i, 1) <> "," And Mid(s, j, 1) <> "," Then flag = False: Exit Do。否則進(jìn)一步判斷,如果其中1處為逗號(hào),則跳過逗號(hào)繼續(xù)判斷,對(duì)應(yīng)代碼① If Mid(s, i, 1) = "," Or Mid(s, i, 1) = "," Then i = i + 1② If Mid(s, j, 1) = "," Or Mid(s, j, 1) = "," Then j = j – 1。結(jié)合選項(xiàng),可知本題選D選項(xiàng)。13.C【詳解】本題主要考查冒泡排序算法。分析程序可知,當(dāng)i=1時(shí),需要交換4次,此時(shí)c=4,數(shù)組元素 a(1)到 a(6)的值依次為“19,27,53,48,36,65”;當(dāng)i=2時(shí),需要交換2次,此時(shí)c=4+2=6,數(shù)組元素 a(1)到 a(6)的值依次為“19,27,48,36,53,65”;當(dāng)i=3時(shí),需要交換1次,此時(shí)c=6+1=7,數(shù)組元素 a(1)到 a(6)的值依次為“19,27,36,48,53,65”,數(shù)組元素已有序,退出循環(huán)。故經(jīng)過該程序段“加工”后,變量 c 的值為7,故本題選C選項(xiàng)。14.A【詳解】本題主要考查VB表達(dá)式的運(yùn)算。2 Mod 3=2,3 Mod 2=1,2/3=0.6,2\3=0,故本題選A選項(xiàng)。15.C【詳解】本題考查對(duì)循環(huán)結(jié)構(gòu)流程圖的理解。變量n的初值為1,執(zhí)行n←n+1后,n的值為2,條件22>22不成立,繼續(xù)執(zhí)行循環(huán);執(zhí)行n←n+1后,n的值為3,條件23>32不成立,繼續(xù)執(zhí)行循環(huán);執(zhí)行n←n+1后,n的值為4,條件24>42不成立,繼續(xù)執(zhí)行循環(huán);執(zhí)行n←n+1后,n的值為5,條件25>52成立,退出循環(huán),故輸出n的結(jié)果為5,故選項(xiàng)C符合題意。16.B【詳解】本題主要考查對(duì)分查找算法實(shí)現(xiàn)。對(duì)分查找的基本思路:在有序的數(shù)據(jù)序列中(一般放在數(shù)組中), 首先把查找的數(shù)據(jù)與數(shù)組中間位置的元素進(jìn)行比較,若相等,則查找成功并退出查找;否則,根據(jù)數(shù)組元素的有序性,確定數(shù)據(jù)應(yīng)在數(shù)組的前半部分還是在后半部分查找;在確定了新的查找范圍后,重復(fù)進(jìn)行以上比較,直到找到或未找到為止。本題中,i和j為數(shù)組元素的位置,即下標(biāo),key為查找關(guān)鍵字,nc為查找次數(shù),m為對(duì)分查找時(shí)分別獲得的數(shù)組元素的下標(biāo),要嚴(yán)格按照公式m=(i+j)\ 2來獲得數(shù)據(jù),第一次獲得數(shù)據(jù)a (5) =73, 接下來有兩種可能,可能key> 73或key<73,獲得數(shù)據(jù)a(2) =91或a(8)=61,因此B選項(xiàng)正確。【點(diǎn)睛】17.B【詳解】本題考查排序算法。選擇排序升序過程,若從左往右(大的往后排),第一遍為15,70,60,34,10,28,89,第二遍為15,28,60,34,10,70,89,第三遍為15,28,10,34,60,70,89.“60”發(fā)生交換的次數(shù)為1次,若從右往左(小的往左排),第一遍為10,89,60,34,15,28,70,第二遍為10,15,60,34,89,28,70,第三遍為10,15,28,34,89,60,70.第四遍為10,15,28,34,60,89,70,“60”發(fā)生交換的次數(shù)為2次;冒泡排序過程中,若從左往右冒泡(大的往后冒泡),則第一遍為15,60,34,10,28,70,89,第二遍為15,34,10,28,60,70,89,“60”交換的次數(shù)為4次,若從右往左冒泡(小的往前冒泡),則第一遍為10,15,89,60,34,28,70,第二遍為10,15,28,89,60,34,70,第三遍為10,15,28,34, 89,60,70,第四遍為10,15,28,34,60,89,70,“60”發(fā)生交換的次數(shù)為4次,選項(xiàng)B正確。18.B【詳解】本題主要考查VB中數(shù)組及循環(huán)結(jié)構(gòu)的使用。“Exit Do”用以跳出Do循環(huán),Do循環(huán)的循環(huán)條件為“a(b(j)) > a(t)”,由題意可知為“a(b(i-1)) > a(b(i))”,程序執(zhí)行中數(shù)組b變化過程為:2,1,3,4,5,6,7,8,9,10—>2,3,1,4,5,6,7,8,9,10—>2,4,3,1,5,6,7,8,9,10—>2,4,5,3,1,6,7,8,9,10—>2,4,5,3,6,1,7,8,9,10,—>7,2,4,5,3,6,1,8,9,10—>7,2,4,8,5,3,6,1,9,10—>7,2,4,8,5,9,3,6,1,10—>7,2,4,8,5,9,3,6,10,1。故B選項(xiàng)正確。其余選項(xiàng)均不符合題意。19.B【詳解】本題主要考查VB文本框?qū)傩缘拿枋觥N谋究蛏嫌袀€(gè)LOCKED屬性,設(shè)置為TRUE就可以實(shí)現(xiàn)鎖定文本框,故本題選B選項(xiàng)。20.A【詳解】21.C【詳解】本題考查的是VB循環(huán)、選擇語句。由If Abs(i - n) < n\2 Then可知,在字符串后半段才把字符連接到ans,由If c > = "a" And c < = "z" Then c = Chr(Asc("A") + Asc(c) - Asc("a"))可知如果是小寫轉(zhuǎn)化為大寫,由ans = C + ans可知是倒序輸出。s ="Live on No evil"后半段字符為:“No evil”小寫轉(zhuǎn)成大寫后為“NO EVIL”,倒序輸出為:LIVE ON。選項(xiàng)C正確。22.D【詳解】本題考查流程圖。依據(jù)題意,第一次循環(huán),m=3,m>1,m=3+3 mod 2=4,s=0+4=4;第二次循環(huán),m=6,m>1,m=6+0=6,s=4+6=10;第三次循環(huán),m=5,m>1,m=6,s=10+6=16;第四次循環(huán),m=0,不滿足條件,結(jié)束循環(huán),此時(shí)S等于16,故選項(xiàng)D正確。23.B【詳解】本題考查的是二分查找。對(duì)分查找又稱二分查找,是一種高效的查找方法。對(duì)分查找的前提是被查找的數(shù)據(jù)是有序的(升序或降序)。對(duì)分查找的基本思想是在有序的數(shù)列中,首先將要查找的數(shù)據(jù)與有序數(shù)列內(nèi)處于中間位置的數(shù)據(jù) 進(jìn)行比較,如果兩者相等,則查找成功;否則就根據(jù)數(shù)據(jù)的有序性,再確定該數(shù)據(jù)的范圍應(yīng)該在數(shù)列的前 半部分還是后半部分;在新確定的縮少范圍內(nèi),繼續(xù)按上述方法進(jìn)行查找,直到找到要查找的數(shù)據(jù),即查找成功,如果要查找的數(shù)據(jù)不存在,即查找不成功。初始值t=""i=0,j=9,m=Fix((i+j)/ 2)=4,t=t+Str(m)="4",a(4)=78>62,i=m+1=5,t=t+"→"="4→";i=5,j=9,m=Fix((i+j)/ 2)=7,t=t+Str(m)="4→7",a(7)=56<62,j=m-1=6,t=t+"←"="4→7←";i=5,j=6,m=Fix((i+j)/ 2)=5,t=t+Str(m)="4→7←5",a(5)=70>62,i=m+1=6,t=t+"→"="4→7←5→";i=6,j=6,m=Fix((i+j)/ 2)=6,t=t+Str(m)="4→7←5→6",a(6)=63>62,i=m+1=7,t=t+"→"="4→7←5→6→";i=7,j=6,i>j推出查找。故選項(xiàng)B正確。24.D【詳解】本題考查計(jì)算機(jī)基礎(chǔ)知識(shí)。A項(xiàng)用Excle較合適;B項(xiàng)用Flash較合適;C項(xiàng)用Photoshop較合適,D項(xiàng)用編程解決比較合適。25.①枚舉算法;②I mod 3<>0;③方法【詳解】26.(1)t=t*i(2) t的值超出integer的取值范圍(或:t的數(shù)據(jù)類型聲明不當(dāng))、修改t的數(shù)據(jù)類型為取值范圍更大的類型【詳解】27.18【詳解】28.(1)Len(ch);(2)Label2.Caption = s【詳解】本題意圖考核考生對(duì)循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)的綜合應(yīng)用以及VB常用函數(shù)、賦值語句等的靈活應(yīng)用。并能根據(jù)題意,對(duì)程序補(bǔ)充完整。29. (1,7),(10,3) a(i+1)=c+1 sp+1 to i+2 step -1 sp-1【詳解】本題主要考查VB程序的調(diào)試與執(zhí)行。①退掉5號(hào)房間,滿足上下靠,則登記的記錄變成(1,7),(10,3)②當(dāng)前處理的是第4種情況,上下靠,所以if條件為a(i+1)=c+1③第三種情況,上下不靠,需要增加一條新記錄,需要將當(dāng)前及后面的記錄值均往后移一位,故此處的循環(huán)條件為sp+1 to i+2 step -1④通過for循環(huán)輸出登記的記錄,sp的初始值為k+1,所以此處循環(huán)范圍是i從1到sp-1。30.2016【詳解】本題主要考查VB程序的執(zhí)行。分析程序可知,該程序?qū)崿F(xiàn)將字符串s中的數(shù)字提取出來,保存到變量t中,在文本框Text1中輸入“2016_Student”(不包含引號(hào)),單擊命令按鈕Command1后,文本框Text2中顯示的內(nèi)容是2016。31. prime(i) 或 prime(i)=True End IF a(i)-a(i-1)=2【詳解】本題主要考查VB程序的執(zhí)行與調(diào)試。①函數(shù)prime()判斷是否是質(zhì)數(shù),是質(zhì)數(shù)返回True,否則返回False。如果i是質(zhì)數(shù),變量k遞增,并將質(zhì)數(shù)i賦給數(shù)組a,所以此處填prime(i)或prime(i)=True。②根據(jù)語法結(jié)構(gòu),此處if判斷結(jié)束,故填End IF。③兩個(gè)質(zhì)數(shù)的差為 2,則這兩個(gè)質(zhì)數(shù)稱為孿生質(zhì)數(shù)對(duì),故此處填a(i)-a(i-1)=2。32. ①a<=b ②yb*ym>0【詳解】本題考查的是對(duì)分查找。求解出該區(qū)間內(nèi)的一個(gè)近似解(精確到10-5),因此Abs(ym)<0.00001時(shí)就表示找到了。查找的條件是頭指針小于或等于尾指針,故①處填入a<=b;由b=m可知尾指針變?yōu)閙,只有b和m對(duì)應(yīng)的值yb、ym在同在x軸上方或下方,才需要移動(dòng)尾指針,故②處為yb*ym>0。答案第1頁,共2頁答案第1頁,共2頁 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫