(15)在L1处添加语句option base 1后,程序运行的结果( )。
(A) 有变化 (B)无变化 (C)出现语法错误 (D)以上都不是 三、程序填空(2分/空,30分)
1、下面的程序段用于求矩阵相乘C=A×B,设A、B、C分别为m×p、p×n、m×n的矩阵。
Private Sub Form_Click() Const m = 4, p = 3, n = 2 Dim a(1 To m, 1 To p) As Integer Dim b(1 To p, 1 To n) As Integer Dim c(1 To m, 1 To n) As Integer
Dim i As Integer, j As Integer, k As Integer, sum As Integer For i = 1 To m For k = 1 To p a(i, k) = i Next k Next i
For i = 1 To p For k = 1 To n b(i, k) = i Next k Next i
For i = 1 To m For j = 1 To n 【①】 For k = 1 To p
sum = sum +【②】 Next k
c(i, j) =【③】 Next j, i Print \输出矩阵\For i = 1 To m For k = 1 To n Print c(i, k),
6
Next k Print Next i End Sub
2、以下程序段分别以子过程和函数来计算某级数部分和,级数公式如图1所示。
Function jishu1(x!, eps#) As Double Dim n%, s#, t# n = 1: s = 0: t = 1 Do While (Abs(t) >= eps) s = s + t t = t * x / n n = n + 1 Loop
【①】 End Function
Sub jishu2(s#, x!, eps#) Dim n%, t#
n = 1: s = 0: t = 1 Do While (Abs(t) >= eps) s = s + t t = t * x / n n = n + 1 Loop End Sub
Private Sub Command1_Click() Dim f1#, f2#
f1 = jishu1(2#, 0.000001)
【②】 jishu2(f2, 2#, 0.000001) Print \End Sub
3、用输入对话框输入x,根据如图公式计算对应的y,在窗体上输出y的值。
Option Explict
7
Private Sub Command1_Click() Dim x As Single
【①】
x = Val(【②】(\输入X的值\ If x = 10 Then 【③】 ElseIf x > 10 Then y = 【④】 Else
y = 2 * x ^ 3 + 6 End If Print y End Sub
4、以下程序段实现的功能是:查找一数列中是否存在某数字x,若数列中存在该数字,则输出其出现的次数,否则输出不存在信息。
Private Function Search(a() As Integer, ByVal key, n%) As Boolean Dim i%
Search = False
For i = LBound(a) To 【①】 If key = a(i) Then Search = True 【②】 End If Next i End Function
Private Sub Form_Click()
Dim x As Integer, k As Integer, num As Integer Dim b() As Integer num = Int(Rnd * 10) + 1 ReDim b(num) For i = 0 To num
b(i) = Int(Rnd * 70) + 20 Print b(i); Next i
8
x = Val(InputBox(\输入待查找数据\If Search(【③】, x, k) Then Print x; \在数列中出现\次\Else
Print x; \未在数列中出现\End If End Sub
5、在文本框内输入一串字符后,统计并显示各字母出现的次数(不区分大小写字母)。
Private Sub Command1_Click()
Dim a(1 To 26) As Integer, c As String * 1 【①】 = Len(Text1) For I = 1 To k
c = 【②】(Mid(Text1, I, 1)) If c >= \ j = Asc(c) - 【③】 + 1 a(j) = a(j) + 1 End If Next I Picture1.Cls For j = 1 To 26 If a(j) > 0 Then
Picture1.Print \ End If Next j End Sub
四、程序改错题(每个错误点3分,共15分)
有一程序其功能为:单击“生成”按钮后,利用随机函数产生10个(1~100)之间的随机整数并输出在LIST1中,单击“计算”按钮,在窗体上打印其中能被5整除的数并求它们的和。程序中有5个错误,在不删除整条语句的前提下,可修改或补充语句,添加的语句不能超过两条。
错误源代码:
9
Option Base 1 Dim x(10) As Integer
Private Sub Command1_Click() List1.Remove For i = 1 To 10 x(i) =
List1.AddItem x(i); Next i End Sub
Private Sub Command2_Click() Dim sum As Integer sum = 0
For i = 1 To 10 If Then Print x(i) sum = sum + x(i) Next i
Print \End Sub
一、 1、D 6、C 单项选择题(1分/小题,共10分) 2、D 7、A 3、C 8、C 4、 C 9、 B 5、 D 10、A
二、程序阅读(3分/题,共45分)
26、D 31、B 36、C 27、D 32、B 37、C 28、B 33、D 38、C 29、 A 30、 B 34、C 35、 B 39、 C 40、C
三、程序填空(2分/空,30分)
1、(1)sum = 0、(2)a(i, k) * b(k, j)、(3)sum
2、(1)jishu1 = s、(2)call
3、(1)y、(2)InputBox、(3)y = 0、(4)+ Sin(x)
10