问答题 注意:下面出现的“考生文件夹”均为C:/wexam/25160002。
(1) 在考生文件夹下有一个工程文件sjt3.vbp,相应的窗体文件为sjt3.frm。其功能是产生30个0~1000的随机整数,放入一个数组中,然后输出其中的最大值。程序运行后,单击命令按钮(名称为 Command1,标题为“输出最大值”,如图24-4所示),即可求出其最大值,并在窗体上显示出来。这个程序不完整,请把它补充完整,并能正确运行。
要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。
【正确答案】[解析] 首先在循环语句中对数组赋值,使用Rnd函数和Int函数生成0~1000随机整数。在数组求最大值中,定义一个变量,用来存放数组中的最大值,在数组比较开始前,对变量进行赋初始值。在比较中,使用循环让变量和数组中的每个元素进行逐个比较,每次比较后变量中保存两个数中最大的数,循环结束后,变量中存放的数即为最大值。
Int函数是将参数转换成整数。
Rnd函数返回小于1,但大于或等于0的值,其语法格式为:
Rnd[(number)]
可选的number参数是Single或任何有效的数值表达式。
number的值决定了Rnd函数生成随机数的方式。为了生成某个范围内的随机整数,可使用以下公式:
Int((upperbound-lowerbound+1) *Rnd+lowerbound)
这里,upperbound是随机数范围的上限,而lowerbound则是随机数范围的下限。解题步骤:
第一步:阅读题目提供的程序。
程序提供的代码:
Option Base 1
Private Sub Command1_Click()
Dim arrN(30) As Integer
Dim Max As Integer
Randomize
For i=1 To 30
'arrN(i)=Int(Rnd * ?)
Next i
'?=arrN(1)
For i=2 To 30
'If ? Then
Max=arrN(i)
End If
Next i
Print Max
End Sub
第二步:修改程序代码。
参考代码:
Option Base 1
Private Sub Command1_Click()
Dim arrN(30) As Integer
Dim Max As Integer
Randomize
For i=1 To 30
arrN(i)=Int(Rnd * 1000)
Next i
Max=arrN(1)
For i=2 To 30
If Max<arrN(i) Then
Max=arrN(i)
End If
Next i
Print Max
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘。
(2) [解析] 本题要求的是1000以内能被5或7整除的数的个数。在Visual Basic中,使用Mod运算符来判断一个数是否可以被另一个数整除,如果计算结果为0,则表示可以整除,否则不能整除。解题步骤:
第一步:阅读题目提供的程序。
程序提供的代码:
Sub SaveData()
Open App.Path &"/"& "outtxt.txt" For Output As #1
Print #1, Text1.Text
Close #1
End Sub
Function Fun()
End Function
Private Sub Command1_Click()
d=Fun()
Text1.Text=d
SaveData
End Sub
第二步 编写程序代码。
参考代码:
Sub SaveData()
Open App.Path & "/" & "outtxt.txt" For Output As #1
Print #1, Text1.Text
Close #1
End Sub
Function Fun()
Dim temp As Integer
Dim i As Integer
For i=0 To 1000
If i Mod 5=0 Or i Mod 7=0 Then .
temp=temp+1
End If
Next i
Fun=temp
End Function
Private Sub Command1_Click()
d=Fun()
Text1.Text=d
SaveData
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘。
【答案解析】