一个迷惑已久的小程序问题,求解答

来源:百度知道 编辑:UC知道 时间:2024/06/01 23:10:41
3.运行下列程序,按下回车键后输出结果为。
Option Base 1
Private Sub Form_KeyPress(KeyAscii As Integer)
a=Array(237,126,87,48,498)
m1=a(1)
m2=1
If KeyAscii=13 Then
For i=2 To 5
If a(i)>m1 Then
m1=a(i)
m2=i
End If
Next i
End If
Print m1
Print m2
End Sub
A)48
4
B)237
1
C)498
5
D)498
4
我知道是B,在vb中也运行过,但是想不通原因才来问的,请帮我解答下,多谢啦

下面循环的条件是用户点击的按键asc码是13,这样才会输出最大值及相应下标。
如果按别的按键,输出都是默认的答案B

选C,这个题目实质是要求输出数组中的最大值及其对应的下标(注意下标的下界为1),最大值存在m1中,最大值对应的下标存在m2中。

选B!楼上那位能负责些么?我想了半天(被你误导!),最后没办法,只好把代码放到VB中运行,结果是237,1!你能有些人品么?为了得分竟然不惜一切代价?!?

答案选C,这是个比较最大数的程序,先给M1赋值数组(1),然后依次从数组2开始到数组结束。如果有数大于M1,那么就将这个数赋值给M1,并且用M2记录这个数的下标。然后继续比较。所以从数组看,M1初值为237,只有数组(5)的值498大于237,程序会将498赋值给M1,并且用M2记录498的下标。所以结果为 498,5。 选C。