组卷题库 > 高中信息技术试卷库
试题详情
【加试题】有一组正整数,要求仅对其中的素数进行升序排序。排序后素数在前,非素数在后。排序示例如下。

排序前

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

知识点
参考答案
采纳过本试题的试卷
教育网站链接