试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省高中信息技术 数组练习

某游戏规则如下:将2*n位队员按2人一组分成n个队(n<10),地面上有一排格子,共2*n个,每个格子都对应一个小于10的随机正整数。游戏开始后,所有队员都选择站到一个空的格子里,等他们站满格子后,开始为每位队员进行记分。记分规则:每组甲乙两个队员,甲队员的分数是从自己所站的格子开始,按照格子序号递减,将这些格子中的数字一直累加到第1个格子。乙队员的分数是从自己所站的格子开始,按照格子序号递增,一直将格子中的数字累加到第2*n个格子。如果同一队的两名队员得到的分数相同,则该组参赛队获胜。

例如:如图所示,有4个队8位队员,地上一排格子的数字依次为2、1、1、7、9、2、5、6。若某队甲队员站在第4个格子,则其分数为2+1+1+7=11;乙队员站在第7个格子,则其分数为5+6=11。两者相等,则该队获胜。

gz(1)

gz(2)

gz(3)

gz(4)

gz(5)

gz(6)

gz(7)

gz(8)

←→

2

1

1

7

9

2

5

6

甲                                             乙

(1)、假设有3队队员,地上一排格子的数字依次为6、7、3、4、3、9。若某队甲队员站在第3个格子上,那么该队乙队员站在第个格子上才能获胜。

(2)、实现上述功能的VB程序如下。请在划线处填入合适代码。

Dim n As Integer

Dim gz(1 To 20) As Integer

Private Sub Command1_Click()

Dim dfa As Integer, dfb As Integer

Dim ta As Integer, tb As Integer

Randomize

For i = 1 To 2 * n

 gz(i) = Int(Rnd* 9 + 1)

 List1.AddItem “gz(“ & i & ”)” & gz(i)

Next i

num = 1

For j = 1 To 2 * n

 ta = j

 dfa = zwdf(ta, True)

 For k = 1 To 2 * n

    tb = k

   

    If dfa = dfb Then

     List2.AddItem num & “甲队员(“ & j &”)得分=” & dfa & “乙队员(“ & k & ”)得分=” & dfb

     num = num + 1

    End If

 Next k

Next j

List2.AddItem “获胜的站法共有:”++ “种”

End Sub

Function zwdf(p As Integer, r As Boolean) As Integer

Dim fs As Integer

If r = True Then

  

    fs = fs + gz(i)

  Next i

Else

  For i = p To 2 * n

  fs = fs + gz (i)

  Next i

End If

zwdf = fs

End Function

返回首页

试题篮