考生文件夹下有工程文件sjt4.vbp。窗体的设计界面、各控件初始属性及有关代码见窗体文件。程序的功能是,程序运行时能自动调用Start过程,产生10个1~100的随机整数保存到数组a中,并将它们显示到文本框Text1中,成为原始数据序列,用户可在文本框T

admin2019-08-21  59

问题 考生文件夹下有工程文件sjt4.vbp。窗体的设计界面、各控件初始属性及有关代码见窗体文件。程序的功能是,程序运行时能自动调用Start过程,产生10个1~100的随机整数保存到数组a中,并将它们显示到文本框Text1中,成为原始数据序列,用户可在文本框Text3中输入一个数据,按下回车键后,程序开始在数组a中查找该数据是否存在,如果不存在,则出现消息对话框显示“未找到该数据”;如果存在,则将该数据从数组a中删除(删除的方法是将该数据所在元素的后面所有元素依次前移一个位置),删除结束后,将数组元素的个数减1,最终将删除后的结果显示到文本框Text2中,并将文本框Text3设置为不可用。
    单击“重新开始”按钮,则调用Start过程重新对数组a以及各控件的内容进行初始化,并形成新的一组数据序列,用户可以重复以上相关操作。
    程序的运行结果示意图如下图所示。

    程序已经给出,但不完整,请将其中的注释符去掉,把?改为正确的内容,以实现上述程序功能。
    注意:考生不得修改窗体文件中已经存在的控件和程序,最后程序按原文件名存盘。

选项

答案步骤1:打开本题工程文件。 步骤2:打开代码编辑窗口,去掉程序中的注释“’”,将问号改为正确的内容。 参考答案(画横线部分是需要填入的内容) Option Base 1 Const N As Integer=10 Dim a()As Integer Private Sub Start() Dim i As Integer ReDim a(N)As.Integer Text1.Text=" " Text2.Text=" " Text3.Text=" " Text3.Enabled=True Randomize For i=1 To N a(i)=Int(Rnd*100+1) Text1.Text=Text1.Text&a(i)&" " Next i End Sub Private Sub Form_Load() Call Start End Sub Private Sub Command1_Click() Call Start End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) Dim m As Integer Dim i As Integer,j As Integer m=Val(Text3.Text) If KeyAscii=13 Then For i=1 To N If a(i)=m Then Exit For End If Next i If i=N+1 Then MsgBox("未找到该数据") Else For j=i+1 To N a(j-1) =a(j) Next j ReDim Preserve a(N-1) Forj=1 To N-1 Text2.Text.=Text2.Text&a(j)&" " Next j Text3.Enabled=False End If End If End Sub 步骤3:调试并运行程序,关闭程序后按题目要求存盘。

解析 本题主要考查对数组运用的熟练程度。数组一定要事先定义才能使用,Start过程是对数组的初始化,把随机生成的数据存入数组a中。文本框传入的数据都是字符型,使用时需要转化成相对应的类型。Text3_KeyPress过程利用for循环判断Text3中的数据是否在数组a中,若存在。退出for循环,然后把i+1以及后面的数依次向前移一个位置,最后数组长度减1;若不存在,则弹出“未找到该数据”消息框。重新分配动态数组时,数组的内容将被清除,但如果ReDim中使用了Preserve选择项,则不清除数组内容。
转载请注明原文地址:https://kaotiyun.com/show/edUp777K
0

最新回复(0)