VB求大神 VB求详细解答过程,一定要过程详细 我知道答案,要过程

执行下面程序,单击按钮CmdRun,窗体上显示的第一行结果是(10);UBound(a)的值是(11);其中a(1)的值为(12)。OptionExplicitPriva... 执行下面程序,单击按钮CmdRun,窗体上显示的第一行结果是 (10) ;UBound(a)的值是 (11) ;其中a(1)的值为 (12) 。
Option Explicit
Private Sub CmdRun_Click()
Dim St As String, i As Integer
Dim a() As String, j As Integer, k As Integer
St = "abcd"
Call sub1(St)
Print St
For i = 1 To Len(St)
For j = i + 1 To Len(St)
If Mid(St, i, 1) = Mid(St, j, 1) Then Exit For
Next j
If j > Len(St) Then
k = k + 1
ReDim Preserve a(k)
a(k) = Mid(St, i, 1)
Print "a("; k; ")="; a(k)
End If
Next i
End Sub
Private Sub sub1(S As String)
Dim i As Integer
For i = 1 To Len(S) \ 2
Mid(S, i, 1) = Mid(S, Len(S) - i + 1, 1)
Next i
End Sub
展开
 我来答
chinaboyzyq
2018-05-27 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3250万
展开全部
首先理解传地址:
sub1(s as string)等于sub1(byref s as string),即s是传地址的,这里也就是把st的地址传递给s,所以s就是st,s改变,st就改变,它两是同一个东西。
其次理解一个函数一个语句:

Mid(S, i, 1) = Mid(S, Len(S) - i + 1, 1)
这一句中,第一个mid是语句,第二个mid是函数。
第一个mid(s,2,1)="a"就是把字符串s中的第2个字符起的1个字符长度替换为a,
第二个mid(s,1,1)是从字符串S中第1个字符起取1个。
如果还看不懂,百度vb6 mid语句。
mr_shj
2018-05-27 · TA获得超过2682个赞
知道大有可为答主
回答量:1665
采纳率:94%
帮助的人:1382万
展开全部
Option Explicit
Private Sub CmdRun_Click()
    Dim St As String, i As Integer
    Dim a() As String, j As Integer, k As Integer
    St = "abcd"
    Call sub1(St)  '调用子程序,把"abcd"变成前半截是后半截的反序,即"dccd"
    Print St  '输出dccd
    For i = 1 To Len(St)  'i从1开始到St的长度,即从St的第1个字母开始检查到最后一个字母
        For j = i + 1 To Len(St) 'j从i+1到St的长度,即j代表i的下一个字母开始的所有以后字符
            If Mid(St, i, 1) = Mid(St, j, 1) Then Exit For '如果第i个字符与第j个字符相同,退出循环j
        Next j
        If j > Len(St) Then '如果前面的循环是正常退出,则j=Len(St)+1,
        '这个条件成立,代表在i位之后找不到与i位相同的字符,
        '如果前面的循环是exit for退出的,则j<=Len(St),这个条件不成立
        '代表在i位之后找到了与i位相同的字符
            k = k + 1  '找到没有相重的字符,计数器增加1
            ReDim Preserve a(k) '相应的记录数组也加1
            a(k) = Mid(St, i, 1) '记录之后没有相重的字符--第i个字符
            Print "a("; k; ")="; a(k) '输出当前的计数器和第i个字符
        End If
    Next i
End Sub
Private Sub sub1(S As String)
    Dim i As Integer
    For i = 1 To Len(S) \ 2  'i的变化从1到字串S的一半,即变化字串的前半截
        '把前半截变成后半截的反序
        Mid(S, i, 1) = Mid(S, Len(S) - i + 1, 1)
    Next i
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式