小王编写VB程序,实现如下功能:在Text1中输入1~ 9之间的任意一个数字,单击“计算”按钮Command1, 计算该数字的阶乘并显示在标签Label2中。程序运行界面如图所示:
 
(1)如图所示,窗体中(不包含窗体本身)的对象共有__个(填数字)。
(2)实现上述功能的VB程序如下,请在划线处填写合适的代码。

Private Sub Command1_Click()

Dim i As Integer, j As Integer, s As Long
s = 1
i =______
If i >= 1 And i <= 9 Then
For j = 1 To i
s = _______
Next j
 Label2.Caption = Str(i) & "的阶乘为:" & Str(s)
Else
 Label2.Caption = "请重新输入1~ 9之间的任意数字"
End If
End Sub
(3)程序中,若将变量s的类型由Long改为Integer,在文本框Text1中输入的内容为“9”,单击“计算”按钮后,程序运行将会出现什么情况____(单选,填字母:
A.溢出 /B.类型不匹配 /C.要求对象)。
当前题号:1 | 题型:填空题 | 难度:0.99
编写“十六进制加法”程序。程序运行时,在文本框Text1和文本框Text2分别输入两个十六进制数,单击“计算”按钮后在文本框Text3上输出两个十六进制相加后的结果。程序运行如图所示。

(1)观察代码,触发代码执行的事件名是________________________
(2)实现上述功能的VB程序如下,请在划线处填人合适的代码。
Private Sub Cmd1_Click()
Dim a1 As String, a2 As String, sum As String, t As String
Dim b1 As Integer, b2 As Integer
Dim dist As Integer, x As Integer, jw As Integer
a1 = Text1.Text: a2 = Text2.Text: sum = ""
dist = Len(a1) - Len(a2)
If dist < 0 Then
t = a1: a1 = a2: a2 = t
___________________
End If
For i = 1 To dist
a2 = "0" + a2
Next i
jw = 0
For i = __________________________ 
If Mid(a1, i, 1) >= "A" And Mid(a1, i, 1) <= "F" Then
b1 = Asc(a1) - 55
Else
b1 = Val(Mid(a1, i, 1))
End If
If Mid(a2, i, 1) >= "A" And Mid(a2, i, 1) <= "F" Then
b2 = Asc(a2) - 55
Else
b2 = Val(Mid(a2, i, 1))
End If
x = b1 + b2 + jw
jw = x \ 16
If __________________ Then
sum = Chr(x Mod 16 + 55) + sum
Else
sum = Str(x Mod 16) + sum
End If
Next i
If jw = 1 Then sum = "1" + sum
Text3.Text = sum
End Sub
(3)若将代码中加框处代码删除,则图中Text3中显示的结果为_________。
当前题号:2 | 题型:填空题 | 难度:0.99
某算法的部分流程图如图所示。输入n的值为100执行这部分流程后,输出的值为()
A.2,2,5,5B.1,2,2,5,5C.1,4,5,5D.1,2,5,10
当前题号:3 | 题型:选择题 | 难度:0.99
执行程序后,a数组各元素是(  )
Dim a(1 To 7) As Integer
a(1) = 14: a(2) = 15: a(3) = 0: a(4) = 11: a(5) = 13: a(6) = 21: a(7) = 17
i = 6: flag = True
Do While i > 1 And flag
If a(i) Mod 3 = 0 And a(i) <> 0 Then
t = a(i): a(i) = a(i + 1): a(i + 1) = t
ElseIf a(i) = 0 Then
flag = flase
ElseIf a(i + 1) Mod 2 = 1 Then
a(i) = Abs(a(i) - a(i + 1))
End If
i = i - 1
Loop
A.14,0,15,4,17,13,21B.14,15,0,11,4,17,21
C.15,14,0,11,4,17,21D.14,15,0,11,13,4,17
当前题号:4 | 题型:选择题 | 难度:0.99
某数据加密方法描述如下:
先将字符转化为二进制的位数据并显示在文本框text2中,数据位数显示在标签Label1中
以16个数据为一段,将k个待加密数据依次分割成若干个数据段,剩余数据(个数小于16)为独立数据段。
数据加密规则:
数据个数等于16的数据段,在段内进行位置变换,得到加密数据段。
数据个数小于16的数据段,直接得到加密数据段。
依次合并加密数据段,即为最后的加密数据。
位置变换的规制,方法如下:

具体界面如下图所示:

(1)已知k=38,则数组元素b(26)对应值是数组a中的______________________。
(2)实现该功能的VB程序如下:

Private Sub Command1_Click()

Dim a(1 To 1000) As Integer, b(1 To 1000) As Integer

Dim n As Integer, m As Integer

Dim s As String, s1 As String, c As Integer, ch As String

s = Text1.Text: Text2.Text = ""

n = Len(s)

k = 1

For i = 1 To n '获取字符的二进制数据存放在数组a()中

  n = Asc(Mid(s, i, 1))

  Do While n <> 0

   a(k) = n Mod 2

   n = n \ 2

   Text2.Text = Text2.Text + Str(a(k))

   k = k + 1

  Loop

Next i

       

List1.Clear

 

For m = 1 To (k - 1) \ 16    '对字符二进制按规则进行位变换,变换后的数据存放在数组b()中并输出

  For i = 1 To 4

    b(16 * (m - 1) + 4 * (i - 1) + 1) = a((m - 1) * 16 + i)

    

  Next i

  For i = 1 To 3

    b(16 * (m - 1) + 4 * (i - 1) + 3) = a((m - 1) * 16 + 10 + i)

    b(16 * (m - 1) + 4 * (i - 1) + 2) = a((m - 1) * 16 + 17 - i)

  Next i

  For i = 1 To 2

    b(16 * (m - 1) + 13 + i) = a((m - 1) * 16 + 4 + i)

  Next i

 

 For i = 1 To 4

  s1 = ""

  For j = 1 To 4

  s1 = s1 + Str(b(16 * (m - 1) + (i - 1) * 4 + j))

  Next j

  List1.AddItem s1

  Next i

List1.AddItem ""

Next m

 

s1 = ""

For i = ((k - 1) \ 16) * 16 + 1 To k - 1

   b(i) = a(i)

    If  Then

    s1 = s1 + Str(a(i))

    List1.AddItem s1

    s1 = ""

    Else

    s1 = s1 + Str(a(i))

    End If

Next i

List1.AddItem s1

 

Text3.Text = ""

For i = 1 To k - 1

Text3.Text = Text3.Text + Str(b(i))

Next i

End Sub

实现上述功能,请在划线处填入适当的代码:
程序中①处填入的是________________________________________。
程序中②处填入的是________________________________________。
程序中③处填入的是________________________________________。
当前题号:5 | 题型:填空题 | 难度:0.99
数组nam()、sex()、math()、su()分别存放学生的姓名、性别、数学和总分成绩,现要求编写一个程序使得数据按照男生“总分”的降序和女生“总分”的升序排列,其中男生在前女生在后,程序界面如下图所示:

实现该功能的VB程序如下,但加框处代码有错,请改正。

Dim nam(100) As String '存放学生姓名

Dim sex(100) As String '存放学生性别

Dim math(100) As Long '存放学生数学成绩

Dim su(100) As Long '存放学生总分成绩

Dim k As Integer 'k变量用来存学生人数

Private Sub Form_Load()

‘将数据库中的数据分别存储在相应的变量中并在列表框中显示出来

‘代码略

End Sub

Private Sub Command1_Click()

Dim mmax As Integer, gmax As Integer, flagm As Boolean, flagg As Boolean

i = 1: flagm = True: flagg = True

Do While i <= k And flagm = True ①   

    mmax = 0: gmax = 0

    flagm = False: flagg = False

  For j = i To k - i + 1

    If sex(j) = "男" And su(j) > su(mmax) Then mmax = j

    If sex(j) = "女" And su(j) > su(gmax) Then gmax = j

  Next j

   If mmax <> 0 Then

flagm = True

t = nam(mmax): nam(mmax) = nam(i): nam(i) = t

t = sex(mmax): sex(mmax) = sex(i): sex(i) = t

t = math(mmax): math(mmax) = math(i): math(i) = t

t = su(mmax): su(mmax) = su(i): su(i) = t

   End If

   If gmax <> 0 Then

flagg = True

If j = mmax Then    ②   

gmax = mmax

t = nam(gmax): nam(gmax) = nam(k - i + 1): nam(k - i + 1) = t

t = sex(gmax): sex(gmax) = sex(k - i + 1): sex(k - i + 1) = t

t = math(gmax): math(gmax) = math(i): math(i) = t

t = su(gmax): su(gmax) = su(k - i + 1): su(k - i + 1) = t

Else

t = nam(gmax): nam(gmax) = nam(k - i + 1): nam(k - i + 1) = t

t = sex(gmax): sex(gmax) = sex(k - i + 1): sex(k - i + 1) = t

t = math(gmax): math(gmax) = math(k - i + 1): math(k - i + 1) = t

t = su(gmax): su(gmax) = su(k - i + 1): su(k - i + 1) = t

End If

   End If

i = i + 1

Loop

For i = 1 To k

List2.AddItem nam(i) + "    " + sex(i) + "    " + Str(math(i)) + "    " + Str(su(i))

Next i

End Sub

程序中①处改为________________________________________。
程序中②处改为________________________________________。
当前题号:6 | 题型:填空题 | 难度:0.99
在text1文本框内输入字符串,单击去重按钮,将字符串后面相同的字符删除,并在text2中输出经过删除的字符串。程序界面如图所示。请在下面划线处填入合适的代码。

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
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
当前题号:7 | 题型:选择题 | 难度:0.99
数组a为一组正整数,奇数在前,偶数在后。奇数与偶数已分别按升序排序。根据对分查找思想,设计一个在数组a中查找数据Key的程序。实现该功能的VB程序段如下:
i = 1: j = 10
key = Val(Text1.Text)
Do While i <= j
m = (i + j) \ 2
If a(m) = key  Then Exit Do  ’ 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)
Text1.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.②、①、③
当前题号:8 | 题型:选择题 | 难度:0.99
有如下程序段:
i = 1
Do While i <= 4 And flag(i) = False
For j = 5 To i + 1 Step -1

If a(j) < a(j -1) Then

k = a(j):a(j) = a(j-1):a(j-1) = k
flag(i) = True

End If

Next j
i = i + 1
Loop
数组元素a(1)到a(5)的值依次为“56,23,78,11,8”,数组flag的初值均为False,经过该程序段“加工”后,数组元素放flag(1)到flag(5)中值为True的个数是(    )
A.1B.2C.3D.4
当前题号:9 | 题型:选择题 | 难度:0.99
某算法的部分流程图如图所示,若输入m的值是5,执行这部分流程后,变量s和i的值是( )
A.3,2
B.2,4
C.2,3
D.3,4
当前题号:10 | 题型:选择题 | 难度:0.99