编写如下程序: Private Sub Command1_Click() Dim m As Integer, n As Integer Dim s_base As String, s As String Dim i As Integer,

admin2020-06-30  34

问题 编写如下程序:
Private Sub Command1_Click()
   Dim m As Integer, n As Integer
   Dim s_base As String, s As String
   Dim i As Integer, j As Integer
   Dim r(20) As Integer
   s_base = "0123456789ABCDEF"
   m = InputBox("输入数据1")
   n = InputBox("输入数据2")
   i = 0
   Do While m <> 0
      r(i) = m Mod n
      m = m \ n
      i = i + 1
   Loop
   s = ""
   For j = i - 1 To 0 Step -1
      s = s + Mid(s_base, r(j) + 1, 1)
   Next j
   Print s
End Sub
程序运行后,单击命令按钮Command1,并依次在输入对话框中输入58和16,输出结果为

选项 A、A3
B、3A
C、29
D、92

答案B

解析 m=58,n=16时,r(0)=58 对16取余 得10, m 整除 n得3,m=3;再次循环,r(1)=m 对n取余 得3对16取余得 3,m整除n后得0,退出循环,此时数组r:r(0)=10,r(1)=3。继续下一个For循环,j从1到0,步长为-1,当j为1时,Mid(s_base, r(j) + 1, 1)即为Mid(s_base, 4, 1),即从字符串s_base的第4个字符开始,向后截取一个字符,为"3",s为"3"。同理当j为0时, 从字符串s_base的第11个字符开始,向后截取一个字符,为"A",此时,s="3"+"A"="3A",故输出结果为3A,选择B。
转载请注明原文地址:https://jikaoti.com/ti/TkS0FFFM
0

最新回复(0)