单选题
程序代码如下:Option Base 1Private 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 iEnd Sub以下关于上述程序的叙述中,错误的是
A、
程序为数组a的所有元素赋了随机值
B、
Randomize的作用是避免同一序列随机数的反复出现
C、
程序产生随机数的范围是大于等于0,小于50
D、
输出结果组成的方阵中对角线上的值为1
【正确答案】
A
【答案解析】
解析:本题中,Rnd(x)是一个随机函数,它能产生一个0到1之间(不包括0和1)之间的单精度随机数,其中变量x是种子数,若省略x,Rnd函数采用系统时间为种子值。Randomize省略了参数,用系统计时器
返回的值作为新的种子值,如果没有使用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表述正确。
提交答案
关闭