[说明] 某单位组织一次职业技术考核比赛,由十名评委对选手的现场表现打分(0到100以内的数值)。本程序接收原始评分后,去掉一个最高分、一个最低分,最后计算并输出选手最后得分。在接收输入第i个评分时,若输入数据的类型、范围不正确,程序将给出相应提示,并等待下一次输入,直至正确接收第i个评分为止。程序的运行界面如下:
在开发过程中,文本框名为Text1,界面上有上至下三个按钮分别取名为CmdMark、CmdReresh和CmdExit。[Visual Basic代码]Private Sub CmdMark_Click() ’按钮“输入评分”的单击事件响应代码 Dim i As Integer,temp As Variant’声明变量 Dim marks(1 To 10),maxMark,minMark,sumMark,mark As Single sumMark=0 Text1.Text=“编号”&Chr(9)&“评分”& vbCrLf For i=1 To 10’接收十个评分输入Do While 1=1 ’验证并接收第i个评委的评分temp=InputBox(“请输入”&i&“号评委的评分:”)If (1) IsNumeric(temp)Then Msg Box“数据类型错误,请重试!”ElseIf CSng(temp)<0 Or CSng(temp)>100 Then MsgBox“数值范围错误,请重试!”Else:Exit DoEnd If Loop marks(i)=CSng(temp) If i=1 Then maxMark= (2) :minMark= (2) If marks(i)>maxMark Then maxMark=marks(i) If minMark>marks(i)Then (3) sumMark=sumMark+marks(i)Text1.Text=Text1.Text & i & Chr(9) & marks(i) & vbCrLf输出第i个评委的评分 Next mark=( (4) )/8’计算选手最后得分 Text1.Text=Text1.Text &"去掉一个最高分:"&maxMark&vbCrLf&_ "去掉一个最低分:"&minMark&vbCrLf&_ "选手最后得分:"&markEnd SubPrivate Sub Command2_Click() ’按钮“刷新屏幕”的单击事件响应代码 (5) .Text=“单击”输入评分“按钮,开始统分……”End SubPrivate Sub Command3_Click() 按钮“退出程序”的单击事件响应代码 EndEnd Sub
参考答案:
解析:(1) Not (2) marks(1)或marks(i) (3) minMark=marks(i) (4) sumMark-maxMark-minMark(5) Text1[考点分析] 考查VB语言程序设计,主要是控件的使用。 (1)程序在输入数据temp不是数值(即IsNumeric (temp)返回False值)时报告错误,因而此处应填写逻辑运算符:取非;(2)由程序最后的输出可推断:maxMark和minMark分别用于记录最高分和最低分。它们通过For循环求得,此处需要为其赋初值;(3)当第i个评分marks(i)小于当前minMark的值时,应该更新minMark;(4)根据程序说明,选手最后的分为去掉一个最高分、一个最低分后的平均分;(5)略。