- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 程序设计语言
- 循环结构
- 分支结构
- 顺序结构
- 类、对象、属性、方法、事件和事件处理的概念
- VB应用程序的界面设计与调试
- 基本数据类型
- 常量、变量、数组
- 常用的标准函数
- 基本运算及表达式
- 赋值语句
- 选择语句
- + 循环语句
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
下列程序执行后变量c的值为( )
c=0
For i=1 to 10
If i mod 2=0 or i mod 3 =1 then
c=c+1
End If
Next i
c=0
For i=1 to 10
If i mod 2=0 or i mod 3 =1 then
c=c+1
End If
Next i
A.4 | B.5 | C.6 | D.7 |
某算法的部分流程图如图所示。以下说法正确的是( )


A.该流程图属于选择结构 |
B.执行这部分流程后,c ← c + 2执行的次数为2次 |
C.执行这部分流程后,c的值是22 |
D.执行这部分流程后,![]() |
编写“幸运数字”程序,功能如下:在文本框Text1中输入出生日期,单击“算一算”按钮Command1,将日期中所有的数字按位相加,若结果为两位数则继续按位相加,直到结果为一位数,如出生日期为2003/08/11,数字按位相加2+0+0+3+0+8+1+1=15,15按位相加1+5=6。运行界面如图所示。

(1)程序窗体中共有_________类对象。
(2)请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim luck As Integer
Dim sr, c As String
luck = 0
sr = Text1.Text
If Len(sr) = 10 Then ’输入的格式长度符合条件
For i = 1 To Len(sr)
c = __________
If c >= "0" And c <= "9" Then
luck = luck + Val(c)
End If
Next i
Do While luck > 9
luck = luck Mod 10 +__________
Loop
Label2.Caption =“你的幸运数字是:”+str(luck)
Else
Label2.Caption = "输入有误,请重输!"
End If
End Sub
(3)若在文本框Text1中输入“2004/08/18”,Label2中显示的内容为__________。

(1)程序窗体中共有_________类对象。
(2)请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim luck As Integer
Dim sr, c As String
luck = 0
sr = Text1.Text
If Len(sr) = 10 Then ’输入的格式长度符合条件
For i = 1 To Len(sr)
c = __________
If c >= "0" And c <= "9" Then
luck = luck + Val(c)
End If
Next i
Do While luck > 9
luck = luck Mod 10 +__________
Loop
Label2.Caption =“你的幸运数字是:”+str(luck)
Else
Label2.Caption = "输入有误,请重输!"
End If
End Sub
(3)若在文本框Text1中输入“2004/08/18”,Label2中显示的内容为__________。
有如下VB程序段:
Dim a(1 To 5) As Intger
A(1)=5 : a(2)=3 : a(3)=8 : a(4)=4 : a(5)=2
For i = 1 To 4
If a(i)> a(i+1) Then
t = a(i): a(i) = a(i + 1): a(i + 1) = t
Endif
Next i
当程序运行结束后,a(5)的值是( )。
Dim a(1 To 5) As Intger
A(1)=5 : a(2)=3 : a(3)=8 : a(4)=4 : a(5)=2
For i = 1 To 4
If a(i)> a(i+1) Then
t = a(i): a(i) = a(i + 1): a(i + 1) = t
Endif
Next i
当程序运行结束后,a(5)的值是( )。
A.2 | B.4 | C.5 | D.8 |
小王设计了一个Visual Basic小程序,该程序的功能是将一个二进制数转化为十六进制数。程序运行时,在文本框Text1输入二进制数(由0、1构成的数串),单击“转换”按钮Command1后,在文本框Text2中显示转换结果。程序运行界面如下图所示。

实现上述功能的程序代码如下所示,请在划线处填上合适的代码:
Private Sub Command1_Click()
Dim x As String, y As String,
Dim i As Integer, s As Integer, n As Integer, c As String
Dim q As String, h As String, ans As String
n = Len(Text1.Text)
y = Text1.Text
If n Mod 4 <> 0 Then ________________
For i = 1 To s
y = "0" + y
Next i
For i = 1 To n Step 4
________________________
If h = "0000" Then q = "0"
If h = "0001" Then q = "1"
If h = "0010" Then q = "2"
If h = "0011" Then q = "3"
If h = "0100" Then q = "4"
If h = "0101" Then q = "5"
If h = "0110" Then q = "6"
If h = "0111" Then q = "7"
If h = "1000" Then q = "8"
If h = "1001" Then q = "9"
If h = "1010" Then q = "A"
If h = "1011" Then q = "B"
If h = "1100" Then q = "C"
If h = "1101" Then q = "D"
If h = "1110" Then q = "E"
If h = "1111" Then ___________________
ans =_____________________
Next i
Text2.Text =ans
End Sub

实现上述功能的程序代码如下所示,请在划线处填上合适的代码:
Private Sub Command1_Click()
Dim x As String, y As String,
Dim i As Integer, s As Integer, n As Integer, c As String
Dim q As String, h As String, ans As String
n = Len(Text1.Text)
y = Text1.Text
If n Mod 4 <> 0 Then ________________
For i = 1 To s
y = "0" + y
Next i
For i = 1 To n Step 4
________________________
If h = "0000" Then q = "0"
If h = "0001" Then q = "1"
If h = "0010" Then q = "2"
If h = "0011" Then q = "3"
If h = "0100" Then q = "4"
If h = "0101" Then q = "5"
If h = "0110" Then q = "6"
If h = "0111" Then q = "7"
If h = "1000" Then q = "8"
If h = "1001" Then q = "9"
If h = "1010" Then q = "A"
If h = "1011" Then q = "B"
If h = "1100" Then q = "C"
If h = "1101" Then q = "D"
If h = "1110" Then q = "E"
If h = "1111" Then ___________________
ans =_____________________
Next i
Text2.Text =ans
End Sub
有如下 VB 程序段:
i=1:n=5
Do while i<=n x=Int(Rnd*9)+1
If x Mod 2=1 Then a(i)=x
Else
a(n)=x:n=n+1
EndIf
i=i+1
Loop
数组元素的初值均为 0,执行该程序段后,a(1)至 a(5)的值可能是( )
i=1:n=5
Do while i<=n x=Int(Rnd*9)+1
If x Mod 2=1 Then a(i)=x
Else
a(n)=x:n=n+1
EndIf
i=i+1
Loop
数组元素的初值均为 0,执行该程序段后,a(1)至 a(5)的值可能是( )
A.1 , 3 , 5 , 5 , 0 |
B.3 , 3 , 0 , 8 , 8 |
C.0 , 1 , 0 , 4 , 2 |
D.7 , 1 , 3 , 9 , 8 |
某算法的部分流程图如图所示,执行这部分流程后,下列分析正确的是( )

A.当 x 输入 2,y 输入 1 时,输出结果是 16 |
B.当 x 输入 2,y 输入 2 时,输出结果是 4 |
C.当 x 输入 2,y 输入 1 时,“b=b*x”共被执行 5 次 |
D.当 x 输入 2,y 输入 2 时,“a=a\x”共被执行 4 次 |
IPv6 是英文“Internet Protocol Version 6”(互联网协议第 6 版)的缩写。IPv6 地址总共有 128 位,为了便于人工阅读和输入,IPv6 地址使用 16 进制数表示,划分成 8 个块,每块 4 位,块与块之间用“:”隔开,如:ABCD:EF01:0000:0000:ABCD:EF01:0000:6789
同时,对于多个地址块为 0 的情况时,可以使用”::”号,进行化简。
化简原则:
①全 0 块“0000”,可以化简为“0”
②连续多个全 0 块,可以化简为“::”
③一个 IPv6 地址中只能出现一个“::”,出现多个全 0 块时,“::”要化简最长的一段,没有最长的就将最左侧的一段化简为“::”
④“::”可以出现在地址开头或结尾具体示例如下:
程序界面如图所示:

实现上述功能的 VB 程序如下,请回答下列问题:
(1)请在划线处填入合适的代码。
Private Sub Text1_Change()
Dim a(1 To 8) As String, ipstr As String, ips As String
Dim lenth As Integer, max_lenth As Integer, start As Integer ipstr = Text1.Text
For i = 1 To 8
a(i) =_________'将 IPv6 分段存入数组 a Next i
'对数组进行处理,如果字母或非零数字开头,则不用处理;如果全是数字0,则压缩成 0,如果前导为 0,则去掉,处理完毕存回数组。
'///------ 处理过程略----- /////
'如果只有一串0,则将该串“0”用“::”代替,如果不止一串0,则将最长的一串“0”简化为“::”,如果有连续 0,则将左边的一串零简化,右侧保留。
max_lenth = 0
For i = 1 To 7
If_________Then lenth = lenth + 1
Else
If lenth > max_lenth Then
max_lenth = lenth: start = i - lenth: lenth = 0 End If
End If Next i
If lenth > max_lenth Then max_lenth = lenth: start = i - lenth '根据连续 0 串的位置确定输出简化后的结果
ips = ""
If start = 1 And max_lenth = 7 Then '开头是 0 且全 0 ips = "::"
ElseIf start = 1 Then '开头是 0 但不全为 0 ips = "::"
For i = start + max_lenth + 1 To 7 ips = ips + a(i) + ":"
Next i
ips = ips + a(i)
ElseIf start > 1 And start + max_lenth = 8 Then '开头不是 0 但 0 到最后 For i = 1 To start - 1
ips = ips + a(i) + ":"
Next i
ips = ips + ":"
ElseIf start > 1 Then '开头不是 0 且 0 不到最后 For i = 1 To start - 1
ips = ips + a(i) + ":"
Next i
ips = ips + ":"
For i =_________To 7 ips = ips + a(i) + ":"
Next i
ips = ips + a(i)
Else '无连续 0 出现
For i = 1 To 7
ips = ips + a(i) + ":"
Next i
ips = ips + a(i) End If
Text2.Text = ips End Sub
(2)IPv6 地址:3BCD:0000:0000:ABCD:0000:0000:0000:6789,则化简后为_______。
同时,对于多个地址块为 0 的情况时,可以使用”::”号,进行化简。
化简原则:
①全 0 块“0000”,可以化简为“0”
②连续多个全 0 块,可以化简为“::”
③一个 IPv6 地址中只能出现一个“::”,出现多个全 0 块时,“::”要化简最长的一段,没有最长的就将最左侧的一段化简为“::”
④“::”可以出现在地址开头或结尾具体示例如下:
程序界面如图所示:

实现上述功能的 VB 程序如下,请回答下列问题:
(1)请在划线处填入合适的代码。
Private Sub Text1_Change()
Dim a(1 To 8) As String, ipstr As String, ips As String
Dim lenth As Integer, max_lenth As Integer, start As Integer ipstr = Text1.Text
For i = 1 To 8
a(i) =_________'将 IPv6 分段存入数组 a Next i
'对数组进行处理,如果字母或非零数字开头,则不用处理;如果全是数字0,则压缩成 0,如果前导为 0,则去掉,处理完毕存回数组。
'///------ 处理过程略----- /////
'如果只有一串0,则将该串“0”用“::”代替,如果不止一串0,则将最长的一串“0”简化为“::”,如果有连续 0,则将左边的一串零简化,右侧保留。
max_lenth = 0
For i = 1 To 7
If_________Then lenth = lenth + 1
Else
If lenth > max_lenth Then
max_lenth = lenth: start = i - lenth: lenth = 0 End If
End If Next i
If lenth > max_lenth Then max_lenth = lenth: start = i - lenth '根据连续 0 串的位置确定输出简化后的结果
ips = ""
If start = 1 And max_lenth = 7 Then '开头是 0 且全 0 ips = "::"
ElseIf start = 1 Then '开头是 0 但不全为 0 ips = "::"
For i = start + max_lenth + 1 To 7 ips = ips + a(i) + ":"
Next i
ips = ips + a(i)
ElseIf start > 1 And start + max_lenth = 8 Then '开头不是 0 但 0 到最后 For i = 1 To start - 1
ips = ips + a(i) + ":"
Next i
ips = ips + ":"
ElseIf start > 1 Then '开头不是 0 且 0 不到最后 For i = 1 To start - 1
ips = ips + a(i) + ":"
Next i
ips = ips + ":"
For i =_________To 7 ips = ips + a(i) + ":"
Next i
ips = ips + a(i)
Else '无连续 0 出现
For i = 1 To 7
ips = ips + a(i) + ":"
Next i
ips = ips + a(i) End If
Text2.Text = ips End Sub
(2)IPv6 地址:3BCD:0000:0000:ABCD:0000:0000:0000:6789,则化简后为_______。
有如下 VB 程序段:
For i = 1 To 2
For j = 1 To 6 – i
If a(j) - a(j + 1) > 0 Then
Next i
Text1.Text = ""
For i = 1 To 6
Text1.Text = Str(a(i)) + Text1.Text
Next i
数组元素 a(1)到 a(6)的初值依次为 15,11,58,38,26,9,执行该程序段,文本框 Text1 显示的内容是( )
For i = 1 To 2
For j = 1 To 6 – i
If a(j) - a(j + 1) > 0 Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t End If
Next jNext i
Text1.Text = ""
For i = 1 To 6
Text1.Text = Str(a(i)) + Text1.Text
Next i
数组元素 a(1)到 a(6)的初值依次为 15,11,58,38,26,9,执行该程序段,文本框 Text1 显示的内容是( )
A.9 58 11 38 15 26 | B.11 15 26 9 38 58 |
C.58 38 9 26 15 11 | D.58 9 38 11 26 15 |
设某汉字由7×7的0、1点阵图案组成。依照以下规则生成压缩码:连续一组数值,从汉字点阵图案的第一行第一个符号开始计算,按书写顺序由左到右,从上到下。压缩码第一个数表示起始的数字(例如0),第二个数表示连续有几个0,第三个数表示接下来连续有几个1,第四个数表示接下来连续有几个0,第五个数表示接下来连续有几个1,以此类推……
例如,以下汉字点阵图案:
0001000
0001000
0001111
0001000
0001000
0001000
1111111
对应的压缩码是031616431616137(第一个数是0,表示一开始时的数字为0)。

(1) 请将程序代码补充完整。
Private Sub Command1_Click()
Dim code As String, c As Integer, res As String,k As Integer
code=Text1.Text
k=0
res=""
c=Val(Mid(code,1,1))
For i=2 To Len(code)
For j=1 To Val(Mid(code, i, 1)) '
res=______________
___________________
If k=7 Then
List1.AddItem res
k=0
res=""
End If
Next j
c=________________ '
Next i
End Sub
(2)现给出如下点阵图,则压缩码为_________________________________。
例如,以下汉字点阵图案:
0001000
0001000
0001111
0001000
0001000
0001000
1111111
对应的压缩码是031616431616137(第一个数是0,表示一开始时的数字为0)。

(1) 请将程序代码补充完整。
Private Sub Command1_Click()
Dim code As String, c As Integer, res As String,k As Integer
code=Text1.Text
k=0
res=""
c=Val(Mid(code,1,1))
For i=2 To Len(code)
For j=1 To Val(Mid(code, i, 1)) '
res=______________
___________________
If k=7 Then
List1.AddItem res
k=0
res=""
End If
Next j
c=________________ '
Next i
End Sub
(2)现给出如下点阵图,则压缩码为_________________________________。
