问题 单项选择题

阅读下面的程序:
Private Sub Form_Click()
Dim m,n As Integer
m=InputBox("请输入M的值")
m=Val(m)
m1=m
n=InputBox("请输入N的值")
n=Val(n)
n1=n
Do While n<>0
remin=m Mod n
m=n
n=remin
Loop
Print m1,n1,m
End Sub
程序运行后,单击窗体,在对话框中分别输入16和24,则程序在窗体上的输出结果为

A.16 24 4

B.16 24 8

C.24 16 6

D.24 16 8

答案

参考答案:B

解析:

[分析]: 本题捉供的是用“辗转相除法”求两个整数最大公约数的程序。一般来说,假定有两个整数m和n(m>n),将m作为被除数, n作为除数,相除后余数为r。如果r不等于0,则令m=n,n=r,再进行一次除法运算(以新的m作为被除数,n作为除数),得到新的r。如果r仍不等于0,则重复上述过程,直到r=0为止,此时的n就是两个数的最大公约数。在本题的Do While-Loop循环中,通过辗转相除求最大公约数,循环结束的条件是相除后余数为0,如果不为0,则一直“除”下去。这里用 Mod运算符求余数,较大的整数作为被除数或者较小的整数作为被除数都可以得到正确结果,但整除的次数可能会不一样。在本题的输入中,先输入16,再输入24,求出的最大公约数仍为8。

单项选择题
单项选择题