1、国家计算机二级(VB)89 及答案解析(总分:100.00,做题时间:120 分钟)一、选择题(每小题 2分,共 70分) 下列各(总题数:35,分数:70.00)1.下列叙述中正确的是_。 (分数:2.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对2.下列说法错误的是( )。(分数:2.00)A.CREATE REPORT PP1B.MODIFY REPORT PP1C.CREATE PP1D.MODIFY PP13.用什么语句可以选择指定的表项或取消已选择的表项?(分数:2.00)A.January 10,1
2、979B.#January 10,1997#C.“January 10,1997“D.17.以下关于 Visual Basic数据类型的说法,不恰当的是( )。(分数:2.00)A.Visual Basic 60 提供的数据类型主要有字符串型和数值型,此外还有字节、货币、对象、日期、布尔和变体数据类型等B.目前 Decimal数据类型只能在变体类型中使用C.用户不能定义自己的数据类型D.布尔型数据只能取两种值,用两个字节存储18.下面可以正确定义 2个整型变量和 1个字符串变量的语句是【 】(分数:2.00)A.Dim n,m As Integer,s As StringB.Dim a,b$,
3、c As StringC.Dim a As Integer,b,c As StringD.Dim x,y As Integer,z As Suing19.有如下函数过程: Function HFC(ByVal x AS Integer,ByVal y As Integer)As Integer Do While y 0 sic=x/y X=y y=sic Loop HFC=x End Function 以下是该函数的调用过程,该程序的运行结果是( )。 Private Sub Command1 _ Click( ) Dim a AS Integer Dim b As Integer a=12
4、b=2 x=HFC(a,b) Print x End Sub (分数:2.00)A.0B.6C.2D.8020.下列程序段的执行结果为( )。 a=1 b=0 Select Case a Case 1 Select Case b Case 0 Print“*0*“ Case 1 Print“*1*“ End Select Case 2 Print“*2*“ End Select (分数:2.00)A.* * 0 * *B.* * 1 * *C.* * 2 * *D.021.单击命令按钮,下列事件过程的执行结果为( )。 Private Sub Command1_Click( ) Dim x A
5、s Integer, y As Integer x=40:y=72 Call PtoP(x, y) Print x; y End Sub Public Sub PtoP(Byval n AS Integer, ByVal m Aa Integer) n = n / 10+2 m = m / 10+2 End Sub (分数:2.00)A.0 8B.40 72C.4 50D.78 5022.运行下列程序段后,显示的结果为( )。 J1=23 J2=32 If J1J2 Then Print J2 Else Print J1 (分数:2.00)A.23B.32C.55D.233223.下列过程定义
6、语句中,形参个数为不确定数量的过程是( )。(分数:2.00)A.Private Sub Pro3(x As Double,y As Single)B.Private Sub Pro3(Arr(3),Option x,Option y)C.Private Sub Pro3(ByRef x,ByVal y,Arr()D.Private Sub Pro3(ParamArray Arr()24.在窗体上画一个名称为 Command1的命令按钮,然后编写如下事件过程: Option Base 1 Private Sub Command1_Click( ) Dim a a=Array(1,2,3,4,5
7、) For i=1 To UBound(a) a(i)=a(i)+i-1 Next Print a(3) End Sub 程序运行后,单击命令按钮,则在窗体上显示的内容是( )。 (分数:2.00)A.4B.5C.6D.725.以下叙述中错误的是( )。 (分数:2.00)A.事件过程是响应特定事件的一段程序B.不同的对象可以具有相同名称的方法C.对象的方法是执行指定操作的过程D.对象事件的名称可以由编程者指定26.表达式 5 Mod 3+3/5*2的值是( )。 (分数:2.00)A.0B.2C.4D.627.单击命令按钮时,下列程序的执行结果是( )。 Private Sub Comman
8、d1_Click() Dim a As Integer,b As Integer,C As Integer a=3 b=4 c=5 Print SecProc(c,b,a) End Sub Function FirProc (x As Integer,y As Integer,z As Integer) FirProc=2 * x + y + 3 * z+2 End Function Function SecProc (x As Integer,y As hteger,z As Integer) SecProc=FirProc(z,x,y)+x+7 End Function (分数:2.00)
9、A.20B.25C.37D.3228.以下关于图片框控件的说法中,错误的是( )。 (分数:2.00)A.可以通过 Print方法在图片框中输出文本B.清空图片框控件中图形的方法之一是加载一个空图形C.图片框控件可以作为容器使用D.用 Stretch属性可以自动调整图片框中图形的大小29.在长度为 64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为【 】(分数:2.00)A.63B.64C.6D.730.Visual Basic集成的主窗口中不包括( )。(分数:2.00)A.属性窗口B.标题栏C.菜单栏D.工具栏31.阅读程序: Option Base 1 Private Sub F
10、orm_Click( ) Dim arr,Sum Sum=0 arr=Array(1,3,5,7,9,11,13,15,17,19) For i=1 To 10 If arr(i)/3=arr(i)/3 Then Sum=Sum+arr(i) End If Next i Print Sum End Sub 程序运行后,单击窗体,输出结果为( )。 (分数:2.00)A.13B.14C.27D.1532.下列程序段的执行结果为( )。 X=2 Y=5 If X * Y 1 Then Y=Y - 1 Else Y=-1 Print Y-X0 (分数:2.00)A.TrueB.FalseC.-1D.
11、133.语句 Print 5/4*6/5 Mod 2的输出结果是( )。 (分数:2.00)A.0B.1C.2D.334.为了清除窗体上的一个控件,下列正确的操作是_。 (分数:2.00)A.按回车键B.按 Esc键C.选择(单击)要清除的控件,然后按 Del键D.选择(单击)要清除的控件,然后按回车键35.在窗体上画一个名称为 List1的列表框,一个名称为 Label1的标签,列表框中显示若干 个项目。当单击列表框中的某个项目时,在标签中显示被选中项目的名称。下列能正确 实现上述操作的程序是:_。 (分数:2.00)A.Private Sub List1_Click() Label1.Ca
12、ption = List1.ListIndex End SubB.Private Sub List1_Click() Label1.Name=List1.Lis tIndex End SubC.Private Sub List1_Click() Label1.Name=List1.Text End SubD.Private Sub List1_Click() Label1.Caption =List1.Text End Sub二、填空题(每空 2分,共 30分)(总题数:10,分数:30.00)36.下面运行程序后,单击命令按钮,输出的结果是 1。 Private Sub Command1_C
13、lick2 Dim a%(1 To 4),b%(3 To 6),i%,s1#,s2# For i=1 To 4 a(i) =i Next i For i=3 To 6 b(i) =i Next i s1=YAS(A) s2=YAS(B) Print“s1=“;s1;“s2=“;s2 End Sub Function YAS(a3As Integer) Dim t#,i% t=1 For i=LBound(A) To UBound(A) t=t * a(i) Next i YAS=t End Function (分数:3.00)填空项 1:_37.如果存在如下过程: Private Functi
14、on FMax(a1As Integer) Dim First As Integer,Last As Integer,i As Integer First=LBound(A) Last=UBound(A) Max=a(First) For i=First To Last If a(i) Max Then Max=a(i) Next i FMax=Max End Function 在窗体上添加一个命令按钮,然后编写如下事件过程: Private Sub Command1 Click2 ReDim m(1 To 4) As Integer m(1)=20:m(2)=30:m(3)=50:m(4)=
15、100 c=FMax(m) Print c End Sub 单击命令按钮,其输出结果为 3。 (分数:3.00)填空项 1:_38.描述“x 是小于 100的非负整数“的 Visual Basic表达式是 1。(分数:3.00)填空项 1:_39.设某循环队列的容量为 50,头指针 front=5(指向队头元素的前一位置),尾指针 rear=29(指向队尾元素),则该循环队列中共有 1 个元素。(分数:3.00)填空项 1:_40.在窗体上画一个命令按钮和一个文本框,其名称分别为 Command1和 Text1,然后编写如下事件过程: Private Sub Commandl_Click1 D
16、im inData As String Textl.Text=“ Open“d:myfile.txt“For 2As#1 Do While 3 Input#,inData Loop Text1.Text=Text1.Text+inD Loop Close#1 End Sub 程序的功能是,打开 D盘根目录下的文本文件 myfile.txt,读取它的全部内容并显示在文本框中。请填空。 (分数:3.00)填空项 1:_41.在窗体上有一个命令按钮,然后编写如下程序: Function Trans(ByVal num As Long) As Long Dim k As Long k=l Do Whi
17、le num k=k * (num Mod 10) num=num/10 Loop Trans=k Print Trans End Function Private Sub Commandl_Click1 Dim m As Long Dim s As Long m=InputBox(“请输入一个数“) s=Trans(m) End Sub 程序运行时,单击命令按钮,在输入对话框中输入“789”,输出结果为 2,在输入对话框中输入“987”输出 3,在输入对话框中输入“879”,输出结果为 4。 (分数:3.00)填空项 1:_42. 1的任务是诊断和改正程序中的错误。(分数:3.00)填空项
18、1:_43.在窗体上画一个通用对话框,其名称为 CommonDialog1,然后画一个命令按钮,并编写下列事件过程:Private Sub Command1_Click1 CommonDialog1.Filter=“All Files(*.*)|*.*|Text Files“_ 解析:“+”,“-”运算符不能用于常量。17.以下关于 Visual Basic数据类型的说法,不恰当的是( )。(分数:2.00)A.Visual Basic 60 提供的数据类型主要有字符串型和数值型,此外还有字节、货币、对象、日期、布尔和变体数据类型等B.目前 Decimal数据类型只能在变体类型中使用C.用户不
19、能定义自己的数据类型 D.布尔型数据只能取两种值,用两个字节存储解析:在 Visual Basic 中,提供的数据类型主要有字符串型和数值型,此外还有字节、货币、对象、日期、布尔和变数数据类型等,所以选项 A)是正确的;除了基本数据类型外,用户还可以自己定义数据类型,这个是 VisualBasic所支持的,所以选型 C) 不正确;因为目前 Decimal数据类型只能在变体类型中使用,也就是说,不能把一个变量声明为 Decimal类型,所以选项 B)是正确的;布尔型数据是一个逻辑值,用两个字节存储,它只能取两种值,即 True或 False,所以选项 D)也是正确的。18.下面可以正确定义 2个
20、整型变量和 1个字符串变量的语句是【 】(分数:2.00)A.Dim n,m As Integer,s As StringB.Dim a,b$,c As StringC.Dim a As Integer,b,c As StringD.Dim x,y As Integer,z As Suing 解析:在 Visual Basic中,变量的定义格式有两种,第一种是:Declare 变量名 As类型,“Declare“可以是Dim,Static,Redim,Public或 Private,“As“是关键字,“类型“可以是基本的数据类型也可以是用户自定义的类型;第二种是用类型说明符来定义变量,即在定义
21、变量名后面加上类型说明符;如果变量名后面没有类型说明符,又不是第一种定义方式的话,则定义的变量是变体变量;在本题中“是整型变量的类型说明符,“$“是字符串变量类型说明符。19.有如下函数过程: Function HFC(ByVal x AS Integer,ByVal y As Integer)As Integer Do While y 0 sic=x/y X=y y=sic Loop HFC=x End Function 以下是该函数的调用过程,该程序的运行结果是( )。 Private Sub Command1 _ Click( ) Dim a AS Integer Dim b As In
22、teger a=12 b=2 x=HFC(a,b) Print x End Sub (分数:2.00)A.0B.6 C.2D.80解析:本题考查函数调用和输出格式的语句。调用 HFC的过程如下: x=12,y=2 时,sic=6,x=2,y=6 x=2,y=6 时,sic=0,x=6,y=0 y=0,跳出循环,输出 x=6并结束程序。 20.下列程序段的执行结果为( )。 a=1 b=0 Select Case a Case 1 Select Case b Case 0 Print“*0*“ Case 1 Print“*1*“ End Select Case 2 Print“*2*“ End
23、Select (分数:2.00)A.* * 0 * * B.* * 1 * *C.* * 2 * *D.0解析:此题考查的是 Select Case结构。 Select Case 结构的一般格式为: Select Case expr Case expr1 clause 1 Case expr2 clause2 Case else clause n End Select 其中 expr是测试表达式,如果满足 expr n就执行这条语句,然后退出,因为 a=1,b= 0,所以执行语句 Print“* * 0 * *“。 21.单击命令按钮,下列事件过程的执行结果为( )。 Private Sub
24、Command1_Click( ) Dim x As Integer, y As Integer x=40:y=72 Call PtoP(x, y) Print x; y End Sub Public Sub PtoP(Byval n AS Integer, ByVal m Aa Integer) n = n / 10+2 m = m / 10+2 End Sub (分数:2.00)A.0 8B.40 72 C.4 50D.78 50解析: 此题是函数过程的调用。 在调用过程时,一般主调与被调过程之间有数据传递,即将主调过程的实参传递给被调用的过程,完成实参与形参的结合,然后执行被调过程,在
25、Visual Basic中,实参与形参的结合有两种方式:即传址与传值。这两种方法的特点如下: 传址的结合过程是,当调用一个过程时,它将实参的地址传给形参,因此在被调用的过程中,对形参的任何操作都变成了对相应实参的操作,因此实参的值会随形参的改变而改变。 传值的结合过程是,当调用一个过程时,系统将实参的值复制给形参并断开了联系,被调用过程中的操作是在形参自己的存储单元中进行的,当过程调用结束时,这些形参所占用的存储单元也同时被释放,因此在过程中对形参的任何操作不会影响实参。而题中被调过程 PtoP中有两个形参,两者均为传值方式。主调过程分别把实参 x、y 传递给 PtoP,所以当过程调用结束后,
26、实参 x、y 的值都没有改变,最后输出的值应为 40 72。 22.运行下列程序段后,显示的结果为( )。 J1=23 J2=32 If J1J2 Then Print J2 Else Print J1 (分数:2.00)A.23B.32 C.55D.2332解析:题中是条件语句 If J12 Then Print J2 Else Print J1,即 J1 J2 时输出 J2,否则输出 J1,即输出两者的最大者。显然应该是 32,正确答案是选项 B)。23.下列过程定义语句中,形参个数为不确定数量的过程是( )。(分数:2.00)A.Private Sub Pro3(x As Double,
27、y As Single)B.Private Sub Pro3(Arr(3),Option x,Option y)C.Private Sub Pro3(ByRef x,ByVal y,Arr()D.Private Sub Pro3(ParamArray Arr() 解析:本题考核可选参数、可变参数的定义方法。 在虚参中,As 关键字用于说明变量或数组的类型;Option关键字用于说明虚参是可选的 ByRef关键字用于说明传址的数据传送方式;ByVal 关键字用于说明传值的数据传送方式;ParamArray 关键字用于说明参数的个数是不确定的,即过程可以接受任意个数的参数。24.在窗体上画一个名称
28、为 Command1的命令按钮,然后编写如下事件过程: Option Base 1 Private Sub Command1_Click( ) Dim a a=Array(1,2,3,4,5) For i=1 To UBound(a) a(i)=a(i)+i-1 Next Print a(3) End Sub 程序运行后,单击命令按钮,则在窗体上显示的内容是( )。 (分数:2.00)A.4B.5 C.6D.7解析:25.以下叙述中错误的是( )。 (分数:2.00)A.事件过程是响应特定事件的一段程序B.不同的对象可以具有相同名称的方法C.对象的方法是执行指定操作的过程D.对象事件的名称可以
29、由编程者指定 解析:26.表达式 5 Mod 3+3/5*2的值是( )。 (分数:2.00)A.0B.2 C.4D.6解析:27.单击命令按钮时,下列程序的执行结果是( )。 Private Sub Command1_Click() Dim a As Integer,b As Integer,C As Integer a=3 b=4 c=5 Print SecProc(c,b,a) End Sub Function FirProc (x As Integer,y As Integer,z As Integer) FirProc=2 * x + y + 3 * z+2 End Function
30、 Function SecProc (x As Integer,y As hteger,z As Integer) SecProc=FirProc(z,x,y)+x+7 End Function (分数:2.00)A.20B.25C.37 D.32解析:此题程序代码中用了两层调用,我们对样的问题要多加小心,不能掉 以轻心,千万不要把实参和相对应的形参弄混淆。主调过程 Commandl_Click;输出的是 SecProc(c,b,a)返回值,调用过程 SecProc时,主调过程分别把实参 c、b、a 地址传给形 参 x、y、z,此时在过程 SecProc中,SecProc(a,cb)+7。由此
31、看出,程序段执行 此语句时,将调用过程 FirProe。把实参 a,c,b 的地址分别传给形参x、y、z,此时在过程 FirProe 中,Firproc=2 * x + y + 3 * z + 2,所以 FirProc(a,c,b)=6+4+15+2=27, SecProc(a,c,b)=27+3+7=37。28.以下关于图片框控件的说法中,错误的是( )。 (分数:2.00)A.可以通过 Print方法在图片框中输出文本B.清空图片框控件中图形的方法之一是加载一个空图形C.图片框控件可以作为容器使用D.用 Stretch属性可以自动调整图片框中图形的大小 解析:29.在长度为 64的有序线性
32、表中进行顺序查找,最坏情况下需要比较的次数为【 】(分数:2.00)A.63B.64 C.6D.7解析:顺序查找是从线性表的第一个元素开始依次向后查找,如果线性表中的第一个元素就是要查找的元素,则只需要做一次比较就查找成功;但如果要查找的元素是线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。30.Visual Basic集成的主窗口中不包括( )。(分数:2.00)A.属性窗口 B.标题栏C.菜单栏D.工具栏解析:在 Visual Basic集成的主窗口又称为设计窗口,它由标题栏、菜单栏、工具栏等几部分组成;
33、标题栏是位于屏幕的顶部的水平条,它显示应用程序的名字,启动 Visual Basic后,标题栏中出现的信息是“工程 1-Microsoft Visual Basic设计”;菜单栏位于标题栏之下,提供了开发、调试应用程序的工具,包括“文件”菜单、“编辑”菜单、“试图”菜单、“工程”菜单等;工具栏位于菜单栏的下面,它以图标形式提供了部分常用命令的功能;属性窗门不在主窗口的范围之内。31.阅读程序: Option Base 1 Private Sub Form_Click( ) Dim arr,Sum Sum=0 arr=Array(1,3,5,7,9,11,13,15,17,19) For i=1
34、 To 10 If arr(i)/3=arr(i)/3 Then Sum=Sum+arr(i) End If Next i Print Sum End Sub 程序运行后,单击窗体,输出结果为( )。 (分数:2.00)A.13B.14C.27 D.15解析:32.下列程序段的执行结果为( )。 X=2 Y=5 If X * Y 1 Then Y=Y - 1 Else Y=-1 Print Y-X0 (分数:2.00)A.TrueB.False C.-1D.1解析:Print 方法具有计算和输出双重功能,对于表达式,它先计算后输出,此题中经过第一步的条件语句后,Y 的数值为-1,则 Y-X的值
35、为-3,小于 0,所以 Y -X0 为逻辑假,故输出结果应该为 False。33.语句 Print 5/4*6/5 Mod 2的输出结果是( )。 (分数:2.00)A.0B.1 C.2D.3解析:34.为了清除窗体上的一个控件,下列正确的操作是_。 (分数:2.00)A.按回车键B.按 Esc键C.选择(单击)要清除的控件,然后按 Del键 D.选择(单击)要清除的控件,然后按回车键解析:要想删除窗体上的某个控件,首先要选中这个控件,然后按下删除键(Del 键)来删除。35.在窗体上画一个名称为 List1的列表框,一个名称为 Label1的标签,列表框中显示若干 个项目。当单击列表框中的某
36、个项目时,在标签中显示被选中项目的名称。下列能正确 实现上述操作的程序是:_。 (分数:2.00)A.Private Sub List1_Click() Label1.Caption = List1.ListIndex End SubB.Private Sub List1_Click() Label1.Name=List1.Lis tIndex End SubC.Private Sub List1_Click() Label1.Name=List1.Text End SubD.Private Sub List1_Click() Label1.Caption =List1.Text End Su
37、b 解析:List 控件中 ListIndex 属性表示当前选中项目的索引,Text 属性表示当前选中项目的内容;Label 控 件的 Name 属性表示控件的名称,Caption 属性表示 Label 控件显示的内容。二、填空题(每空 2分,共 30分)(总题数:10,分数:30.00)36.下面运行程序后,单击命令按钮,输出的结果是 1。 Private Sub Command1_Click2 Dim a%(1 To 4),b%(3 To 6),i%,s1#,s2# For i=1 To 4 a(i) =i Next i For i=3 To 6 b(i) =i Next i s1=YAS
38、(A) s2=YAS(B) Print“s1=“;s1;“s2=“;s2 End Sub Function YAS(a3As Integer) Dim t#,i% t=1 For i=LBound(A) To UBound(A) t=t * a(i) Next i YAS=t End Function (分数:3.00)填空项 1:_ (正确答案:s1=24 s2=360)解析:程序首先调用循环语句为数组 a、b 赋值,其中 a(i)=I;b(i)=I,且数组 a 的上下界分别为 1和4,数组 b的上下界分别为 3和 6;接着将数组 a作为参数调用 YAS 过程,在 YAS过程中,定义了两个变
39、量 t及 I,I 作为循环语句 For的变量,它的初始值和终值分别为数组的上下界,循环体为 t=t*a(i)即将a(i)的值乘以 t,然后再赋给 t,当循环结束后,程序返回的就是数组 a中的各元素的积;同理程序将数组 b作为参数传递给 YAS 过程后返回数组 b中各元素的积,运行程序结束后,输出结果为:s1=24 s2=360。37.如果存在如下过程: Private Function FMax(a1As Integer) Dim First As Integer,Last As Integer,i As Integer First=LBound(A) Last=UBound(A) Max=a
40、(First) For i=First To Last If a(i) Max Then Max=a(i) Next i FMax=Max End Function 在窗体上添加一个命令按钮,然后编写如下事件过程: Private Sub Command1 Click2 ReDim m(1 To 4) As Integer m(1)=20:m(2)=30:m(3)=50:m(4)=100 c=FMax(m) Print c End Sub 单击命令按钮,其输出结果为 3。 (分数:3.00)填空项 1:_ (正确答案:100)解析:在程序 Sub中定义了一个含 4个元素的数组,并且分别给它们赋
41、值,数组上界是 4,下界为 1;将数组 m作为实参调用 Fmax事件过程,并将数组 m的地址传递给数组 a,即此时数组 a与 m用一个存储空间;将数组的上界和下界分别赋给变量 Last和 First,在赋值表达式中分别调用了 Lbound-|_|-函数求数组下界,及 Ubound-|_|-函数求数组的上界;在循环语句中,变量的初始值为数组的下界为 1,终值为数组的上界为 4,循环体是一个条件语句,如果 a(I)中的值大于Max,那么就将 a(I)的值赋给 Max,当循环结束后,将 Max 作为函数的返回值,所以此事件过程的功能即为求数组中的最大值。38.描述“x 是小于 100的非负整数“的
42、Visual Basic表达式是 1。(分数:3.00)填空项 1:_ (正确答案:x=0 and X100)解析: 可以用类型声明符声明变量类型,下面是常用类型及其类型说明符: 整型 长整型& 单精度浮点数! 双精度浮点数# 货币型 字符串型$ 本题要在这个表达式中体现出 3个重点,第 1点是小于 100,可写成“=0 来表示“;最后 1点要体现出 X是整数,所以可在变量 X后面加一个百分号“。 39.设某循环队列的容量为 50,头指针 front=5(指向队头元素的前一位置),尾指针 rear=29(指向队尾元素),则该循环队列中共有 1 个元素。(分数:3.00)填空项 1:_ (正确答
43、案:24)解析:实现循环队列时,头指针指向第一个元素的前一个空间,尾指针指向最后一个元素。因此,此时队列中 6,7,8,29 这二十四个空间存有元素,即队列中有 29-5=24个元素。40.在窗体上画一个命令按钮和一个文本框,其名称分别为 Command1和 Text1,然后编写如下事件过程: Private Sub Commandl_Click1 Dim inData As String Textl.Text=“ Open“d:myfile.txt“For 2As#1 Do While 3 Input#,inData Loop Text1.Text=Text1.Text+inD Loop C
44、lose#1 End Sub 程序的功能是,打开 D盘根目录下的文本文件 myfile.txt,读取它的全部内容并显示在文本框中。请填空。 (分数:3.00)填空项 1:_ (正确答案:Input,N0t EOF(1))解析:打开顺序文件的基本格式为:Open FileName For Mode As#FileNumber。其中,FileName 表示要打开的文件的路径;Mode 为打开模式;OutPut 用于输出、Append 用于追加写入 Input用于读取;FileNumber为打开文件时指定的句柄(即文件号)。在读文件时,经常用 Do While循环和 Input#语句读入数据,以 N
45、ot EOF(文件号)为循环条件,EOF(文件号)用于判断是否读到文件结尾。41.在窗体上有一个命令按钮,然后编写如下程序: Function Trans(ByVal num As Long) As Long Dim k As Long k=l Do While num k=k * (num Mod 10) num=num/10 Loop Trans=k Print Trans End Function Private Sub Commandl_Click1 Dim m As Long Dim s As Long m=InputBox(“请输入一个数“) s=Trans(m) End Sub
46、程序运行时,单击命令按钮,在输入对话框中输入“789”,输出结果为 2,在输入对话框中输入“987”输出 3,在输入对话框中输入“879”,输出结果为 4。 (分数:3.00)填空项 1:_ (正确答案:504)解析:关键字 ByVal用来实现传值,也就是说在定义通用过程时,如果形参前面有关键字 Byval,则该参数用传值方式传递,否则用传址方式传递;在 Sub过程中,先将输入的 “456”赋给变量 m,m 作为参数,调用 Trans过程;在 Trans过程中以 num作为 Do While的循环条件;在循环体中,调用 Mod函数,将num的个位数字与 k相乘,然后赋给 k,第一次循环时,nu
47、m 的值是 789,所以 k的值为 9,执行 num = num/10后,num 的值为 78,循环三次后,num 变为 0;退出循环,k 值等于 987=504,并将 k的值作为返回值;当输入 “987”或“879”时执行相同的操作,结果都为 504。可以看出,此程序可用于求一个数值各位上数值的乘积。42. 1的任务是诊断和改正程序中的错误。(分数:3.00)填空项 1:_ (正确答案:程序调试)解析:在完成对程序的测试之后将进行程序调试。程序调试的任务是诊断和改正程序中的错误。43.在窗体上画一个通用对话框,其名称为 CommonDialog1,然后画一个命令按钮,并编写下列事件过程:Private Sub Command1_Click1 CommonDialog1.Filter=“All Files(*.*)|*.*|Text Files“_ &“(*.txt)|*.txt|Batch Files(*.bat)|*.bat“ CommonDialog1.FilterIndex=1 CommonDialo