问答题
改错题(14分)
【题目】
本程序的功能是:找出100~999之间的十进制数为升序数,且其对应的八进制数也是升序数的整数。所谓升序数,是指该数的十位数字值大于个位数字值,百位数字值大于十位数字值。 Option Explicit
Private Sub CmdFind_Click()
Dim n As Integer,s8 As String
For n=100 To 999
s8=d2Q(n)
If sx(n) And sx(Val(s8)) Then
List1.AddItem n & "D==>" & s8 & "Q"
End If
Next n
End Sub
Private Function d2Q(n As Integer) As String
Dim p As Integer
Do
p=n Mod 8
d2Q=d2Q & CStr(P)
n=n/8
Loop Until n=0
End Function
Private Function sx(ByVal n As Integer)As Boolean
Dim num() As Integer,k As Integer,t As Integer
Dim i As Integer
t=Len(CStr(n))
ReDim num(t)
For k=1 To t
num(k)=Val(Mid(CStr(n),k,1))
next k
For i=1 To UBound(num)-1
If num(i)>=num(i+1) Then Exit For
Next i
sx=True
End Function
【要求】
1.新建工程,输入上述代码,改正程序中的错误。
2.改错时,不得增加或删除语句,但可适当调整语句的位置。
3.将窗体文件和工程文件分别命名为F1和P1,并保存到T盘根目录下。
【正确答案】 Private Function d2Q(n As Integer) As String 改为ByVal n As Integer
d2Q=a2Q & cstr(p) 改为cstr(p) & d2Q
If num(i)>=num(i+1) Then Exit For 改为Exit Function