组卷网 > 高中信息技术综合库 > 算法软件操作 > VB程序的调试
题型:操作题 难度:0.65 引用次数:21 题号:12341101
现需要对字符串中的字符进行重排顺序,具体方法如下:
原字符串8个字符为一段,分成若干段进行重排处理,尾段剩余字符(个数小于8)为独立段不做处理。
重排规则:从起始段第1个字符开始,从1开始数数,数到m时取出该位置上的字符,拼接到新字符串。然后,从下一个位置继续从1开始数数,数到m时再次取出相应位置上的字符,拼接到新字符串。当数到每段的最后-一个字符时,重新从该段首第一个没有取掉的字符继续数数。重复上述操作,直至段内8个字符被取完。注:当某段中的7个字符被取出后,该段最后一个字符不需要数数,直接取出拼接到新字符串即可。
用以上方法逐段取字符,直至除独立段之外的其他字符取完。
独立段字符个数小于8,不需要重排,直接拼接到新字符串的尾部即可。
实现该功能的VB程序功能如下:程序运行时从文本框Text1中输入一段字符串,在文本框Text2输入正整数m,单击“确定”按钮Command1,对字符串按上述方法重排后在文本框Text3中显示(每段以逗号分隔)。程序运行界面如下:

(1)运行上述程序,若在文本框中输入“1010110010”,在Text2中输入5,单击“确定”按钮,则文本框Text3中显示的内容是_______________
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_lick()
Dim s1 As String,s2 As String
Dim i As Integer,sum As Integer,ed As Integer,n As Integer
Dim m As Integer
__________
s1 = Mid(Text1.Text,1,Len(Text1.Text)- n)
m = Val(Text2.Text)
s2 = " "
' 字符重排顺序
sum = 0 : i = 1 : ed = 8
Do While Len(s1)< > 0
       sum = sum + 1
       If sum = m Then
             s2 = s2 + Mid(s1,i,1)
             s1 = Mid(s1,1,i-1)+ Mid(s1,i+1,Len(s1)-i)
             ed = ed – 1
             sum = 0
       Else
             i = i + 1
       End If
       If ed = 1 Then
             s2 = s2 + Mid(s1,1,1)+ ","
             ___________
             ed = 8
             i = 1
       ElseIf ________ Then
             i = 1
       End If
Loop
' 处理独立段
If n < > 0 Then s2 = s2 + Mid(Text1.Text,Len(Text1.Text)- n + 1,n)+ ","
Text3.Text = s2
End Sub
【知识点】 VB程序的调试

相似题推荐

操作题 | 适中 (0.65)
【推荐1】小张同学已经学会了整数十进制转换为二进制的方法:“除2取余,逆序排列”法。通过查找资料得知,十进制小数转换成二进制小数采用“乘2取整,顺序排列”法。具体做法是:用2乘十进制小数部分,得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止,即“乘2取整,顺序排列”法。小张同学编写了VB程序,程序运行界面如图所示,在文本框Text1中输入一个带小数的正十进制数(小于32767),点击“进制转换”按钮Command1,在文本框Text2中输出转化后的带小数的二进制数,精确到4位小数。实现上述功能的VB程序如图,请回答下列问题:

⑴按照本程序的功能,在Text1中输入数据4.125,点击“进制转换”按钮Command1,在Text2中显示的内容是_________
⑵请在画线处填入合适的代码:
Private Sub Command1_Click()
   Dim s As String, s1 As Integer, s2 As
Single
   Dim result As String
          Dim temp As Integer, i As Integer, k As
Integer
   s = Text1.Text
'输入数据是否符合要求,不符合重新输入,代码略
For i = 1 To Len(s)
       ch = Mid(s, i, 1)
       If ch = "." Then
          s1 = Val(Mid(s, 1, i - 1))                              's1表示整数部分
          s2 = _____________        's2表示小数部分
          Exit For                            '退出循环
       End If
   Next i
        '整数部分s1转化为二进制
   result = ""
   Do While s1 <> 0
             temp = s1 Mod 2
             s1 = s1 \ 2
             result = temp & result
   Loop
   result = result & "."
        '小数部分s2转化为二进制,最多保留4位小数
   k = 1
   Do While   s2 <> 0   And k<=4
             temp = Int(s2 * 2)
             s2 =   _______________
             result = result & temp
             k = k + 1
   Loop
   Text2.Text = result
End Sub
2022-05-08更新 | 14次组卷
操作题 | 适中 (0.65)
名校

【推荐2】有求和式,编写程序计算并输出当n=20时,s的值。

2019-02-28更新 | 49次组卷
操作题 | 适中 (0.65)

【推荐3】学校组织运动会,开幕式的时候要求每个班排成一个方阵,为了能快速地排成方阵, 小张编写了一个 VB 程序,程序功能:在文本框 Text1 中输入每一行的人数,在文本框 Text2 中输入班级人数(输入人数<=60),单击“排队”按钮 Cmd1 后,在列表框 List1 中按学号 显示队形。程序运行界面如下图所示,程序代码如下,请回答下列问题:

(1)以上代码的事件处理过程名是___________

(2)程序代码中加框处有两处错误,请改正:①______________________

(3)程序代码中,请将③处的代码补充完整___________

2019-06-30更新 | 26次组卷
共计 平均难度:一般