1、二级 VISUAL+BASIC 笔试 305 及答案解析(总分:62.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:50.00)1.运行以下程序后,显示的结果为 _。 Dim x(5) x(0) =1 For i=1 To 5 x(i)=x(i-1)*i Print x(i) Next i End(分数:2.00)A.1 2 3 4 5B.1 2 6 24 120C.1 2 6 12 20D.1 1 2 3 42.不能作为容器使用的对象是 _。(分数:2.00)A.窗体B.框架C.图像框D.图片框3.对窗体编写如下事件过程: Private Sub Form MouseDo
2、wn(Button As Integer,Shift As Integer, _ x As Single, Y As Single) If Button=2 Then Print “AAA“ End If End Sub Private Sub Form MouseUp (Button As Integer,Shift As Integer,_ x As Single,Y As Single) Print “BBB“ End Sub 程序运行后,如果单击鼠标右键,则输出结果为 _。(分数:2.00)A.AAA BBBB.BBBC.AAA AAAD.BBB4.以下说法错误的是 _。(分数:2.0
3、0)A.函数过程没有返回值B.函数过程可以带参数C.子过程没有返回值D.子过程可以带参数5.已知字母 A 的 ASCII 码是 65,运行下面程序后输出的结果是 _。 M = 65: A$ =“ “ For i = 1 To 3 A$ = A$ + Chr$(M) M = M +1 Next i Print A$(分数:2.00)A.197B.656667C.ABCD.CBA6.在窗体上画一个名称为 Text1 的文本框和一个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim i As Integer,n As Int
4、eger For i=0 To 50 i=i+3 n=n+1 If i10 Then Exit For Next Text1.Text=Str(n) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是 _。(分数:2.00)A.2B.3C.4D.57.无论什么控件,都有一个共同的属性,这个属性是 _。(分数:2.00)A.NameB.CaptionC.TextD.Font8.骰子是一个正六面体,用 16 这六个数分别代表这六面,掷一次骰子出现的数可表示为 _ 。(分数:2.00)A.Int(Rnd(6)+1)B.Int(Rnd*6+1)C.Int(Rnd*7)D.Int(Rnd*6
5、)9.有如下程序,运行后的输出结果是 _。 a = 5 If a = 3 Then Print 3; End If If a = 4 Then Print 4; End If If a = 5 Then Print 5; End If If a = 6; Print 6; End If(分数:2.00)A.3456B.456C.56D.610.窗体不拥有下列 _ 事件。(分数:2.00)A.TerminateB.InitializeC.ValidateD.OLEStartDrag11.通过以下 _ 窗口可以在设计时直观的调整窗体在屏幕上的位置。(分数:2.00)A.代码B.窗体设计C.窗体布局
6、D.属性12.在窗体上画一个命令按钮(其 Name 属性为 Command1),然后编写如下代码: Option Base 1 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 Next j Next i For i = 3 To 4 For j = 3 To 4 Print a(j, i); Next j Next i End Sub 程序运行后,单击命令按钮,其输出结果为 _。(分数:2.00)A.6 9 7 10B.7 10 8 11C.8 11 9
7、 12D.9 12 10 1313.在窗体上画一个命令按钮(其 Name 属性为 Command1),然后编写如下代码: Private Sub Command1_Click() Dim arr1(10)As Integer, arr2(10)As Integer n=3 For i=1 To 6 arr1(i)=i arr2(n)=2*n+i Next i Print arr2(n); arr1(n) End Sub 程序运行后,单击命令按钮,输出结果是 _。(分数:2.00)A.12 3B.3 12C.14 3D.3 1414.用于显示弹出式菜单的方法名是(分数:2.00)A.ShowPO
8、pupMenuB.ShowMenuC.ListPopupMenuD.PopupMenu15.要得到字体对话框中用户所选择的字体颜色的属性是 _。(分数:2.00)A.ColorB.ForeColorC.FontColorD.ShowColor16.在窗体上画一个名称为 Drivel 的驱动器列表框,一个名称为 Dirl 的目录列表框。当改变当前驱动器时,目录列表框应该与之同步改变。设置两个控件同步的命令放在一个事件过程中,这个事件过程是 _。(分数:2.00)A.Drivel_ChangeB.Drivel_ClickC.Dirl_ClickD.Dirl_Change17.如果在“立即”窗口中执
9、行以下操作: a=8CR(CR是回车键,下同) b=9CR Print abCR 则输出的结果是 _。(分数:2.00)A.1B.0C.FalseD.True18.为了暂时关闭计时器,应把该计时器的某个属性设置为 False,这个属性是 _。(分数:2.00)A.VisibleB.TimerC.EnabledD.Interval19.在窗体上画一个名称为 Labell 的标签,然后编写如下事件过程: Option Base 1 Private Sub Form Click() Dim a(10)As Integer For k=1 To 10 a(k)=k2 Next k Label1.Cap
10、tion=a(k) End Sub 程序运行后,单击窗体,在标签中显示的内容是 _。(分数:2.00)A.100B.10C.121D.出错信息20.以下语句可以实现将文件 filename1 复制为 filename2 的是 _。(分数:2.00)A.Copyfilename1, filename2B.Namefilename1, filename2C.FileCopy filename1,filename2D.Duplicate filename1,filename221.在程序运行期间,如果拖动滚动条上的滑快,则触发的滚动条事件是 _。(分数:2.00)A.MoveB.ChangeC.Sc
11、rollD.GetFocus22.唯一能区别一个控件的属性是 _。(分数:2.00)A.IndexB.TextC.NameD.Caption23.阅读程序: Function F(a As Integer) b=0 Static c b=b+1 c=c+1 F=a+b+c End Function Private Sub Command1_Click() Dim a As Integer a=2 For i=1 To 3 Print F(a) Next i End Sub 运行上面的程序,单击命令按钮,输出结果为 _。(分数:2.00)A.4 4 4B.4 5 6C.4 6 8D.4 7 92
12、4.在窗体上画一个文本框、一个标签和一个命令按钮,其名称分别为 Text1、Label1 和 Command1,然后编写如下两个事件过程: Private Sub Command1_Click() strText=InputBox(“请输入“) Text1.Text=strText End Sub Private Sub Text1_Change() Label1.Caption=Right(Trim(Text1.Text),4) End Sub 程序运行后,如果在对话框中输入 abcdefgh,则在标签中显示的内容是 _。(分数:2.00)A.空B.abcdefC.abcdD.efgh25.
13、对变量名说法不正确的是 _ 。(分数:2.00)A.必须是字母开头,不能是数字或其他字符B.可以包含字母、数字、下划线和标点符号C.不能是 Visual Basic 的保留字D.不能超过 255 个字符二、B填空题/B(总题数:6,分数:12.00)26.以下语句的输出结果U 【1】 /U。 S$= “China“ S$= “Shanghai“。 Print S$(分数:2.00)填空项 1:_27.在窗体上画一个名称为 Combol 的组合框,画两个名称分别为 Label1 和 Label2 及 Caption 属性分别为“城市名称”和空白的标签。程序运行后,当在组合框中输入一个新项后按En
14、ter键(ASCII 码为 13)时,如果输入的项在组合框的列表中不存在,则自动添加到组合框的列表中,并在 Label2 中给出提示“已成功添加输入项”,如下图所示:如果存在,则在 Label2 中给出提示“输入项已在组合框中”。请将程序补充完整。 (分数:2.00)填空项 1:_28.在窗体上画 1 个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Commandl_Click () n = 6 f = 1 s = 0 For i = 1 To n f =U 【4】 /U s = s + f Next Print s End Sub 该事件过程的功能是计
15、算 s=1+1/2+1/3+1/n 的值。请填空。(分数:2.00)填空项 1:_29.在窗体上面画一个命令按钮,然后编写如下程序: Function M(x As Integer, y As Integer) As Integer M = IIf(xy, x, y) End Function Private Sub Command1_Click() Dim a As Integer, b As Integer a = 2 b = 5 Print M(a, b) End Sub 程序运行后,单击命令按钮,输出结果为U 【5】 /U。(分数:2.00)填空项 1:_30.在窗体上画一个名称为 c
16、ommand 1 的命令按钮,然后编写如下程序: Option Base 1 Private Sub Colilinand1 Click() Dim a(10) As Integer For i = 1 To 10 a(i) = i Next call Swap(a) For i = 1 To 10 Print a(i); Next End Sub Sub Swap(b() As Integer) n =U 【6】 /U For i = 1 To n/2 t = b(i) b(i) = b(n) b(n) = t U 【7】 /U Next End Sub 上述程序的功能是,通过调用过程 Sw
17、ap,调换数组中数值的存放位置,即 a(1)与 a(10)的值互换,a(2)与 a(9)的值互换,a(5)与 a(6)的值互换。请填空。(分数:2.00)填空项 1:_31.下列程序实现的功能是:当在窗体上单击时,把 C 盘根目录下的文件 a1.txt,复制到 D 盘,并取名为a2.txt。 Private Sub Form_Click() Dim Ch As String Open “c:/a1.txt“ ForU 【8】 /UAs #10 Open “d:/a2.txt“ For Output As #20 Do WhileU 【9】 /U Line Input #10, Ch U 【10
18、】 /U Loop Close #10 Close #20 End Sub(分数:2.00)填空项 1:_二级 VISUAL+BASIC 笔试 305 答案解析(总分:62.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:50.00)1.运行以下程序后,显示的结果为 _。 Dim x(5) x(0) =1 For i=1 To 5 x(i)=x(i-1)*i Print x(i) Next i End(分数:2.00)A.1 2 3 4 5B.1 2 6 24 120 C.1 2 6 12 20D.1 1 2 3 4解析:解析 在 For 循环中,数组元素 x(1)的值等于前
19、一个数组元素的值乘以 i 的值,而 x(0)的值是1,所以正确答案是选项 B。2.不能作为容器使用的对象是 _。(分数:2.00)A.窗体B.框架C.图像框 D.图片框解析:解析 窗体、框架和图片框都可以作为容器使用,在这些对象中可以放置其他控件。图像框不能放置其他控件,不能作为容器使用。3.对窗体编写如下事件过程: Private Sub Form MouseDown(Button As Integer,Shift As Integer, _ x As Single, Y As Single) If Button=2 Then Print “AAA“ End If End Sub Priva
20、te Sub Form MouseUp (Button As Integer,Shift As Integer,_ x As Single,Y As Single) Print “BBB“ End Sub 程序运行后,如果单击鼠标右键,则输出结果为 _。(分数:2.00)A.AAA BBB B.BBBC.AAA AAAD.BBB解析:解析 窗体的 MouseDown 和 MouseUp 中,Button 参数是具有相应于左按钮(位 0)、右按钮(位 1),以及中间按钮(位 2)的一个位字段。这些位的值分别等于 1、2 和 4。其中仅有一位被设置,指示出引起该事件的那个按钮。本题中 MouseD
21、own 事件会首先判断按下的是哪个鼠标键,如果是右键则输出 AAA。然后在 MouseUp 事件中输出 BBB。4.以下说法错误的是 _。(分数:2.00)A.函数过程没有返回值 B.函数过程可以带参数C.子过程没有返回值D.子过程可以带参数解析:解析 函数和过程都可以带参数,但函数可以返回值而过程不能。5.已知字母 A 的 ASCII 码是 65,运行下面程序后输出的结果是 _。 M = 65: A$ =“ “ For i = 1 To 3 A$ = A$ + Chr$(M) M = M +1 Next i Print A$(分数:2.00)A.197B.656667C.ABC D.CBA解
22、析:解析 函数 Chr$是把 ASCII 码转换为相应的字符,而同为大写或同为小写的相邻的英语字母的ASCII 码也是相邻的自然数。字母 A 的 ASCII 码为 65;则字母 B、C 的 ASCII 码分别为 66 和 67。在 For循环中,表达式 A$+Chr$(M)把字母 A、B、C 连接起来,因此最后输出的结果是“ABC”。6.在窗体上画一个名称为 Text1 的文本框和一个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim i As Integer,n As Integer For i=0 To 50 i=
23、i+3 n=n+1 If i10 Then Exit For Next Text1.Text=Str(n) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是 _。(分数:2.00)A.2B.3C.4 D.5解析:解析 每执行一次循环 i 的值增加 3,n 值增加 1;而当 i10 时循环退出,故循环只能被执行 4次,则 n 值为 4。7.无论什么控件,都有一个共同的属性,这个属性是 _。(分数:2.00)A.Name B.CaptionC.TextD.Font解析:解析 每个控件都有 Name 属性,该属性表示控件的名称,如同变量名一样,以便在程序中对该控件实施操作。8.骰子是一
24、个正六面体,用 16 这六个数分别代表这六面,掷一次骰子出现的数可表示为 _ 。(分数:2.00)A.Int(Rnd(6)+1)B.Int(Rnd*6+1) C.Int(Rnd*7)D.Int(Rnd*6)解析:解析 Rnd 函数产生一个小于 1、大于 0 的随机数,Int 函数是求不大于参数的最大整数。选项 A的最大数是 1,选项 B 的最大数是 5,选项 C 的最小数是 0,只有选项 D 能产生 16 之间的整数。9.有如下程序,运行后的输出结果是 _。 a = 5 If a = 3 Then Print 3; End If If a = 4 Then Print 4; End If If
25、 a = 5 Then Print 5; End If If a = 6; Print 6; End If(分数:2.00)A.3456B.456C.56 D.6解析:解析 该程序分别要执行 4 个 If 语句,对 a 的值进行 4 次判断,前两次判断不满足条件,跳出If 语句,而后两次判断满足条件,分别执行两个输出语句,因此结果为选项 C。10.窗体不拥有下列 _ 事件。(分数:2.00)A.TerminateB.InitializeC.Validate D.OLEStartDrag解析:解析 Validate 事件在焦点转换到另一个控件之前发生,此时该控件的 Causes Validati
26、on 属性值设置为 True。此事件不适用于窗体。11.通过以下 _ 窗口可以在设计时直观的调整窗体在屏幕上的位置。(分数:2.00)A.代码B.窗体设计C.窗体布局 D.属性解析:解析 Form Layout Window 即窗体布局窗口,允许使用表示屏幕的小图像来布置应用程序中各窗体的位置。12.在窗体上画一个命令按钮(其 Name 属性为 Command1),然后编写如下代码: Option Base 1 Private Sub Command1_Click() Dim a(4, 4) For i = 1 To 4 For j = 1 To 4 a(i, j) = (i-1) * 3 +
27、 j Next j Next i For i = 3 To 4 For j = 3 To 4 Print a(j, i); Next j Next i End Sub 程序运行后,单击命令按钮,其输出结果为 _。(分数:2.00)A.6 9 7 10B.7 10 8 11C.8 11 9 12D.9 12 10 13 解析:解析 第 1 个输出为 a(3, 3)=(3-1)*3+3=9。第 2 个输出为 a(4, 3)=(4-1)*3+3=12。第 3 个输出为 a(3,4)=(3-1)*3+4=10。第 4 个输出为 a(4, 4)=(4-1)*3+4=13。13.在窗体上画一个命令按钮(其
28、 Name 属性为 Command1),然后编写如下代码: Private Sub Command1_Click() Dim arr1(10)As Integer, arr2(10)As Integer n=3 For i=1 To 6 arr1(i)=i arr2(n)=2*n+i Next i Print arr2(n); arr1(n) End Sub 程序运行后,单击命令按钮,输出结果是 _。(分数:2.00)A.12 3 B.3 12C.14 3D.3 14解析:解析 本题的程序每次循环都将 arr2(3)重新赋一次值。最终的 arr2(3)的值为 2*3+6=12。而arr1(3)
29、的值始终为 3。所以最终的输出是 12 和 3。14.用于显示弹出式菜单的方法名是(分数:2.00)A.ShowPOpupMenuB.ShowMenuC.ListPopupMenuD.PopupMenu 解析:解析 弹出式菜单是独立于窗体菜单栏而显示在窗体内的浮动菜单。弹出式菜单在窗体内的显示位置取决于单击鼠标键时指针的位置。要显示弹出式菜单,必须调用 PopupMenu 方法。15.要得到字体对话框中用户所选择的字体颜色的属性是 _。(分数:2.00)A.Color B.ForeColorC.FontColorD.ShowColor解析:解析 Color、FontBlod、FontItali
30、c、FontName、FontSize、FontStrikeThru、FontUnderline等属性分别对应“字体”对话框的字体颜色、字体是否粗体、字体是否斜体、字体名称、字体大小、字体是否有中划线、字体是否有下划线。16.在窗体上画一个名称为 Drivel 的驱动器列表框,一个名称为 Dirl 的目录列表框。当改变当前驱动器时,目录列表框应该与之同步改变。设置两个控件同步的命令放在一个事件过程中,这个事件过程是 _。(分数:2.00)A.Drivel_Change B.Drivel_ClickC.Dirl_ClickD.Dirl_Change解析:解析 驱动器列表框用来显示用户系统中有效磁
31、盘驱动器的列表。在程序运行时,该控件的Drive 属性可以返回或设置程序运行时所选择的驱动器。目录列表框用来显示当前驱动器上的目录结构。在程序运行时,该控件的 Path 属性可以返回或设置当前路径。当驱动器列表框中当前所选中的驱动器发生变化时,Drive 属性也将相应变化,从而触发驱动器列表框的 Change 事件,因此可以在驱动器列表框的 Change 事件中加入如下的语句:Dirl.Path= Drivel.Drive。该语句的作用是将目录列表框的 Path 属性设置为改变后的当前驱动器路径,从而使目录列表框中的目录结构随当前所选择的驱动器的变化而相应变化。17.如果在“立即”窗口中执行以
32、下操作: a=8CR(CR是回车键,下同) b=9CR Print abCR 则输出的结果是 _。(分数:2.00)A.1B.0C.FalseD.True 解析:解析 本题中的 Print 命令输出的是关系表达式的运算结果,由于 ab 成立,因此返回值是True。18.为了暂时关闭计时器,应把该计时器的某个属性设置为 False,这个属性是 _。(分数:2.00)A.VisibleB.TimerC.Enabled D.Interval解析:解析 计时器可以使用 Name 属性和 Enabled 属性。如果想暂时关闭计时器(让计时器不起作用),应将计时器的 Enabled 属性设置为 False
33、。19.在窗体上画一个名称为 Labell 的标签,然后编写如下事件过程: Option Base 1 Private Sub Form Click() Dim a(10)As Integer For k=1 To 10 a(k)=k2 Next k Label1.Caption=a(k) End Sub 程序运行后,单击窗体,在标签中显示的内容是 _。(分数:2.00)A.100B.10C.121D.出错信息 解析:解析 一维数组 a 的下标在 110 之间。而循环结束后 k 值为 11,故产生下标越界的错误。20.以下语句可以实现将文件 filename1 复制为 filename2 的是
34、 _。(分数:2.00)A.Copyfilename1, filename2B.Namefilename1, filename2C.FileCopy filename1,filename2 D.Duplicate filename1,filename2解析:解析 文件的基本操作包括: 1)文件删除。Kill filename,filename 指要删除的文件路径。使用 Kill 命令删除文件时需先将文件关闭。 2)文件复制。FileCopy source,destination,source 指定要复制的文件,destination 指定文件 source 要复制到的目标路径。 3)文件重命名
35、。Name oldfilename As newfilename, oldfilename 指定原文件名,newfilename 指定新文件名。使用 Name 时必须先关闭文件oldfilename。21.在程序运行期间,如果拖动滚动条上的滑快,则触发的滚动条事件是 _。(分数:2.00)A.MoveB.ChangeC.Scroll D.GetFocus解析:解析 与滚动条有关的重要事件是 Scroll 和 Change。当拖动滚动条上的滑块时,会触发 Scroll事件,而当改变 Value 属性(滚动条内滑块位置改变)时会触发 Change 事件。22.唯一能区别一个控件的属性是 _。(分数
36、:2.00)A.IndexB.TextC.Name D.Caption解析:解析 在程序中每个控件都有个名字,控件的名字也是它们互相区别的唯一标志。23.阅读程序: Function F(a As Integer) b=0 Static c b=b+1 c=c+1 F=a+b+c End Function Private Sub Command1_Click() Dim a As Integer a=2 For i=1 To 3 Print F(a) Next i End Sub 运行上面的程序,单击命令按钮,输出结果为 _。(分数:2.00)A.4 4 4B.4 5 6 C.4 6 8D.4
37、 7 9解析:解析 Static 语句在过程级别中使用,用于声明变量并分配存储空间。在整个代码运行期间都能保留使用 Static 语句声明的变量的值。本题中变量 c 的值,调用一次函数 F 就加 1。而变量 a 和变量 b的值,在函数 F 中一直是 2 和 1。24.在窗体上画一个文本框、一个标签和一个命令按钮,其名称分别为 Text1、Label1 和 Command1,然后编写如下两个事件过程: Private Sub Command1_Click() strText=InputBox(“请输入“) Text1.Text=strText End Sub Private Sub Text1_
38、Change() Label1.Caption=Right(Trim(Text1.Text),4) End Sub 程序运行后,如果在对话框中输入 abcdefgh,则在标签中显示的内容是 _。(分数:2.00)A.空B.abcdefC.abcdD.efgh 解析:解析 Trim 函数返回 Variant(String)类型,其中包含指定字符串的拷贝,但不包含前导和尾随空白。Right(字符串,n):返回“字符串”的后 n 个字符。这里的“字符串”可以是字符串常量、字符串变量、字符串函数或字符串连接表达式。本题中输入的是 abcdef,返回后 4 个字符就是 efgh。25.对变量名说法不正确
39、的是 _ 。(分数:2.00)A.必须是字母开头,不能是数字或其他字符B.可以包含字母、数字、下划线和标点符号 C.不能是 Visual Basic 的保留字D.不能超过 255 个字符解析:解析 变量名不能包含标点符号。二、B填空题/B(总题数:6,分数:12.00)26.以下语句的输出结果U 【1】 /U。 S$= “China“ S$= “Shanghai“。 Print S$(分数:2.00)填空项 1:_ (正确答案:Shanghai)解析:解析 s$的最终值是 Shanghai,所以输出的应该是 Shanghai。27.在窗体上画一个名称为 Combol 的组合框,画两个名称分别为
40、 Label1 和 Label2 及 Caption 属性分别为“城市名称”和空白的标签。程序运行后,当在组合框中输入一个新项后按Enter键(ASCII 码为 13)时,如果输入的项在组合框的列表中不存在,则自动添加到组合框的列表中,并在 Label2 中给出提示“已成功添加输入项”,如下图所示:如果存在,则在 Label2 中给出提示“输入项已在组合框中”。请将程序补充完整。 (分数:2.00)填空项 1:_ (正确答案:Combol. List(i) AddItem)解析:解析 考查对组合框控件的使用,当输入新项后按下Enter键,要捕捉键盘的 ASCII 码应在KeyPress 事件中
41、。在 Combol 的 KeyPress 事件过程中通过循环判断用户的输入是否已在列表中,所以第二空因填 Combol.List(i)。如果用户输入的文本为新的内容,就应该添加到组合框中,应使用 AddItem方法。28.在窗体上画 1 个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Commandl_Click () n = 6 f = 1 s = 0 For i = 1 To n f =U 【4】 /U s = s + f Next Print s End Sub 该事件过程的功能是计算 s=1+1/2+1/3+1/n 的值。请填空。(分数:2.00
42、)填空项 1:_ (正确答案:1/i)解析:解析 本题程序的功能是求和 s=1+1/2+1/3+1/n,而代码中有语句 s=s+f 故变量 f 中存储的应为 1/n(n=12.5)。即 f=1/i。29.在窗体上面画一个命令按钮,然后编写如下程序: Function M(x As Integer, y As Integer) As Integer M = IIf(xy, x, y) End Function Private Sub Command1_Click() Dim a As Integer, b As Integer a = 2 b = 5 Print M(a, b) End Sub
43、程序运行后,单击命令按钮,输出结果为U 【5】 /U。(分数:2.00)填空项 1:_ (正确答案:5)解析:解析 IIf 函数的作用是根据表达式的值来返回两部分中的其中一个。因为 25 为 False,所以返回的是传入的第二个参数 b,输出为 5。30.在窗体上画一个名称为 command 1 的命令按钮,然后编写如下程序: Option Base 1 Private Sub Colilinand1 Click() Dim a(10) As Integer For i = 1 To 10 a(i) = i Next call Swap(a) For i = 1 To 10 Print a(i
44、); Next End Sub Sub Swap(b() As Integer) n =U 【6】 /U For i = 1 To n/2 t = b(i) b(i) = b(n) b(n) = t U 【7】 /U Next End Sub 上述程序的功能是,通过调用过程 Swap,调换数组中数值的存放位置,即 a(1)与 a(10)的值互换,a(2)与 a(9)的值互换,a(5)与 a(6)的值互换。请填空。(分数:2.00)填空项 1:_ (正确答案:10 n=n-1)解析:解析 Option Base 语句,在模块级别中使用,用宋声明数组下标的起始值(缺省值为 0)。子过程利用语句加以
45、调用,使子过程成为一个独立的语句,其形式为:子过程名参数列表或 Call 子过程名参数列表。题目要求将数组中的 10 个数逆序存放,也就是首尾两两交换,循环次数应为 5 次,在交换了 a(1)与 a(10),应将 n 的值减 1,再将 a(2)与 a(9)进行交换,依此类推。31.下列程序实现的功能是:当在窗体上单击时,把 C 盘根目录下的文件 a1.txt,复制到 D 盘,并取名为a2.txt。 Private Sub Form_Click() Dim Ch As String Open “c:/a1.txt“ ForU 【8】 /UAs #10 Open “d:/a2.txt“ For O
46、utput As #20 Do WhileU 【9】 /U Line Input #10, Ch U 【10】 /U Loop Close #10 Close #20 End Sub(分数:2.00)填空项 1:_ (正确答案:Input Not EOF(10) Print #20)解析:解析 本题进行文件复制的思路是,首先打开源文件用于读,打开目标文件用于写,然后从源文件中读取一行信息写到目录文件中,在从源文件中读取一行信息写到目标文件中,如此循环,直到源文件中的所有行均写到目标文件中。打开源文件用于读,所以【13】处应填写“Input”。从源文件中读取信息必须保证能读到信息,故在读之前应测试源文件是否处于文件尾,所以【14】处应填写“Not EOF(10)”。从源文件读取一行信息后,应把这一行信息写到目标文件中,所以【15】处应填“Print #20”。