VB 急!小问题

[复制链接]
查看11 | 回复3 | 2008-6-17 10:51:19 | 显示全部楼层 |阅读模式
以下程序输出的结果是()
Dim a, i%
a = Array(1, 2, 3, 4, 5, 6, 7)
For i = LBound(a) To UBound(a)

a(i) = a(i) * a(i)
Next i
Print a(i)
(A) 49 (B)0 (C)不确定 (D)程序出错
麻烦写出详细解释。

回复

使用道具 举报

千问 | 2008-6-17 10:51:19 | 显示全部楼层
LBound 函数
返回一个 Long 型数据,其值为指定数组维可用的最小下标。语法LBound(arrayname[, dimension])LBound 函数的语法包含下面部分:部分描述arrayname必需的。数组变量的名称,遵循标准的变量命名约定。dimension可选的;Variant (Long)。指定返回哪一维的下界。1 表示第一维,2 表示第二维,如此类推。如果省略 dimension,就认为是 1。说明LBound 函数与 UBound 函数一起使用,用来确定一个数组的大小。UBound 用来确定数组某一维的上界。对具有下述维数的数组而言.For i = LBound(a) To UBound(a)'所以i的值为2-
回复

使用道具 举报

千问 | 2008-6-17 10:51:19 | 显示全部楼层
Private Sub Command1_Click()Dim a, i%a = Array(1, 2, 3, 4, 5, 6, 7)For i = LBound(a) To UBound(a) 'i=0 to 6a(i) = a(i) * a(i) 'a(0)=a(0)*a(0)=1*1=1a(1)=a(1)*a(1)=2*2=4 ..
回复

使用道具 举报

千问 | 2008-6-17 10:51:19 | 显示全部楼层
D 程序下标越界了。For i = LBound(a) To UBound(a) a(i) = a(i) * a(i) Next i 循环中,当i=UBound(a)即7的时候是执行了最后一次,然后是next i,i为8,循环结束,可是再next i 下面的a(i)的下标为7,a(8)是越界的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行