题目

小明为班会活动的“抽奖环节”设计了一张获奖表。该“抽奖环节”功能如下:班级学生人数为n个,程序运行后,单击“发放号码牌”按钮Command1,随机生成n个不重复的[n+1, 2*n]内的整数,并在列表框list1中显示,学生按学号次序依次领取号码牌,例如:随机生成的第一个整数为54,则学号为1号的学生领取的号码牌为54。单击“抽奖”按钮Command2,在列表框list2中显示获奖表,获奖序列要求:第1名获奖的学生是号码牌数字中偶数最大的,第2名获奖的学生是号码牌数字中奇数最小的,第3名获奖的学生是号码牌数字中偶数第二大的,第4名获奖的学生是号码牌数字中奇数第二小的……取过的数字不能再取,以此类推,直到结束。其程序界面如图所示。 实现上述功能的VB程序代码如下,请回答以下问题:   Const n = 50 Dim a(1 To n) As Integer Dim f(n + 1 To 2 * n) As Boolean Private Sub Command1_Click()     Dim i As Integer, j As Integer     Randomize     For i = n + 1 To 2 * n         f(i) = False     Next i     For j = 1 To n         a(j) = Int(Rnd * n) + n + 1         If f(a(j)) = True Then j = j - 1 Else     ①           Next j     For i = 1 To n         List1.AddItem CStr(i) + "号-" + CStr(a(i))      'cstr 把数值类型转换为字符串类型,并去前导空格     Next i End Sub Private Sub Command2_Click()     Dim i As Integer, j As Integer, m1 As Integer, m2 As Integer     m1 = 0: m2 = n \ 2     For i = n + 1 To 2 * n         If    ②    Then             m1 = m1 + 1: a(m1) = i         Else             m2 = m2 + 1: a(m2) = i         End If     Next i     For j = 1 To n \ 2         List2.AddItem "第" + CStr(2 * j - 1) + "名" + Str(    ③    ) List2.AddItem "第" + CStr(2 * j) + "名" + Str(a(n \ 2 + j))     Next j End Sub (1) 若仅对如下号码牌进行抽奖:1号-57,2号-76,3号-91,4号-83,5号-66,6号-82,则第3名获奖的学生学号是号。   (2)  请在划线处填写合适代码,使程序正常运行。 ① ② ③ 答案: 【1】2 【1】f(a(j)) = True【2】iMod2=0【3】a(n\2-j+ 1)
信息技术 试题推荐
最近更新