过程与自定义函数 知识点题库

【加试题】对分查找算法可用于求解方程的近似解。现要求方程x3-4x2+x+5=0的一个近似解,可设f(x)=x3-4x2+x+5,若有区间[a,b],使f(a)与f(b)异号,则该区间内必存在该方程的一个解。小吴为此编写了VB程序,功能如下:分别在文本框Text1和Text2中输入求解的区间值a和b(a<b),单击“计算”按钮Command1,若该区间必有解,则求解出该区间内的一个近似解(精确到10 s),否则提示“重新输入区间”,计算后的相关结果显示在列表框List1中。程序运行界面如图所示。

实现上述功能的VB程序如下,但加框处代码有错,请改正。

Function f(x As Double)As Double

    Dim Y As Double

    y=x^3-4*x^2+x+5:              ‘(1)

  End Function

  Private Sub Command1_Click()

    Dim a As Double,b As Double,m As Double,x As Double

    a=Val(Text1.Text):b=Val(Text2.Text)

    If f(a)*f(b)<0 And a<b Then

       Do While a<=b

       m=(a+b)/2

       If Abs(f(m))<0.00001 Then Exit Do

       If <0 Then         ‘(2)

          b=m

       Else

          a=m

       EndIf

      Loop

      x=Format(m,“0.00000”)      ‘Format函数用于定义输出的小数位数

      List1.AddItem"["&Text1.Text&","&Text2.Text&"]" & "解为:"&x

    Else

      List1.AddItem"["&a&","&b&"]" & "重新输入区间"

    EndIf

End Sub

  1. (1) ⑴处改为
  2. (2) ⑵处改为
数字之美:在数学中有一种规律数列,随着第一个因数末尾增加一个相邻自然数,积的末尾也增加一个相邻自然数。如1*8+1=9,12*8+2=98,123*84+3=987,……,这种数列可以组成完美的三角形结构,称为数字之美。这一规律用VB程序编写后,运行界面如图所示。

实现该功能的VB程序段如下:

Function space(x As Integer)As String        ‘输出格式化,设置左侧的空格数量

  Dim n As Integer

  For n=9 To x Step-1

     ①  

  Next n

End Function

Private Sub Form_Load()

  Dim t As Long,i As Integer,n As String

  Dim a(1 To 9)As String

  Dim b(1 To 9)As String

  Const num=“987654321”

  For i=1 To 9

    t=t*10+i

    a(i)=space(i)+CStr(t)  ‘CStr函数的功能是将数值转为字符,转换时不会添加空格

       ②   

    n=n+a(i)+“*8+”+CStr(i)+“=”+b(i)+Chr(13)       ‘Chr(13)实现换行处理

  Next i

  Label1.Caption=n

End Sub

  1. (1) 触发该功能的事件是(A,按钮的单击事件;B,窗体的加载事件;C,标签的修改事件)。
  2. (2) 在程序中①和②画线处填入适当的语句或表达式,把程序补充完整。

    在程序中①画线处应填入

    在程序中②画线处应填人

  3. (3) 若在定义时,将变量t的数据类型定义为Integer,运行后会出现(选填:下标越界、溢出、类型不匹配)错误。
普源为晚上的班级联欢会设计了一个抽奖程序,将所有同学的编号和对应的姓名分别保存在数组a(全班共50个同学,编号为1到50)和数组b中,程序会随机产生一个1到50的正整数(同时包括1和50),作为中奖编号。

程序界面如图所示,左边列表框List1中显示同学的编号和姓名,单击"抽奖"按钮(Command1),在标签Label3中显示抽中的编号,同时在标签Label4中显示"恭喜***同学",其中具体同学的姓名从数组b中获取。

解决此问题的程序段如下,请在程序①和②划线处,填入适当的语句或表达式,把程序补充完整:

Dim a(1 To 50) As Integer

Dim b(1 To 50) As String

Function search(m As Integer) As Integer

search = 0

For i = 1 To 50

    If m = a(i) Then

       search = a(i)

    End If

Next i

End Function

Private Sub Command1_Click()

Dim c As Integer,t as integer

Randomize

Label3.Caption = Str(c)

t = search(c)

  If t <> 0 Then

    Label4.Caption = "恭喜" +  + "同学"

   End If

End Sub

Private Sub Form_Load()

    ' 此过程用于对数组a和数组b进行初始赋值,代码略

End Sub

小明编写了一个VB程序,功能如下:输入一个不超过30000的正整数,把它分解成质因子相乘的形式,如36=1*2*2*3*3,17=1*17。程序运行时,在文本框Text1中输入一个整数,单击“整数分解”按钮Command1后,在标签Label3中显示该整数的分解结果。程序行界面如图所示。

  1. (1) 若输入待分解的整数为 45,则分解结果为:
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

    Private Sub Command1_Click()

    Dim i As Integer, n As Integer

    Dim s As String

      

    s="1"

    i=2

    Do While i<=Val(Text1.Text)

    If    Then

    n=n\i

    s=s+"*"+Str(i)

    Else

       

    End If

    Loop

    Label3.Caption=Text1.Text+"="+s

    End Sub

某班师生玩一个游戏,n(n不超过1000)个同学站成一圈,逆时针编号为1-n,有两个老师A和B,A老师从1开始逆时针数k个同学,B老师从n开始顺时针数m个同学(注意A,B老师可能数到同一个学生),被老师选中的1个或2个学生离开圈子,剩下的学生继续。

程序开始时在Text1中输入同学数n,在Text2中输入k的值,在Text3中输入m的值,点击“开始”按钮,在label5中显示依次出圈的学生编号。程序运行如图所示:

VB程序如下,请将按要求答题:

Dim stu(1 To 1000) As Integer

Dim n As Integer

Private Sub Command1_Click()

  Dim left, k, m As Integer

  Dim stup1, stup2 As Integer

  n = Val(Text1.Text)

  k = Val(Text2.Text)

  m = Val(Text3.Text)

       ①    

  stup1 = n: stup2 = 1

  For i = 1 To n

    stu(i) = i Next i

  Do While left > 0

    stup1 = teachount(stup1, 1, k)

    stup2 =

    Label5.Caption = Label5.Caption & " " & Str(stup1)

    left = left - 1

    If         ②     Then

      Label5.Caption = Label5.Caption & " " & Str(stup2)

      left = left - 1

    End If stu(stup1) = 0

    stu(stup2) = 0

  Loop

End Sub

'f=1  表示逆时针数c个,f=-1表示顺时针数c个

  Function teachount(ByVal p As Integer, ByVal f As Integer, ByVal c As Integer) As Integer

  Do While c > 0

         ③    

    Do While stu(p) = 0

      p = (p + f + n - 1) Mod n + 1

    Loop

    c = c - 1

 Loop teachount = p

End Function

  1. (1) 加框处的语句有错误,请改正: 
  2. (2) 请将①处的语句补充完整:
  3. (3) 请将②处的语句补充完整:
  4. (4) 请将③处的语句补充完整:
有m(2≤m≤n)个音箱,直线放在n(n≥2)个位置上,第i个位置坐标在a(i)上。每两个音箱相互靠近就会产生干扰,为了解决这个问题,决定把每个音箱都放在离其他音箱尽可能远的位置。为了使任意两个音箱之间的最小距离尽可能大,设计了下面的程序。程序实现了任意两个音箱之间最大的最小距离。如有5个位置,5个位置分别为1,2,8,4,9,有3个音箱,那么最大的最小距离就为3,可以将3个音箱分别放在1,4,8的位置上。

  1. (1) 如果这5个位置分别为5,19,2,18,9,那么3个音箱可以放置的最大的最小距离为
  2. (2) 在划线处补上代码。

    Dim a(1 To 5) As Integer

    Dim n, k As Integer

    Private Sub Form_Load()

        n = Val(Text1.Text): k = Val(Text2.Text)

        ’随机生成n(n>=2)个不重复的0及以上的数字赋值给数组a,代码略

    End Sub

    Private Sub Command1_Click()

    Dim m, l, r As Integer

    For i = 1 To n

        For j = 1 To n - i

            If a(j) > a(j + 1) Then

                t = a(j): a(j) = a(j + 1): a(j + 1) = t

            End If

        Next j

    Next i

    l = 1: r = a(n) - a(1)

    Do While l <= r

        m = (l + r) \ 2

        If  Then

            l = m + 1

        Else

            r = m - 1

        End If

    Loop

    Label1.Caption = Str(r)

    End Sub

    Function check(ByVal d As Integer) As Boolean

        Dim cow, rgt As Integer

        cow = 1

        rgt = a(1) + d

        For i = 2 To n

            If a(i) >= rgt Then

                cow = cow + 1

                      ①     

            End If

        Next i

        If      ②      Then

            check = True

        Else

            check = False

        End If

    End Function

     ② 

  3. (3) 有一句带框框的代码有误,请修改为正确代码,让程序可以符合题意。
三个好朋友玩游戏:三人分别在纸上写出一组升序数据(个数不限),从三组数据中分别取一个数字,谁能最快找到三个数字之间差值最小(即最小距离)的组合情况,谁就赢。有一个人每次都是最快找到的,她用一个样例分享了寻找技巧。

例如有这样三组数据:

a数组{3,4,5,7,15}

b数组{10,12,14,16,17}

c数组{20,21,23,24,37,40}寻找技巧步骤图所下所示:

此时,组合中最小的数15已是a数组的最后一个元素,所以最佳组合为15,16,20,最小距离为5。

  1. (1) 有这样的三组数据{2,5,8,10,15},{3,7,16,20),{8,12,18,21,24,30},最小距离为
  2. (2) 请在划线处填入合适的代码。

    Private Sub Ce_Click()

    Dim a(1 To 100) As Integer, b(1 To 100) As Integer, c(1 To 100) As Integer

    Dim s1 As String, ch As String, flag As Boolean

    Dim i As Integer, j As Integer, k As Integer, m As Integer

    Dim k1 As Integer, k2 As Integer, k3 As Integer

    Dim md As Integer, cd As Integer

    ‘获取数组元素值分别存入三个数组中,其中b和c数组的存储过程略

        s1 = Text1. Text

        k1=0: flag=True

        For i = 1 To Len(s1)

            ch = Mid(s1, i, 1)

            If ch <> ",”Then

                  ① 

                a(k1) = a(k1) * 10 + Val (ch)

                flag = False

            Else

                flag = True

            End If

        Next i

        i=1: j=1: k=1: md=32767

        Do While i<=k1 And j<=k2 And k<=k3     ‘k2,k3变量功能同k1

              ② 

            If cd<nd Then md=cd

            m= min(a(i), b(j),c(k))

            If m= a(i) Then

                i=i+1

            ElseIf m = b(j) Then

                j=j+1

            Else

                  ③ 

            End If

        Loop

        Label4. Caption = Label4. Caption + Str (md)

    End Sub

    Function min(x As Integer, y As Integer, z As Integer) As Integer

        If x<y Then min=x Else min=y

        If min>z Then min=z

    End Function

    Function max(x As Integer, y As Integer, z As Integer) As Integer

        If x>y Then max=x Else max=y

        If max<z Then max=z

    End Function

CALL语句后的参数是()参数。
有如下通用过程和事件过程,运行程序后,单击窗体,程序的运行结果是(  )

Public function ss(x as integer,y as integer) as integer

 if x>y then ss=x-y else ss=y-x

END FUNCTION

PRIVATE SUB FORM()CLICK( )

DIM A AS INTEGER ,B AS INTEGER

 A=8: B=6

 PRINT SS(A,B)

END SUB

A . 2 B . -2 C . 8 8 D . 6 6
大写字母分段加密。输入n(n≤50)个大写字母组成的原文字符串,以规模m为一段进行加密。加密方法为:(1)找出每段中最长的连续递增子串长度max;(2)将该段每个字符后移max位进行加密,如果后移后的字母ASCII码值超过90(Asc("Z")=90),则从小写字母“a”(ASCII码值为97)开始表示;(3)规模不足m部分不做处理。

例如:n=10,原文字符串为“ABCXYEFDOK”,m=4时,处理过程如下:

其中,第1段中字母“X”后移4位后超过字母“Z”的ASCII码值,用“b”表示,第2段中字母“Y”后移2位用“a”表示用VB编写程序,程序运行时,在文本框Text1中输入原文字符串,在文本框Text2中输入每段个数,单击“加密”按钮Command1后,在文本框Text3中显示加密结果。程序运行界面如图所示。

实现上述功能的VB程序如下,请回答下列问题:

  1. (1) 已知加密结果是“RaVJON”,m=4,根据上述加密规则,推得原文是
  2. (2) 请在划线处填入合适的代码。

    Dim a(0 To 50) As String, b(1 To 50) As Integer

    Private Sub Command1_Click ()

    Dim i As Integer, j As Integer, k As Integer, m As Integer, max As Integer

    n = Len(Text1. Text)

    For i=1 To n

      a(i) = Mid(Text1.Text, i, 1)

      b(i) =

    Next i

    m=Val (Text2. Text)

    max=1

    For k=1 To n\m

      For i=(k-1)*m+2 To k*m

        j=i

        Do while

          b(i)=b(i)+1

          j=j-1

        Loop

        If b(i)>max Then

          max = b(i)

        End If

      Next i

      For i=(k-1)*m+1 To k*m

        s =s+ mingtoni (a(i), max)

      Next i

      max=1

    Next k

    If n Mod m <> 0 Then

      For i=(n\m)*m+1 To n

        s=s+ a(i)

      Next i

    End If

    Text3.Text = s

    End Sub

    Function mingtomi(e As String, d As Integer) As String

      If Ase(c) + d > Asc("Z") Then

       

      Else

        mingtomi = Chr(Asc(c) + d)

      End If

    End Function

某加密算法的明文和密钥均由英文字母组成,且密钥循环使用,其加密规则如下:

①明文字符与对应密钥的ASCII码转化为二进制后求异或(对应位相同时结果为0,对应位不同时结果为 1,如二进制1001与二进制1100的异或值为0101),并将异或结果转换为十进制p;

②如果处在奇数位,则将明文字符循环后移p个位置,否则将明文前移p个位置。移动过程中保持大小写不变。

最后把所得到的字符连接起来就是密文。

例如,密钥是“abc”,明文“d”的加密过程是:字符“d”的ASCII码表示为二进制是1100100,密钥“a”的ASCII码表示为二进制是1100001,两数进行异或结果是:0000101,转化为十进制为5,因为是第1个位置,所以把明文后移5个位置,则密文是“i”。

该加密过程使用VB来实现。具体功能设计如下:在Text1中输入明文,Text2中输入密钥,单击“开始加密”按钮Command1后将密文显示在Text3中,界面设计如图所示。

_x0000_i1034

请回答以下问题:

  1. (1) 如果密钥为“bc”,字符“d”加密后的密文为:(字母“a”的 ASCII 码为97)
  2. (2) 请完善以下程序代码。

    Private Sub Command1_Click()

      Dim s As String, sn As String

      Dim i As Integer, t As Integer, u As Integer

      Dim p As Integer, g As Integer

      sn = ""

      For i = 1 To Len(Text1.Text)

        t = Asc(Mid(Text1.Text, i, 1))

        If t >= Asc("a") Then

          g = Asc("a")

        Else

          g = Asc("A")

        End If

        u = Asc(Mid(Text2.Text, (i - 1) Mod Len(Text2.Text) + 1, 1))

        p =

        t = t - g

        If i Mod 2 = 1 Then

          t = (t + p) Mod 26

        Else

          t =

        End If

        sn = sn + Chr(t + g)

      Next i

      Text3.Text = sn

    End Sub

    Function txor(x As Integer, y As Integer) As Integer    'x、y求异或并返回十进制

      Dim a As Integer, b As Integer, r As Integer, i As Integer

      a = x: b = y

      r = 1

      For i = 1 To 7

        If a Mod 2 <> b Mod 2 Then

        a = a \ 2

        b = b \ 2

        r = r * 2

      Next   i

    End Function

在VB中,设已定义函数过程f,它有三个整型参数。设a,b,c为整型变量,则下列能调用该函数的正确语句是(  )
A . f B . f(a,b+c) C . f(a,b+c,c-a) D . f a,b+c,c-a
有如下VB程序段:

Private Sub Command1_Click( )

  Dimi As Integer, s As Integer

  s=0

  For i=1 To 3 Step 2

    s=s+f(i)

  Next i

  Text1. Text=Str(s)

End Sub

Function f(n As Integer) As Integer

  If n=1 Then

      f=2

  Else

      f=f(n-1)+n

  End If

End Function

执行该程序段后,s的值为(  )

A . 2 B . 7 C . 9 D . 13
生成之形矩阵:在文本框中输入之形矩阵的行数n(3≤n≤10),点击“生成”按钮Command1后,在List1中显示结果,程序运行界面如图所示。

实现程序的代码如下,但加框处代码有误,请改正。

Private Sub Command1_Click( )

  Dim n,t As Integer,s As String

  n=Val(Text1.Text)

  For i=1 To n

      s=""

      If       Then     ‘①

        For j=1 To n

            t=t+1

            s=s+ads(t)

        Next j

      Else

        For j=1 To n-i

            s=s+"  "

        Next j

        t=t+1

              ‘②

      End If

      List1.AddItem s

  Next i

End Sub

Function ads(n As Integer)As String

  Dim a As Integer

  a=Len(CStr(n))    ‘函数CStr( )和Str( )功能类似,但输出字符时没有前导空格

  If a=1 Then

      ads="0"+CStr(n)

  Else

      ads=CStr(n)

  End If

End Function

以上程序段运行时,为了实现上述功能,加框处代码应改正为:①;②

小李编写了一个程序,用以实现下列功能:在文本框Text1中一个十进制数,在文本框Text2中输入需转换数的进制(小于等于16),点击转换按钮,在文本框Text3中输出转换后的数字;点击“退出”按钮,关闭程序。程序运行界面如下图所示:

  1. (1) 根据题目意思,应该在编辑界面将对象“command2”的属性改为“退出”。
  2. (2) 为实现上述功能,请在划线处填入合适的代码。

    Private Sub Command1_Click()

        Dim x As Long

        Dim y As Integer

        x = Val(Text1.Text)

        y =

        Text3.Text =

    End Sub

    Function trans(n As Long, b As Integer) As String

        Dim hex As String

        hex = "0123456789ABCDEF"

        Do while n<>0

            r = n Mod b

            n = n \ b

            trans = + trans

        Loop

    End Function

    Private Sub Command2_Click()

    End Sub

数组a中存放着1到20间的正整数,要求对其中的元素进行分段排序,在文本框Text2中输入每段元素的个数,在文本框Text3中显示每段降序排序后的数据,其中多余的元素不做处理。具体界面如下图所示:

实现该功能的VB程序如下,请在划线处填入合适的代码:

Dim a (0 To 100) As Integer

Const high=16

Private Sub Form_Load()

    '产生high个随机数,并显示在文本框Text1,代码略

End Sub

Private Sub Command1_Click()

    Dim p As Integer, q As Integer, t As Integer

    Dim m As Integer, n As Integer, k As Integer

    m=Val(Text2.Text)

    For i=1 To

        c=“”

        For j=1 To m-1

           

            q=i*m

            k=sort(p, q)

            If a(k)<>a(q) Then

                t=a(p): a(p)=a(k): a(k)=t

            End If

           

        Next j

        Text3.Text=Text3.Text+ “”+c

    Next i

End Sub

Function sort(f As Integer, g As Integer) As Integer

    s=f

    For i=f+1 To g

        If a(i)>a(s) Then

           

        End If

    Next i

    sort=s

End Function

哥德巴赫在1742年提出了以下猜想:任何一个大于2的偶数都可以写成两个质数之和,请完善代码帮助哥德巴赫验证他的猜想。

import math

def ss(n):

    Flag=True

    i=2

    while i <= int(math.sqrt(n))and Flag:

        if

            Flag = False

       

    return Flag

n=int(input(“输入一个大于2的偶数”))

for i in rang(2,n//2+1):

    if

        print(str(n)+"="+str(i)+"+"+str(n-i))

如果输入“8”则结果显示

某校进行模拟考,现有25名学生的语数英三门课的成绩(按百分制)存储在数据库student.accdb中的数据表cj中,现取出各学生成绩存储在cj( )数组中,成绩存放如下:

运行程序,点击“数据导入”按钮后,在列表框list1中显示所有数据。点击“排序"按钮,按总分从高到低计算名次(成绩相同的名次相同),并按排名先后在列表框list2中显示,数据要求对齐。程序运行界面如图16-1所示:

  1. (1) 观察程序及界面,可知“排序”按钮的对象名为
  2. (2) 实现上述程序功能的VB程序段如下,请在划线出填入合适的代码。

    Dim cj(1 To 100) As Integer

    Dim b(1 To 301) As Integer     '分数为i的人数存入b(i)

    Private Sub Cmdl_ Click( )

        Dim conn As New ADODB.Connection

        Dim rs As New ADODB.Recordset

        conn.ConnectionString = "Provider =Microsoft.ACE.OLEDB.12.0;Data Source= " &App.Path& "\studentaccdb"

        conn.Open

        Set rs.ActiveConnection = conn

        rs.Open "SELECT*FROM cj"

        n =1

        Do While Not rs.EOF

            cj(n)= rs.Fields("语文"):cj(n+1) = rs.Fields("数学")

            cj(n+2) = rs.Fields("英语"):cj(n+3) = cj(n)+cj(n+1)+cj(n+3)

           

            rs.MoveNext

        Loop

        rs.Close:conn.Close

        '此处代码略,用来实现将数据在list1中输出

    End Sub

    Private Sub paixu_ Click( )

        Dim mc As Integer

        '预处理求b数组的值

        For j=4 To 100 Step 4

           

        Next j

        '以下程序用于计算名次并按要求对齐输出

        mc=1:b(301)=0

        List2.AddItem"语文"+"数学"+"英语"+"总分"+"名次

        List2.AddItem "------------------------------------------------"

        For i=300 To 1 Step -1

           

            If b(i) <> 0 Then

                For c=4 To 100 Step 4

                    If cj(c) = i Then

                        List2.AddItem

                    End If

                Next c

            End If

        Next i

    End Sub

    '以下函数输出时数据s时,不足7位末尾补空格

    Function gs(s As Integer) As String

        Dim cd As String

        ed = CStr(s)

        For i=1 To 7 -Len(cd)

            cd= cd+" "

        Next i

        gs = cd

    End Function

某校为了响应双减政策每周加设了一节体育选修课程,为了便于学校师资安排及课程的开设,需要对学生选课需求进行摸排。学校可以开设的课程共9门,在前期选课时学生可以选择自己喜欢的3门课程,选课信息已保存在文本文件中(课程名称用数字1~9表示),最终每个学生只安排1门课程学习。为了统计每门课程的选课人数及同选最多的两门课程,编写了以下程序。

所谓“同选”是指学生在3门课的选择中最喜欢一起选的两门课,比如A同学选了124,B同学选了134,则同选最多的两门课为14。请回答以下问题:

  1. (1) 该程序先将文本文件的选课数据读取并保存到列表xk中,文本文件及读取到列表后部分数据如图所示,则该列表数据项的数据结构是(选填:字符串/列表/字典),数据项中的数据元素(如‘5’)的数据类型是(选填:整型/实型/字符串型)

      

  2. (2) 程序运行结果如图所示,补充完整划线处的代码

    course=["排球","篮球","足球","羽毛球","乒乓球","网球","健身操","游泳","太极"]

    xk=[]       #存储选课信息,用数字1~9表示9门课程

    f=[0]*9     #存储9门课程的选课人数

    d=[0]*100   #存储两门课程同选的次数,如d[26]=50表示篮球和网球被50个同学同选

    def relation(y):          #计算列表y中各数据项的同选次数

        for i in range(1,10):

            for j in range(i+1,10):

                if str(i) in y and str(j) in y:            #课程i,j均在列表y中出现

                    d[10*i+j]+=1        #第i和第j门课程同选次数加1存储在列表d中

    file=open("xk.txt","r")      #打开文件

    line=file.readline()

    while line:               #读取文件数据到列表xk中,数据样式详见第(1)小题图所示

        line=line.split()

        xk.append(line)

        line=file.readline()

    file.close()

    for y in xk:               #对列表xk中的各数据项进行处理

        relation(y)           #调用定义函数统计y中各门课程同选次数,存储到列表d中

        for x in y:            #遍历数据项y中的元素,统计每门课程的选课人数

           

    for i in range(9):

        print(course[i],"选课人数:",,"人")   #输出每门课程的选课人数

    maxd=max(d)

    print("同选最多的两门课程是:")

    for k in range(100):

        if d[k]==maxd:

            print(course[k//10-1],)       #根据列表d的索引计算两门同选课程索引

小墩和小融打乒乓球,利用Micro:bit主板的 LED 阵列实时显示比分情况(如图1所示,2个方框分别表示小墩和小融比分区,每个亮点表示1分),并在BXY Python Editor软件的串口中实时输出对局输赢情况(如图2所示)。

图1

图2

操作步骤:小墩得1分,按下Micro:bit主板的按钮A,左侧比分区亮点加1;小融得1分,按下按钮B,右侧比分区亮点加1。一局比赛初始比分为0:0,每一局中先达到10分的选手可以赢得该局。

  1. (1) 实现上述功能的程序代码如下,请在划线处填入合适的代码:

    from microbit import *

    def bf(x,y):

        #在led板上显示比分情况,代码略

    m=0;n=0  #m表示小墩得分,n表示小融得分

    while True:

        if button_a.is_pressed():   #若按钮A被按下,则小墩得1分

            m+=1

        elif button_b.is_pressed():  #若按钮B被按下,则小融得1分

            n+=1

        if :

            if m>n:

                print("第",i,"局:小墩赢,比分:",m,":",n)

            else:

                print("第",i,"局:小融赢,比分:",m,":",n)

            i+=1;m,n=0,0

        bf(m,n)

        sleep(200)  #设置程序运行间隔为200毫秒

  2. (2) 根据上述程序,下列比分情况不可能出现的是(   )。
    A . B . C . D .