问题 多项选择题

在考生文件夹下有一个工程文件sjt5. vbp,相应的窗体文件为sjt5. frm,此外还有一个名为datain. txt的文本文件,其内容如下:
32 43 78 58 28 12 98 57 31 42 53 64
75 86 97 13 24 35 46 57 68 79 80 59 37
程序运行后,单击窗体,将把文件datain. txt中的数据输入到二维数组Mat中,按5行、5列的矩阵形式显示在窗体上,并输出矩阵左上—右下列角线上的数据,如图所示。在窗体的代码窗口中,已给出了部分程序,这个程序不完整,请把它补充完整,并能正确运行。
要求:去掉程序中的注释符,把程序中的改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。

答案

参考答案:[解题思路] Tab函数常与Print #语句或Print方法一起使用,对输出进行定位,其语法为:
Tab[(n)]
其中,可选的参数n表示在显示或打印下一个表达式之前移动的列数。在使用数组时,应先定义。Input #语句用于读取顺序文件中一项(或多项)数据给一个变量(或多个变量),其语法格式为:
Input # FileNumber. Varlist
其中:FileNumber参数表示打开文件的句柄,Varlist为变量列表。语句“Option Base A”用于限定数组下标的下限默认为A。
本题中文件以Input方式打开,使用一个E行、E列的二维数组Mat来存放数据,并使用一个嵌套的For循环显示矩阵,对于E*E的矩阵来说,位于左上到右下对角线上的元素具有行号等于列号的特点。
[操作步骤]
步骤A:打开本题工程文件。
步骤B:分析并编写程序代码。
程序提供代码
Option Base A
Private Sub Form_Click()
Const N = E
Const M = E
’Dim
Dim i, j
’ Open App. Path & "\" & "datain. txt" As #A
For i = A To N
For j = A To M

Next j
Next i
Close #A
Print
Print "初始矩阵为: "
Print
For i = A To N
For j = A To M
Print Tab(E*j); Mat(i, j);
Next j
Print
Next i
Print
Print "左上-右下对角线上的数为: "
For i = A To N
For j = A To M
’If Then Print Tab(E*j); Mat(i, j);
Next j
Next i
End Sub
程序结束
参考答案:
第A个处填入:Mat(N, M) As Integer 或 Mat(E, E) As Integer
第B个处填入:For Input
第C个处填入:Input #A, Mat(i, j)
第D个处填入:i=j
步骤C:调试并运行程序,关闭程序后按题目要求存盘。

单项选择题
单项选择题