1、二级 VISUAL+BASIC-100 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:100.00)1.若在窗体模块的声明部分声明了如下自定义类型和数组: Private Type ree Code As Integer Caption As String End Type Dim arr(5)As rec 则下面的输出语句中正确的是_。(分数:2.00)A.Print arr.Code(2),arr.Caption(2)B.Print arr.Code,arr.CaptionC.Print arr(2).Code,arr(2).CaptionD.Pri
2、nt Code(2),Caption(2)2.以下自定义数据类型的语句中,正确的是_。(分数:2.00)A.Type studentID As String * 20name As String * 10age As IntegerEnd studentB.Type studentID As String * 20name As String * 10age As IntegerEnd TypeC.Type studentID As Stringname As Stringage As IntegerEnd studentD.TypeID As String * 20name As Strin
3、g * 10age As IntegerEnd Type student3.下列符号常量的声明中不合法的是_。(分数:2.00)A.Const a As Single=3.5B.Const a As Double=5+8C.Const a As Integer=“25“D.Const a=“OK“4.以下变量名中合法的是_。(分数:2.00)A.x2-1B.PrintC.str_nD.2x5.以下选项中,不合法的 Visual Basic 的变量名是_。(分数:2.00)A.a5bB._xyzC.a_bD.andif6.以下变量名中合法的是_。(分数:2.00)A.x-2B.12abcC.su
4、m_totalD.print7.以下合法的 VB 变量名是_。(分数:2.00)A.#_1B.123_aC.stringD.x_1238.以下合法的 VB 变量名是_。(分数:2.00)A._xB.2yC.a#bD.x_1_x9.下列合法的变量名是_。(分数:2.00)A.snm-aB.num_9C.print $D.5avg10.以下合法的 VB 变量名是_。(分数:2.00)A._aB.yPrintC.a-bD.Type11.设有如下通用过程: Public Function f(x As Integer) Dim Y As Integer x=20 y=2 f=x*y End Funct
5、ion 在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程: Private Sub Command1_Click() Static x As Integer x=10 y=5 y=f(X) Print x;y End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是_。(分数:2.00)A.10 5B.20 40C.20 5D.10 4012.在窗体上画一个名称为 Command1 的命令按钮,再画两个名称分别为 Label1、Label2 的标签,然后编写如下程序代码: Private X As Integer Private Sub Command1_C
6、lick() X=5:Y=3 Call proe(X,Y) Label1.Caption=X Label2.Caption=Y End Sub Private Sub proc(a As Integer,ByVal b As Integer) X=a*a Y=b+b End Sub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是_。(分数:2.00)A.25 和 3B.5 和 3C.25 和 6D.5 和 613.标准模块中有如下程序代码: Public x As Integer, y As Integer Sub var_pub() x=10:y=20 End Sub 在窗体上有 1
7、 个命令按钮,并有如下事件过程: Private Sub Command1_Click() Dim x As Integer Call var_pub x=x+100 y=y+100 Print x;y End Sub 运行程序后单击命令按钮,窗体上显示的是_。(分数:2.00)A.100 100B.100 120C.110 100D.110 12014.窗体上有 1 个名称为 Command1 的命令按钮,事件过程及函数过程如下: Private Sub Command1_Click() Dim p As Integer p=m(1)+m(2)+m(3) Print p End Sub Pr
8、ivate Function m(n As Integer)As Integer Static s As Integer For i=1 To n s=s+1 Next m=s End Function 运行程序,第 2 次单击命令按钮 Command1 时的输出结果为_。(分数:2.00)A.6B.10C.16D.2815.窗体上有名称为 Command1 的命令按钮,名称分别为 Label1、Label2 和 Label3 的标签。编写如下程序:Private x As Integer Private Sub Command1_Click() Static y As Integer Dim
9、 z As Integer n=5 z=z+n y=y+n x=x+y Label1=x Label2=y Label3=z End Sub 运行程序,连续 3 次单击命令按钮后,3 个标签中分别显示的是_。(分数:2.00)A.5 5 5B.15 10 5C.15 15 15D.30 15 516.在一个工程的窗体中有如下代码: Public x As Integer Private Sub Form_Load() Dim y As Integer End Sub 在该工程的标准模块的声明部分有如下代码: Public a As Integer Private b As Integer 关于
10、上述代码,以下叙述中错误的是_。(分数:2.00)A.变量 x 的作用域是整个工程B.变量 y 的作用域是 Form_Load 过程C.变量 a 的作用域是整个工程D.变量 b 的作用域是整个标准模块17.以下关于变量作用域的叙述中,错误的是_。(分数:2.00)A.在标准模块声明部分用 Public 声明的变量的作用域为整个工程文件B.在标准模块声明部分用 Private 声明的变量的作用域为该标准模块C.在窗体的声明部分不能用 Private 声明变量D.在过程中不能使用 Public 声明变量18.在窗体模块的声明部分声明变量时,不能使用的关键字是_。(分数:2.00)A.DimB.Pu
11、blicC.PrivateD.Static19.在窗体上画一个命令按钮,然后编写如下程序: Sub inc(a As Integer) Static x As Integer x=x+a Print x; End Sub Private Sub Command1_Click() inc 2 inc 3 inc 4 End Sub 程序运行后,第一次单击命令按钮时的输出结果为_。(分数:2.00)A.2 3 4B.2 5 9C.11 14 18D.4 9 1620.设窗体上有一个 Command1 命令按钮,还有以下程序代码: Private Sub Command1_Click() Stati
12、c x As Integer x=x+1 Call proc(x) Print x, End Sub Private Sub proc(a As Integer) Static x As Integer x=x+a a=x End Sub 程序运行后,3 次单击命令按钮,则产生的输出是_。(分数:2.00)A.1 2 3B.1 3 5C.1 3 7D.2 4 621.现有如下语句: x=IIf(a50,Int(a/3),a Mod 2) 当 a=52 时,x 的值是_。(分数:2.00)A.0B.1C.17D.1822.在窗体上画一个文本框,其名称为 Text1,然后编写以下程序: Priva
13、te Sub Form_Load() Show Text1.Text=“ Text1.SetFocus End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) Char=Chr(KeyAscii) KeyAscii=Asc(UCase(Char) End Sub 以上程序的功能是_。(分数:2.00)A.把输入到文本框中的字母转换为小写显示B.把从键盘上输入的字符在文本框中原样显示C.把输入到文本框中的字母转换为大写显示D.把输入到文本框中的字符转换为其 ASCII 码显示23.语句:Print Asc(Chr $ (Mid$(“9876
14、5432“,4,2)的输出是_。(分数:2.00)A.65BAC.8765DW24.表达式 Sgn(0.25)的值是_。(分数:2.00)A.-1B.0C.1D.0.525.要计算 x 的平方根并存入变量 Y,正确的语句是_。(分数:2.00)A.y=Exp(x)B.y=Sgn(x)C.y=Int(x)D.y=Sqr(x)26.窗体上有 1 个名称为 Command1 的命令按钮,事件过程如下: Private Sub Command1_Click() m=-3.6 If Sgn(m)Then n=Int(m) Else n=Abs(m) End If Print n End Sub 运行程序
15、,并单击命令按钮,窗体上显示的内容为_。(分数:2.00)A.-4B.-3C.3D.3.627.以下表达式与 Int(3.5)的值相同的是_。(分数:2.00)A.CInt(3.5)B.Val(3.5)C.Fix(3.5)D.Abs(3.5)28.以下能对正实数 d 的第 3 位小数四舍五入的表达式是_。(分数:2.00)A.0.01*Int(d+0.005)B.0.01*Int(100*(d+0.005)C.0.01*Int(100*(d+0.05)D.0.01*Int(d+0.05)29.可以产生 3050(含 30 和 50)之间的随机整数的表达式是_。(分数:2.00)A.Int(Rn
16、d*21+30)B.Int(Rnd*20+30)C.Int(Rnd*50-Rnd*30)D.Int(Rnd*30+50)30.能够产生 1 到 50 之间(含 1 和 50)随机整数的表达式是_。(分数:2.00)A.Int(Rnd*51)B.Int(Rnd(50)+1)C.Int(Rnd*50)D.Int(Rnd*50+1)31.在窗体上画 1 个命令按钮和 1 个文本框,其名称分别为 Command1 和 Text1,再编写如下程序: Dim ss As String Private Sub Text1_KeyPress(KeyAscii As Integer) If Chr(KeyAsc
17、ii)“Then ss=ss+Chr(KeyAscii) End Sub Private Sub Command1_Click() Dim m As String,i As Integer For i=Len(ss)To 1 Step-1 m=m+Mid(ss,i,1) Next Text1.Text=UCase(m) End Sub 程序运行后,在文本框中输入“Number 100”,并单击命令按钮,则文本框中显示的是_。(分数:2.00)A.NUMBER 100B.REBMUNC.REBMUN 100D.001 REBMUN32.下面程序运行时,若输入“Visual Basic Progr
18、amming”,则在窗体上输出的是_。 Private Sub Command1_Click() Dim count(25)As Integer,ch As String ch=UCase(InputBox(“请输入字母字符串“) For k=1 To Len(ch) n=Asc(Mid(ch,k,1)-Asc(“A“) If n=0 Then count(n)=count(n)+1 End If Next k iTI=count(0) For k=1 To 25 If mcount(k)Then m=count(k) End If Next k Ptint m End Sub(分数:2.00
19、)A.0B.1C.2D.333.窗体上有 1 个名称为 Command1 的命令按钮,事件过程及函数过程如下: Private Sub Command1_Click() Dim m As String m=InputBox(“请输入字符串“) Print pick_str(m) End Sub Private Function pick_str(s As String)As String temp=“ i=1 sLen=Len(s) Do While i=sLen/2 temp=temp+Mid(s,i,1)+Mid(s,sLen-i+1,1) i=i+1 Loop pick_str=temp
20、 End Function 运行程序,单击命令按钮,并在输入对话框中输入“basic”,则在窗体上显示的内容为_。(分数:2.00)A.bcaiB.cbiaC.bcaisD.cbias34.在窗体上画一个文本框,名称为 Textl,然后编写如下程序: Private Sub Form_Load() Show Text1.Text=“ Text1.SetFocus End Sub Private Sub Form_Click() Dim a As String,s As String a=Text1.Text s=“ For k=1 To Len(a) s=UCase(Mid(a,k,1)+s
21、Next k Text1.Text=s End Sub 程序运行后,在文本框中输入一个字符串,然后单击窗体,则文本框中的内容_。(分数:2.00)A.与原字符串相同B.与原字符串中字符顺序相同,但所有字母均转换为大写C.为原字符串的逆序字符串,且所有字母转换为大写D.为原字符串的逆序字符串35.窗体上有一个名称为 Text1 的文本框,一个名称为 Command1 的命令按钮。命令按钮的单击事件过程如下: Private Sub Command1_Click() Dim x1 As Integer,x2 As Integer,x3 As Integer s=Trim(Text1.Textl s
22、trLen=Len(s) For i=1 To strLen C=Mid(s,i,1) Select Case C Case “0“ To “9“ x1=x1+1 Case “A“ To “Z“ x2=x2+1 Case “a“ To “Z“ x3=3+1 Case Else x4=x4+1 End Select Next Print“x1“;x1,“x2“;x2,“x3“;x3,“x4“;x4 End Sub 以下关于上述程序的叙述中,正确的是_。(分数:2.00)A.s 是去掉文本框中字符串末尾的空格B.Select Case C 有误,Case 后应该是一个表达式C.各 Case 分支条
23、件有误,不能用 To 表示字符的取值区间D.x4 是字符串中非字母、非数字字符的个数36.窗体上有一个名称为 Text1 的文本框,一个名称为 Command1 的命令按钮。要求编写一个程序,统计文本框中 09 各数字字符的个数。某人编写如下程序: Private Sub Command1_Click() Dim count(10) As Integer 第 1 个 For 循环 For i=0 To 9 count(i)=0 Next S=Trim(Text1.Text) strLen=Len(S) 第 2 个 For 循环 For i=1 To strLen C=Mid(g,i,1) If
24、 e=“0“ And C=“9“ Then x=Val(c) count(i)=count(i)+1 End If Next 第 3 个 For 循环 For i=0 To 9 Print Str(i), count(i) Next End Sub 运行程序后,发现不能实现题目的要求,程序应该进行的修改是_。(分数:2.00)A.将第 2 个 For 循环的初值改为 0B.将第 2 个 For 语句改为 For i=0 To 9C.去掉 x=Val(c)语句D.将 count(i)=count(i)+1 改为 count(x)=count(x)+137.要求如果 x 被 7 除余 2,则输出
25、x 的值,下列语句中不能实现此功能的语句是_。(分数:2.00)A.If x mod 7=2 Then Print xB.If x-(x/7)*7=2 Then Print xC.If x-(x/7)*7=2 Then Print xD.If x-Int(x/7)*7=2 Then Print x38.下面程序计算并输出的是_。 Private Sub Command1_Click() a=10 s=0 Do s=s+a*a*a a=a-1 Loop Until a=0 Print s End Sub A.13+23+33+103的值 B.10!+3!+2!+1!的值 C.(1+2+3+10)
26、3的值 D.10 个 103的和(分数:2.00)A.B.C.D.39.在窗体上画一个名称为 Command1 的命令按钮,并编写如下事件过程: Private Sub Command1_Chck() x=1 s=0 For i=1 To 5 x=x/i s=s+x Next Print s End Sub 该事件过程的功能是计算_。 AS=1+2+3+4+5 B C D (分数:2.00)A.B.C.D.40.下面的程序是利用公式:=4-4/3+4/5-4/7+4/9-4/11+计算 的近似值 Pvivate Sub Command1_Click() Dim PI As Double, x
27、As Double, k As Long, sign As Integer sign=1 k=1 PI=0 Do x=sign*4/(2*k-1) PI=PI+x k=k+1 sign=_ Loop Until Abs(x)0.000001 Print PI End Sub 在空处应填写的是_。(分数:2.00)A.sign+1B.-signCxDk41.假定 Picture1 和 Text1 分别为图片框和文本框的名称,则下列错误的语句是_。(分数:2.00)A.Print 25B.Picture1.Print 25C.Text1.Print 25D.Debug.Print 2542.有如下
28、语句序列: Dim a,b As Integer Print a Print b 执行以上语句序列,下列叙述中错误的是_。(分数:2.00)A.输出的 a 值是 0B.输出的 b 值是 0C.a 是变体类型变量D.b 是整型变量43.以下不能用 Print 方法输出数据的对象或窗口是_。(分数:2.00)A.窗体B.立即窗口C.图片框D.代码窗口44.下列程序段的输出结果是_。 x=5 Print x+1; x+1(分数:2.00)A.6 6B.5 5C.6 7D.5 645.Print Format(1234.56, “#.#“)语句的输出结果是_。(分数:2.00)A.123.4B.123
29、4.6C.1234.5D.1234.5646.执行下列语句: strInput=InputBox(“请输入字符串“,“字符串对话框“,“字符串“) 将显示输入对话框。此时如果直接单击“确定”按钮,则变量 strInput 的内容是_。(分数:2.00)A.“请输入字符串”B.“字符串对话框”C.“字符串”D.空字符串47.窗体上有一个名称为 Text1 的文本框,一个名称为 Command1 的命令按钮。窗体文件的程序如下: Private Type x a As Integer b As Integer End Type Private Sub Command1_Click() Dim y
30、As x y.a=InputBox(“) If y.a/2=y.a/2 Then y.b=y.a*y.a Else y.b=Fix(y.a/2) End If Text1.Text=y.b End Sub 对以上程序,下列叙述中错误的是_。(分数:2.00)A.x 是用户定义的类型B.InputBox 函数弹出的对话框中没有提示信息C.若输入的是偶数,y.b 的值为该偶数的平方D.Fix(y.a/2)把 y.a/2 的小数部分四舍五入,转换为整数返回48.窗体上有一个名称为 Command1 的命令按钮,其事件过程如下: Private Sub Command1_Click() x=“Visu
31、alBasicProgramming“ a=Right(x,11) b=Mid(x,7,5) e=MsgBox(a,b) End Sub 运行程序后单击命令按钮,以下叙述中错误的是_。(分数:2.00)A.信息框的标题是 BasicB.信息框中的提示信息是 ProgrammingC.e 的值是函数的返回值D.MsgBox 的使用格式有错49.下列叙述中正确的是_。(分数:2.00)A.MsgBox 语句的返回值是一个整数B.执行 MsgBox 语句并出现信息框后,不用关闭信息框即可执行其他操作C.MsgBox 语句的第一个参数不能省略D.如果省略 MsgBox 语句的第三个参数(Title),
32、则信息框的标题为空50.用来设置文字字体是否为粗体的属性是_。(分数:2.00)A.FontltalicB.FontUnderlineC.FontSizeD.FontBold二级 VISUAL+BASIC-100 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:100.00)1.若在窗体模块的声明部分声明了如下自定义类型和数组: Private Type ree Code As Integer Caption As String End Type Dim arr(5)As rec 则下面的输出语句中正确的是_。(分数:2.00)A.Print arr.Cod
33、e(2),arr.Caption(2)B.Print arr.Code,arr.CaptionC.Print arr(2).Code,arr(2).Caption D.Print Code(2),Caption(2)解析:解析 定义一个自定义类型的数组,数组元素表示为:数组名(下标).成员名,故选 C。2.以下自定义数据类型的语句中,正确的是_。(分数:2.00)A.Type studentID As String * 20name As String * 10age As IntegerEnd studentB.Type studentID As String * 20name As Str
34、ing * 10age As IntegerEnd Type C.Type studentID As Stringname As Stringage As IntegerEnd studentD.TypeID As String * 20name As String * 10age As IntegerEnd Type student解析:解析 自定义数据类型的语法结构是: Type 自定义类型名 成员名 1(下标)As标准类型名 1 成员名 2(下标)As标准类型名 2 End Type 其中,成员可以定义为定长的或不定长字符串,也可定义为数组。 本题中,B 选项符合语法规则,故 B 选项正
35、确。3.下列符号常量的声明中不合法的是_。(分数:2.00)A.Const a As Single=3.5B.Const a As Double=5+8C.Const a As Integer=“25“ D.Const a=“OK“解析:解析 定义符号常量的一般格式:Const 常量名As 数据类型=表达式,“常量名”参数就是给常量命名。“数据类型”表示常量的数据类型,一般可以省略,这时由后面的“表达式”参数来指明常量的数据类型。表达式可以是数值型常量、字符型常量、布尔型常量和日期型常量。4.以下变量名中合法的是_。(分数:2.00)A.x2-1B.PrintC.str_n D.2x解析:解析
36、 Visual Basic 中变量名的命名规则:必须以字母或汉字开头由字母、汉字、数字或下画线组成不能使用 Visual Basic 的保留字。本题中 x2-1 中有-(减号),不是下画线。print 是 Visual Basic 的保留字,也不能作变量名。2x 以数字开头,也是错误的。故 C 选项正确。5.以下选项中,不合法的 Visual Basic 的变量名是_。(分数:2.00)A.a5bB._xyz C.a_bD.andif解析:解析 根据 Visual Basic 中变量的命名规则,本题选项 B 中变量名以下画线开头,不合法。故 B选项错误。6.以下变量名中合法的是_。(分数:2.
37、00)A.x-2B.12abcC.sum_total D.print解析:解析 根据 Visual Basic 中变量名的命名规则,变量 x-2 中有-减号,不合法;变量 12abc 是以数字开头,不合法;变量 print 是 Visual Basic 的保留字,不能作变量名,也不合法。sum_total 是符合命名规则,是合法的。故选 C。7.以下合法的 VB 变量名是_。(分数:2.00)A.#_1B.123_aC.stringD.x_123 解析:解析 根据 Visual Basic 中变量的命名规则,#_1 中#是类型符号,变量名中不能用 Visual Basic 保留符号。故不合法。
38、123_a 以数字开头不合法。string 是 Visual Basic 的关键字,也不合法。故 D 选项正确。8.以下合法的 VB 变量名是_。(分数:2.00)A._xB.2yC.a#bD.x_1_x 解析:解析 根据 Visual Basic 中变量的命名规则,_x 不能以_下画线开头,不合法;2y 不能以数字开头,不合法;a#b 中有#,不合法;D 选项符合命名规则,故 D 选项正确。9.下列合法的变量名是_。(分数:2.00)A.snm-aB.num_9 C.print $D.5avg解析:解析 根据 Visual Basic 中变量的命名规则,变量名 sum_a 中有-减号,不合法
39、;print 是Visual Basic 保留字,不能作变量名,不合法;5avg 不能以数字开头,不合法。故选 B。10.以下合法的 VB 变量名是_。(分数:2.00)A._aB.yPrint C.a-bD.Type解析:解析 变量的命名规则是:必须以字母开头,由字母、汉字、数字或下画线组成;不能在变量名中出现句点“.”、空格或者嵌入字符,例如!、#、$、%、y End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是_。(分数:2.00)A.10 5B.20 40 C.20 5D.10 40解析:解析 过程 f 中形参变量 x 没有指定传递方式,则默认按地址传递,会影响实参值。
40、而变量 y 在按钮事件过程和 f 过程中都是局部变量,只在本过程中起作用。因此执行 y=f(x)后,x 值在过程中被改变为 20,而 y 被赋为过程返回值 40。因此程序窗体上会显示 20 和 40。12.在窗体上画一个名称为 Command1 的命令按钮,再画两个名称分别为 Label1、Label2 的标签,然后编写如下程序代码: Private X As Integer Private Sub Command1_Click() X=5:Y=3 Call proe(X,Y) Label1.Caption=X Label2.Caption=Y End Sub Private Sub proc
41、(a As Integer,ByVal b As Integer) X=a*a Y=b+b End Sub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是_。(分数:2.00)A.25 和 3 B.5 和 3C.25 和 6D.5 和 6解析:解析 虽然在过程 proc 中参数 a 默认为按地址传递,参数 b 指定了 ByVal(按值)方式传递,但过程中并没有对 a,b 的值改变,只对变量 X 和 Y 进行了赋值,而 X 是在窗体模块中起作用的模块变量,而变量 Y 在 proc 过程中没有声明,要整个模块中也没有声明,说明它是一个局部变量,只在本过程中起作用。因此,在 proc 过程中
42、 X=a*a=5*5=25,会使按钮单击事件中的变量 X 值变为 25,而按钮单击事件过程中的变量 Y 不受影响,仍是原来的值 3。因此两个标签上会分别显示 25 和 3。13.标准模块中有如下程序代码: Public x As Integer, y As Integer Sub var_pub() x=10:y=20 End Sub 在窗体上有 1 个命令按钮,并有如下事件过程: Private Sub Command1_Click() Dim x As Integer Call var_pub x=x+100 y=y+100 Print x;y End Sub 运行程序后单击命令按钮,窗体
43、上显示的是_。(分数:2.00)A.100 100B.100 120 C.110 100D.110 120解析:解析 在标准模块中定义的使用 Public 定义的变量是全局变量,全局变量可以在工程的每个模块、每个过程中使用。如果在过程中有与全局变量同名的过程变量则优先使用过程变量。在命令按钮事件中定义了局部变量 x 与全局变量同名,因此在此事件中使用局部变量,而变量 y 在此过程中没有定义,则仍使用全局变量。因此输出时 x 值为 100,y 值为 120。14.窗体上有 1 个名称为 Command1 的命令按钮,事件过程及函数过程如下: Private Sub Command1_Click(
44、) Dim p As Integer p=m(1)+m(2)+m(3) Print p End Sub Private Function m(n As Integer)As Integer Static s As Integer For i=1 To n s=s+1 Next m=s End Function 运行程序,第 2 次单击命令按钮 Command1 时的输出结果为_。(分数:2.00)A.6B.10C.16D.28 解析:解析 在过程 m 中,s 被定义为静态变量,因此它的值只在第一次调用过程时初始化,以后再调用都不再初始化,而是保留之前的值。m 过程的功能是根据参数值累加,因此第
45、 1 次单击时,m(1)+m(2)+m(3)=1+3+6=10,此时变量 s 的值,即过程 m 的值为 6,第 2 次单击时,m(1)+m(2)+m(3)=7+9+12=28。因此答案为 D。15.窗体上有名称为 Command1 的命令按钮,名称分别为 Label1、Label2 和 Label3 的标签。编写如下程序:Private x As Integer Private Sub Command1_Click() Static y As Integer Dim z As Integer n=5 z=z+n y=y+n x=x+y Label1=x Label2=y Label3=z En
46、d Sub 运行程序,连续 3 次单击命令按钮后,3 个标签中分别显示的是_。(分数:2.00)A.5 5 5B.15 10 5C.15 15 15D.30 15 5 解析:解析 变量 x 被定义为窗体模块变量,它在整个窗体模块中有效。Click 事件中变量 y 定义为Static,即静态变量,它的值在每调用过程时都会保留上次的值。每次单击按钮标签中显示的值即x、y、z 的值是: 第一次,n=5,z=z+n=0+5=5,y=y+n=0+5=5,x=x+y=0+5=5; 第二次,n=5,z=z+n=0+5=5,y=y+n=5+5=10,x=x+y=5+10=15; 第三次,n=5,z=z+n=0
47、+5=5,y=y+n=10+5=15,x=x+y=15+15=30; 因此 3 次单击命令按钮后,3 个标签中分别显示的是 30 15 5。16.在一个工程的窗体中有如下代码: Public x As Integer Private Sub Form_Load() Dim y As Integer End Sub 在该工程的标准模块的声明部分有如下代码: Public a As Integer Private b As Integer 关于上述代码,以下叙述中错误的是_。(分数:2.00)A.变量 x 的作用域是整个工程 B.变量 y 的作用域是 Form_Load 过程C.变量 a 的作用域
48、是整个工程D.变量 b 的作用域是整个标准模块解析:解析 Visual Basic 中变量按作用域分为 3 类。局部变量:在过程内用 Dim 语句或 Static 语句声明的变量,只能在本过程中使用。窗体/模块级变量:在“通用声明”段中用 Dim 语句或 Private 语句声明的变量,可被本窗体/模块的任何过程访问。全局变量:在“通用声明”段中用 Public 语句声明的变量,可被本应用程序的任何过程或函数访问。17.以下关于变量作用域的叙述中,错误的是_。(分数:2.00)A.在标准模块声明部分用 Public 声明的变量的作用域为整个工程文件B.在标准模块声明部分用 Private 声明的变量的作用域为该标准模块C.在窗体的声明部分不能用 Private 声明变量 D.在过程中不能使用 Public 声明变量解析:解析 关于变量的应用范围,可以通过下表具体了解。 全局变量 作用范围 局部变量 窗体模块 级变量 窗体 标准模块 声明方式 Dim.Static Di