1、二级 VISUAL+BASIC-48 及答案解析(总分:97.50,做题时间:90 分钟)1.设有如下程序。 Private Sub Command1_Click() x=10:y=0 For i=1 To 5 Do x=x-2 y=y+2 Loop Until y5 Or x-1 Next End Sub 运行程序,其中 Do 循环执行的次数是_。(分数:2.50)A.15B.10C.7D.32.默认情况下,下面声明的数组的元素个数是_。 Dim a(5,-2 To 2)(分数:2.50)A.20B.24C.25D.303.请阅读程序: Option Base 1 Private Sub F
2、orm_Click() Dim Arr(4,4)As Integer For i=1 To 4 For j=1 To 4 Arr(i,j)=(i-1)*2+j Next j Next i For i=3 To 4 For j=3 To 4 Print Arr(j,i) Next j Print Next i End Sub 程序运行后,单击窗体,则输出结果是_。(分数:2.50)A.5 76 87 98 108 1 1B.6 8C.7 9D.8 104.设有如下程序段: Dim a(10) . For Each x In a Print x; Next x 在上面的程序段中,变量 x 必须是_
3、。(分数:2.50)A.整型变量B.变体型变量C.动态数组D.静态数组5.在窗体上画一个名为 Command1 的命令按钮,然后编写以下程序: Private Sub Command1 Click() Dim a(10) As Integer For k=10 To 1 Step-1 a(k)=20-2*k Next k k=k+7 Print a(k-a(k) End Sub 运行程序,单击命令按钮,输出结果是_。(分数:2.50)A.18B.12C.8D.66.没有如下程序: Private Sub Form_Click() Dim ary(1 To 5)As Integer Dim i
4、As Integer Dim sum As Integer For i=1 To 5 ary(i)=i+1 sum=sum+ary(i) Next i Print sum End Sub 程序运行后,单击窗体,则在窗体上显示为_。(分数:2.50)A.15B.16C.20D.267.要求产生 10 个随机整数,存放在数组 arr 中。从键盘输入要删除的数组元素的下标,将该元素中的数据删除,后面元素中的数据依次前移,并显示删除后剩余的数据。现有如下程序: Option Base 1 Private Sub Commandl_Click() Dim arr(10) As Integer For i
5、=1 To 10 “循环 1 arr(i)=Int(Rnd*100) Print arr(i); Next x=Input(“输入 1-10 的一个整数:“) For i= x+1 To 10 “循环 2 arr(i-1)= arr(i) Next For i=1 To 10 “循环 3 Print arr(i); Next End Sub 程序运行后发现显示的结果不正确,应该进行的修改是_。(分数:2.50)A.产生随机数时不使用 Int 函数B.循环体 2 的初值应为 i=xC.数组定义改为 Dim a(11) As IntegerD.循环 3 的循环终值应改为 98.在窗体上画一个命令按
6、钮(其名称为 Command1),然后编写如下代码: Private Sub Command1_Click() Dim a a=Array(1,2,3,4) i=3:j=1 Do While i=0 s=s+a(i)*j i=1-1 j=j*10 Loop Print s End Sub 运行上面的程序,单击命令按钮,则输出结果是_。(分数:2.50)A.4321B.123C.234D.12349.阅读程序: Private Sub Command1_Click() Dim arr Dim i As Integer arr=Array(0,1.2,3 ,4,5 ,6,7,8,9,10) For
7、 i=0 To 2 Print arr(7-i) Next End Sub 程序运行后,窗体上显示的是_。(分数:2.50)A.8 7 6B.7 6 5C.6 5 4D.5 4 310.窗体上有一个名称为 Option1 的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程: Private Sub Option1_Click(Index As Integer) . End Sub 下面关于此过程的参数 Index 的叙述中正确的是_。(分数:2.50)A.Index 为 1 表示单选按钮被选中,为 0 表示未选中B.Index 的值可正可负C.Index 的值用来区分哪个单
8、选按钮被选中D.Index 表示数组中单选按钮的数量11.设窗体上有一个命令按钮数组,能够区分数组中各个按钮的属性是(分数:2.50)A.NameB.IndexC.CaptionD.Left12.下面是求最大公约数的函数的首部: Function gcd(ByVal x As Integer, ByVal y As Integer) As Integer 若要输出 8、12、16 这 3 个数的最大公约数,下面正确的语句是_。(分数:2.50)A.Print gcd(8,12),gcd(12,16),gcd(16,8)B.Print gcd(8,12,16)C.Print gcd(8),gcd
9、(12),gcd(16)D.Print gcd(8,gcd(12,16)13.窗体上有一个名为 Command1 的命令按钮,并有下面的程序: Private Sub Comand1_Click() Dim arr(5) As Integer Fork=1 To 5 arr(k)=k Next k prog arr() For k=1 To 5 Print arr(k) Next k End Sub Sub prog(a() As Integer) n=Ubound(a) For i=n To 2 step-1 For j=1 To n-1 If a(j)a(j+1)Then t=a(j):a
10、(j)=a(j+1):a(j+1)=t End If Nexi j Next i End Sub 程序运行时,单击命令按钮后显示的是_。(分数:2.50)A.12345B.54321C.01234D.4321014.请阅读程序: Sub subP(b() As Integer) For i=1 To 4 b(i)=2*i Next i End Sub Private Sub Command1_Click() Dim a(1 To 4)As Integer a(1)=5:a(2)=6:a(3)=7:a(4)=8 subP a() For i=1 To 4 Print a(i) Ncxt i En
11、d Sub 运行上面的程序,单出命令按钮,则输出结果是_。(分数:2.50)A.2468B.5678C.10121416D.出错15.没有以下函数过程: Private Function Fun(a() As Integer, b As String) As Integer . End Function 若已有变量声明: Dim x(5) As Integer, n As Integer, ch As String 则下面正确的过程调用语句是_。(分数:2.50)A.x(0)=Fun(x,“ch“)B.n=Fun(n,ch)C.Call Fun x, “ch“D.n=Fun(x(5),ch)1
12、6.窗体上有一个名为 Command1 的命令按钮,并有如下程序: Private Sub Command1_Click() Dim a As Integer,b As Integer a=8 b=12 Print Fun(a,b);a;b End Suo Private Function Fun(ByVal a As Integer,b As Integer) As Integer a=a Mod 5 b=b/5 Fun=a End Function 程序运行时,单击命令按钮,则输出结果是_。(分数:2.50)A.3 3 2B.3 8 2C.8 8 12D.3 8 1217.在窗体上画一个命
13、令令按钮和一个标签,其名称分别为 Commabd1 和 Label1,然后编写如下代码: Sub S(x As Integer, y As Integer) Static z As Integer y=x*x+z z=y End Sub Private Sub Command1_Click() Dirn i As Integer, z As Integer m=0 z=0 For i=1 To 3 S i,z m=m+z Next i Label1.Caption=Str(m) End Sub 程序运行后,单击命令按钮,在标签中显示的内容是_。(分数:2.50)A.50B.20C.14D.71
14、8.窗体上有一个名称为 Command1 的命令按钮,其中部分代码如下: Private Sub Command1_Click() Dim a(10) As Integer Dim n As Integer Call calc(a,n) . End Sub cale 过程的首行应该是_。(分数:2.50)A.Sub calc(x() As Integer, n As Integer)B.Public Sub calc(x() As Integer)C.Private Sub calc(a(n) As Integer, n As Integer)D.Public Sub calc(a As In
15、teger, n As Integer)19.窗体上有一个 Text1 文本框、一个 Command1 命令按钮,并有以下程序: Private Sub Command1_Click() Dim n If Text1. Text “123456“ Then n=n+1 Print “口令输入错误“ Next x 在上面的程序段中,变量 x 必须是_。(分数:2.50)A.整型变量B.变体型变量 C.动态数组D.静态数组解析:解析 本题定义了一个一维数组,在 For Each 中 x 实际代表了数组中的每个元素,它可以代表任意类型的数组元素,所以 x 为变体型变量。5.在窗体上画一个名为 Com
16、mand1 的命令按钮,然后编写以下程序: Private Sub Command1 Click() Dim a(10) As Integer For k=10 To 1 Step-1 a(k)=20-2*k Next k k=k+7 Print a(k-a(k) End Sub 运行程序,单击命令按钮,输出结果是_。(分数:2.50)A.18 B.12C.8D.6解析:解析 本题中通过 For 循环可以求出 a(1)到 a(10)的值,分别为18,16,14,12,10,8,6,4,2,0。此时 k=0,不满足循环条件,退出循环,最后 k=k+7=7,a(k-a(k)=a(7-a(7)=a(
17、1)=18。6.没有如下程序: Private Sub Form_Click() Dim ary(1 To 5)As Integer Dim i As Integer Dim sum As Integer For i=1 To 5 ary(i)=i+1 sum=sum+ary(i) Next i Print sum End Sub 程序运行后,单击窗体,则在窗体上显示为_。(分数:2.50)A.15B.16C.20 D.26解析:解析 本题主要考查数组的基本操作。首先为数组 ary 的各个元素赋值,然后计算数组元素的和并保存在变量 sum 中。即 sum=2+3+4+5+6=20。7.要求产生
18、 10 个随机整数,存放在数组 arr 中。从键盘输入要删除的数组元素的下标,将该元素中的数据删除,后面元素中的数据依次前移,并显示删除后剩余的数据。现有如下程序: Option Base 1 Private Sub Commandl_Click() Dim arr(10) As Integer For i=1 To 10 “循环 1 arr(i)=Int(Rnd*100) Print arr(i); Next x=Input(“输入 1-10 的一个整数:“) For i= x+1 To 10 “循环 2 arr(i-1)= arr(i) Next For i=1 To 10 “循环 3 P
19、rint arr(i); Next End Sub 程序运行后发现显示的结果不正确,应该进行的修改是_。(分数:2.50)A.产生随机数时不使用 Int 函数B.循环体 2 的初值应为 i=xC.数组定义改为 Dim a(11) As IntegerD.循环 3 的循环终值应改为 9 解析:解析 删除一个数据后,数组中实际有效的值只剩 9 个。如果要删除的是第 10 个元素中的数组,则循环 2 不会执行,循环 3 中依然会输出第 10 个元素;如果删除的第 x(x10)个元素中的数据,则第 x个元素中的数据用地 x+1 个元素中的数据替换,依此类推,第 9 个元素中的数据用地 10 个元素中的
20、数据替换,最后一个数据时重复的。通过上述分析可见,最后一个元素中的数据是多余的,不能输出,循环 3的循环终值应改为 9。8.在窗体上画一个命令按钮(其名称为 Command1),然后编写如下代码: Private Sub Command1_Click() Dim a a=Array(1,2,3,4) i=3:j=1 Do While i=0 s=s+a(i)*j i=1-1 j=j*10 Loop Print s End Sub 运行上面的程序,单击命令按钮,则输出结果是_。(分数:2.50)A.4321B.123C.234D.1234 解析:解析 此题主要考查数组和循环。由 a=Array(
21、1,2,3,4)可知,a(0)=1,a(1)=2,a(2)=3,a(3)=4。当 i=3,j=1 时,程序进入第一次循环,s=a(3)*1=4*1=4,i=2,j=10;第二次循环,s=4+a(2)*10=34,i=1,j=100;第三次循环,s=34+a(1)*100=234,i=0,j=1000;第四次循环,s=234+a(0)*1000=1234,i=-1,j=10000;当 i=-1 时,不满足循环条件,此时跳出循环。9.阅读程序: Private Sub Command1_Click() Dim arr Dim i As Integer arr=Array(0,1.2,3 ,4,5
22、,6,7,8,9,10) For i=0 To 2 Print arr(7-i) Next End Sub 程序运行后,窗体上显示的是_。(分数:2.50)A.8 7 6B.7 6 5 C.6 5 4D.5 4 3解析:解析 本题 arr 被 Array 函数定义为数组,并且赋予了初值,arr(0)=0,arr(1)=1,arr(2)=2,.arr(10)=10。在 For 循环中 i 的值为 0,1,2,那么 arr(7-i)分别可表示为 arr(7)、arr(6)、arr(5),所以输出 arr(7-i)的值为 7,6,5。10.窗体上有一个名称为 Option1 的单选按钮数组,程序运行
23、时,当单击某个单选按钮时,会调用下面的事件过程: Private Sub Option1_Click(Index As Integer) . End Sub 下面关于此过程的参数 Index 的叙述中正确的是_。(分数:2.50)A.Index 为 1 表示单选按钮被选中,为 0 表示未选中B.Index 的值可正可负C.Index 的值用来区分哪个单选按钮被选中 D.Index 表示数组中单选按钮的数量解析:解析 单选按钮数组中每次只能选中一个按钮,所以需要一个参数来判断选中的是哪个单选按钮,而事件过程 Optionl_Click(Index As Integer)中的参数 Index 就是
24、用来实现这个功能的。11.设窗体上有一个命令按钮数组,能够区分数组中各个按钮的属性是(分数:2.50)A.NameB.Index C.CaptionD.Left解析:解析 此题考查控件数组的概念。控件数组的名字由控件的 Name 属性指定,而控件数组的名称都是一样的,无法区分各个按钮。数组中的每个元素的下标则由控件的 Index 属性指定,即 Index 属性区分控件数组中的元素。Caption 属性用来显示按钮上显示的文字。Left 属性表示控件左边的位置坐标。12.下面是求最大公约数的函数的首部: Function gcd(ByVal x As Integer, ByVal y As In
25、teger) As Integer 若要输出 8、12、16 这 3 个数的最大公约数,下面正确的语句是_。(分数:2.50)A.Print gcd(8,12),gcd(12,16),gcd(16,8)B.Print gcd(8,12,16)C.Print gcd(8),gcd(12),gcd(16)D.Print gcd(8,gcd(12,16) 解析:解析 函数调用时参数的类型和个数必须和定义中相同,显然 B、C 两选项错误,A 选项只是求得了三个数中任意两个之间的最大公约数,而不是 3 个数共同的最大公约数。正确答案只有 D,即先求得 12和 16 的最大公约数,然后再求得 8 和这个结
26、果的最大公约数。13.窗体上有一个名为 Command1 的命令按钮,并有下面的程序: Private Sub Comand1_Click() Dim arr(5) As Integer Fork=1 To 5 arr(k)=k Next k prog arr() For k=1 To 5 Print arr(k) Next k End Sub Sub prog(a() As Integer) n=Ubound(a) For i=n To 2 step-1 For j=1 To n-1 If a(j)a(j+1)Then t=a(j):a(j)=a(j+1):a(j+1)=t End If N
27、exi j Next i End Sub 程序运行时,单击命令按钮后显示的是_。(分数:2.50)A.12345B.54321 C.01234D.43210解析:解析 prog 的作用是将给定的数组按照从大到小的顺序进行排序,由于数组 arr 中 5 个元素是1,2,3,4,5,所以对 arr 数组进行排序后的结果为 54321。14.请阅读程序: Sub subP(b() As Integer) For i=1 To 4 b(i)=2*i Next i End Sub Private Sub Command1_Click() Dim a(1 To 4)As Integer a(1)=5:a(
28、2)=6:a(3)=7:a(4)=8 subP a() For i=1 To 4 Print a(i) Ncxt i End Sub 运行上面的程序,单出命令按钮,则输出结果是_。(分数:2.50)A.2468 B.5678C.10121416D.出错解析:解析 此题考查 Sub 过程的调用。subP 的参数为数组名,即按地址传递参数,实参数组 a 和形参数组 b 共享同一个存储单元,形参数组 b 在过程中一旦被改变,相应的实参数组 a 中的元素也跟着改变,即数组 a 中原来元素的值被覆盖。在 subP 过程中,b(1)=2*1=2,b(2)=2*2=4,b(3)=2*3=6,b(4)=2*4
29、=8,即对应着 a(1)=2,a(2)=2*2=4,a(3)=2*3=6,a(4)=2*4=8。15.没有以下函数过程: Private Function Fun(a() As Integer, b As String) As Integer . End Function 若已有变量声明: Dim x(5) As Integer, n As Integer, ch As String 则下面正确的过程调用语句是_。(分数:2.50)A.x(0)=Fun(x,“ch“) B.n=Fun(n,ch)C.Call Fun x, “ch“D.n=Fun(x(5),ch)解析:解析 本题考查 Funct
30、ion 过程的定义和调用。因为 Function 过程的调用可以像使用 Visual Basic 的内部函数一样,所以选项 C 错误。由 Fun(a() As Integer, b As String) As Integer 可知,a被定义为了数组参数,则只能接受数组名,所以选项 B 和选项 D 错误。16.窗体上有一个名为 Command1 的命令按钮,并有如下程序: Private Sub Command1_Click() Dim a As Integer,b As Integer a=8 b=12 Print Fun(a,b);a;b End Suo Private Function F
31、un(ByVal a As Integer,b As Integer) As Integer a=a Mod 5 b=b/5 Fun=a End Function 程序运行时,单击命令按钮,则输出结果是_。(分数:2.50)A.3 3 2B.3 8 2 C.8 8 12D.3 8 12解析:解析 本题考查函数的调用。函数中的参数 a 为传值调用,参数 b 默认为传址调用,因此主调函数中的 a 值不变仍为 8,而主调函数中的 b 和被调函数中的 b 同值。子函数中的 a=a Mod 5=3,此处只是子函数中 a 的值变为了 3,主函数中没有改变。语句 Fun=a 使得 Fun 的值变为 3,语句
32、 b=b/5=2,使得主调函数和子调函数中的 b 的值均变为 2。17.在窗体上画一个命令令按钮和一个标签,其名称分别为 Commabd1 和 Label1,然后编写如下代码: Sub S(x As Integer, y As Integer) Static z As Integer y=x*x+z z=y End Sub Private Sub Command1_Click() Dirn i As Integer, z As Integer m=0 z=0 For i=1 To 3 S i,z m=m+z Next i Label1.Caption=Str(m) End Sub 程序运行后,
33、单击命令按钮,在标签中显示的内容是_。(分数:2.50)A.50B.20 C.14D.7解析:解析 在定义过程时,如果没有 ByVal 关键字,缺省的是按地址传递参数,或者用 ByRef 关键字指定按地址传递。按钮单击事件中的 Si,z 语句将实参 i 和 z 按地址传递参数,传递给形参 x 和 y,即 S过程中 x、y 的值发生变化时,其对应的实参的值也相应变化;S 过程中的变量 z 为静态变量,程序运行过程中,每次引用该变量时,其值会保留原有结果,不会被重新初始化。18.窗体上有一个名称为 Command1 的命令按钮,其中部分代码如下: Private Sub Command1_Clic
34、k() Dim a(10) As Integer Dim n As Integer Call calc(a,n) . End Sub cale 过程的首行应该是_。(分数:2.50)A.Sub calc(x() As Integer, n As Integer) B.Public Sub calc(x() As Integer)C.Private Sub calc(a(n) As Integer, n As Integer)D.Public Sub calc(a As Integer, n As Integer)解析:解析 从过程 calc 的调用语句“Call cale(a, n)”可知,c
35、alc 过程有两个参数,第一个参数是数组,第二个参数是一个整数。数组作为过程的参数时,需要在数组名后加上一对括号。19.窗体上有一个 Text1 文本框、一个 Command1 命令按钮,并有以下程序: Private Sub Command1_Click() Dim n If Text1. Text “123456“ Then n=n+1 Print “口令输入错误“ &n&“次“ End If End Sub 希望程序运行时得到左图所示的效果,即输入口令,单击“确认口令”按钮,若输入的口令不是“123456”,则在窗体上显示输入错误口令的次数。但上面的程序实际显示的是右图所示的效果,程序需
36、要修改。下面修改方案中正确的是_。 (分数:2.50)A.在 Dim n 语句的下面添加一句:n=0B.把 Print“口令输入错误“& n &“次“改为 Print“口令输入错误“+n+“次”C.把 Print“口令输入错误“& n &“次“改为 Print“口令输入错误“&Str(n)&“次“D.把 Dim n 改为 Static n 解析:解析 在事件过程中将一个变量定义为 Static 静态类型,则每次调用该过程时,该变量都会保留上次调用后的值。本题中 n 没有被定义为静态,所以每次调用都会被初始化为 0。20.以下关于局部变量的叙述中错误的是_。(分数:2.50)A.在过程中用 Di
37、m 语句或 Static 语句声明的变量是局部变量B.局部变量所在的作用域是它所在的过程C.在过程中用 Static 语句声明的变量是静态局部变量D.过程执行完毕,该过程中用 Dim 或 Static 语句声明的变量即被释放 解析:解析 在过程中用 Dim 语句或 Static 语句声明的变量是局部变量,而 Static 作为静态局部变量在过程执行完毕后,不被释放,要等到工程结束后才被释放。21.要求当鼠标在图片框 P1 中移动时,立即在图片框中显示鼠标的位置坐标。下面能正确实现上述功能的事件过程是_。(分数:2.50)A.Private Sub P1_MouseMove(Button AS
38、Integer,Shift As Integer,X As Single, Y As Single)Print X,YEnd SubB.Private Sub P1_MouseDown(Button AS Integer,Shift As Integer,X As Single,Y As Single)Picture.Print X,YEnd SubC.Private Sub P1_MouseMove(Button AS Integer,Shift As Integer,X As Single,Y As Single)P1.Print X,YEnd Sub D.Private Sub Form
39、_MouseMove(Button AS Integer,Shift As Integer,X As Single,Y As Single)P1.Print X,YEnd Sub解析:解析 当鼠标在图片框 P1 中移动时会触发图片框 P1 的 MouseMove 事件,所以 A、B、D 选项都是错误的。22.以下说法正确的是_。(分数:2.50)A.MouseUp 事件是鼠标向上移动时触发的事件B.MouseUp 事件过程中的 x、y 参数用于修改鼠标位置C.在 MouseUp 事件过程中可以判断用户是否使用了组合键 D.在 MouseUp 事件过程中不能判断鼠标的位置解析:解析 本题考查 M
40、ouseUp 事件的基本概念。MouseUp 事件是当鼠标释放时触发的。鼠标事件的语法是:Private Sub 对象_鼠标事件(Button As Integer,Shift As Integer,X As Single,Y As Single)。鼠标释放事件,可以通过 X,Y 参数获取当前鼠标光标位置。其中,Shift 参数表示当鼠标键被按下或被释放时,Shift、Ctrl、Alt 键的按下或释放状态。通过 Shift 值判断 Shift、Ctrl、Alt 组合键的状态。23.假定已经在菜单编辑器中建立了窗体的弹出式菜单,其顶级菜单项的名称为 a1,其“可见”属性为false,程序运行后,
41、单击鼠标左键或右键都能弹出菜单的事件过程是_。(分数:2.50)A.Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button=1 and Button=2 ThenPopupMenu alEnd IfEnd SubB.Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)PopupMenu alEnd Sub C.Private Su
42、b Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button=1 ThenPopupMenu alEnd IfEnd SubD.Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button=2 ThenPopupMenu alEnd IfEnd Sub解析:解析 本题考查弹出菜单的应用与鼠标按键的判断。PopupMenu 方法用来显示弹出菜单,将
43、PopupMenu 方法放在 MouseDown 事件中,默认可以响应所有的鼠标键的单击操作,语法格式为:object. PopupMenu menuname, flags, x, y, boldcommand 其中:Object(对象)窗体名。Menuname(菜单名)指在菜单编辑器中定义的主菜单项名。Button=1 表示鼠标左键,Button=2 表示鼠标右键。本题要求程序运行后,单击鼠标左键或右键都能弹出菜单的事件过程。24.以下关于弹出式菜单的叙述中,错误的是_。(分数:2.50)A.一个窗体只能有一个弹出式菜单 B.弹出式菜单在菜单编辑器中建立C.弹出式菜单的菜单名(主菜单项)的“
44、可见”属性通常设置为 FalseD.弹出式菜单通过窗体的 PopupMenu 方法显示解析:解析 窗体上的任意一个控件均可以弹出不同的弹出式菜单,并不是只能有一个。25.设窗体上有一个通用对话框控件 CD1,希望在执行下面程序时,打开如下图所示的文件对话框。 (分数:2.50)A.把 CD1. Action=1 改为 CD1. Action=2B.把“CD1. Filter=“后面字符串中的“所有文件“改为“文本文件“C.在语句 CD1. Action=1 的前面添加:CD1. FilterIndex=3 D.把 CD1. FileName=“改为 CD1. FileName=“文本文件“解析
45、:解析 CD1. Filter 属性设置了可选的文件类型,如果要设置默认的文件类型,只需设置FilterIndex 属性即可,由于“文本文件|*.Txt”位置为 3,所所需要在语句 CD1. Action=1 的前面添加:CD1. FilterIndex=3。26.在窗体上画一个名称为 CD1 的通用对话框,并有以下程序: Private Sub Form-load() CD1. DefaultExt=“.doc“ CD1. fileName=“c:/file1. txt“ CD1. filter=“应用程序(*.exe)|*.exe End Sub 程序运行时,如果显示了“打开”对话框,在文
46、件夹类型中下拉列表中的默认文件类型为_。(分数:2.50)A.应用程序(*.exe) B.*.docC.*.txtD.不确定解析:解析 本题考查通用对话框的常用属性,defaultext 设置对话框中默认文件类型,即扩展名,出现在“文件类型”栏内;filename 用来设置或返回要打开或保存的文件的路径及文件名;filter 用来指定对话框中显示的文件类型,供用户在对话框的“文件类型”的下拉列表框中选择。27.以下描述错误的是_。(分数:2.50)A.在多窗体应用程序中,可以有多个当前窗体 B.多窗体应用程序的启动窗体可以在设计时设定C.多窗体应用程序每一个窗体作为一个磁盘文件保存D.多窗体应
47、用程序可以编译生成一个 EXE 文件解析:解析 在多窗体应用程序中,只能有一个当前窗体。28.下面关于标准模块的叙述中错误的是_。(分数:2.50)A.标准模块中可以声明全局变量B.标准模块中可以包含一个 Sub Main 过程,但此过程不能被设置为启动过程 C.标准模块中可以包含一些 Public 过程D.一个工程中可以含有多个标准模块解析:解析 标准模块中可以包含一个 Sub Main 过程,此过程可以被设置为启动过程。29.某人编写了下面的程序,希望能把 Text1 文本框中的内容写到 out.txt 文件中: Private Sub Comand1_Click() Open“out.t
48、xt“ For Output As # 2 Print “Text1“ Close # 2 End Sub 调试时发现没有达到目的,为实现上述目的,应做的修改是_。(分数:2.50)A.把 Print “Text1“改为 Print #2, Text1 B.把 Print “Text1“改为 Print Text1C.把 Print “Text1“改为 Write “Text1“D.把所有#2 改为#1解析:解析 要将文本内容写入文本文件,可以使用 Print,因为 out.txt 的文件号为#2,所以可以使用语句“Print #2, Text1”实现写入操作,其中#2 指要写入的文件,Text1 指要写入的内容。30.假定用下面的语句打开文件: Open “File1.txt“ For Input As #1 则不能正确读文件的语句是_。(分数:2.50)A.Input #1,ch $B.Line Input #1,ch $C.ch $=Input $(5,#1)D.Rcad #1.ch 解析:解析 由题可知,打开的文件为一个顺序文件,读顺序文件可以使用“Input #语句”、“Line Input #语句”和“Input $函数”三种方式。它们的格式分别为: Input #语句:Input #文件号,变量表; Line Input #语句:Line I