当前位置: 高中信息技术 / 综合题
  • 1. (2018·浙江选考) 【加试题】有一组正整数,要求仅对其中的素数进行升序排序。排序后素数在前,非素数在后。排序示例如下。

    排序前

    86

    71

    5

    41

    81

    79

    37

    89

    排序后

    5

    37

    41

    71

    79

    89

    86

    81

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

    Const n=8

    Dim a(1 To n)  As Integer

    Private Sub Command1_Click()

      Dim i As Integer,j As Integer,k As Integer,t As Integer

      Dim flag As Boolean

      ‘读取一组正整数,存储在数组a中。代码略

      For i=1 To n-1

                   ‘(1)

    If IsPrime(a(k))Then flag=True Else flag=False

          For j=i+1 To n

            If IsPrime(a(i))Then

              If  Then       ‘(2)

                k=j

                flag=True

               End If

           End If

        Next j

        If k<>i Then

          t=a(k):a(k)=a(i):a(i)=t

        End If

        If Not flag Then Exit For     ‘Exit For表示退出循环

      Next i

      ‘依次输出排序后的数据。代码略

    End Sub

    Function IsPrime(m As Integer)As Boolean

    ‘本函数判断m是否是素数:是素数返问值为True,不是素数返回值为False

        ‘代码略

    End Function

    1. (1) ⑴处加框代码应改为
    2. (2) ⑵处加框代码应改为

微信扫码预览、分享更方便