1.你预习了本章内容了吗?共花时间 分
2.你复习了上一堂课内容吗?共花时间 分
3.你作业做了吗? 4.作业是自己做的吗?
一、判断题
1.数组中所有元素的数据类型不一定相同。
2.可以在程序中使用Redim语句来改变动态数组的大小、维数和类型。 3.数组的下界一定是0。
4.定义数组时,其下界只能为正整数。
5.可以在通用的声明部分使用Option Base -1语句把数组下标下界的默认值设置为-1。 6.在Vb中,用Dim定义数组时,数组元素将自动赋初值为0。 二、选择题
1. 定义数组A(1 To 5, 5)后,下列哪一个数组元素不存在: 。 (A)A(1,1) (B)A(1,0) (C)A(0,1) (D)(5,5)
2. 在过程中定义Dim A(1 To 10, 3 ) As Single ,则数组占用 字节的空间。 (A)132 (B)80 (C) 160 (D)120
3. 下列关于数组的说法正确的是 。
(A)在VB中,一个数组中所包含的元素只能是相同类型的数据。 (B)在VB中,数组只能在模块中定义,不能在过程中定义模块。 (C)同普通变量一样,数组也可以不定义,先使用。
(D)在定义数组时,数组的每一维元素的个数必须是常数,不能是变量或表达式。 4.已知数组b中的5个元素分别是1,3,5,7,9,现将数组b中的5个数逆序存放(即排列为9,7,5,3,1)。为实现此功能,正确的程序段应该是: 。
A.For i = 0 To 5-1\\2: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i B.For i = 0 To 5: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i C.For i = 0 To 5\\2: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i D.For i = 1 To 5\\2: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i 三、程序阅读题
1. 在窗体上画一个命令按钮,然后编写如下事件过程:
Option Base 1
Private Sub Command1_Click()
Dim a(1 To 4) As Integer, i As Integer, j As Integer Dim s As Long
For i = 1 To 4: a(i) = i: Next i j = 1
For i = 4 To 1 Step -1 s = s + a(i) * j
21
VB网络课堂:info.zjfc.edu.cn/vbweb
结果: j = j * 10 Next i Print s End Sub
运行上面的程序,单击命令按钮,其输出结果是 。 2. 请写出单击窗体后,窗体上的显示结果。
Option Base 1
Private Sub Form_Click()
Dim a(4, 4) As Integer, i As Integer Dim j As Integer For i = 1 To 4 For j = 1 To 4
a(i, j) = i * 10 + j Next j Next i
For i = 1 To 4 For j = 1 To 4 Print a(i, j); Next j Print Next i End Sub
结果: 3.写出程序运行后,单击窗体Form1上显示的内容。
Private Sub Form_Click()
Dim ary(1 To 4) As Integer Dim i As Integer Dim Sum As Integer For i = 1 To 4 ary(i) = i
Sum = Sum + ary(i) Print ary(i); Next i Print
Print \End Sub
结果: 4.请写出单击窗体后,窗体上的显示结果。
Private Sub Form_Click() Dim a(5, 5) As Byte
For i% = 1 To 5 : For j% = 1 To 5 a(i%, j%) = i% * j% Next j%, i%
For i% = 1 To 5 : Print a(i%, i%); : Next i% End Sub
结果: 四、程序填空题
1. 以下程序产生30个两位随机整数、并按从小到大的顺序存入数组a中,再将其中的奇数按从小到大的顺序在窗体中用紧凑格式输出。
Private Sub Form Click()
22
VB网络课堂:info.zjfc.edu.cn/vbweb
Dim a(30) As byte, i as Byte, j As Byte, m As Byte For i = 1 To 30 : a(i) = ⑴ : Next i For i = 1 To 29
For j = ⑵ If a(i) > a(j) Then
m = a(i) : ⑶ : a(j) = m End If Next j, i
For i = 1 To 30
If ⑷ Then Print a(i); Next i End Sub
2. 下面的过程用来输出如下图形,但不完整,请在横线上填入必要的内容,使其完整。
图1 下三角图形
Option Base 1
Private Sub Form_Click() Dim a(5, 5) As Integer
Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5 If j <= i Then (5) End If
Print a(i, j); \Next j
(6) Next i End Sub
3、用筛选法求m以内的所有素数。 (1)把2—m以内的所有数放入筛中;
(2)找筛中最小的素数,在筛中去掉该素数的所有倍数;
(3)重复(2),直到要找的筛中的最小素数已超出m的范围; (4)打印筛中的素数。
Private Sub txtinput_KeyPress(KeyAscii As Integer) Dim i As Integer, j As Integer
23
VB网络课堂:info.zjfc.edu.cn/vbweb
Dim prime(1000) As Integer Dim m As Integer, p As Integer Dim flag As Boolean If KeyAscii = 13 Then
m = ________(7)_________ For i = 2 To m - 1 '筛子充满数 prime(i) = 1 Next i p = 2 flag = True Do
Do While p < m And prime(p) = 0 '找筛子中最小的素数 p= ________(8)_________
Loop
If p = m Then flag =________(9)_________ '筛子中的数全求过结束 For i = p + p To m - 1 Step p '在筛子中清除该素数的倍数 prime(i) = 0
Next i p = p + 1
Loop While flag = True i = 0
For j = 2 To m - 1 '打印素数 If ________(10)_________Then Picture1.Print j; i = i + 1
If i Mod 5 = 0 Then Picture1.Print '一行打印5个素数 ________(11)_________ Next j End If End Sub
4.【程序说明】 以下程序代码将任意一组数存入数组,从键盘接收一数据,将其插入数组中,插入的位置也从键盘输入。
Dim A() As Integer
Private Sub Form_Click()
N = InputBox(\原始数据个数:\原始数据个数 (12)
ReDim A(1 To N) As Integer For I = 1 To N - 1
A(I) = Val(InputBox(\原数据:\原数据输入 Next I
24
VB网络课堂:info.zjfc.edu.cn/vbweb