设有下面程序代码: Private Sub Command1_Click() Dim a As Variant a = Array(22, 43, 23, 56, 87, 45, 67, 12, 98, 98, 56, 34, 23, 75

admin2019-03-14  27

问题 设有下面程序代码:
Private Sub Command1_Click()
    Dim a As Variant
    a = Array(22, 43, 23, 56, 87, 45, 67, 12, 98, 98, 56, 34, 23, 75, 64)
    m = a(0)
    n = m
    For k = 1 To UBound(a)
        If a(k) > m Then
            n = m
            m = a(k)
        ElseIf a(k) > n And a(k) <> m Then
            n = a(k)
        End If
    Next k
    Print n
End Sub
程序运行时的输出是

选项 A、数组中最大的数(即98)
B、数组中最小的数(即12)
C、数组中第2大的数(即87)
D、数组中第1个数(即22)

答案C

解析 n和m都获得数组元素a(0)的值。在For循环中,k=1时,a(k)=a(1)=43,If条件满足,n=a(0),m=a(1)。Else If判断的相同值的条件,只有在大于n并且不等于m的时候才赋值给n。因此n中存储的数永远比m小。而m中的值是数组中最大的值。因此选C。
转载请注明原文地址:https://kaotiyun.com/show/8KFp777K
0

最新回复(0)