在考生文件夹下有一个工程文件sjt5.vbp。程序功能如下: 1) 单击"读数据"按钮,从文件中读出数据,放入二维数组a中。 &nbs...
1) 单击"读数据"按钮,从文件中读出数据,放入二维数组a中。
2) 单击"生成新数组"按钮时,依据a数组生成b数组;若a数组元素为素数,则直接将a数组元素的值赋给b数组中相同下标的数组元素;若a数组元素的值能被2整除,则将该元素值的平方作为b数组同下标的元素;若a数组元素为其他值,则将该元素乘2的值作为b数组同下标的元素。
3) 单击"查找最大值"按钮,则在b数组中找最大值并显示在Label2标签上。
在给出的窗体文件中已经有了全部控件,标准模块中有判断素数的函数
IsPrime。 要求去掉程序中的注释符,把程序中的 ?改为正确的内容,并编写相应的程序,实现程序的功能。
注意:
不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存
盘。程序调试通过后,各命令按钮的事件过程必须至少各执行一次。
参考解析: 【考点分析】本题考点是文件的读写操作,二维数组的运算。
【解题思路】读取数据放在一个二维数组中,需要用两层循环来操作,逐个读取文件数据到数组中,然后关闭文件。对数组中的数据依次进行判断,有三种情况,可使用If Else语句进行判断。
【操作步骤】
步骤1:打开代码编辑窗口,查看“读数据”按钮的事件代码,去掉注释符号,将问号改为正确语句。
参考答案(阴影部分是需要考生填入的内容)
Dim a(5, 5) As Long
Dim b(5, 5) As Long
Private Sub Command1_Click()
Open App.Path & "\in5.txt" For Input As #1
For i = 1 To 5
For j = 1 To 5
Input #1, a(i, j)
s = s + Str(a(i, j))
Next
s = s + Chr(13) + Chr(10)
Next
Text1 = s
Close #1
End Sub
代码结束
步骤2:查看“生成新数组”按钮事件代码,在指定位置编写代码。
参考答案
Private Sub Command2_Click()
'====================以下由考生编写===========================
For i = 1 To 5
For j = 1 To 5
If IsPrime(a(i, j)) Then
b(i, j) = a(i, j)
ElseIf (a(i, j) Mod 2) = 0 Then
b(i, j) = a(i, j) * a(i, j)
Else
b(i, j) = a(i, j) * 2
End If
Next
Next
For i = 1 To 5
For j = 1 To 5
s = s + Str(b(i, j))
Next
s = s + Chr(13) + Chr(10)
Next
Text1 = s
'====================考生编写程序结束=========================
End Sub
代码结束
步骤3:查看“查找最大值”按钮事件代码,在指定位置编写代码。
参考答案
Private Sub Command3_Click()
'====================以下由考生编写===========================
Max = b(1, 1)
For i = 1 To 5
For j = 1 To 5
If b(i, j) > Max Then
Max = b(i, j)
End If
Next
Next
Label2.Caption = Max
'====================考生编写程序结束=========================
Open App.Path & "\out5.txt" For Output As #1
Print #1, Label2.Caption
Close #1
End