程序代码如下: Option Base 1 Private Sub Form_Click() Dim a(5, 5) As Integer Randomize For i = 1 To 5 For j = 1 To

admin2020-07-22  19

问题 程序代码如下:
Option Base 1
Private Sub Form_Click()
    Dim a(5, 5) As Integer
    Randomize
    For i = 1 To 5
        For j = 1 To 5
            If i = j Then
               a(i, j) = 1
            Else
               a(i, j) = Int(Rnd * 50)
            End If
            Print a(i, j);
        Next j
        Print
    Next i
End Sub
以下关于上述程序的叙述中,错误的是

选项 A、程序为数组a的所有元素赋了随机值
B、Randomize的作用是避免同一序列随机数的反复出现
C、程序产生随机数的范围是大于等于0,小于50
D、输出结果组成的方阵中对角线上的值为1

答案A

解析 本题中,Rnd(x)是一个随机函数,它能产生一个0到1之间(不包括0和1)之间的单精度随机数,其中变量x是种子数,若省略x,Rnd函数采用系统时间为种子值。Randomize省略了参数,用系统计时器 <http://baike.soso.com/ShowTitle.e?sp=S计时器>返回的值作为新的种子值,如果没有使用Randomize,则(无参数的)Rnd函数使用第一次调用Rnd函数的种子值,Randomize避免同一序列随机数反复出现,故B项表述正确。本程序中定义a(5, 5)的数组,这个数组对角线上数值为1,其余元素值为Int(rnd*50),除了对角线上元素,其余元素被赋予随机值。故A表述错误, D表述正确。Rnd的范围在0到1之间,故rnd*50的范围在0到50之间(不包括0和50),Int(Rnd * 50)值为不大于(Rnd * 50)的最大整数,即范围是大于等于0且小于50,C表述正确。
转载请注明原文地址:https://kaotiyun.com/show/BAHp777K
0

最新回复(0)