试题

试题 试卷

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

举一反三
【加试题】小王同学为了研究浙江省湖州地区空气质量与天气、气温、风向等的关联性问题,通过网络获取了2016-06-01至2017-05-31这365天的有关信息,并将数据整理至数据文件data.accdb中。其中huzhou数据表视图及设计视图部分界面如图所示。

小王编写了VB程序,具体功能:点击“执行”按钮Command1,在文本框Text1中显示空气质量为优(AQI空气质量指数≤50)的最长持续天数(连续为优),并在列表List1中依次显示对应天数的各项数据。

实现上述功能的VB程序如下:

  Dim rq(1 To 365)As String       ‘存放日期

  Dim aqi(1 To 365)As Integer     ‘存放AQl空气质量指数

  Dim tq(1 To 365)As String       ‘存放天气

  Dim qw(1 To 365)As String      ‘存放气温

  Dim fxfl(1 To 365)As String      ‘存放风向及风力

  Private Sub Form_Load( )

    ‘本过程从数据中按2016-06-01至2017-05-31依次读取各项数据,并分别存储在对应的数组中。代码略 。

  Private Sub Command1_Click( )

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

  Dim s As String

       n=0:m=0:k=0

       For i=1 To 365

           If aqi(i)<=50 Then

               n=n+1

          Else

               If n>m Then

                  m=n

                  k=i-1

               End If

               n=0

          End If

      Next i

      If n>m Then

         m=n

             ①                

      End If

      For i=      ②        To k    

         s=rq(i)                       ‘日期长度均为10

         s=s&Space(7-Len(Str(aqi(i)))) & Str(aqi(i))    ‘AQI为1~3个数字

         s=s&Space(4)&tq(i)                  ‘天气为1-4个中文字符

         s=s&Space(2*(6-Len(tq(i))))&qw(i)    ‘气温长度均为9

         s=s&Space(4)&fxfl(i)        ‘风向及风力长度不等

List1.AddItem s

      Next i

      Text1.Text=Str(m)

End Sub

返回首页

试题篮