中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

2020浙江高考信息技術VB算法與程序?qū)m椌毩晫n}二 選擇合適語句完善程序功能

資源下載
  1. 二一教育資源

2020浙江高考信息技術VB算法與程序?qū)m椌毩晫n}二 選擇合適語句完善程序功能

資源簡介

專題二 選擇合適語句完善程序功能
1.“不重復數(shù)”的特征是任何相鄰兩個數(shù)位上的數(shù)字都不相同。如 1101 是重復數(shù),1201是不重復數(shù)。判斷某數(shù)是不重復數(shù)的 VB 程序段如下:
s = Text1.Text
 ____(1)____
i = 1: flag = True
Do While i <= n - 1 And flag
If ____(2)____ Then flag = False
i = i + 1
Loop
If____(3)____ Then
Label1.Caption = ”重復數(shù)”
Else
Label1.Caption = ”不重復數(shù)”
End If
上述程序中方框處可選語句為:
① flag=False ②n=Len(s) ③Mid(s, i, 1) = Mid(s, i + 1, 1)
則(1)(2)(3)處語句依次是(  )
A.②③① B.①③② C.②①③ D.③②①
解析 flag表示是否重復的標志,每趟從后往前進行查找,進行相鄰兩個數(shù)據(jù)的比較,不相等進行連接。
答案 C
2.在文本框Text1內(nèi)輸入字符串,單擊去重按鈕Command1,將字符串后面相同的字符刪除,并在文本框Text2中輸出經(jīng)過刪除的字符串。請在下面劃線處填入合適的代碼。
Private Sub Command1_Click()
Dim s As String, s1 As String, c As String
s = Text1.Text
For i = 1 To Len(s)
c = Mid(s, i, 1)
s1 = ____(1)____
For j = ____(2)____
If c <> Mid(s, j, 1) Then
     s1 = s1 + Mid(s, j, 1)
End If
Next j
___(3)____
Next i
Text2.Text = s
A.(1)s1 = Mid(s, 1, 1) (2)i + 1 To Len(s) (3)s1 = s
B.(1)s1 = Mid(s, 1, 1) (2)i To Len(s)  (3)s1 = s
C.(1)s1 = Mid(s, 1, i) (2)i To Len(s) (3)s = s1
D.(1)s1 = Mid(s, 1, i) (2)i + 1 To Len(s)  (3)s = s1
解析 j每趟從i+1向后找,把不相等的連接起來,前面的是不相等的連接到s1中。
答案 D
3.一個正整數(shù)從高位到低位上的數(shù)字依次遞增,則稱其為升序數(shù)(如1369、2779是升序數(shù),而2547不是升序數(shù)),編寫VB代碼如下:
Dim i As Integer, s As String, flag As Boolean
s = Text1.Text
flag = True
____ (1)____
Do While i <= Len(s) And flag = True
 If ____(2)____ Then flag = False
 i = i + 1
Loop
If ____(3)____ Then
 Label2.Caption = s + ”滿足條件!”
Else
 Label2.Caption = s + ”不滿足條件!”
End If
填空處的代碼由以下三部分組成:
①flag = True ②i=2 ③Mid(s, i, 1) < Mid(s, i - 1, 1)
④i=1 ⑤flag = False
代碼順序正確的選項是(  )
A.②①③ B.②③① C.②③⑤ D.④③①
解析 flag是一個標志,當他成立時輸出。從第2個位置開始與他前一個位置的字符比較,如果比前一個字符小,則flag的值為Flag退出循環(huán)。
答案 B
4.對稱字符串的特征是從左到右讀和從右到左讀完全一樣的。如“abba”是對稱的,“abcba”也是對稱的。判斷字符串是否對稱的VB程序段如下:
N=Len(s)
K=0:j=n
For i = 1 To n/2

Next i
If k = 0 Then Label1.Caption =”對稱” Else Label1.Caption= ”不對稱”
方框中的代碼由以下三部分組成:
①j = j - 1
②If c1 <> c2 Then k = k + 1
③ c1= Mid(s,i,1) : c2 = Mid(s,j,1)
代碼順序正確的選項是(  )
A.①③② B.②③① C.③②① D.②①③
解析 判斷對稱思想,依次對首尾字符作比較,變量i、j分別代表首尾字符位置。
第1次i=1,j=n,第2次i=2,j=n-1。
答案 C
5.向文本框Text1中輸入一串包含大小寫的字母,統(tǒng)計出現(xiàn)次數(shù)最多的字母(不區(qū)分大小寫)并將該字母以大寫方式輸出到文本框Text2,如有多個字母次數(shù)相同的,則只記錄最后出現(xiàn)的字母,部分程序如下。
Dim c(1 To 26) As Integer
s = Text1.Text
For i = 1 To Len(s)
x = Mid(s, i, 1)
If x >= ”a” Then
t = Asc(x) - Asc(”a”) + 1    
Else
t = Asc(x) - Asc(”A”) + 1
End If  
___①____
If c(t) >= Max Then Max = c(t): ____②______
Next i
Text2.Text = Chr(f + Asc(”A”))
劃線處應該填入的正確語句是(  )
A.①c(t-1)=c(t-1)+1 ②f=t
B.①c(t)=c(t)+1 ②f=t
C.①c(t-1)=c(t-1)+1 ②f=t-1
D.①c(t)=c(t)+1 ②f=t-1
解析 t表示字母在字母表中位置,c(t)表示該字母的個數(shù),f表示最多字母在字母表中距離a的位置。
答案 D
6.用VB編寫統(tǒng)計某字母開頭的單詞個數(shù)的程序,句子以“.”結束,單詞之間用空格分隔,單詞沒有縮寫或其他特殊形式。部分程序代碼如下所示:
s = Text1.Text ′輸入的英語短文 
t = Text2.Text ′要統(tǒng)計的開頭字母
b = Len(s):f = True
For i = 1 To b
 c = Mid(s, i, 1)
 If ____①____ Then
  n = n + 1
 ____②____
 ElseIf c = ” ” Or c = ”.” Then
____③____
 Else
 f = False
 End If
Next i
Label3.Caption=”以”+t+”為開頭的單詞個數(shù):”+Str(n)
End Sub
為實現(xiàn)上述程序,劃線處應填入的代碼是(  )
A.①f And c = t ②f = False ③f = True
B.①f = False And c = t ②f = False ③f = True
C.①c = t ②f = True ③f = False
D.①f = True And c = t  ②f = True ③f = False
解析 f是單詞開頭的標志,如果與t相同,則個數(shù)增加一個。同時把標志改為False.
答案 A
7.編寫VB程序,實現(xiàn)如下功能,在文本框Text1中輸入一個大于1000的正整數(shù),單擊按鈕Command1后,刪除其中的3個數(shù)字,且保證余下的數(shù)字在不改變順序的情況其數(shù)值最大,然后在文本框Text2中輸出該數(shù)。代碼如下所示:
Private Sub Command1_Click()
Dim s As String, n As Integer, i As Integer, j As Integer
s = Text1.Text
For i = 1 To 3
n = Len(s)
For j = 2 To n
IfThen Exit For
Next j
s = Mid(s, 1, j - 2) + Mid(s, j, n - j + 1)
Next i
Text2.Text = s
End Sub  
加框處的正確代碼為(  )
A.Mid(s,j,1)B.Mid(s,j-1,1)>Mid(s,j,1)
C.Mid(s,j,1)>Mid(s,j+1,1)
D.Mid(s,j-1,1)答案 D
8.將文本框Text1中字符串相同的字符刪除,并在文本框Text2中輸出的部分程序代碼如下所示:
Dim s As String, s1 As String, c As String
s = Text1.Text
For i = 1 To Len(s)
c = Mid(s, i, 1)
s1 = ____(1)____
For j =____(2)____
If c <> Mid(s, j, 1) Then
 s1 = s1 + Mid(s, j, 1)
End If
Next j
____ (3)____
Next i
Text2.Text = s
End Sub
劃線處應填入的代碼是(  )
A.(1)s1=Mid(s,1,1) (2)i+1 To Len(s) (3)s1=s
B.(1)s1=Mid(s,1,1) (2)I To Len(s) (3)s1=s
C.(1)s1=Mid(s,1,i) (2)I To Len(s) (3)s=s1
D.(1)s1=Mid(s,1,i) (2)i+1 To Len(s) (3)s=s1
答案 D
9.下面程序的功能是:產(chǎn)生30個[1,100]范圍內(nèi)的隨機整數(shù),并統(tǒng)計這30個隨機數(shù)中的整數(shù)的個數(shù)(重復出現(xiàn)算1個),結果顯示在標簽Label1中。例如:5個隨機數(shù)[1,2,3,3,2]中不重復數(shù)字個數(shù)為3。程序部分代碼如下:
count = 0
For i = 1 To 30
a(i) = Int(Rnd * 100) + 1
Next i
For i = 1 To 30
____①____
Next i
For i = 1 To 100
If b(i) <> 0 Then count = count + 1
Next i
Label1.Caption = ”不重復數(shù)字個數(shù)” + Str(count)
為實現(xiàn)上述功能,則程序劃線處應填入的語句為(  )
A.b(i)=1 B.b(a(i)) = a(b(i)) + 1
C.b(i)=b(i)+1 D.b(a(i)) = b(a(i)) + 1
解析 b數(shù)組下標對應a數(shù)組元素值,計算a數(shù)組元素值的個數(shù)。
答案 D
10.以下代碼實現(xiàn)功能為:隨機產(chǎn)生100個[1,99]之間的整數(shù),統(tǒng)計產(chǎn)生最多的整數(shù)及個數(shù)。
Private Sub Command1_Click()
 Dim a(1 To 100) As Integer, b(1 To 100) As Integer
 Dim i As Integer, k As Integer, max As Integer
 Randomize
 For i = 1 To 100


List1.AddItem Str(a(i))
 Next i
 max = 0
 For i = 1 To 100
If b(i) > max Then
 
 k = i
End If
 Next i
 Label1.Caption = ”數(shù)字” + Str(k) + ”出現(xiàn)了” + Str(max) + ”次”
End Sub
上述程序中方框處可選語句有:(  )
①a(i) = Int(Rnd * 99) + 1 ②a(i) = Int(Rnd * 100) + 1 ③ b(a(i)) = b(a(i)) + 1 ④b(i) = b(i) + 1  ⑤max = b(i)  ⑥ max = i
則(1)(2)(3)處語句依次是(  )
A.①③⑤ B.②③⑤ C.①④⑤ D.②④⑥
解析 [1,99]之間的整數(shù)可以表達為[0,99)+1,在計數(shù)語句中,下標對應的數(shù)組元素值表示該下標的個數(shù)。
答案 A
11.某VB程序功能如下:輸入正整數(shù)n,單擊命令按鈕Command1后,則會生成一串有規(guī)律的數(shù)字序列,形式為“n n-1 n-2 … 3 2 1 2 3 … n-2 n-1 n”。例如n=8時,生成的數(shù)字序列如圖所示。

代碼如下:
Private Sub Command1_Click()
Dim n As Integer, i As Integer, s As String
n = Val(Text1.Text)
s = ” ”
For i = 1 To 2 * n - 1
If i <= n Then____①____ Else ____②____
Next i
Label1.Caption = s
End Sub
為實現(xiàn)以上功能,劃線①②處應分別填寫(  )
A.①s = s & Str(n - i + 1) ②s = s & Str(i - n + 1)
B.①s = Str(n - i + 1)  ②s = Str(i - n + 1)
C.①s = s & Str(i - n + 1) ②s = s & Str(n - i + 1)
D.①s = Str(i - n + 1) ②s = Str(n - i + 1)
解析 條件i <= n成立,表示在前半段的降序數(shù)列,降序的第1個數(shù)是1的對稱數(shù),否則是后面半段的升序數(shù)列。后面半段是第i項減去n+1。
答案 A
12.小莊編寫了一個統(tǒng)計數(shù)組元素a(l)到a(n)中的“升序段”個數(shù)s(如圖所示的數(shù)據(jù)序列,其 “升序段”的個數(shù)等于3)的VB程序。部分程序如下:

 k = 0 : s = 0
For i = 2 To n
If a(i) > a(i - 1) Then

Else
If k = 1 Then
s=s+1
 k=0
End If
End If
Next i
Text1.Text = Str(s)
方框中的正確語句是(  )
A.k = k - 1 B.k = 1
C.k = -1 D.k = k + 1
解析 k表示升序段中數(shù)的個數(shù)。
答案 D
13.數(shù)組a中的n個元素經(jīng)排序生成左右交替上升數(shù)據(jù)序列的VB程序段如下:
For i = 1 To
 For j = To i + 1 Step -1
If d(j)  t = d(j): d(j) = d(j - 1): d(j - 1) = t
End If
 Next j
 For j = i + 1 To
If d(j)  t = d(j): d(j) = d(j + 1): d(j + 1) = t
End If
 Next j
Next i
方框中的代碼由以下三部分組成:
①n - i + 1 ②n \2 ③n - i
代碼順序正確的選項是(  )
A.②①③ B.①②③
C.②③① D.③②①
解析 一趟排序中包含兩個排序過程,先是從后往前,由于第i趟后面對稱的位置n-i+1將有序,因此從該位置開始排序。
答案 A
14.下列 VB 程序段的功能實現(xiàn)了對數(shù)組元素 a(1)到 a(n)從小到大的排序。
For i = 2 To n - 1
 k = a(i): j= ______①______
 Do While k < a(j)
____②____
j = j - 1
If j = 0 Then Exit Do
 Loop
____③____
Next i
上述程序段 3 個劃線處的表達式分別為(  )
A.①i ②a(j-1) = a(j) ③a(j+1)=k
B.①i ②a(j+1) = a(j) ③a(j)=k
C.①i-1 ②a(j-1)=a(j) ③a(j)=k
D.①i-1 ②a(j+1)=a(j) ③a(j+1)=k
解析 這是插入排序的算法,在i前面一個數(shù)開始查找。如果比k大,將該位置上數(shù)往后移動。
答案 D
15.下列VB程序段功能為:根據(jù)數(shù)組a中各元素的大小關系,計算各元素升序排列的序號,并將序號保存在數(shù)組b中,如數(shù)組a各元素為“20,40,10,30”,b(1)到b(4)各元素的值分別為“1,2,3,4”,程序運行后b(1)到b(4)各元素的值分別為“2,4,1,3”。
For i=1 to n
______(1)____
Next i
For i=1 to n-1
k=i
For j=i+1 To n
 If ____(2)______Then k=j
 Next j
 If k <> i Then
 ______(3)____
 End if
Next i
上述程序段3個方框處的代碼分別為(  )
A.(1)b(i)=1 (2)a(j)>a(k) (3)t=a(k):a(k)=
a(i):a(i)=t
B.(1)b(i)=1 (2)a(b(j))>a(b(k)) (3)t=a(k):
a(k)=a(i):a(i)=t
C.(1)b(i)=i (2)a(j)>a(k) (3)t=b(k):b(k)=
b(i):b(i)=t
D.(1)b(i)=i (2)a(b(j))>a(b(k)) (3)t=b(k):
b(k)=b(i):b(i)=t
解析 b數(shù)組存儲的是a數(shù)組元素的位次,把b數(shù)組初值賦值為1-n,利用選擇排序的思想,把b數(shù)組元素作為a的下標。
答案 D
16.編寫VB程序?qū)崿F(xiàn)以下功能:對數(shù)組d中的元素降序排序,然后在列表框List1中顯示排序后的結果,代碼如下:
d(1) = 3: d(2) = 8: d(3) = 3: d(4) = 5: d(5) = 7
d(6) = 4: d(7) = 7: d(8) = 3: d(9) = 6: d(10) = 10
For i = 1 To n
c(i) = 0
Next i
For i = 1 To n
___①____
Next i
For i = n To 1 Step -1
 Do While c(i) > 0
List2.AddItem Str(i)
___②____
Loop
Next i
要實現(xiàn)上述功能,則方框①②中的語句分別是(  )
A.c(i) = c(i) + 1c(i) = c(i) + 1
B.c(d(i)) = c(d(i)) + 1c(i) = c(i) + 1
C.c(i) = c(i) + 1c(i) = c(i) – 1
D.c(d(i)) = c(d(i)) + 1c(i) = c(i) – 1
解析 數(shù)組c統(tǒng)計d數(shù)組元素中的數(shù)的個數(shù),再按從大到小,輸出c(i)中的數(shù)。
答案 D
17.統(tǒng)計連續(xù)小寫字母最長的個數(shù),編寫VB代碼如下:
s=Text1.Text
___ (1)____
ans=0
For i=1 To Len(s) 
 t=Mid(s,i,1)
 If t>=”a” And t<=”z” Then 
c=c+1
______(2)______
 Else
___ (3)____
 End If
Next i
Text2.Text=Str(ans)
填空處的代碼可由以下部分組成:
①c=0 ②c=1 ③If c>ans Then ans=c ④If c正確的代碼順序是(  )
A.②③① B.①④⑤
C.②④② D.①③①
解析 本題考查VB程序算法實現(xiàn)能力。本題程序逐個字符檢查是否是小寫字母,并記錄最長連續(xù)小寫字母個數(shù)。程序中,ans表示最長連續(xù)小寫字母個數(shù),c表示當前字符結尾的連續(xù)小寫字母個數(shù)。
答案 D
18.下列程序段用于在前面部分為升序后面部分為降序的數(shù)組a中查找最大值,返回該數(shù)值及其位置(下標)。
i = 1: j = 10 : flag = False
Do While i <= j And Not flag
m = (i + j + 1) \'2
If a(m)a(m+1) Then
  ____(1)______
ElseIf a(m)>a(m-1) And a(m)>a(m+1) Then
  ____(2)____
ElseIf a(m)>a(m-1) And a(m)  ______(3)____
End If
Loop
List1.AddItem Str(a(m)) +Str(m)
上述程序方框處可選語句為
①i=m+1 ②j=m-1 ③flag=True
則(1)(2)(3)處語句依次是 (  )
A.①②③ B.①③②
C.③①② D.②③①
解析 a(m)a(m+1)條件成立,表示a(m)處在后半段的第一個位置,且后半段的最大值小于前半段的最大值,應往前找。a(m)>a(m-1) And a(m)>a(m+1)條件成立,表示a(m)處在后半段的第一個位置,且后半段的最大值大于前半段的最大值,該數(shù)就是最大值。a(m)>a(m-1) And a(m)答案 D
19.下列VB程序段的功能為:對數(shù)組a中的n個元素進行排序,生成左右交替上升的數(shù)據(jù)序列。如排序前a中元素依次為:48, 34, 86, 46, 85, 100,程序運行后a中元素依次為:34, 48, 86, 100, 85, 46。
For i = 1 To ____①____
k = i
For j = i + 1 To n - i + 1
If a(k) > a(j) Then k =____②____
Next j
If k <> i Then t = a(k): a(k) = a(i): a(i) = t
For j=____③____
    If a(j) < a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t
Next j
Next i
上述程序段3個劃線處的表達式分別為(  )

解析 前半段選擇排序,后半段從前往后冒泡排序。
答案 D
20.某 VB 程序段功能為:數(shù)組 a 順序不變,輸出升序結果。例如 a 數(shù)組各元素的值分別為”53,9,71,45,10,41”,最終 a 數(shù)組保持不變,而列表框 List2 輸出”9,10,41,45,53,71”。
Const n= 6
Dim a(1To n) As Integer
Private Sub Command1_Click()
Dim b(1To n) As Integer
Dim t As Integer, i As Integer, j As Integer
For i =1 To n
b(i) = i
Next i
For i =1 To____①____
 For j = ____②____ To n
If____③____ Then
 t = b(i): b(i) = b(j): b(j) = t
End If
 Next j
Next i
For i =1 To n
List2.AddItem a(b(i))
Next i
End Sub
上述程序段 3 處下劃線的表達式分別為(  )
A.①n-1 ②i+1 ③b(i) > b(j)
B.①n-1 ②i+1 ③a(b(i)) > a(b(j))
C.①n ②1 ③b(i) > b(j)
D.①n ②1 ③a(b(i)) > a(b(j))
答案 B
21.下列 VB 程序段的功能實現(xiàn)了對數(shù)組元素 a(1)到 a(n)從小到大的排序。
For i = 2 To n - 1
k = a(i): j=____①____
 Do While k < a(j)
___②____
j = j - 1
If j = 0 Then Exit Do
Loop
___③____
Next i
上述程序段 3 個劃線處的表達式分別為(  )
A.①i ②a(j - 1) = a(j) ③a(j + 1) = k
B.①i ②a(j + 1) = a(j) ③a(j) = k
C.①i-1 ②a(j - 1) = a(j) ③a(j) = k
D.①i-1 ②a(j + 1) = a(j) ③a(j + 1) = k
解析 這是插入排序的算法思想。
答案 D
22.有n個整數(shù)存儲在a數(shù)組,將其中的奇數(shù)轉存到b數(shù)組中,并將b數(shù)組從小到大排序。部分程序如下:
t = 0
For i = 1 To n
 If a(i) Mod 2 = 1 Then
t = t + 1

 End If
Next i
For i = 1 To t - 1
For j = t To i + 1 Step -1
  If b(j) < b(j - 1) Then
    temp=b(j):b(j)=b(j-1):b(j-1)=temp
  End If
  Next j
Next i
方框中應填寫的正確語句是(  )
A.b(i) = a(i) B.b(i) = t
C.b(t) = a(i) D.b(t) = a(t)
解析 t表示奇數(shù)的個數(shù)。
答案 C
23.下列VB程序功能為:根據(jù)文本框Text1中各字符的大小關系,計算各字符升序排列的序號,并將序號保存在數(shù)組y中。如文本框內(nèi)容為“2011”,程序運行后y(1)~ y(4)各元素的值分別為“4,1,2,3”。
s = Text1.Text
n = Len(s)
For i = 1 To n
 y(i) = 1
Next i
For i = 1 To
 For j = To n
If Then
 y(j) = y(j) + 1
Else
 y(i) = y(i) + 1
End If
 Next j
Next 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) > 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)
解析 結合代碼內(nèi)循環(huán)IF語句分析,要計算每個字符的排列的序號(名次),每個字符需要兩兩比較一次。選項A和B的循環(huán)次數(shù)都會導致重復比較,所以排除。根據(jù)題目中給出的例子,后面(第j個元素)等于前面的元素(第i個元素),后面的元素名次號也要加1。所以答案選C。
答案 C
24.從數(shù)組元素 a(1)開始,按詞典順序存儲若干英語單詞(單詞均小寫,升序)。初始時,數(shù)組元素 b(0)值為 0,b(1)~b(26)分別存儲首字母為 a、b、c、……、z 的單詞個數(shù)。依據(jù)對分查找思想:設計一個在數(shù)組 a 中查找某個單詞位置的程序。實現(xiàn)該功能的 VB 程序段如下:
key = Text1.Text ′輸入查找單詞
For i = 1 To 26
b(i) = b(i) + b(i-1)
Next i
____(1)____
i = b(k-1)+1
j = b(k)
Do While i <= j
m = (i + j) \2
 If key = a(m) Then Exit Do ′Exit Do 表示退出循環(huán)
 If key < a(m) Then j = m – 1 Else i = m + 1
Loop
If ____(2)______Then s = ”沒有找到!” Else s = ”位置:” + Str(m)
Text2.Text = s
上述程序段 2 個方框處的代碼分別為(  )
A.(1)k = Asc(Mid(key,1,1))- Asc(“a”) + 1
(2)i <= j
B.(1)k = Asc(Mid(key,1,1))- Asc(“a”)
(2)i <= j
C.(1)k = Asc(Mid(key,1,1))- Asc(“a”) + 1
(2)i> j
D.(1)k = Asc(Mid(key,1,1))- Asc(“a”)
(2)i> j
解析 k表示查找單詞第1個字母在字母表中位置,因此是減去a的內(nèi)碼還要加1.沒有找到的條件是i>j。
答案 C
25.數(shù)組a為一組正整數(shù),奇數(shù)在前,偶數(shù)在后。奇數(shù)與偶數(shù)已分別按升序排序。依據(jù)對分查找思想:設計一個在數(shù)組a中查找數(shù)據(jù)Key的程序。實現(xiàn)該功能的VB程序段如下:
i = 1: j = 10
Key = Val(Text1.Text)
Do While i <= j
m = (i + j) \2
If a(m) = Key Then Exit Do 
If Key Mod 2 = 1 And a(m) Mod 2 = 0 Then
  ____(1)____
ElseIf Key Mod 2 = 0 And a(m) Mod 2 = 1 Then
 ____(2)____
Else
 ____(3)____
End If
Loop
If i > j Then s =”沒有找到!” Else s = ”位置:”+ Str(m) Text2.Text = s
上述程序中方框處可選語句為:
①i = m + 1 ②j = m - 1
③If Key < a(m) Then j = m - 1 Else i = m + 1
則(1)(2)(3)處語句依次是(  )
A.①②③ B.①③② C.②①③ D.③②①
解析 Key Mod 2 = 1 And a(m) Mod 2 = 0條件成立,表示查找的數(shù)是奇數(shù),但m位置指向的是偶數(shù),應在左半段中查找,Key Mod 2 = 0 And a(m) Mod 2 = 1條件成立,表示查找的數(shù)是偶數(shù),但m位置指向的是奇數(shù),應在右半段中查找,否則他們同時為奇或同時為偶。
答案 C
26.循環(huán)升序數(shù)組指的是將一個升序數(shù)組循環(huán)右移動若干距離之后變成的數(shù)組。如[1,2,3,4,5]循環(huán)右移1位,就成為[5,1,2,3,4],再右移1位,就成為[4,5,1,2,3],…,其中[5,1,2,3,4]和[4,5,1,2,3]都是循環(huán)升序數(shù)組。該數(shù)組的特點是:將循環(huán)升序數(shù)組從中間分開,肯定有一邊是有序數(shù)組,另外一邊是循環(huán)有序數(shù)組。小杜研究發(fā)現(xiàn)對分查找算法適當優(yōu)化后也適用于循環(huán)升序數(shù)組。在文本框輸入被查找數(shù)據(jù)key,查找循環(huán)升序數(shù)組a中是否有相同的元素存在。編寫的VB程序段如下:
i = 1: j = n  ′數(shù)組a下標從1到n為止
Key = Val(Text1.Text)
Do While i <= j
m = (i + j) \2
If a(m) = Key Then Exit Do
If a(i) < a(m) Then
If______①______Then j = m - 1 Else i = m + 1
Else
If Key > a(m) And Key <= a(j) Then i = m + 1 Else j = m - 1
End If
Loop
If i <= j Then Text2.Text = ”查找成功”  Else Text2.Text = ”查找失敗”
要使程序?qū)崿F(xiàn)對分查找過程,則方框中的語句是(  )
A.Key >= a(i) And Key < a(m)
B.Key <= a(i) And Key > a(m)
C.Key >= a(i) And Key <= a(j)
D.Key > a(i) And Key <= a(m)
解析 條件a(i) < a(m)成立,表示處于前半段升序的過程。
答案 A
27.VB程序段如下:
n = Val(Text1.Text)
k = 0
left = 1
right = n
Do While left <= right
k = k + 1
m = (left + right) \2
If m - left < right - m Then
left = m + 1
Else
right = m - 1
End If
Loop
在文本框Text1中輸入16,執(zhí)行該程序段,下列說法錯誤的是(  )
A.程序運行后k的值是4 
B.程序運行后m的值是16
C.程序運行后right的值是15
D.程序運行后left的值是16
答案 B
28.一組“非降序”的數(shù)據(jù)分別存儲在數(shù)組元素a(1)……a(n)中,用對分查找算法在數(shù)組a中查找key值所在的位置,如果有重復的元素,則顯示最小的位置。部分VB程序如下:
key = Val(Text1.Text)
 i = 1: j = n
 Do While i <= j
 m = (i + j) \2
 If a(m) > key Then
j=m-1
 ElseIf a(m) < key Then
i=m+1
 Else
IfThen
  j = m - 1
Else
  Label2.Caption = Str(key) + ”的起始位置是” + Str(m)
  Exit Do
End If
  End If
Loop
If i > j Then
  Label2.Caption = ”找不到” + Str(key)
End If
要使程序?qū)崿F(xiàn)上述算法思想,則方框①中的語句是(  )
A.a(chǎn)(m - 1) = key
B.a(chǎn)(m) = key
C.m - 1 > 0 And a(m - 1) = key
D.m - 1 > 0 And a(m) = key
解析 當m不是第1個位置,且他前面的數(shù)與查找的數(shù)相等時,再往前找。
答案 C
29.某班要開展一個班會主題活動,需要將全班40名同學隨機分成4個組,每組10人。為了排除人工分組的主觀因素,小華設計了一個VB程序,他的程序算法如下:將40名同學的姓名放入數(shù)組a中,第一次從a(2)~a(40)中隨機抽取一個數(shù)與a(1)交換,第二次從a(3)~a(40)中隨機抽取一個數(shù)與a(2)交換,第三次從a(4)~a(40)中隨機抽取一個數(shù)據(jù)與a(3)交換……依次類推,直到所有學生姓名隨機的出現(xiàn)在數(shù)組a中,之后再將數(shù)組里的數(shù)據(jù)分別顯示在4個ListBox中。該VB程序已經(jīng)將40名同學的姓名存放到數(shù)組a中,其余程序代碼部分代碼如下:
Private Sub Command1_ Click( )
Randomize
For i = 1 To 39
 ____①____
 y = a(i): a(i) = a(x): a(x) = y
Next i
For i = 1 To 40
 If i <= 10 Then List1.AddItem a(i)
 If i > 10 And i <= 20 Then List2.AddItem a(i)
 If i > 20 And i <= 30 Then List3.AddItem a(i)
 If i > 30 And i <= 40 Then List4.AddItem a(i)
Next i
劃線處①的正確語句是(  )
A.x=Int(Rnd*39)+i
B.x=Int(Rnd*40-i)+i+1
C.x=Int(Rnd*(40-i))+i+1
D.x=Int(Rnd*(i+1))+40-i
解析 要產(chǎn)生一個[i+1,40]之間的隨機整數(shù)x。該范圍可以轉換為[0,40-i)+ i+1。
答案 C
30.小李編寫了一個 VB 程序,讀取某數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)表打開后界面及部分VB代碼如下:

Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim a(1 to 1000) As String,Strconn As String
strconn=”provider=Microsoft.ACE.OLEDB.12.0;datasource=”+App.Path+”[SX)]core.accdb”
conn.ConnectionString =strconn
Conn.Open
Set rs.ActiveConnection = conn
rs.Open ”Select * from stuinfo”
n=0
Do While Not rs.EOF
n=n+1
a(n)=rs.fields(1)
rs.MoveNext
Loop
rs.Close
conn.Colse
下列對于以上代碼的理解正確的有(  )
①連接的數(shù)據(jù)庫文件名是“score.accdb”
②“ConnectionString”是 conn 對象的屬性值
③查詢的數(shù)據(jù)表名稱是“stuinfo”
④程序運行后,a(1)=“101”
⑤程序運行后,讀取的記錄總數(shù)共n條
A.①②③ B.①③④ C.①③⑤ D.②④⑤
解析 本題考查數(shù)據(jù)庫連接。“ConnectionString”是 conn 對象的屬性名,②錯;程序運行后,a(1)=“張三”,④錯。
答案 C
31.小王設計了一個數(shù)據(jù)庫,用于存儲程序中的數(shù)據(jù),部分編輯界面如圖所示:

編寫了一個VB程序,用于讀取該數(shù)據(jù)表中stname、score字段中值,分別存儲到xm、df數(shù)組中,部分代碼如下:
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim xm(1000) As String,df(1000) As Integer
conn.ConnectionString = ”Provider = Microsoft.ACE.OLEDB.12.0;DATA Source=” & App.Path & ”\ ①  ”
Set rs.ActiveConnection = conn
rs.Open ”select * from ____②____”
n=0
Do While Not rs.EOF
n=n+1
xm(n)=rs.Fields(”stname”)
df(n)=____③____
rs.MoveNext
Loop
要使程序?qū)崿F(xiàn)上述算法思想,則劃線處①②③語句分別是(  )
A.Mydata.accdb student rs.Fields (4)
B.Mydata student rs.Fields (4)
C.Mydata.accdb student rs.Fields (3)
D.Mydata student rs.Fields (3)
解析 本題主要考查Vb連接數(shù)據(jù)庫的基本知識。從圖中可以看出,數(shù)據(jù)庫的名稱為Mydata.accdb,數(shù)據(jù)表的名稱為student。
答案 C
32.有1個升序排列的數(shù)組 a(a(1)~a(n),n≥3),從左到右相鄰兩個元素的差值(后一個元素值減去前一個元素值)先由小到大、再由大到小,且相鄰兩個差值不相等,為了查找相鄰兩個元素的最大差值,小李編寫的 VB 程序段如下:
i = 1 :j = n
Do While i + 1 < j m = (i + j) \'2
 If a(m+1)-a(m)>a(m)-a(m-1) Then
____①____
 Else
____②____
 End if
Loop
Label1.Caption=”相鄰兩個元素的最大差值是”+Str(a(j)-a(i))
上述程序段兩個劃線處的語句分別為(  )
A.①i=m ②j=m
B.①i=m ②j=m-1
C.①i=m+1 ②j=m-1
D.①i=m+1 ②j=m
解析 本題考查對分查找的變形應用。從左到右相鄰兩個元素的差值先由小到大、再由大到小,呈現(xiàn)的是波峰狀態(tài),分析數(shù)組規(guī)律得知左邊差值大,最大差值肯定在左邊;右邊差值大,最大差值肯定在右邊;因為是兩個元素差值代表一組,無論是右邊a(m+1)-a(m)大,還是左邊a(m)-a(m-1)大,下一輪查找都必須包含a(m),也就是i=m或j=m。
答案 A
33.小趙對選擇排序算法進行了如下改進:在數(shù)組的所有元素中找出最大和次大數(shù)據(jù)的元素,然后將這兩個元素分別與第1個和第2個元素交換數(shù)據(jù),在余下的元素中找出最大和次大數(shù)據(jù)的元素,分別與第3個和倒數(shù)第4個元素交換數(shù)據(jù),以此類推,直到所有元素的數(shù)據(jù)按升序排列。小趙編寫的VB程序段如下:
For i = 1 To 8 Step 2
If a(i) > a(i + 1) Then
Max = i: Maxa = i + 1
Else
Max = i + 1: Maxa = i
End If
For j = i + 2 To 8
If a(j) >= a(Max) Then
   ____(1)____
   ____(2)____
Else
   ____(3)____
End If
Next j
t = a(Max): a(Max) = a(i): a(i) = t
If Maxa = i Then Maxa = Max
t = a(Maxa): a(Maxa) = a(i + 1): a(i + 1) = t
Next i
上述程序中劃線處可選語句為:
①If a(j) > a(Maxa) Then Maxa = j
②Max = j
③Maxa = Max
則(1)(2)(3)處語句依次是(  )
A.②③① B.①③②
C.②①③ D.③②①
解析 條件a(j) >= a(Max)表示找到一個最大的,先把原來最大賦值給次大值,再把當前的位置賦值給最大的,條件不成立,但滿足比次大值大,需重新定位次大值。
答案 D


展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 丹寨县| 湟源县| 新闻| 威信县| 盘山县| 星子县| 敖汉旗| 琼中| 江源县| 观塘区| 东阳市| 郴州市| 新田县| 华亭县| 铁岭市| 芦溪县| 晋江市| 金昌市| 阳信县| 微博| 铅山县| 屯昌县| 门头沟区| 黔西县| 台南县| 鲜城| 淮南市| 鹤山市| 南澳县| 樟树市| 饶河县| 张北县| 绥德县| 禹州市| 旅游| 湖州市| 平江县| 尖扎县| 个旧市| 朝阳县| 祁门县|