题目

【加试题】小李要给全班学生拍合照,要求所有学生站成一排,中间高,两端低,小李采用如下排队方法:按身高信息从高到低排序,让身高第一位的同学单独站出来,身高第二位同学站在他的左手边,身高第三位同学站在他的右手边,再依次向两端安排其他人。每个学生的学号与身高信息已存人数据库中。小李编写了VB程序,从数据库中读取学号和身高信息,在“原始信息”下方的列表框List1中显示,单击“排队”按钮Command1,在“排好的队形”下方的列表框List2中显示排好的队形,程序界面如图所示。 实现上述功能的VB程序如下,但加框处代码有错,请改正。   Const maxn=100   Dim id(1 To maxn)As Integer     ‘存储每个学生的学号   Dim tall(1 To maxn)As Single     ‘存储每个学生的身高   Dim n As Integer                ‘存储学生的个数   Private Sub Form_Load()   ‘从数据库得到学生的总人数n     ‘从数据库读取学号信息,并存入id数组中     ‘从数据库读取身高信息,并存入tall数组中     ‘在列表框List1中显示学号与身高   End Sub   Private Sub Command1_Click()   Dim a(1 To maxn)As Integer    ‘存储排好队形的学号   Dim b(1 To maxn)As Single     ‘存储排好队形的身高   Dim i As Integer,j As Integer   Dim t1 As Integer,tr As Integer,mid As Integer   Dim tmp1 As Single,tmp2 As Integer   For i=1 To n-1     For j=n To i+1 Step-1       If  Then        ‘(1)         tmp1=tall(j):tall(j)=tall(j-1):tall(j-1)=tmp1         tmp2=id(j):id(j)=id(j-1):id(j-1)=tmp2       End If      Next j     Next i     If n Mod 2=0 Then     ‘根据总人数的奇偶性,确定队形的中间位置        mid=n\2+1     Else        mid=(n+1)\2     End If     ‘身高第一位的同学,安排在队形的中间位置     a(mid)=id(1)     b(mid)=tall(1)     t1=mid-1     tr=mid+1     For i=2 To n       If  Then           ‘(2)         a(tr)=id(i)       b(tr)=tall(i)       tr=tr+1     Else       a(t1)=id(i)       b(t1)=tall(i)       t1=t1-1      End If     Next i     List2.AddItem“位置”+“学号 ”+“身高”     For i=1 To n       List2.Addltem Str(i)+”  ”+Str(a(i))+”  ”+Str(b(i))     Next i   End Sub (1) 处加框代码应改为; (2) 处加框代码应改为。 答案: 【1】tall(i)>tall(j-1)或其他等价表达式 【1】i Mod 2=1或其他等价表达式
信息技术 试题推荐
最近更新