组卷网 > 高中信息技术综合库 > 算法软件操作 > VB程序的调试
题型:操作题 难度:0.15 引用次数:20 题号:11737698
大数据是当今最热门的领域之一,小王同学利用VB设计了一个模拟大数据应用的程序。有10种商品,数组a存储用户是否购买了各种商品;某个用户购买时,商品两两之间是否一起购买用另一个数组dsj来记录;各数组元素的解释如下表所示。

小王按照上述算法设计了VB程序,统计了20个用户购买10种商品之间的关联性,VB程序如下,部分界面如图所示.

Private Sub Cmd1_Click()
Dim a(1 To 200) As Integer        '各个用户原始的购买记录
Dim dsj(1 To 45) As Integer       '统计商品之间的关联次数
Dim i As Integer, t As Integer, nc As Integer, j As Integer,, max As Integer
'数组a读入数据并在列表框分行输出,代码略
       For i = 1 To 20                           '20个用户
            t = 1     
            For j = 1 To 9                       '10个商品,共45种组合
               For k = j + 1 To 10
                  m = (i - 1) * 10
                  If      Then dsj(t) = dsj(t) + 1
                        
               Next k
            Next j
       Next i
       max = 0
       For i = 1 To 45
            If ②   Then   
max = dsj(i)
maxi = i
            EndIf
       Next i
       t = 9: nc = 1
       Do While maxi > t
                   
            t = t - 1
            nc = nc + 1
       Loop
       Text1.Text = “关联最多的是商品” + Str(nc) + Str(maxi + nc) + “:” + Str(max) + “次”
End Sub
(1)将按钮上的文字“统计”修改为“计算”,可在Form_Load过程中使用______(单选,填字母)语句实现;
A.Cmd1.Caption=“计算”     B.Cmd1_Click=“计算”     C.Command1.Text=“计算”
(2)加框处代码有错,请改正;
________
(3)在程序划线处填入合适代码,使程序完整。
______________________________
______________________________
______________________________
【知识点】 VB程序的调试

相似题推荐

操作题 | 困难 (0.15)
【推荐1】将一个十进数转化为任意进制可以采用“除权取余法”。方法是:a 为十进制数,n 为转化的 进制,从 a 开始循环除以 n,记下余数,整数商作为新的 a 继续除以 n ,直到 a=0 为止。然后 倒序取余数即可。余数 k 如果为 10<=k<=15,用字母依次记作“ABCDEF”,比如 k=10,记作 A。该 程序界面如下图所示,在文本框 Text1 中输入一个任意十进制数,在文本框 Text2 中输入要转换 的进制,单击“开始转换”按钮后,对应的进制数在文本框 Text3 中显示。

(1)代码“Private Sub Command1_Click()”中的 Click 是_________。(单选,填字母:A.对象名/B.属性名/C.事件名)
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_click()
Dim a As Integer, n As Integer, k As Integer, b As String
Const m = "0123456789ABCDEF"
a = Val(Text1.Text)
_________
Do While       _________

k = a Mod n       '求 a 的余数

a = a \ n

b =__________ + b

Text3.Text = b

Loop
End Sub
(3)在实现程序功能后,在 Text1 中输入 “16”,在 Text2 中输入 “16”,Text3 显示的内容是____
2019-04-27更新 | 51次组卷
操作题 | 困难 (0.15)
【推荐2】输入一个正整数N,寻找一个比N大且最接近N的整数,要求这个数的每位数字之和与N的每位数字之和相同。例如N=1231,则满足上述条件的最接近N的整数为1240。为了解决此问题,设计算法如下:
①从右往左扫描,找第一个非0数字,将该数字减1后移到最后面。
②在当前位置继续往左扫描,找第一个非9的数字,若遇到,将该数字加1,结束;若遇到9,将其移到最后面,重复执行②。
③若扫描完没有加1,则最前面补“1”。
例如:N=199000,按照上述算法的处理过程是:199000→190008→100089→200089,满足条件的最接近的数是200089。

(1)若输入N=99900,则满足条件的最接近的数为_______________
(2)实现上述功能的VB代码如下,请在划线处填入适当的代码。
①处代码______________;②处代码______________;③处代码______________
Private Sub Command1_Click()
Dim a(1 To 50)As String
Dim n As String, step1 As Boolean, step2 As Boolean Dim i As Integer, length As Integer, zero As Integer, cnt As Integer
n = Text1.Text
length = Len(n)
'将数字串n从右往左依次存储在数组a中。
For i =1 To length

a(i)=


Next i
step1 =True:step2 = False       'step1对应步骤①,step2对应现步骤②
zero =0:cnt=1
For i=1 To length

If.step1 =True Then

If a(i)="0" Then

zero = zero +1

Else

If zero > 0 Then

a(cnt)=a(i)

a(i)="0"

End If

step1 =False

step2 = True

End If

ElseIf step2 =True Then

If a(i)="9" Then

If zero =0 Then

t=a(cnt+1):a(cnt+1)=a(cnt):a(cnt)=t

cnt =cnt +1

If i <> cnt Then

a(i)=a(i-1)

End If

Else

a(cnt)="9"

a(i)="o"

cnt =cnt + 1

End If

Else

a(i)=a(i)+1

step2 = False

Exit For

End If

End If


Next i
'最前面补"1"
If step2 Then

length =length +1

a(length)="1"


End If
'输出结果,代码略。
End Sub
2020-04-13更新 | 28次组卷
操作题 | 困难 (0.15)
【推荐3】小林发给小周一串密文“VghpcyBpcyBhbiBleGFtcGx1”,并告诉小周,这串密文由明文字符串(仅包含ASCII字符,且字节数为3的倍数)经以下规则加密而成:
(1)将明文ASCII码分成3个字节一组,顺次连接后得到24位二进制数;
(2)将得到的24位二进制数字按每6位一组分成4组,每组6个位;
(3)在(2)中得到的6个位前补上两个0,得到4个字节的二进制数;
(4)将(3)中得到的四个二进制数分别转换为十进制数;
(5)将每个十进制数转换为1个加密字符,对应的“密码表”按数值由0到63次为“ABCDEFGHIJKLM-NOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”,小周按照上述规则,设计了一个解密VB程序,功能如下:
单击“解密”按钮Command1,程序依次将文本框Text1中每4个密文字符按加密规则转换为3个明文字符,连接这些明文字符,最后在文本框Text2中输出结果。程序运行效果如下图所示。

实现解密功能的VB程序如下,请回答下列问题:
(1)若密文字符串的长度是120,则解密后明文字符串的长度是__________
(2)请在划线处填入合适代码。
①处代码______________;②处代码______________;③处代码______________
Function Char2Int(c As String)As Integer
If c>="A" And c<="Z" Then '字母"A"的ASCII码是65

Char2Int = Asc(c)-65


ElseIf c>="a" And c<="2" Then '字母"a"的ASCII码是97

Char2Int =Asc(c)-71


ElseIf c>="0" And c<="g" Then '数字"0"的ASCII码是48


ElseIf c="+"Then

Char2Int = 62


Else

Char2Int = 63


End If
End Function
Private Sub Command1_Click()'解密过程
Dim n As Integer, s As String, i As Integer, ss As String Dim a(0 To 3)As Integer '依次存储一组4个密文按密码表换算出的数值
Dim. b(0 To 2)As Integer '依次存储一组3个明文字符的ASCII值
s=Text1.Text
n = Len(s)
ss= "     "
For i = 1 To n Step 4

For j=i To i+ 3

a( )=Char2Int(Mid(s, j, 1))

Next j

b(0)=a(0)*4+ a(1)\16

b(2)=(a(2)Mod 4)*64+a(3)

For j=0 To 2

ss =ss + Chr(b(j))

Next j


Next i
Text2.Text =ss
End Sub
2020-04-13更新 | 25次组卷
共计 平均难度:一般