问题 问答题

在考生文件夹下有一个工程文件sjt5.vbp,窗体上有2个文本框,名称为Text1、Text2,都可以多行显示;还有3个命令按钮,名称分别为c1、c2、c3,标题分别为“取数”、“排序”、“存盘”。“取数”按钮的功能是把考生目录下的in5.dat文件中的50个整数读到数组中,并在Text1中显示出来;“排序”按钮的功能是对这50个数按升序排序,并显示在Text2中;“存盘”按钮的功能是把排好序的50个数存到考生目录下的out5.dat文件中。如图5所示。在窗体中已经给出了全部控件和部分程序。


要求:阅读程序并去掉程序中的注释符,在程序中的横线处填写正确的内容,并编写“排序”按钮的Click事件过程,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。最后把修改后的文件按原文件名存盘。
[题目提供的源程序]
Dim a(50) As Integer
Private Sub C1_Click()
Dim k As Integer, ch As String
0pen "in5.dat" For Input As #1
ch=""
For k=1 To 50
Input #1, (1)
ch=ch+Str(a(k))+""
Next k
Close #1
Text1.Text= (2)
End Sub
Private Sub C2_Click()
’考生应编写的程序
End Sub
Private Sub C3_Click()
Open "out5.dat" For Output As #1
Print #1, Text2.Text
Close #1
End Sub

答案

参考答案:[操作步骤]
第1步:打开工程文件sjt5.vbp。
第2步:分析并修改源程序。
[1]a(k) [2]ch
“排序”按钮的参考代码如下:
Private Sub C2_Click( )
’考生应编写的程序
For i=1 To 49
For j=1 To 50-i
If a(j)<a(j+1) Then
t=a(j)
a(j)=a(j+1)
a(j+1)=t
End If
Next j
Next j
For j=1 To 50
ch=ch+Str(a(i))+""
Next i
Text2=ch
End Sub
第3步:调试、运行并保存程序。

解析: 程序首先打开文件in5.dat,并从文件中读取数据,从读取语句的下一行“ch=ch+Str(a(k))+""”可以看出,将读取的数据连接到ch的后面,连接的内容为a(k),所以读取语句Input中的变量应该是a(k)。文件内容读取结束后,文件的所有内容都连接到变量ch中,将ch赋值给Text1.Text即可在文本框中显示出文件的内容。
排序可采用多种方法,如选择法、冒泡法等。

单项选择题 A3/A4型题
单项选择题