有如下VB程序段:
For i = 1 To 8
a(i) = Int(Rnd * 2)
Next i
sum = 0
For i = 1 To 8 Step 3
For j = i To 8
a(j) = 1 - a(j)
Next j
sum = sum + a(i)
Next i
Text1.Text = Str(sum)
执行程序段后,文本框Text1中显示的内容不可能是
A.0
B.2
C.3
D.4
当前题号:1 | 题型:选择题 | 难度:0.99
对学生数据排序,排序后男生在前,女生在后,(“M”表示男,“F”表示女),男生和女生分别按“姓名”升序排序。编写一个VB程序,功能如下:在列表框list1中显示排序前学生数据,单击“排序”按钮Command1,在列表框list2中显示排序后的结果。程序运行界面如图所示。

实现上述功能的 VB程序如下,但加框处代码有错,请改正。
Const n = 10
Dim xm(1 To n)As String, xb(1 To n)As String
Function adj(sAs String, n As Integer) As String
'函数功能:在字符串 s 后添加若干个空格,使其长度变为 n,代码略。
End Function
Private Sub Form1_Load(   )
'读取 10 个学生姓名和性别分别存数组 xm、xb,
并在列表框 list1 中显示,代码略。
End Sub
Private Sub Command1Click
Dim i As Integer, j As Integer
i = 1
Do While i <= n - 1

j = n-1 '(1)________

Do While j >= i + 1

If xb(j) = "M" And xb(j - 1) = "F" Or xm(j) < xm(j - 1) Then '(2)________
temp = xm(j): xm(j) = xm(j - 1): xm(j - 1) = temp
temp = xb(j): xb(j) = xb(j - 1): xb(j - 1) = temp
End If
j = j - 1

Loop

i = i + 1

Loop
For i = 1 To n

List2.AddItem adj(xm(i), 12) + " " + xb(i)

Next i
End Sub
当前题号:2 | 题型:填空题 | 难度:0.99
(加试题)有如下程序段:
k = 0 : First = 1 : Last = 5 : Flag = True
Do While Flag
k = k + 1
p = False : Flag = False
For j = First To Last
If a(j) > a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
Last = j : Flag = True
If p = False Then
First = j :p = True
End If
End If
Next j
If First <> 1 Then First = First - 1
Last = Last - 1
Loop
数组元素a(1)到a(6)的值依次为“3,6,8,5,7,9”,经过该程序段“加工”后,下列说法正确的是( )
A.此过程中数据共交换了3次B.此过程中该数组的数据共比较了7次
C.变量k的值为2D.数组元素a(1)到a(6)的数未排成有序
当前题号:3 | 题型:选择题 | 难度:0.99
(加试题)有如下程序段:

For i = 2 To 6

For j = 1 To i - 1
If a(j) <= a(i) And d(j) >= d(i)  Then
d(i) =d(j)+1 : pre(i) = j
End If
Next j

Next i

max = 0 : k = 0

For i = 1 To 6

If  d(i)>max  Then max = d(i) : k = i

Next i

Do While k <> 0

st = a(k) & ","& st
k=pre(k)

Loop

Text1.Text = Mid(st, 1, Len(st) - 1)

数组元素a(1)到a(6)的值依次为“2,6,5,9,8,8”,数组d各元素的值初始化为1,数组pre各元素的值初始化为0,经过该程序段“加工”后,Text1中的值是(    )
A.2,5,9B.2,6,8,8C.2,5,8,8D.2,5,6,8,8,9
当前题号:4 | 题型:选择题 | 难度:0.99
(加试题)数组a中存储的是一组正整数,特征是:①以三个数为一组的话,每组中任意一个数都比前面一组中的任意一个数要大;②每组中三个数依次递减;③数组中数的总个数为3的倍数。依据对分查找思想,设计一个在数组a中查找数据key的程序。实现该功能的VB程序如下,但加框处代码有错,请改正。
8
5
3
17
15
10
32
23
18
53
43
37
82
72
63
……
 
Private Sub Command1_Click()
Const n = 15
Dim a(1 To n) As Integer, search As Integer, key As Integer
Dim i As Integer, j As Integer, m As Integer
'读取一组正整数,按上述规则存入数组a中,代码略。
key = Val(Text1.Text)
i = 1: j = n: search = 0
Do While i <= j
m = (i + j) \ 2
If m Mod 3 <> 0 Then m= m -2   '(1) 把m调整到三个一组的最后一个数的位置
If key = a(m) Then
search = m : Exit Do
ElseIf key < a(m) Then
j = m - 3
ElseIf  key <= a(m - 2)  Then    '(2)
i = m + 1
ElseIf key = a(m - 2) Then
search = m - 2 : Exit Do
ElseIf key = a(m - 1) Then
search = m - 1 : Exit Do
Else
search = 0 : Exit Do
End If
Loop
If search <> 0 Then
Text2.Text = Str(search)
Else
Text2.Text = "找不到"
End If
End Sub
加框处代码应修改为:(1)【小题1】 (2)【小题2】
当前题号:5 | 题型:填空题 | 难度:0.99
统计不同单词个数,在Text1中输入一行单词,点击“统计”按钮后在Text2中输出不同单词的个数。单词字母有大小写,同一单词的大小字母视为相同,句子以符号结尾, 程序运行界面如图所示。

(1)观察以下代码,该代码中 Command1_Click()是 【小题1】(选:
A.对象名 /B.事件名 /C.事件处理过程名)
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim a(1 To 100) As String ,s As String, ch As String, word As String
Dim i As Integer, j As Integer, k As Integer, numb As Integer
s = Text1.Text :  k = 0 :  word = ""
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "a" And ch <= "z" Or ch >= "A" And ch <= "Z" Then
If ch >= "A" And ch <= "Z" Then 【小题2】
word = word + ch
Else
flag = False
For j = 1 To k
If a(j) = word Then flag = True
Next j
If Not flag And word <> "" Then
【小题3】
a(k) = word
numb = numb + 1
End If
【小题4】
End If
Next i
Text2.Text = str(numb)
End Sub
当前题号:6 | 题型:填空题 | 难度:0.99
小胡收集了2018届高三学生高考成绩及相关的选科情况,存入数据库中,部分界面截图如图所示:

程序功能如下:

在窗体加载时,从数据库中读取学生总数N;读取N名学生的信息存储在相关数组中。N名学生的学号依次存储在数组xh(1)~xh(n) 中;学号为i的学生的总成绩存储在数组 zf(i)中,课程选修信息存储在xk(i)中;

点击“统计”按钮后,程序筛选出所有技术考生的相关信息,并计算该学生在所有技术考生中的排名(总分相同的,排名也相同)。

实现上述功能的VB程序如下,请回答下列问题:
(1)请在划线处填入合适的代码。
Dim xh(1 To 1000) As Integer ’数据库中读取时第i为学生的学号存储在xh(i)
Dim zf(1 To 1000) As Integer ’学号为i的考生的总分存储在zf(i)
Dim xk(1 To 1000) As String ’学号为i的考生的选考课程信息存储在zf(i)
’ 数据格式 **-**-**  (如:物理-化学-生物)
Dim jspm(1 To 1000) As Integer   ’学号为i的技术选考生的总分在所有技术考生中的
’排名存储在数组jspm(i)
Private Sub Form_Load()
Dim conn   As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim  constr  as string , sql as string
Constr = "Provider=Microsoft.ace.OLEDB.12.0;"
Constr = constr &  "Data Source=" & App.Path + "\data\stu2018.accdb"
conn.ConnectionString = constr
conn.open( )
rs.Open  "select * from 2018cj  "  ,  conn
i=0
Do While Not rs.EOF
i=i+1
xh(i)=rs(“xuehao”)
zf(rs(“xuehao”)) = rs(“fenshu”)
xk(rs(“xuehao”))=rs(“xkinfo”)
【小题1】
Loop
N=i
End Sub
’判断选科信息info中是否包含科目km 
Function YouKM(ByVal km As String, ByVal Info As String) As Boolean
Dim km1 As String
YouKM = False
For i = 1 To 3
If 【小题2】 Then
YouKM = True
Exit For
End If
Next i
End Function
'为技术学科考试求名次
Private Sub Command1_Click()

Dim jsinfo(1 To 1000) As Integer    ’依次存储每个技术选考生的学号和成绩

Dim k as integer    ’存储找到的技术选考学生的数量

'将所有选考“技术”的考生学号、成绩依次存入数组jsinfo中

    k = 0
For i = 1 To n
If    【小题3】 Then
k = k + 1
jsinfo(2 * k - 1) = xh(i)
jsinfo(2 * k) = cj(xh(i))
End If
Next i
'学号为i的学生在技术选考生中的排名,存入jspm(i)中
For i = 1 To k
mc = 0
For j = 1 To k
If jsinfo (2 * j) > jsinfo (2 * i) Then mc = mc + 1
Next j
jspm(jsinfo(2*i-1))= 【小题4】

Next i

   '输出所有技术考试的学号、成绩、技术排名信息 代码略
End Sub
当前题号:7 | 题型:填空题 | 难度:0.99
某算法的部分流程图如图所示,执行这部分流程,则输出m,n,i的值依次为( )
A.3  14  7B.0  20  7C.0  15  6D.3  15  7
当前题号:8 | 题型:选择题 | 难度:0.99
如图a所示,在excel中使用Rank函数可以快速地返回一个数字在数字列表中的排位,而且是同分同名次,非常方便。小明想用Vb编写一个程序来实现类似Rank排名次的功能,程序运行时,随机产生10个[60,100]之间的随机数,并显示在列表框List1中,单击“排名”按钮Command1,在列表框List2中输出数据及其排名,程序运行界面如图b所示。


实现上述功能的VB程序如下,代码加框处有错,请改正。
划线①处代码应改为:___________________ 
划线②处代码应改为:____________
Dim a(1 to 10) As Integer ‘存储原始数据
Dim b(1 to 10)As Integer ‘存放名次
Private Sub Command1_Click()
Dim i As Integer,j As Integer, n As Integer
For i=1 To 10
n=0
For j=1 To 10
If   If  a(i)<=a(j) Then n=n+1 ‘①
  b(i)=n  ‘②
Next j
Next i
For i= 1 to 10
List2.Additem a(i)&”  ”&b(i)
Next i
End Sub
Private  Sub Form_Load()
‘随机产生10个[60,100]之间的随机数,并显示在List1中,代码略。
End Sub
当前题号:9 | 题型:填空题 | 难度:0.99
某对分查找算法的VB程序如下:
n=0
i=1
j=6
key=val(Text1.text)
f=False
Do While i<=j And Not f
m=(i+j+1)\2
n=n+1
If key=d(m) Then
f=True
ElseIf key>d(m) Then
j=m-1
Else
i=m+1
End if
Loop
数组元素d(1)到d(6)的值依次为“87,72,53,41,29,18”,若该程段运行结束后,n的值为2,则key的值是( )
A.87或29B.72或18C.72 或 29D.53 或 18
当前题号:10 | 题型:选择题 | 难度:0.99