1、国家计算机二级(VB)82 及答案解析(总分:100.00,做题时间:120 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.在程序运行期间可以将图形装入窗体、图片框或图像框的函数是( )。(分数:2.00)A.程序错误B.!C./0D.为空字符2.新建一个窗体,其 Borderstyle 属性设置为 Fixed Single,但运行时却没有最大化和最小化按钮,可能的原因是 ( )。(分数:2.00)A.默认情况下,属性 Visible 的值为 FalseB.如果设置控件的 Visible 属性为 False,则运行时控件会隐藏C.Visible
2、的值可设为 True 或者 FalseD.设置 Visible 属性同设置 Enabled 属性的功能是相同的,都是使控件处于失效状态3.下列程序段的执行结果为( )。 m=2 n=3 Do m=m+n n=n + 1 Loop While m10 Print m;n (分数:2.00)A.1 5B.14 6C.a bD.10 254.设 a=2,b=3,c=4,d=5,下列表达式的值是_。Not aa+c (分数:2.00)A.-1B.1C.TrueD.False5.能够获得一个文本框中被选取文本的内容的属性是( )。(分数:2.00)A.n/102B.(n-n10)/100C.n10D.n
3、100/106.在 Visual Basic 中,要使标签的标题栏居中显示,则将其 Alignment 属性设置为( )。(分数:2.00)A.C+语言的默认访问权限是 privateB.C+语言中的类定义,用户一定要自己定义一个构造函数用于实例化类C.C+语言中的成员函数的实现部分一定要写在类定义外D.C+语言中的类不能够嵌套定义7.在 Visual Basic 中,下列两个变量名相同的是( )。(分数:2.00)A.属性的一般格式为对象名_属性名称,可以在设计阶段赋予初值,也可以在运行阶段通 过代码来更改对象的属性B.对象是有特殊属性和行为方法的实体C.属性是对象的特性,所有的对象都有相同
4、的属性D.属性值的设置只可以属性窗口中设置8.设窗体上有一个标签 Label 1 和一个计时器 Timer1,Timer1 的 Interval 属性被设置为 1000, Enabled 属性被设置为 True。要求程序运行时每秒在标签中显示一次系统当前时间。下列可以实现上述要求的事件过程是( )。(分数:2.00)A.Private Sub Timer1_Timer() Labell.Caption=True End SubB.Private Sub Timer1_Timer() Labell.Caption=Time$ End SubC.Private Sub Timer1_Timer()
5、 Labell.Interval=1 End SubD.Private Sub Timer1_Timer() For k=1 To Timerl.Interval Label1.Caption=Timer Next K End Sub9.下列说法正确的是( )。(分数:2.00)A.宏能够一次完成多个操作B.每一个宏命令都是由动作名和操作参数组成的C.宏可以是很多宏命令组成在一起的宏D.宏是用编程的方法来实现的10. 以下程序运行后,单击按钮输出结果是( )。 Private Sub Commandl_Click( ) Dim x As Integer,y As Integer,z As In
6、teger X=4:y=2: Z=3 Call Gopd(x,x,z) Print x;X;Z Call Gopd(x,y,y) Print x;y;y End Sub Private Sub Gopd(x As Integer,y As Integer,z As Integer) X=3 * Z + 1 y=2 * z z=x + y End Sub (分数:2.00)A.6 6 12 7 11 11B.8 5 10 5 11 11C.9 6 12 9 10 15D.8 10 10 5 9 1011.单击命令按钮时,下列程序的执行结果为( )。 Private Sub Command1_Cl
7、ick() Dim x As Integer,y As Integer x=12:y=32 Call Proc(x,y) Print x;y End Sub Public Sub Proc(n As Integer,ByVal m As Integer) n=n Mod 10 m=m Mod 10 End Sub (分数:2.00)A.12 32B.2 32C.2 3D.12 312.在窗体上有两个名称分别为 Text1、Text2 的文本框,一个名称为 Command1 的命令按钮。运行后的窗体外观如图所示。 (分数:2.00)A.Open “c:/Test2.dat“ For Output
8、 As #1 Put #1,1,P Close #1B.Open “c:/Test2.dat“ For Random As #1 Get #1,1,P Close #1C.Open “c:/Test2.dat“ For Random As #1 Len=Len(p) Put #1,1,P Close #1D.Open “c:/Test2.dat“ For Random As #1 Len=Len(p) Get #1,1,P Close #113.假定在窗体(名称为 Form1)的代码窗口中定义如下记录类型: Private Type animal animalName As String*20
9、 aColor As String*10 End Type 在窗体上画一个名称为Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim rec As animal Open “c:/vbTest.dat“ For Random As #1 Len = Len(rec) rec.animalName = “Cat“ rec.aColor = “White“ Put #1, , rec Close #1 End Sub 则以下叙述中正确的是( )。 (分数:2.00)A.记录类型 animal 不能在 Form1 中定义,必须在标准模
10、块中定义B.如果文件 c:/vbTest.dat 不存在,则 Open 命令执行失败C.由于 Put 命令中没有指明记录号,因此每次都把记录写到文件的末尾D.语句“Put #1, , rec”将 animal 类型的两个数据元素写到文件中14.在窗体上画一个命令按钮,然后编写下列程序: Private Sub Command3_Click( ) Tcl 2 Tcl 3 Tel 4 End Sub Sub Tcl(a As Integer) Static x As Integer x=x + a Print x; End Sub 程序运行后,单击命令按钮,输出结果为( )。 (分数:2.00)A
11、.2 3 4B.2 5 9C.3 5 4D.2 4 315.在窗体上画一个名称为 Label1、标题为“VisualBasic 考试”的标签,两个名称分别为 Command1 和Command2、标题分别为“开始”和“停止”的命令按钮,然后画一个名称为 Timer1 的计时器控件,并把其 Interval 属性设置为 500,如图所示: (分数:2.00)A.标签的移动方向为自右向左B.单击“停止”按钮后再单击“开始”按钮,标签从停止的位置继续移动C.当标签全部移出窗体后,将从窗体的另一端出现并重新移动D.标签按指定的时间间隔移动16.下列说法错误的是( )。(分数:2.00)A.窗体文件的扩
12、展名为frmB.一个窗体对应一个窗体文件C.Visual Basic 中的一个工程只包含一个窗体D.Visual Basic 中一个工程最多可以包含 255 个窗体17.执行下列语句 strInput=InputBox(“请输入字符串“,“字符串对话框“,“字符串“) 将显示输入对话框。此时如果直接单击“确定”按钮,则变量 strInput 的内容是 (分数:2.00)A.请输入字符串B.字符串对话框C.字符串D.空字符串18.执行以下语句过程,在窗体上显示的内容是( )。 Option Base 0 Private Sub Command3_Click( ) Dim d d=Array(“a
13、“,“b“,“c“,“d“) Print d(1);d(3) End Sub (分数:2.00)A.abB.bdC.acD.出错19.下列程序段的执行结果为( )。 a=3 b=1 For I=1 To 3 f=a + b a=b b=f Print f Next I (分数:2.00)A.extends 和 implementsB.public,private 和 protectedC.class 和 publicD.char,int,float 和 double20.有如下的程序段,该程序段执行完后,共执行的循环次数是( )。 total=0 Counter=1 Do Print Coun
14、ter total=total * Counter + 1 Print total Counter=Counter +1 If total 10 Then Exit Do End If Loop While Counter=10 (分数:2.00)A.4B.10C.15D.2021.窗体上有名称分别为 Text1、Text2 的 2 个文本框,要求文本框 Text1 中输入的数据小于 500,文本框Text2 中输入的数据小于 1000,否则重新输入。为了实现上述功能,在以 下程序中问号(?)处应填入的内容是_。 Private Sub Text1_LostFocus() Call Check
15、Input(Text1,500) End Sub Private Sub Text2_LostFocus() Call CheckInput(Text2,1000) End Sub Sub CheckInput(t As ?,x As Integer) If Val(t.Text)x Then MsgBox “请重新输入!“ End If End Sub (分数:2.00)A.TextB.SelTextC.ControlD.Form22.单击命令按钮,下列事件过程的执行结果为( )。 Private Sub Command1_Click( ) Dim x As Integer, y As In
16、teger 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.Page/,总PagesB.=Page/,总PagesC.Page“/,总” PagesD.=Page“/,总”Pages23.在默认情况下,InputBox 函数返回值的类型为( )。(分数:2.00)A.逻辑类型B.字符串型C.数值型D.日期型24.下列程序段的执行结果为( )。 a=1 b
17、=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.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=225.有如下程序: Private Sub Command1 Click() Dim a As Single Dim b As Single a=5:b=4 Call S(a,B) End Sub Sub S(x As Single,y As Single) t=x x=t/y y
18、=t Mod y End Sub 在调用运行上述程序后,a 和 b 的值分别为( )。 (分数:2.00)A.java.exeB.javadoc.exeC.jdb.exeD.javaprof.exe26.1 个三维数组可以存放 1 个矩阵。在程序开始有语句 Option Base o,则下面定义的数中正好可以存放1 个 4x3 矩阵(即只有 12 个元素)的是【 】(分数:2.00)A.Dim a(-2 To 0,2)As IntegerB.Dim a(3,2)As IntegerC.Dim a(4,3)As IntegerD.Dim a(-1 To-4,-1 To-3)As Integer2
19、7.可以实现从键盘输入一个作为双精度变量 a 的值的语句是( )。(分数:2.00)A.函数可以嵌套定义但不能嵌套调用B.函数既可以嵌套调用也可以嵌套定义C.函数既不可以嵌套定义也不可以嵌套调用D.函数可以嵌套调用但不可以嵌套定义28.在深度为 7 的满二叉树中,叶子结点的个数为_。 (分数:2.00)A.32B.31C.64D.6329.下列说法错误的是( )。(分数:2.00)A.SystemB.ObjectC.ClassD.Thread30.与 List1Text 属性值相同的是( )。(分数:2.00)A.List1ListCountB.List1List(ListCount-1)C.
20、List1ListIndexD.List1List(ListListIndex)31.在窗体上有一个命令按钮,然后编写如下事件过程 Private Sub Command1 _ cickc ( ) a=InputBox(“enter the first integer“) b=InputBox(“enter the second integer“) Print b + a End Sub 程序运行后,单击命令按钮,先后在两个输入框中分别输入“2”和“6”,则输出结果为( )。 (分数:2.00)A.ifstream fin;finopen(“C:/testtxt“);B.ifstream fi
21、n(“C:/testtxt“);C.A)和 B)D.ifstream fin;fin(“C:/testtxt“);32.用 InputBox 函数设计的对话框,其功能是( )。(分数:2.00)A.只能接收用户输入的数据,但不会返回任何信息B.能接收用户输入的数据,并能返回用户输入的信息C.既能用于接收用户输入的信息,又能用于输出信息D.专门用于输出信息33.在代码编辑器中,续行符是用来换行书写同一个语句的符号,用以表示续行符的是( )。(分数:2.00)A.一个空格加一个下划线“_”B.一个下划线“_”C.一个造字符“_”D.一个空格加一个连字符“-”34.Sub 过程与 Function
22、过程最根本的区别是( )。(分数:2.00)A.Sub 过程的过程不能返回值,而 Function 过程能返回值B.Function 过程可以有形参,Sub 过程不可以C.Sub 过程可以使用 Call 语句直接使用过程名调用,而 Function 过程不可以D.两种过程参数的传递方式不同35.有如下的程序: Private Sub Command1_Click( ) Dim k As Integer,m As Integer Dim P As Integer k=4:m=1 P=Pid(k,m) :Print P; P=Pid(k,m) :Print P End Sub Private Fu
23、nction Pid(a As Integer,b As Integer) Static m As Integer,i As Integer m=5:i=2 i=i + m + 1 m=i + a + b Pid=m/2 End Function 单击命令按钮后,输出结果为( )。 (分数:2.00)A.标准模块也称程序模块文件,扩展名是.basB.标准模块由程序代码组成C.标准模块只用来定义一些通用的过程D.标准模块不附属于任何一个窗体二、填空题(每空 2 分,共 30 分)(总题数:10,分数:30.00)36.在窗体上画两个文本框,其名称分别为 Namel 和 PassWordl,然后编
24、写如下事件过程 Private Sub Form_Load1 Show NamelText=“ “ PasswordlText=“ “ PasswordlSetFocus End Sub Private Sub Passwordl_KeyDown(KeyCode As Integer,Shift As Integer) NamelText=Name1Text+Chr(KeyCode - 3) End Sub 程序运行后,如果在 Passwordl 中输入“hit,则在 Namel 文本框中显示的内容是 2。 (分数:3.00)填空项 1:_37.在窗体上画一个名称为 Text1 的文本框,然后
25、画三个单选按钮,并用这三个单选按钮建立一个控件数组,名称为 Option1,程序运行后,如果单击某个单选按钮,则文本框中的字体将根据所选择的单选按钮切换,如图所示,请填空。 (分数:3.00)填空项 1:_38.在窗体上画一个文本框和一个图片框,然后编写如下两个事件过程: Private Sub Form_Click1 Text1.Text = “VB 程序设计“ End Sub Private Sub Text1_Change2 Picture1.Print “VB Programming“ End Sub 程序运行后,单击窗体,则在文本框中显示的内容是 3,而在图片框中显示 的内容是 4。
26、 (分数:3.00)填空项 1:_39.在一个窗体上有两个命令按钮,cmdMax 和 cmdMin。单击 cmdMax 时,窗体上显示“字体由小变大”,字号每次增加 2;单击 cmdMin 时,窗体上显示“字体由大变小”,字号每次减小 2。请填空。 Private Sub Form_Load1 FormlCaption =“字体变化示范” cmdMaxCaption=“字体变大” cmdMinCaption=“字体变小” End Sub Private Sub cmdMax_Click2 3 FormlPrint”字体由小变大” End Sub Private Sub cmdMin_Click
27、4 5 FormlPrint“字体由大变小” End Sub (分数:3.00)填空项 1:_40.算法复杂度主要包括时间复杂度和 1 复杂度。(分数:3.00)填空项 1:_41.在 Visual Basic 的立即窗口内输入以下语句 X=65 ? Chr$(X) 在窗口中显示的结果是 1。 (分数:3.00)填空项 1:_42.在窗体上画一个名称为 Command1 的命令按钮,然后编写下列程序: Option Base_1 Private Sub Command1_Click1 Dim a(10)As Integer For i=1 To 10 a(i)=i Next Call swap
28、( 2 ) For i=1 To 10 Print a(i); Next End Sub Sub swap(b3As Integer) n= 4 For i=1 To n/2 t=b(i) b(i)=b(n) b(n)=t 5 Next End Sub 上述程序的功能是通过调用过程 swap,调换数组中数值的存放位置,即 a(1)与 a(10)的值互换, a(2)与 a(9)的值互换,请填空。 (分数:3.00)填空项 1:_填空项 1:_填空项 1:_43.以下过程的作用是将 26 个小写字母逆序打印出来,请补充完整。 Sub Inverse1 For i=122 To 2 Print 3
29、; Next i End Sub (分数:3.00)填空项 1:_44.下列语句的输出结果是 1。 Print Format$(6658.6,“000,000.00“) (分数:3.00)填空项 1:_45.设某循环队列的容量为 50,头指针 front=5(指向队头元素的前一位置),尾指针 rear=29(指向队尾元素),则该循环队列中共有 1 个元素。(分数:3.00)填空项 1:_国家计算机二级(VB)82 答案解析(总分:100.00,做题时间:120 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.在程序运行期间可以将图形装入窗体、图片框
30、或图像框的函数是( )。(分数:2.00)A.程序错误B.!C./0D.为空字符 解析:类 A,类 B,中都有 showa( )函数,类 C 继承后再次重写 showa( )函数就解决了继承的二义性,这时 cshowa( )函数显示的就是类 C 中的 showa( )的值。2.新建一个窗体,其 Borderstyle 属性设置为 Fixed Single,但运行时却没有最大化和最小化按钮,可能的原因是 ( )。(分数:2.00)A.默认情况下,属性 Visible 的值为 FalseB.如果设置控件的 Visible 属性为 False,则运行时控件会隐藏C.Visible 的值可设为 Tru
31、e 或者 FalseD.设置 Visible 属性同设置 Enabled 属性的功能是相同的,都是使控件处于失效状态 解析:关系中每一个属性都有一个取值范围,称为属性的值域。每一个属性对应一个值域,不同属性可对应同一个值域。对应同一值域 的却不一定是不同的属性。属性的值域用 DOM(A)表示,A 表示属性的名称。3.下列程序段的执行结果为( )。 m=2 n=3 Do m=m+n n=n + 1 Loop While m10 Print m;n (分数:2.00)A.1 5B.14 6 C.a bD.10 25解析:此题内容简单,开始 m 为 2,n 为 3,执行 Do 语句,具体运行为:执行
32、 m= m + n;n = n + 1 语句后,m 为 5,n 为 4。这样运行到 m=14,程序终止循环,此时 n =6。4.设 a=2,b=3,c=4,d=5,下列表达式的值是_。Not aa+c (分数:2.00)A.-1B.1C.TrueD.False 解析:本题考的是运算符的优先顺序。在表达式中,当运算符不只一种时,要先处理算术运算符,接着处 理比较运算符,然后再处理逻辑运算符。本题中 aa+c 返回真。Not 真就 是假,假 And 真也返回假,最后假 Or 假,也返回假,所以最后值为 False。5.能够获得一个文本框中被选取文本的内容的属性是( )。(分数:2.00)A.n/1
33、02B.(n-n10)/100C.n10D.n100/10 解析:/比的优先级要高。注意:n/102 的结果应是 0,n/10 结果为 78,用 78 在除以 2 求余则得0;(n- n10)/100 的结果应是 7,n10 得 9,780/100 得 7;n10 的结果显而易见是 9。6.在 Visual Basic 中,要使标签的标题栏居中显示,则将其 Alignment 属性设置为( )。(分数:2.00)A.C+语言的默认访问权限是 private B.C+语言中的类定义,用户一定要自己定义一个构造函数用于实例化类C.C+语言中的成员函数的实现部分一定要写在类定义外D.C+语言中的类不
34、能够嵌套定义解析:本题考查 C+语言中类定义和它的概念。C+语言的默认访问权限修饰符是 private。注意:C+语言中的构造函数是系统默认就有的,用户可以自己定义也可以不定义,故选项 B)错误;C+语言的类是可以嵌套定义的,故选项 D)错误;C+语言中成员函数的实现部分也可以写在类定义内,故选项 C)错误。7.在 Visual Basic 中,下列两个变量名相同的是( )。(分数:2.00)A.属性的一般格式为对象名_属性名称,可以在设计阶段赋予初值,也可以在运行阶段通 过代码来更改对象的属性B.对象是有特殊属性和行为方法的实体 C.属性是对象的特性,所有的对象都有相同的属性D.属性值的设置
35、只可以属性窗口中设置解析:在 Visual Basic 中,对象具有 Visible 属性,它有两个值:True 和 False,决定对象是否可见,如果设置为 True,则可见,如果设置为 False,则是不可见的,所以选项 A)是正确的;标题,即 Caption属性可设为任何文本,包括空字符串,所以选项 B) 是不正确的;属性的值可以不设置,但是系统会设为默认值,而不是空值,所以选项 D)不正确;属性窗口除按字母排列外,还可以分类排列,所以选项 C)是不正确的。8.设窗体上有一个标签 Label 1 和一个计时器 Timer1,Timer1 的 Interval 属性被设置为 1000, E
36、nabled 属性被设置为 True。要求程序运行时每秒在标签中显示一次系统当前时间。下列可以实现上述要求的事件过程是( )。(分数:2.00)A.Private Sub Timer1_Timer() Labell.Caption=True End SubB.Private Sub Timer1_Timer() Labell.Caption=Time$ End Sub C.Private Sub Timer1_Timer() Labell.Interval=1 End SubD.Private Sub Timer1_Timer() For k=1 To Timerl.Interval Labe
37、l1.Caption=Timer Next K End Sub解析: 本题考查的考点是有关计时器的。计时器的 Interval 属性决定了每隔多长时间触发一次 Timer 事件。本题中 Interval 设置为 1000,即每 1 秒触发一次 Timer 事件。在事件中把标签的 Caption 属性设置成为当前时间,用 Time 函数可以得到当前时间。9.下列说法正确的是( )。(分数:2.00)A.宏能够一次完成多个操作B.每一个宏命令都是由动作名和操作参数组成的C.宏可以是很多宏命令组成在一起的宏D.宏是用编程的方法来实现的 解析:在 Access 数据库中,通过直接执行宏或者使用包含宏的
38、用户界面来实现宏的功能,不需要编程。10. 以下程序运行后,单击按钮输出结果是( )。 Private Sub Commandl_Click( ) Dim x As Integer,y As Integer,z As Integer X=4:y=2: Z=3 Call Gopd(x,x,z) Print x;X;Z Call Gopd(x,y,y) Print x;y;y End Sub Private Sub Gopd(x As Integer,y As Integer,z As Integer) X=3 * Z + 1 y=2 * z z=x + y End Sub (分数:2.00)A.
39、6 6 12 7 11 11 B.8 5 10 5 11 11C.9 6 12 9 10 15D.8 10 10 5 9 10解析:第一次调用被调过程 Gopd,主调过程把实参 x,x,z 的地址分别传给形参 x,y,z,此时形参x,y,z 值分别为 4,4 和 3,执 行语句 x=3 * z+1 后,形参 x 值变为 10,此时相对应的实参 x 也变为 10执行语句 y=2*z 后,形参 y 值变为 6,则相对应的实参 x 值变为 6;执行 z=x+y 后 ,形参 z 值应为 12,当然这次调用后,程序代码输出的数值为 6,6,12;第二次调用被调过程 Gopd,主调过程把实参x,x,z 的
40、地址分别传给形 参 x,y,z,此时实参 x 的值为 6 而不是 1,所以此时形参 x,y,z 值分别为6,2 和 2,执行语句 x=3*z+1 后,形参 x 值为 7,相对实参 x 值也相应的变 为 7;执行语句 y=2*z 后,形参 y 值变为 4,相应的实参 y 值也变为 4;执行 x=x+y 后,形参 z 值变为 11,相应的实参 y 的值变为11,而形参 y 和 z 的地址 相同,最后它们值都应为 11,所以此次调用后,程序输出的数值为 7,11 和11。11.单击命令按钮时,下列程序的执行结果为( )。 Private Sub Command1_Click() Dim x As I
41、nteger,y As Integer x=12:y=32 Call Proc(x,y) Print x;y End Sub Public Sub Proc(n As Integer,ByVal m As Integer) n=n Mod 10 m=m Mod 10 End Sub (分数:2.00)A.12 32B.2 32 C.2 3D.12 3解析:此题是函数过程的调用。 在调用过程时,一般主调与被调过程之间有数据传递,即将主调过程的实参传递给被调用的过程,完成实参与形参的结合,然后执行被调过程,在 Visual Basic 中,实参与形参的结合有两种方式:即传址与传值。这两种方法的特点
42、如下: 传址的结合过程是,当调用一个过程时,它将实参的地址传给形参,因此在被调用的过程中,对形参的任何操作都变成了对相应实参的操作,因此实参的值会随形参的改变而改变。 传值的结合过程时:当调用一个过程时,系统将实参的值赋值给形参并断开了联系,被调用过程中的操作时在形参自己的存储单元中进行的,当过程调用结束时,这些形参所占用的存储单元也同时被释放,因此在过程中对形参的任何操作不会影响实参。而题中被调过程 Proc 中有两个形参,其中第一个形参 n 为传址方式,第二个形参 m 为传值方式。主调过程分别把实参 x、y 传递给 Proc,所以当过程调用结束后,实参 x 的值应随着被调过程变化而变化,而
43、实参 y 值在主调函数中始终不变,所以输出 y 的值仍为 32;在被调过程中“n=n Mod l0”被调用时,相当于“x=x Mod l0”,所有 x 的值最终为 2,最后输出结果如选项 B)所示。 12.在窗体上有两个名称分别为 Text1、Text2 的文本框,一个名称为 Command1 的命令按钮。运行后的窗体外观如图所示。 (分数:2.00)A.Open “c:/Test2.dat“ For Output As #1 Put #1,1,P Close #1B.Open “c:/Test2.dat“ For Random As #1 Get #1,1,P Close #1C.Open
44、“c:/Test2.dat“ For Random As #1 Len=Len(p) Put #1,1,P Close #1 D.Open “c:/Test2.dat“ For Random As #1 Len=Len(p) Get #1,1,P Close #1解析:打开随机文件的一般格式为:Open“文件名称”For Random As #文件号Len=记录长度;将内存中的数据写入磁盘要通过 Put 语句实现,格式如下:Put #文件号,记录号,变量;操作完成后,应用Close 语句结束操作。13.假定在窗体(名称为 Form1)的代码窗口中定义如下记录类型: Private Type a
45、nimal animalName As String*20 aColor As String*10 End Type 在窗体上画一个名称为Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim rec As animal Open “c:/vbTest.dat“ For Random As #1 Len = Len(rec) rec.animalName = “Cat“ rec.aColor = “White“ Put #1, , rec Close #1 End Sub 则以下叙述中正确的是( )。 (分数:2.00)A.记录类
46、型 animal 不能在 Form1 中定义,必须在标准模块中定义B.如果文件 c:/vbTest.dat 不存在,则 Open 命令执行失败C.由于 Put 命令中没有指明记录号,因此每次都把记录写到文件的末尾D.语句“Put #1, , rec”将 animal 类型的两个数据元素写到文件中 解析:14.在窗体上画一个命令按钮,然后编写下列程序: Private Sub Command3_Click( ) Tcl 2 Tcl 3 Tel 4 End Sub Sub Tcl(a As Integer) Static x As Integer x=x + a Print x; End Sub
47、程序运行后,单击命令按钮,输出结果为( )。 (分数:2.00)A.2 3 4B.2 5 9 C.3 5 4D.2 4 3解析:在过程 TCL 中,将 Integer 型变量 x 定义为静态变量(Static),Static 语句的格式与 Dim 语句完全一样,但 Static 语句只能出现在事件过程,Sub 过程或 Func- tion 过程中,在过程中的 Static 变量只有局部的作用域,即只能在本过程中可见,但可以和模块级变量传递,即使过程结束后,其值仍能保留。Tcl 过程是将变量 a 的值加上 x 赋给 x,然后输出 x 的值;第一次调用 Tcl 过程时,x 未赋值,默认为 0,所以输出结果为 2,第二次调用 Tcl 过程时,因为 x 为静态变量,所以它的值为上次调用后的值,即为2,加上 a 后,x 的值变为 5,输出结果为 5,同理,第三次调用后输出结果为 9。15.在窗体上画一个名称为 Label1、标题为“VisualBasic 考试”的标签,两个名称分别为 Command1 和Command2、标题分别为“开始”和“停止”的命令按钮,然后画一个名称为 Timer1 的计时器控件,并把其 Interval 属性设置为 500,如图所示: (分数:2.00)A.标签的移动方向为自右向左 B.单击