习 题
一、判断题
1.函数过程与Sub过程必须用关键字Private或Public声明。 2.用关键字Public声明的过程可以被其他模块调用。 3.调用过程时的实参必须是与对应形参类型相同的表达式。 4.声明形参处缺省传递方式声明,则为按值传递(Byval)。 5.Sub过程中的语句Exit Sub,使控制返回到调用处。 6.Sub过程名在过程中必须被赋值。 7.用Public声明的数组是全局量。
8.过程中的静态变量是局部变量,当过程再次被执行时,它的值是上一次过程调用后的值。 二、填空题
1.数组名作过程实参,相应的形参传递方式为 。
2.一维长整型数组a作过程形参写作“a() As Long”,二维长整型数组b作过程形参写作“ ”。
3.过程形参为整型,对应实参为5.64,复制到形参的值为 。
4.调用过程时对形参的改变不会导致相应实参变量的改变,则该形参采用 (按值传递/按地址传递)方式。
5.调用过程时对形参的改变就是对相应实参变量的改变,则该形参采用 (按值传递/按地址传递)方式。
6.声明Single类型全局变量x,写作 。 7.声明Integer类型静态变量x,写作 。
8.在窗体Form1的过程中引用窗体Form2中的全局变量y,写作 。 三、程序阅读题(写出下列程序的运行结果) 程序1. 请写出单击窗体后,窗体上的显示结果。 Dim i As Integer,n As Integer Private Sub Form_Click() Dim i As Integer For i = 1 To 3
s = sum(i): Print \ Next i End Sub
Private Function sum(n As Integer) Static j As Integer j = j + n + 1: sum = j End Function
程序2. 请写出单击窗体、输入5后,窗体上的显示结果。
Private Sub Form_Click()
Dim i As Integer, j As Integer, m As Integer m = InputBox(\请输入数组的行、列数\ ReDim a(m, m) As Integer Call P(a, m) For i = 1 To m
For j = 1 To i: Print Tab(j * 3); a(i, j); : Next j Print Next i End Sub
Private Sub P( b() As Integer, n As Integer) Dim i As Integer, j As Integer For i = 1 To n
b(i, 1) = 1: b(i, i) = 1 Next i
For i = 3 To n For j = 2 To n - 1
b(i, j) = b(i - 1, j - 1) + b(i - 1, j) Next j,i End Sub
程序3. 请写出单击窗体后,窗体上的显示结果。
Dim i As Integer, j As Integer, k As Integer, h As Integer Private Sub Form Click() i = 0: j = 1: k = 2
Call q(1, i): Print i; j; k, Call q(2, j): Print i; j; k, Call q(3, k): Print i; j; k, End Sub
Private Sub p(i)
i = i + 1: Print i; j; k, End Sub
Private Sub q(ByVal h, j) i = j
If h = 0 Then Call p(j) Else
If h = 1 Then Call p(i) Else j = j + 1 End If
End Sub 四、程序填空题
1.【程序说明】单击窗体后输出6~100之间所有整数的质数因子。 Private Sub pp( (1) k As Integer) Dim i As Integer i = 2 While k > 1
If (2) = 0 Then Print i;
(3) Else
i = i + 1 End If Wend Print End Sub
Private Sub Form_Click()
For i = 6 To 100 : (4) :Next i End Sub
2.【程序说明】下列过程用选择法对double类型数组按值从小到大排序。 Private Sub Sort( (1) )
Dim i As Integer, j As Integer, k As Integer, t As Double For i = 1 To (2) k=i
For j = i + 1 To n
If (3) Then k = j Next j
t = a(i): a(i) = a(j): a(j) = t Next i End Sub
3.【程序说明】下列过程用于求一元n-1次代数多项式的值。
Private Function f( (1) , x As Double) As Double Dim s As Double, i As Integer, t As Double t = x: s = a(1) For i = 2 To n
s = s + a(i) * t: (2) Next i
(3) End Sub 五、程序设计题
1.编制通用函数过程,计算Double类型一维数组所有元素的平均值。
2.编制通用Sub过程,将Single类型一维数组反序排放(如实参数组元素依次为6、5、9、7,调用后为7、9、5、6;若为-3.2、4、2.6、31、7.3,调用后为7.3、31、2.6、4、-3.2)。
3.编制通用Sub过程,在一个m行n列二维数组中查找绝对值最大的元素,以及该元素的行号、列号(提示:Sub过程的形参列表如x() As Single, m As byte, n As Byte, xmax As Single,ki As Byte,kj As Byte)。
第5章 常用控件
习 题
一、判断题
1.命令按钮不但能响应单击事件,而且还能响应双击事件。
2.如果命令按钮Default属性为True,那么任何时候按Enter键都相当于单击该命令按钮。 3.标签控件和文本框控件都能用来输入和输出文本。
4.虽然标签控件显示的文本在运行时不能编辑,但是可以通过程序代码进行改变。 5.SetFocus方法是把焦点移到指定对象上,使对象获得焦点,该方法适用于所有控件。 6.文本框控件常用事件有Change事件、KeyPress事件等,此外它也支持鼠标的Click事件和DblClick事件。
7.运行时,控件的位置可以通过程序代码改变Left和Top属性来定位,也可以直接用鼠标拖动控件来定位。
8.要在文本框中输入6位密码,并按回车键确认,则文本框的MaxLength属性可设置为6。 9.要使输入文本框的字符始终显示“#”,则应修改其PasswordChar属性为“#”。 10.在窗体上建立的控件的标题文字或显示内容的默认字体为窗体字体。 11.单选钮控件和复选框控件都具有Value属性,它们的作用完全一样。 12.单选钮能响应Click事件,但不能响应KeyPress事件。
13.使用单选钮控件数组时,它们响应同一个Click事件,由Index参数值来区分不同的按钮。 14.复选框不支持鼠标的双击事件,如果双击则系统会解释为两次单击事件。
15.设置框架时,可先在窗体上画好框架,再往框架内添置控件;也可以先设计控件,再建立框架,然后将已有控件拖动到框架中。
16.移动框架时框架内控件也跟随移动,因此框架内控件的Left和Top属性值也随之改变。 17.当列表框Style属性设置为1时,复选框将显示在列表框中,支持多选,所以可以将MultiSelect属性值设置为0、1、2中任意一个值。
18.当列表框中表项太多、超出了设计时的长度时,Visual Basic会自动给列表框加上垂直滚动条。
19.列表框和文本框一样均没有Caption属性,但都具有Text属性。
20.从几十个项目中任选其中一项或多项时可选用列表框或组合框控件来实现。 21.将组合框的Style属性设置为0时,组合框称为“下拉式组合框”,其选项可以从下拉列表框的列表项中选择,也可以由用户输入。
22.可以通过合理设置组合框的MultiSelect属性使组合框支持简单复选或扩展复选。 23.滚动条控件可作为用户输入数据的一种方法。
24.用户可拖动滚动条的滚动滑块来改变滚动条的Value值,在移动滚动滑块时,发生