小弟正准备考二级,这里有几个看程序填答案的题,请大师们赐教!!!!!万分感谢!!!!    1.运行下面的程序,单击命令按扭Command1,则在窗体上第一行显示的内容是_______,第二行显示的内容是_______,文本框Text1中显示的内容是_______。
    Private Sub Command1_Click()
       Dim S As String
       S="LAUSIV"
       Text1.text=Display(S,Len(S))
    End Sub    Private Function Display(S As String,L As Integer) As String
       If L>1 Then Display=Display(S,L-1)
       S=Left(S,L-1) & Right(S,1) & Mid(S,L,Len(S)-L)
       Display=S
       Print Display
    End Function
  请问为什么第一行显示的内容“VLAUSI"中第一个字母是"V",为什么我算来算去是“S”呢?请问这答案是怎么算出来的?请给我详解,谢谢!!!!(第二行答案是“VILAUS”,第三个答案是“VISUAL”)
    

解决方案 »

  1.   

    第一个字母是"V",Display(S As String,L As Integer) 中显示第一行时,l=1 ,那么left(s,l-1)就是left(s,0),显示出来是没有,那么就Right(S,1)是第一个字母了.以下的类推
      

  2.   

    不好意思,小的愚昧,为什么left(s,l-1)中l-1等于0呢?
      

  3.   

    Private Function Display(S As String,L As Integer) As String
           If L>1 Then Display=Display(S,L-1)  //当L>1时  就递归调用Display()直到L<=1也就是L=1时才开始执行下边的程序
           S=Left(S,L-1) & Right(S,1) & Mid(S,L,Len(S)-L)
           Display=S
           Print Display
        End Function
      

  4.   

    我靠!! 1-1 不等于 0 还等于几?Left(S,1-1) 从 S 串中的左边取字符,取 1-1 个字符,也就是什么字符都没有取。
      

  5.   

    怎么知道l的值是多少,我在vb环境监视的时候为什么l=6
      

  6.   

    知道了,形参l对应于实参Len(S),就是求="LAUSIV"的长度