试题

试题 试卷

logo

题型:综合题 题类:真题 难易度:困难

浙江省普通高等学校招生2021年6月信息技术选考试卷

有n个小组(编号1至n),每个小组有m个成员,每个成员都有一个大于等于0的得分。现要求按下列规则计算每个小组的成绩,并找出成绩最高的小组。

小组成绩的计算规则是:若小组成员中得分最高的前k人得分都不低于k,且其他成员得分都不超过k,则该小组成绩为k。例如,第1小组共有8个成员,得分依次为“5,2,7,11,8,6,5,1”,由此可知最高的前5人得分为“11,8,7,6,5”,其他3人得分为“5,2,1”,因此该小组成绩为5。

按上述要求,编写VB程序,功能如下:在列表框List1中显示各小组每个成员的得分,单击“计算”按钮Command1,在列表框List2中显示成绩最高的小组编号及成绩(如果有多个小组并列最高,则全部显示)。

(1)、若第2小组各成员得分依次为“0,4,12,1,5,9,3,9”,则该小组的成绩是
(2)、请在划线处填入合适的代码。

Const n = 6

Const m = 8

Dim a(n * m)As Integer

Dim c(m)As Integer,ans(n)As Integer

Private Sub Form_Load( )

    ‘读取n个小组每个成员的得分,按组别从小到大依次存入数组a,并显示在List1中

     ‘n(1)到a(m)存储第1小组m个成员的得分

     ‘a(m+1)到a(2*m)存储第2小组m个成员的得分

     ‘以此类推,代码略

End Sub

Private Sub Cummand1_Click( )

    Dim i As Integer,p As Integer,g As Integer,maxg As Integer

    maxg = -1

    For i = 1 To n

        g = GroupScore(i)

        If g > maxg Then

            maxg = g: p=1

           

        ElseIf g = maxg Then

            p=p+1

            ans(p)=i

        End If

    Next i

    For i = 1 To p

        List2. AddItcm“第”+Str(ans(i))+“组,成绩:”+Str(maxg)

    Next i

End Sulb

‘函数返回第w小组的成绩

Function GroupScone(w As Integer)As Integer

    Dim i As Integer,k As Inteser

    For i = 0 To m

        c(i)=0

    Next i

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

        k=a(i)

        If k > m Then

        c(k)=c(k)+1

    Next i

    k=m

    Do White c(k)< k And k>0

        k=k-1

       

    Loop

    GroupScore=k

End Function

举一反三
返回首页

试题篮