国家二级(VB)机试模拟试卷327附答案解析

国家二级(VB)机试模拟试卷327

选择题

1.函数过程F1的功能是:如果参数a为奇数,则返回值为1,否则返回值为0。以下能正确实现所述功能的代码的是( )。(B)

A. Function Fl(a As Integer)

If a Mod 2=0 Then

Return 0

Else

Return 1

End If

End Function

B. Function F1(a As Integer)

Ifa Mod 2=0 Then

F1=0

Else

F1=1

End If

End Function

C. Function Fl(a As Integer)

Ifa Mod 2=0 Then

F1=1

Else

F1=0

End If

EndFunction

D. Function F1(a As Integer)

Ifa Mod 2<>0 Then

Return 0

Else

Return 1

EndIf

End Function

解析:本题考查程序的基本算法。定义函数过程时,要求计算结束以后,把函数的返回值存放在过程名中,返回给调用函数。题目中a为奇数,条件为a Mod 2=0时,返回0,否则返回1。

2.下列叙述中正确的是( )。(D)

A. 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

B. 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

C. 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

D. 循环队列中元素的个数是由队头指针和队尾指针共同决定

解析:循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A错误;在循环队列中需要队头指针与队尾指针来共同反映队列中元素的动态变化情况,所以B与C错误。

3.窗体上有一个由两个文本框组成的控件数组,名称为Text1,并有如下事件过程:

Private Sub Text1_Change(Index As Integer)

  Select Case Index

    Case 0

      Text1(1).FontSize=Text1(0).FontSize * 2

      Text1(1).Text=Text1(0).Text

    Case 1

      Text1(0).FontSize=Text1(1).FontSize / 2

      Text1(0).Text=Text1(1).Text

    Case Else

      MsgBox \(D)

A. Index用于标识数组元素

B. 本程序中Case Else分支的语句永远不会被执行

C. 向任何一个文本框输入字符,都会在另一个文本框中显示该字符

D. 下标为0的文本框中显示的字符尺寸将越来越小

解析:控件数组的Index属性作为控件数组的下标,用于标识数组元素。题目中程序功能是当任一个文本框内容改变时设置第2个文本框的字号是第1个文本框字号的2倍,同时两个文本框显示相同文字。假如用户没有使用控件数组的Index属性的默认值程序将执行到Else分支。

4.设有以下函数过程

Private Function Fun(a()As Integer,b As String)As Integer

End Function

若已有变量声明:

Dim x(5)As Integer,n As Integer,ch As String

则下面正确的过程调用语句是( )。(A)

A. x(0)=Fun(x,\

B. n=Fun(n,ch)

C. Call Fun x,\

D. n=Fun(x(5),ch)

解析:在过程定义时如果将其形参定义为数组,则在调用该过程时所赋予的对应实参必须为数组名,而不能是普通变量、数组元素等。Sub子过程可以使用call关键字米调用,但是Function函数过程不可以使用Call关键字调用,同时函数过程有一个返回值,可以将其赋值给其他变量或者数组元素。

5.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )。(A)

A. 冒泡排序为n(n-1)/2

B. 简单插入排序为n

C. 希尔排序为n

D. 快速排序为n/2

解析:在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2:简单插入排序所需要的比较次数为n(n-1)/2:希尔排序所需要的比较次数为O(n1.5);堆排序所需要的比较次数为O(nlog2n)。

6.窗体上有一个名称为HScroll1的滚动条,程序运行后,当单击滚动条两端的箭头时,立即在窗体上显示滚动框的位置(即刻度值)。下面能够实现上述操作的事件过程是(  )。(A)

A. Private Sub HScroll1_Change()

Print HScroll1.Value

End Sub

B. Private Sub HScroll1_Change()

Print HScroll1.SmallChange

End Sub

C. Private Sub HScroll1_Scroll()

Print HScroll1.Value

End Sub

D. Private Sub HScroll1_Scroll()

Print HScroll1.SmallChange

End Sub

解析:根据题意可知,用户的操作是单击滚动条两端的箭头,故触发的是滚动条的Change事件;在窗体上显示的是滚动框的位置,即滚动条的当前刻度值,Value属性值可返回这个值,综合一下,故A选项正确。

7.若看到程序中有以下事件过程,则可以肯定的是,当程序运行时( )。

PriVate Sub Click_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)

Print”VB Program”

End Sub(D)

A. 用鼠标左键单击名称为“Command1”的命令按钮时,执行此过程

B. 用鼠标左键单击名称为“MouseDown”的命令按钮时,执行此过程

C. 用鼠标右键单击名称为“MouseDown”的控件时,执行此过程

D. 用鼠标左键或右键单击名称为“Click”的控件时,执行此过程

解析:本题中,Click是控件的名称,MouseDown是鼠标按下事件,当用鼠标左键或右键单击Click控件时就会触发MouseDown事件,执行MouseDown事件过程。故选D。

8.在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:

Private Sub Command1_Click()

   Dim i As Integer, n As Integer

   For i=0 To 50

     i=i+3

     n=n+1

     If i>10 Then Exit For

   Next

   Text1.Text=Str(n)

End Sub

程序运行后,单击命令按钮,在文本框中显示的值是(  )。(B)

A. 2

B. 3

C. 4

D. 5

解析:程序中For循环的结束有两种情况,一种是循环完指定的次数,一种是达到一定的条件后直接退出循环。由于在循环体中循环变量i的值被修改:i=i+3,因此,每次循环开始时i的取值为0,4,8,i为8时执行i=i+3=11,n=n+1=3,这时i的值大于10,退出For循环,因此For循环执行了3次,即n的值为3。所以在文本框中会显示3。

9.窗体上有名称为Command1的命令按钮和名称为Text1的文本框

Private Sub Command1_Click()

Text1.Text=\(B)

A. 文本框中显示的是\

B. 文本框中显示的是\

C. 文本框中显示的是\

D. 文本框中显示的是\

解析:运行程序,单击命令按钮后,执行Command1_Click事件过程代码,文本框Text1中显示\

10.下列程序执行后,变量a的值为( )。

Dim a,b,C,dAs Single

a=10:b=20:c=40

If b>a Then

d=a:a=b:b=d

End If

If c>a Then

d=a:a=c:c=d

End If

If c>b Then

d=b:b=c:c=d

End If(B)

A. 10

B. 40

C. 20

D. 100

解析:本题考查选择语句。程序段中包括3条选择语句,其作用分别为:如果a小于b那么交换a和b,如果a小于c那么交换a和c,如果b小于c那么交换b和c,相当于对a、b、c做了降序排列。

11.为计算1+2+2<sup>2</sup>+2<sup>3</sup>+2<sup>4</sup>+…+2<sup>10</sup>。的值,并把结果显示在文本框Textl中,若编写如下事件过程:

Private Sub Commandl Click( )

Dim a%,b%,i%

s=1

a=2

For i=2 To 10

a=a*2

b=b+a

Next i

Textl.Text=b

End Sub

执行此事件过程后发现结果是错误的,为能够得到正确结果,应做的修改是( )。(D)

A. 把b=1改为b=0

B. 把For k=2 To 10改为For i=1 To 10

C. 交换语句b=b+a和a=a*2的顺序

D. 同时进行B、C两种修改

解析:事件过程原代码计算的是:1+2<sup>2</sup>+2<sup>3</sup>+2<sup>4</sup>+…+2<sup>10</sup>。共10个数的值,其中缺少一项,即数2。为此应将循环次数由9次修改为10次,即For i=1 To 10,但同时需交换语句b=b+a和a=a*2的顺序,否则将计算表达式:1+2<sup>2</sup>+2<sup>3</sup>+2<sup>4</sup>+…+2<sup>10</sup>+2<sup>11</sup>的值。

12.当窗体最小化时缩小为一个图标,设置这个图标的属性是( )。(B)

A. Mouselcon

B. Icon

C. Picture

D. MousePointer

解析:Mouselcon属性用于设置自定义的鼠标图标;Icon属性用于设置窗体最小化时的图标;Picture属性用于设置在对象中展示一个图形;MousePointer属性用于设置指示在运行时当鼠标移动到对象的一个特定部分时,被显示的鼠标指针的类型。因此本题选项B正确。

13.下列叙述中正确的是(  )。(D)

A. 算法就是程序

B. 设计算法时只需要考虑数据结构的设计

C. 设计算法时只需要考虑结果的可靠性

D. 以上三种说法都不对

解析:算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。

14.设有语句:

Open“C:\Test.Dat”For Output As#l

则以下叙述中错误的是( )。(A)

A. 该语句打开C盘根目录下的一个文件Test.Dat,如果果该文件不存在则出错

B. 该语句打外C盘根目录下一个名为Test.Dat的文件,如果该文件不存在则创建该文件

C. 该语句打开文件的文件号为l

D. 执行该语们后,就可以通过Print#语句向文件Test.Dat中写入信息

解析:本题中是用Open语句打开一个顺序文件Test.Dat,并指定一个文件号1。故C选项正确。如果Test.Dat文件不存在,则系统自动创建该文件。故B选项正确,A选项错误。用ForOutput模式打开文件,可通过Print#语句向文件写入信息。故D选项正确。

15.下面程序运行时,单击窗体后,窗体上显示的结果是 ( )。

Private Sub Form_Click()

Dim i As Integer

Dim sum As Long

Dim t As Long

t=1:sum=0

For i=1 To 3

t=t*I

sum=sum+t

Next I

Print sum

End Sub(B)

A. 3

B. 9

C. 5

D. 6

解析:本题考查累加算法。题目中sum为求和项,初值为0,t为每一项的值,变化规律为后一项是前一项的i倍,i的变化为从1到3,由于t的初值为1,因此求和为1*1+1*2+2*3。

16.在窗体上画一个命令按钮,其名称为Commandl,然后编写如下代码:

Option Base l

Private Sub Commandl_Click()

Dim a

a=Array(1,2,3,4)

j=1

For i=4 To 1 Step_1

S=S+a(i)*j

j=j*10

Next I

Print S

End Sub

程序运行后,单击命令按钮,其输出结果是( )。(B)

A. 4321

B. 1234

C. 34

D. 12

解析:Array函数用来为数组元素赋值,即把一个数据集读入某个数组。其格式为:数组变量名=Array(数组元素值)。Dira a语句没有变量类型名,则a默认为Vatiant类型,这里它作为数组变量使用。现在已知数组a中元素的值依次为1、2、3、4,则For循环中各变量值变化如下:

i=4时,s=s+a(4)*j=0+4*1=4,j=1*10=10

i=3时,s=s+a(3)*j=4+3*10=4+30=34,j=10*10=100

i=2时,s=s+a(2)*j=34+2*100=34+200=234,j=100*10=1000

i=1时.s=s+a(1)*j=234+1*1000=234+1000=1234。循环结束。s的值为1234。

17.为了清除列表框中指定的项目,应使用的方法是(  )。(D)

A. Cls

B. Clear

C. Remove

D. RemoveItem

解析:清除列表框中的指定内容要使用RemoveItem方法,格式为:RemoveItem(索引值),只要指定要清除项目的索引值就可以清除指定项目。如果要清除列表框中的全部内容可以使用Clear方法。

18.窗体上有一个名为Command1的命令按钮,并有下面的程序:

Private Sub Command1_Click()

Dim arr(5)As Integer

For k=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(i+1)=t

End If

Next j

Next i

End Sub

程序运行时,单击命令按钮后显示的是( )。(B)

A. 1 2 3 4 5

B. 5 4 3 2 1

C. 0 1 2 3 4

D. 4 3 2 1 0

解析:程序对数组元素赋初值为1、2、3、4、5。ubound函数返回数组可用的最大下标,过程prog的功能是遍历数组对数组中的元素进行排序,由条件a(j)<a(j+1)可知程序是将数组按从大到小排序。当用数组作为过程的参数时,使用的是“传地址”方式,因此程序输出的是排序后的数组元素值,即5、4、3、2、1。

19.以下不能触发滚动条Change事件的操作是(  )。(C)

A. 拖动滚动框

B. 单击两端的滚动箭头

C. 单击滚动框

D. 单击滚动箭头与滚动框之间的滚动条

解析:改变滚动框的位置后会触发Change事件,拖动滚动框、单击滚动箭头、单击滚动箭头与滚动框之间的滚动条都会改变滚动框的位置。

20.文本框Text1的KeyDown事件过程如下:

Private Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer)

End Sub

其中参数KeyCode的值表示的是发生此事件时( )。(C)

A. 是否按下了Alt键或Ctrl键

B. 按下的是哪个数字键

C. 所按的键盘键的键码

D. 按下的是哪个鼠标键

解析:参数KeyCode返回的是所按键的键码,而且大小写字母键码值相同。故选C。

21.为了使标签控件在显示其内容时不覆盖其背景内容,需进行设置的属性为(  )。(D)

A. BackColor

B. BorderStyle

C. ForeColor

D. BackStyle

解析:标签控件的BackStyle属性值为0时,标签为透明的,不会遮住背景内容,BackStyle属性值为1时,标签将覆盖背景。

22.已知过程定义的首行为Sub sum(a As Integer,b As Integer),则下面过程调用语句中正确的是( )。(D)

A. Call sum(x;y)

B. sum x:y

C. sum(x,y)

D. sum x,y

解析:sub过程的调用有两种方式,一种是把过程的名字放在Call语句中,一种是把过程名作为一个语句来使用。A选项和B选项参数之间的分隔符应使用“;”,故A、B选项均错误;C选项应去掉“实际参数”的括号;故D选项正确。

23.设有如下事件过程:

Private Sub Form_Click()

Sum=0

For k=1 To 3

If k<=1 Then

X=l

Elself k<=2 Then

X=2

Elself k<=3 Then

X=3

Else X=4

End If

Sum=Sum+X

Next k

Print Sum

End Sub

程序运行后,单击窗体,输出结果是( )。(B)

A. 9

B. 6

C. 3

D. 10

解析:程序执行过程如下:

k=l,k<=l成立,执行x=l,sum=sum+x=1

k=2,k<=2成立,执行x=2,sum=sum+x=l+2=3

k=3,k<=3成立,执行x=3,sum=sum+x=3+3=6,循环结束。因此最后输出Sum的值为6。

24.在窗体上画一个通用对话框,其名称为CommonDialog1,则下列与CommonDialog1.ShowOpen方法等效的语句是(  )。(A)

A. CommonDialog1.Action=1

B. CommonDialog1.Action=2

C. CommonDialog1.Action=3

D. CommonDialog1.Action=4

解析:通用对话框的属性Action=1与ShowOpen方法等效,而Action=2则与ShowSave等效。

25.下列选项中不属于软件生命周期开发阶段任务的是( )。(C)

A. 软件测试

B. 概要设计

C. 软件维护

D. 详细设计

解析:软件生命周期分为软件定义、软件开发及软件运行维护三个阶段,其中开发阶段包括概要设计、详细设计、实现和测试。

26.设有以下定义语句:

Private Type point

x As Integer

y As Integer

End Type

Dim a As point

下面语句中正确的是(B)

A. a = 12

B. a.x = 12

C. point = 12

D. point.x = 12

解析:用户可以利用Type语句定义自己的数据类型,其格式如下:

Type 自定义类型名

元素名(下标) As 类型名

[元素名(下标) As 类型名]

End Type

要表示某个自定义数据类型的变量中某个元素时,形式如下:变量名.元素名。所以选项B是正确的。

27.以下关于窗体的叙述中,错误的是(A)

A. 执行Unload Form1语句后,窗体Form1被隐藏,但仍在内存中

B. 当窗体的Enabled属性为False时,窗体不响应鼠标、键盘的操作

C. 当窗体的KeyPreview属性为True时,则窗体能优先响应键盘事件

D. 窗体的Load事件在加载窗体时触发

解析:当执行Unload事件后,从当前的内存中清除窗体,包括关闭和执行Unload语句所触发的事件,故A项表述错误。当窗体的Enabled属性为False时,窗体被禁止,不能响应鼠标、键盘操作,故B项表述正确。KeyPreview属性决定是否在控件的键盘事件之前激活窗体的键盘事件,KeyPreview属性为True时,窗体能优先响应键盘事件,C项表述正确。Load事件主要用来在启动程序时对属性和相关变量进行初始化,在装入窗体后,如果运行程序,将自动触发该事件,故D项表述正确。

28.在程序运行时,下面的叙述中正确的是(  )。(C)

A. 用鼠标右键单击窗体中无控件的部分,会执行窗体的Form_Load事件过程

B. 用鼠标左键单击窗体的标题栏,会执行窗体的Form_Click事件过程

C. 只装入而不显示窗体,也会执行窗体的Form_Load事件过程

D. 装入窗体后,每次显示该窗体时,都会执行窗体的Form_Click事件过程

解析:如果窗体是活动的,那么在窗体上按下鼠标右键(尚未松手抬起),即会触发Form_MouseDown事件,松手抬起后,要先触发Form_MouseUp事件,然后再触发Form_Click事件。如果窗体原先是非活动的,还会触发Form_GotFocus事件,并且它最先发生。Form_Load事件是窗体显示之前,加载时触发,单击窗体时不触发。故A选项错误。

用鼠标左键单击窗体标题栏时,不会执行Form_Click事件过程。故B选项错误。

装入窗体后,每次显示该窗体时或窗体成为活动窗体时,都会执行From_Active窗体的激活事件。故D选项错误。

29.为了让计时器控件每隔10秒产生一个Timer事件,应把Interval属性设置为(D)

A. 10

B. 100

C. 1000

D. 10000

解析:Interval属性用来设置计时器事件之间所间隔的毫秒数(ms),故若每隔10秒产生一个Timer事件,应该把Interval属性设置为10*100=1000毫秒。故选择D选项。

30.线性表常采用的两种存储结构是( )。(C)

A. 散列方法和索引方式

B. 链表存储结构和数组

C. 顺序存储结构和链式存储结构

D. 线性存储结构和非线性存储结构

解析:线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。

31.设有如下程序:

Private Sub Form_Click()

Dim a As String

a = InputBox(\(D)

A. DCBA

B. AABBCCDD

C. DDCCBBAA

D. DCDBCAB

解析:a从对话框得到输入字符串\

32.在窗体上画一个通用对话框控件CD1,则执行以下程序段后,在显示的\(A)

A. Word文件

B. *.Doc

C. 文本文件

D. *.Txt

解析:Filter属性是用来指定对话框中显示的文件类型,它的属性值有一对或多对文本字符串组成,每对字符串用\

33.编写如下程序:

Private Sub Command1_Click()

Dim a(2, 3)

For i = 0 To 2

For j = 0 To 3

a(i, j) = InputBox(\(B)

A. 1 4 3 2 5 8 7 6 9 12 11 10

B. 1 4 3 4 5 8 7 8 9 12 11 12

C. 3 2 1 4 7 6 5 8 11 10 9 12

D. 3 2 3 4 7 6 7 8 11 10 11 12

解析:第一个For的多重循环,将输入的12个整数赋值给数组a(2,3),a[0,0]=1, a[0,1]=2,a[0,2]=3;a[1,0]=4,a[1,1]=5,a[1,2]=6;a[2,0]=7,a[2,1]=8, a[2,2]=9;a[3,0]=10,a[3,1]=11,a[3,2]=12;。第二个For循环,将数组a的第4列的值赋值给第2列;故输出结果如B所示,B正确。

34.窗体上有一个名为List1的列表框和一个名为Command1的命令按钮,并有下面的事件过程:

Private Sub Command1_Click()

  n%=List1.ListIndex

  If n>0 Then

    ch$=List1.List(n)

    List1.List(n)=List1.List(n-1)

    List1.List(n-1)=ch

  End If

End Sub

程序运行时,选中1个列表项,然后单击Command1按钮,则产生的结果是(  )。(A)

A. 若选中的不是最前面的列表项,则选中的列表项与它前一个列表项互换位置

B. 选中的列表项与它前面的列表项互换位置

C. 若选中的不是最后面的列表项,则选中的列表项与它后一个列表项互换位置

D. 选中的列表项与它后面的列表项互换位置

解析:当单击Command1按钮后,List1列表框中被选中项的索引值赋给变量n,如果被选中项不是空也不是第1项时,将选中项的项目文字赋值给变量ch,用选中项的上面一项的文字替换选中项的文字,再把变量ch中的文字替换选中项上面一项的文字,简单说就是选中项和它上面一项的文字交换。因此A选项的说法正确。

35.设有如下程序:

Private Sub Form_Click()

  num=InputBox(\(C)

A. 用字符方式输出该实数

B. 输出该实数的整数部分

C. 输出该实数的小数部分

D. 去掉实数中的小数点,保留所有数码输出

解析:InStr函数查找小数点在输入的实数中的位置,如果找不到将返回0。Mid函数一般有3个参数,从第2个参数指定的位置开始,在第1个参数字符串中截取第3个参数指定长度的字符,第3个参数可以省略,这时就一直截取到字符串尾部。因此程序的意思就是如果输入的是实数(p>0即说明找到了小数点,是实数)就输入该实数的小数部分,否则输出\

36.为了实现对象的自动拖放,应该设置该对象的一个属性。下面设置中正确的是(A)

A. DragMode=1

B. DragMode=0

C. DragIcon=1

D. DragIcon=0

解析:实现对象的自动拖放应设置DragMode=1。

37.设窗体上有一个水平滚动条HScroll1和一个命令按钮Command1,及下面的事件过程:

Private Sub Form_Load()

  HScroll1.Min=0

  HScroll1.Max=100

End Sub

Private Sub Command1_Click()

  HScroll1.Value=70

End Sub

程序运行时单击命令按钮,则滚动条上滚动块位置的图示是(  )。

(C)

A.

B.

C.

D.

解析:题目中程序运行时设置了水平滚动条所能表示的最小值为0,能表示的最大值为100,当单击命令按钮时,设置水平滚动条的当前位置为70,即在水平滚动条中部偏右的位置,按各个选项图形的所示,C选项的图示与题目相符。

38.要使标签中的文本靠右显示,应将其Aligment属性设置为(B)

A. 0-Left Justify

B. 1-Right Justify

C. 2-Center

D. 3

解析:0-Left Justify:文本靠左显示;1-Right Justify:文本靠右显示;2-Center:文本居中显示。

39.有下面程序代码:

Private Sub Command1_Click()

Dim x As Integer, s As Integer

x = 1

For k = 1 To 3

x = x + 1

proc x

s = s + x

Next k

Print s

End Sub

Private Sub proc(ByVal a As Integer)

Static x As Integer

x = x + 1

a = a + x

End Sub

程序运行后,单击命令按钮Command1,输出结果是(B)

A. 6

B. 9

C. 15

D. 19

解析:ByVal表示参数传递时是值传递。不改变实参的值。Command1_Click事件中proc x语句不改变x的值。因此可直接按照for循环的规律计算s的值。选B)。

40.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是(  )。(C)

A. 10

B. 8

C. 6

D. 4

解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一个,所以本题中是5+1=6个。

基本操作题

请根据以下各小题的要求设计Visual Basic应用程序(包括界面和代码)。

41.在名称为Form1的窗体上画一个名称为CD1的通用对话框,通过属性窗口设置CD1的初始路径为C:\,默认的文件名为None,标题为“保存等级考试”,如图2所示。

[操作步骤]

步骤1:新建一个“标准。EXE”工程,选择[工程]→[部件]命令,在弹出的“部件”对话框的列表中选中“MicroSoft Common DiMog Control6.0”项目,单击“确定”按钮。

步骤2:在窗体Form1上画一个通用对话框,其相关属性设置如表12—7所示。

[*]

步骤3:编写Form1的Iroad事件,加入下面的代码:

CD1.ShowSave

步骤4:按要求将文件保存至考生文件夹中。

解析:通用对话框的InitDir属性用于为打开或另存为对话指定初始的目录,如果此属性没有指定,则使用当前目录。

通用对话框的初始路径由InitDir属性设置,默认文件名由FileName属性设置,标题由DialogTitle属性设置。

42.在名称为Form1的窗体上设计一个菜单。要求在窗体上添加名为menu0,标题为“菜单命令”的主菜单,再添加两个名称分别为“menu1”、“menu2”,标题分别为“不可用菜单项”、“上一菜单项可用”的子菜单,并且使程序运行时,menu1子菜单不可用,menu2子菜单已经选中(运行时的效果如图3所示)。

[操作步骤]

步骤1:新建一个“标准EXE”工程,打开VB菜单设计器设计菜单,各菜单项及属性设置如表12—8所示。

[*]

步骤2:打开代码编辑窗口,编写“上一菜单项可用”命令的Click事件过程。

参考代码:

Private Sub menu2_Click()

menu1.Enabled=True

End Sub

步骤3:按要求将文件保存至考生文件夹中。

解析:①VB中的菜单是通过菜单编辑器来设计的。菜单编辑器中的基本设置项有:“标题”项,对应出现在菜单中的显示内容;“名称”项,系统识别菜单项的唯一关键字(不能重复);“索引”项,用于设置菜单数组中各元素的索引号;“快捷键”项,是一个下拉列表框,用于设置菜单项的快捷键;“帮助上下文”项,设置当鼠标移动到某菜单项上按<Fl>键时显示的帮助信息在帮助文件中的对应位置;Visible(可见)项,用于设置控件或菜单项在程序运行时是否可见,值为True表示可见,值为False表示不可见;Enabled(有效)项,用于设置控件或菜单项在程序运行时是否有效,值为True时表示有效,值为False时表示无效(显示为灰色)。通过编辑按钮区的七个按钮可对菜单进行添加、插入、删除、提升(设置为上一级菜单)、缩进(设置为下一级菜单)、上移、下移等操作。

②文本框的Text属性用于设置或返回其显示的文本内容。

本题原程序设计思路:在“上一菜单项可用”命令的单击事件过程中,通过语句设置“不可用菜单项”命令的Enabled属性值为True。

简单应用题

43.(1)在考生文件夹下有一个工程文件sit3.vbp。程序运行后,单击“读入数据”按钮,可把考生文件夹下in3.txt文件中的所有英文单词读入,并显示在Text1文本框中;单击“插入列表框”按钮,则按顺序把每个单词作为一项添加到List1列表框中(如图3.122所示)。在in3.txt文件中每个单词之间用一个空格字符隔开,最后一个单词的后面没有空格。已经给出了所有控件和程序,但程序不完整。

要求:请去掉程序中的注释符,把程序中的?改为正确的内容,使其能正确运行,但不能修改程序中的其他部分和控件属性。最后用原来的文件名保存工程文件和窗体文件。

(2)在考生文件夹下有一个工程文件sjt4.vbp,窗体上已经画出所有控件,如图3.123所示。在运行时,如果单击“开始”按钮,则窗体上的汽车图标每0.1秒向右移动一次(初始状态下不移动);如果单击“停止”按钮,则停止移动。

第1小题

【操作步骤】

步骤1:打开考生文件夹下的工程文件sjt3.vbp,打开代码编辑窗口,去掉程序中的注释符“’”,将问号“?”改为正确的内容。

参考代码:

St=st&Ch

0=Mid(st,k,1)

WOrcl=“’”

步骤2:按要求将文件保存至考生文件夹中。

第2小题

【操作步骤】

步骤1:打开考生文件夹中的本题工程文件sit4.vbp,将计时器Timerl的Enabled属性设置为False,Interval属性设置为100。

步骤2:打开代码编辑窗口,去掉程序中的注释符“’”,将问号“?”改为正确的内容并编写两个命令按钮的单击事件过程。

参考代码:

Private Sub C1 Click()

Timer1.Enabled=True

End Sub

Private Sub C2 Click()

Timerl.Enabled=False

End Sub

Private Sub Timetl Timel.F()

P1.Nove P1.Left+2 0

End Sub

步骤3:按要求将文件保存至考生文件夹中。

解析:

综合应用题

44.考生文件夹下的工程文件sjt5.vbp中的窗体如图2.162所示。考生文件夹下的随机文件in5.dat中有20条记录,每条记录含姓名和三个分数(均为100以内的正整数)。在程序中已经定义了类型Recordtype,此类型变量可以存放一条记录。要求如下:

①请为“计算最大最小值”按钮编写Click事件过程,其功能是:读取文件中的记录,计算每人的总分,找出其中最大总分和最小总分,分别放入变量maxval,minval中(这两个变量已经给出,不得修改)。

②运行程序,单击“计算最大最小值”按钮后再单击“存盘”按钮。

注意:考生不得修改窗体文件中已经存在的控件和程序,在结束程序运行之前,必须依次单击“计算最大最小值”、“存盘”按钮,否则无成绩。最后,程序按原文件名存盘。

【操作步骤】

步骤1:打开考生文件中的本题工程文件sjt5.vbp,在代码编辑窗口的适当位置编写代码。

参考代码:

Private Sub Commandl—Click()

Dim s As Recordtype

Open”in5.dat”For Random As#1 Len

=Len(s)

maxval=0

minval=300

For k=1 To 20

Get#1,,s

sumval=s.a1+s.a2+S.a3

If sumval>maxval Then maxval

=sumval

If sumval<minval Then minval

=sumval

Next k

Close #1

End Sub

步骤2:运行程序,单击“计算最大最小值”命令按钮,然后单击“存盘”按钮。

步骤3:按要求将文件保存至考生文件夹中。

解析:

资源下载《国家二级(VB)机试模拟试卷327附答案解析.doc》 文档仅限注册用户下载,请先
将本套试题Word文档或文章下载到电脑,方便收藏和打印
资源下载
《国家二级(VB)机试模拟试卷327附答案解析.doc》
试题含答案和解析word文档下载价格:免费
将本套试题Word文档或文章下载到电脑,方便收藏和打印
0

评论0

没有账号? 注册  忘记密码?