题库 高中信息

题干

运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息。发生"下标越界"错误时所执行的语句是(   )

Private Sub Command1_Click()
Dim a(0 To 5) As Integer
Dim i As Integer    '①
a(0) = 1   '②
For i =" 1" To 5
a(i) =" 2" * a(i-1) + 1 '③
Next i
Text1.Text = Str(a(i)) '④
End Sub
A.①B.②
C.③D.④
上一题 下一题 0.99难度 选择题 更新时间:2016-01-21 08:17:48

答案(点此获取答案解析)

同类题3

(加试题)中秋节时,班级组织活动,其中有抽奖环节,小龙在7选3中选考了技术,班主任让小龙编写一个VB抽奖程序,功能如下:窗体装载过程从数据库读取所有同学的相关数据并显示在列表框List1中,抽奖时在文本框Text1中输入要抽出的人数,单击“摇奖”按钮command1,程序进行处理,结果输出在列表框list2中。程序运行界面如下图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)分析下面的程序代码,可知数据表名为________
(2)请在划线处填入合适的代码。
Dim a(1 To 100) As String '数组大小满足处理要求,学生学号
Dim b(1 To 100) As String '数组大小满足处理要求,学生姓名
Dim i As Integer '学生总数
Dim j As Integer
Dim dd(1 To 100) As Integer
Private Sub Form_Load()
‘从数据库读取全班同学的相关信息,存储在数组a、数组b和变量i中
Dim n As Integer

Dim conn As New ADODB.Connection

Dim rs As New ADODB.Recordset

Dim strSQL As String

    conn.ConnectionString = "Provider=Microsoft.AC
A.OLEDB.12.0;Data Source=" & App.Path & "\1718.accdb"

conn.Open

Set rs.ActiveConnection = conn

strSQL = "SELECT * FROM stuinfo"

rs.Open strSQL

'本过程的其他语句略

End Sub
Private Sub Command1_Click()
Dim ShuruNum As Integer, k As Integer, y As Integer,n As Integer
Randomize
ShuruNum = Val(Text1.Text)
Label4.Caption = ""
For k = 1 To i
dd(k) = 0
Next k
If ShuruNum > 0 And ShuruNum <= i Then
j = 1
Do While j <= ShuruNum
y = Int(Rnd() * i) + 1
If________________  Then' ①
dd(j) = y
j = j + 1
End If
Loop
List2.Clear
For n = 1 To ShuruNum
List2.AddItem ________________ '②
Next n
Else
Label4.Caption = "错误:没有输入中奖人数或超过学生总数"
End If
End Sub
'核对重复,避免同一人再次中奖
Private Function CheckCF(p As Integer) As Boolean
Dim m As Integer,x As Boolean
x = True '初始化
For m = 1 To j
If ________________ Then '③
x = False
Exit For
End If
Next m
CheckCF = x
End Function

同类题5

对n项(n<=100)数据序列的前x项求和,可设计如下算法:将数据序列存储在数组a中,并按一定规则转换成数组c,再借助数组c实现求和.
将数组a转换成数组c的方法描述如下:
①将数组a中的元素依次存储到数组c中,把当前数组c看作第一层;
②把第一层中的各元素进行如下处理:奇数项值不变,偶数项的值更新为自己与自己前一项的和,将更新后的数组元素看作第二层;
③把第二层中的各元素,按上述方法进行同样操作,更新后的数组元素看作第三层;
④以此类推,直到当前层中仅有一项为止。
例如x=11时,转换过程如图所示:

借助数组c,可快速计算出数组a中前x项的和.例如,数组a中前11项的和,可由表达式c(11)+c(10)+c(8)得到.表达式具体分析过程如下:
②   表达式第一项为c(11);
②将下标11转换成二进制数1011,计算该二进制数最右边的“1”所对应的权值,再用11减去此权值得到10,即表达式第二项为c(10);
③按上述方法继续操作,直到计算结果等于0为止。
小龙依据上述方法设计了如下vb程序.请回答下列问题:
(1)计算数组a中前22项和的表达式为__________________(填写表达式,如c(11)+c(10)+c(8))。
(2)请在划线处填入合适的代码。
Dim n As Integer
Dim a(1 To 1000) As Long, c(1 To 1000) As Long
Private Sub Form_Load()

'读取n个数据,并存储到数组a中(代码略)

End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, space As Integer
For i = 1 To n
c(i) = a(i)
Next i
k = 2  '当前层第一个偶数项的位置
space = 1  '当前层偶数项与前一项的间距
Do While k <= n
For i = k To n Step k
c(i) = c(i) + c(i - space)
Next i
k = k * 2
①______________________
Loop
End Sub
Private Sub Command2_Click()

Dim x As Integer, sum As Long

x = Val(Text1.Text): sum = 0

Do While x <> 0

sum = sum + c(x)
②_________________ 

Loop

Text2.Text = Str(sum)

End Sub
Function lowbit(x As Integer) As Integer

Dim temp As Integer

temp = x: lowbit = 1

Do While ③_______________'

lowbit = lowbit * 2
temp = temp \ 2

Loop

End Function