试题

试题 试卷

logo

题型:填空题 题类:模拟题 难易度:困难

浙江省杭州市2015年高考模拟命题比赛信息技术(1)

辗转相除法,又名欧几里德算法(Euclidean algorithm),是求两个正整数最大公约数的算法。它是已知最古老的算法之一,其可追溯至3000年前。用辗转相除法来得一个分数的约分后的最简形式的算法如下:

第一步:设两数为a、b,且令a>b;

第二步:a÷b,令r为所得余数,若r=0,算法结束,b 即为最大公约数;若r>0则a←b,b←r,并返回第二步;
第三步: 即为 约分后的最简形式。

编写VB程序,程序运行界面如图1所示,请根据算法将下列程序补充完整。

Private Sub Command1_Click()

 Dim a As Integer, b As Integer, r As Integer 'a、b为分子和分母,r为最大公约数

 a = Val(Text1.Text)

 b = Val(Text2.Text)

 If b = 0 Then c = MsgBox("分母不能为0"): Exit Sub

 '如果分母为0,则提示“分母不能为0”并退出该过程

 r =  

 Text3.Text = Str(a / r)

 Text4.Text = Str(b / r)

End Sub

Function gys(ByVal m As Integer, ByVal n As Integer) As Integer

'gys函数用于求最大公约数

Dim s As Integer

 If m < n Then

    t = m: m = n: n = t

 End If

 Do While n <> 0

    s = m Mod n

    m = n

    n = s

 Loop

   

End Function

举一反三
火柴棒等式。用火柴棒可以摆出0-9的数字,摆放规则如下图所示:

有一种火柴棒游戏,将火柴棒摆成形如“A+B=C”的火柴棒等式。用n根火柴棒摆放数学等式的规则约定如下:

⑴A、B都是不大于1000的正整数,若数值非零,则最高位不能是0;

⑵摆放“+”与“=”各使用两根火柴棒;

⑶A+B=C 与B+A=C视为相同的等式;

⑷n根火柴棒必须全部用上。

小明依据上述规则使用VB编写程序,研究“使用n根火柴棒,可以摆放出哪些不同的等式”,代码如下所示。请回答下列问题。

Dim sz(0 To 9) As Integer     ‘数组元素sz(i)用于存储数字i所使用的火柴棒的数量

Private Sub Form_Load()

    sz(0) = 6 : sz(1) = 2 : sz(2) = 5 : sz(3) = 5 : sz(4) = 4

    sz(5) = 5 : sz(6) = 6 : sz(7) = 3 : sz(8) = 7 : sz(9) = 6

End Sub

‘自定义函数hcs用于求解摆放数字x需要使用的火柴棒数量

Function hcs(ByVal x As Integer) As Integer

    Dim s As Integer, k as integer

    s = 0

    Do While     ①    

        k = x Mod 10

        s=s+sz(k)

        x = x \ 10

    Loop

    hcs = s + sz(x)

End Function

Private Sub Command1_Click()

    Dim n As Integer

    Dim a As Integer, b As Integer, c As Integer

    n = Val(Text1.Text)

    ans = 0

    List1.Clear

    For a = 0 To 999

        For b =    ②     To 999

            c = a + b

            If     ③    Then

                List1.AddItem (Str(a) + "+" + Str(b) + "=" + Str(c))

                ans = ans + 1

            End If

        Next b

    Next a

    List1.AddItem ("共有" + Str(ans) + "种等式")

End Sub

返回首页

试题篮