应用题 .考生文件夹
问答题 1.  考生文件夹下有工程文件sjt3.vbp,控件及其属性见窗体文件。
    程序功能为:单击窗体,则先把数据集读入数组arr,再根据用户输入的值删除数组中对应的元素,并提示操作结果。删除元素分为三步完成:首先查找到要删除的元素,其次将其后续元素顺次前移,最后将数组大小减1。
    请将程序代码中的注释符去掉,把?改为正确内容,以实现上述程序功能。
    注意:考生不得修改窗体文件中已经存在的控件和程序,最后,程序按原文件名存盘。
【正确答案】【操作步骤】
   步骤1:打开本题工程文件。
   步骤2:打开代码编辑窗口,去掉程序中的注释“’”,将问号改为正确的内容。
   参考答案(下划线部分是需要填入的内容)
   Private Sub Form_Click()
   Dim arr()
   Dim x As Single
   Dim i As Integer,j As Integer
   arr=Array(23,6,9,12,5,8,20,35,65,2,46,56,200,10,7)
   For i=LBound(arr)To UBound(arr)
   Text1.Text=Text1.Text+Str(arr(i))
   Next i
   x=Val(InputBox("输入要删除的值:",,0))
   For i=LBound(arr)To UBound(arr)
   If x=arr(i) Then
   For j=i+1 To UBound(arr)
   arr(j-1)=arr(j)
   Next j
   ReDim Preserve arr(LBound(arr)To UBound(arr)-1)
   For k=LBound(arr)To UBound(arr)
   Text2.Text=Text2.Text+Str(arr(k))
   Next k
   MsgBox"已完成删除操作!"
   Exit Sub
   End If
   Next i
   MsgBox"找不到删除的元素!"
   End Sub
   步骤3:调试并运行程序,关闭程序后按题目要求存盘。
   
【答案解析】 通过For循环把数组arr中的数值依次显示在text1中;Val函数把输入的字符串转化为数值类型;将输入的需要删除的数据与arr数组中的每一个数进行比较,若相等,则把该数后面的每一个数依次向前移动一个位置,数组长度减1,此时需要重新分配数组的长度,如果不加Preserve选择项,会清除数组中的内容;找到所需删除的元素,进行相关的操作后,需要退出该事件。
问答题 2.  考生文件夹下有工程文件sjt4.vbp,窗体Form1上有1个名称为Command1的命令按钮和1个名称为Text1的文本框,各控件及其属性见窗体文件。
   
【正确答案】【操作步骤】
   步骤1:打开本题工程文件。
   步骤2:打开代码编辑窗口,去掉程序中的注释“’”,将问号改为正确的内容。
   参考答案(下划线部分是需要填入的内容)
   Option Base 1
   Private Sub Command1_Click()
   Dim s(20) As String*1,x As String*1
   Dim flag As Boolean
   Dim num As Integer,i As Integer
   s(1)=Chr(Int(Rnd*26+65))
   num=2
   Do While num <=20
   x=Chr(Int(Rnd*26+65))
   flag=False
   For i=1 To num-1
   If s(i)=x Then flag=True
   Next i
   If Not flag Then
   s(num)=x
   num=num+1
   End If
   Loop
   For i=1 To 20
   Text1.Text=Text1.Text+s(i)+Space(1)
   Next i
   End Sub
   步骤3:调试并运行程序,关闭程序后按题目要求存盘。
【答案解析】 Chr函数是把产生的随机数值转化成对应的字母;在数组s中第一个字母不参与循环生成,由题目可知随机产生20个不重复的字母,所以循环条件是小于等于20,While判断条件为假时跳出循环;flag是用来判断循环是否开始的标志;当产生的随机数在数组中不存在时,就把随机数赋值到数组中,下标加1;Space()函数用来插入空格数,把生成的随机数以每隔一个空格的方式显示在text1中。