9. 下列程序 Option Base 1
Private Sub Commandl_Click() Dim arr(5) As String For i=1 To 5
arr(i)=Chr(Asc(″A″)+(i-1)) Next i
For Each bl In arr Print bl; Next End Sub
程序运行时输出的结果是________。 A. ABCDE
代码:
Dim a(3)As Single
Private Sub Command1_Click() Dim p As String For n=0 To 3
a(n)=Val(InputBox(″输入第″& n &″个数:″)) Next n
p=a(0) & ″,″& a(1) & ″, ″& a(2) &″,″&a(3) Label1.Caption=p End Sub
程序运行后,分别在InputBox中输入2,3,4,5,标签中显示________。 A. 2,3,4,5 C. 2,3,4,5,
B. 2345 D. 2 3 4 5
B.abcde
C.出错信息 D.1 2 3 4 5
10. 窗体中添加一个命令按钮和一个标签(Label),编写命令按钮Commandl的click事件
11. 下面语句中错误的是________。
A. ReDim Preserve Matrix(10,UBound(Matrix,2)+1) B.ReDim Preserve Matrix(UBound(Matrix,1)+1,l0) C.ReDim Preserve DynArray(UBound(DynArray)+1) D.ReDim DynArray(UBound(DynArray)+1)
12. 在窗体上画一个命令按钮(其Name属性为Commandl),然后编写如下代码:
Option Base l
Private Sub Command1_Click() Dim a(4,4) For i=1 To 4 For j=1 To 4 a(i,j)=(i-1)*3+j
31
Next j Next i
For i=3 To 4 For j=3 To 4
Print a(j,i) Next j Print Next i
End Sub
程序运行后,单击命令按钮,其输出结果为________。
A. 6 9 B. 7 10 C. 8 11 D. 9 13. 下列程序
Option Base 1
Private sub Form_Click() Dim a(10) For i=1 To 10
a(i)=10-i + i Mod 2 Next i
For i=10 To 1 step -2 Print a(i); Next i End Sub
运行后输出的结果为________。 A. 0 2 4 6 8 B. 8 6 4 2 0 C. 1 3 5 7 9
D. 9 7 5 3 1
14. 对窗体编写如下代码:
Option Base 1
Private Sub Form_KeyPress (KeyASCⅡ As Integer)
a=Array(237,126,87,48,498) ml=a(1) m2=l
If KeyASCⅡ=13 Then For i=2 To 5
If a(i)>m1 Then m1= a(i) m2= i End If
Next i
End If
32
12
Print m1 Print m2 End Sub
程序运行后,按回车键,输出结果为________。 A. 48
B. 237
C. 498
D. 498
15. 在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click() Dim a
a=Array(1,2,3,4) j=l
For i=3 To 0 Step -1 s=s+a(i)*j j=j*10 Next i
Print s End Sub
运行上面的程序,单击命令按钮,其输出结果是________。 A.4321 参考答案
1. 分析: Dim a (10 To 20)定义了一个一维数组,数组元素的下标范围允许从10到20,从10到20的整型数有11个,故元素的个数是11。
答案: A
2. 分析: Dim abc(5)定义了一个一维数组,数组元素的下标允许范围是0到5,从0到5的整型数有6个,故元素的个数是6。
答案:B
3. 分析:本例定义a是一个变体变量,在程序中用Array函数将一组数赋给了它,这样a成为一个变体数组,变体数组元素的类型可以不相同。在循环中输出了数组元素的值。
答案: A
4. 分析: 阅读本题程序时要注意:尽管在过程中定义了可容纳100个元素的数组,但在10次循环中仅给部分数组元素赋值,在每次循环中首先计算出循环变量的平方,将计算的结果赋给下标是该数的元素,就是说接受赋值的元素是a(1),a(4),a(9),a(16)…,它们存储的值和它们的下标相同。退出循环后输出A(25)的值,25正是5的平方。
答案: B
5. 分析: 本题使用了Array函数给数组赋初值,数组是一个变体变量名a,在For循环内的If测试表达式 a(i)/3=a(i)\\3 or a(i)/5=a(i)\\5,表示当a数组的元素是3或是5的倍数时为逻辑“真”,所以,程序将a数组中3或5的倍数的元素求和。求和的最后结果是32。
答案:C
6. 分析:本例定义a是一个一维数组,数组元素的下标范围允许为1--20。在循环中将
33
B.12 C.34 D.1234
下标变量的平方送给该数组元素,退出循环后有Print A(K),输出A数组的第K个元素,但此时K的值是21。A数组无此元素,故产生下标越界的错误。
答案:D
7. 分析: 定义数组格式: Dim 变量名[(下标)] As 数据类型 定义了数组的下标界限时,下标将从定义的初始值开始。数组的默认下标是0。
答案: D
8. 分析: 本程序声明动态数组a(),在过程中有ReDim a(3,2)指明数组的大小是3行2列,用双层的嵌套循环为数组元素赋值,赋值语句右侧的表达式是i*2+j,表示行号乘以2加上列号的值赋给该行该列的元素,每计算一个,给一个元素赋值,同时输出该元素的值,在输出一行元素时,由于输出项后有分号,因此不换行。每输出一行后执行一次不带参数的Print方法实现换行。注意输出数组元素用的是Print″a(″;i;,″;j;″)=″;a(i,j);这样可以输出行号和列号。
答案: D
9. 分析:本题一个一维字符串数组,在程序中用循环将一组数赋给了它,赋值语句右侧的表达式是Chr(Asc(″A″)+(i-1)),它的含义是:将字符A的ASCII码值加上循环变量的值减1,求出此ASCII码对应的字符。最后,将计算出的字符赋给数组的第i个元素。退出循环,arr的5个元素分别是字符A到字符E,程序的最后,使用了For Each结构输出了这些元素所存的字符,由于Print方法输出项的最后用分号结束,因此输出一行。
答案:A
10. 分析:此题中,使用标签的caption属性来显示信息,“&”用于连接字符串的操作,“,”也被看成字符串输出。Val()函数的功能是返回参数包含于字符串内的数字。
答案:A
11. 分析:如果想改变数组的大小还要保存数组中的数据,可以在ReDim后面加上Preserve关键字,但是多元数组中用了Preserve关键字只能改变最后一维的大小,改变任何其他维的大小都会有错误发生。题中A和B两个答案中的Matrix数组就是一个二维数组,A改变后一维的大小,这是允许的,B中改变了第一维的大小。
答案:B
12. 分析:此题是测试对二维数组赋值过程的理解。一般情况下,一个二维数组用一个双重循环来赋值,本程序是给一个5行5列的二维数组的部分数组元素赋值。在双重For循环结构中,外循环的循环变量i从1增加到4,循环4次。内循环的循环变量j 从 1 增加到 4,也循环4次。因为在本题中,要求输出的是a(3,3),a(4,3),a(3,4),a(4,4)直接通过内循环中的赋值语句a(i,j)=(i-1)*3+j,分别给所求的a(3,3),a(3,4),a(4,3),a(4,4)赋值,不难算出a(3,3)=9,a(3,4)=10,a(4,3)=12,a(4,4)=13。
答案:D
13. 分析:本题要注意两点:第一个For语句的循环体有一条a(i)=10-i+iMod2语句,完成数组元素的生成;另外,第二个For语句的参数是10 To l Step -2,逆向间隔输出。计算数组元素中Mod运算符优先,当i是奇数时,i Mod 2的值为1,当i是偶数时,i Mod 2的值为0,10-i在循环中得到9,8,7,6,5,4,3,2,1,0,当i是奇数时加1,因此a数组中的数是10,8,8,6,6,4,4,2,2,0,最后逆向间隔输出,输出的结果是0,2,
34
4,6,8。
答案:A
14. 分析:Option Base 1在模块级别中使用,用来声明数组下标的默认下界。当用户按下和松开一个ANSI(美国国家标准学会)8位字符集,keyPress事件用来表示在键盘上使用的多达256(0-255)个字符键时发生。13代表键盘上的回车键。在本题中KeyASCⅡ=13,即当按下回车键时,执行后面的语句。
答案:C
15. 分析:For语句中步长为-1,每循环一次,循环变量的值减去一个步长,数组进行反运算,即:a(i)取值4,3,2,1。
答案:D
八、Visual Basic 常用标准控件
选择题
1. 滚动条的默认属性是________。
A. Min
B. Max C. Value
B. 单选按钮 D. 标签
D. Name
2. 下列控件中,没有属性的是________。
A. 复选框 C. 列表框 A. 图像框
3. 只能用来显示字符信息的控件是________。
B. 图片框 C. 标签框 D. 文本框
B. Appearance D. Left
D. Value
4. 为了让文本框中的字符靠左边显示,应该确保________属性设置为0。 A. Alignment C. DataFormat A. Selected
5. 确定复选框是否选中,应访问的属性是________。
B. Checked C. Style
6. 标准控件中既能显示字符串信息,也能编辑字符的控件是________。
A. 标签 B. 文本框 A. Min
C. 复选框 D. 列表框
D. Value
7. 若要获得滚动条的当前值,可访问的属性是________。
B. Max C. Text
8. 某个窗体的Left,Top属性值分别为3000,4000。窗体上有一个图片框,它的Left值为2000,Top值为2500。那么程序运行时图框相对于屏幕的坐标分别为________。
A. 2000,2500 B. 5000,2500 C. 5000,6500 D. 2000,6500
9. 若要设置文本框中所显示的文本颜色,使用的属性是________。 A. FillColor
B. BackColor D. BackStyle
35
C. ForeColor