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

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

选择题

1.结构化程序设计的3种结构是( )。(B)

A. 顺序结构,分支结构,跳转结构

B. 顺序结构,选择结构,循环结构

C. 分支结构,选择结构,循环结构

D. 分支结构,跳转结构,循环结构

解析:程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。

2.关于变量作用域,下列叙述中正确的是( )。(C)

A. 在窗体的Form Lroad事件过程中定义的变量是全局变量

B. 局部变量的作用域可以超出所定义的过程

C. 在某个Sub过程中定义的局部变量可以与其他事件过程中定义的局部变量同名,但其作用域只限于该过程

D. 在调用过程中,所有局部变量被系统初始化为O或空字符串

解析:本题考查变量的作用域。局部变量是在过程内用声明的变量,只能在本过程中使用,不同过程中的局部变量可以重名,由Dim或者Private声明的局部变量在过程调用前才会被初始化为0或空字符串,静态局部变量不会被初始化为0或空字符串:在“通用声明”段中用Public语句声明的变量为全局变量,可被本应用程序的任何过程或函数访问。

3.若已把一个命令按钮的Default属性设置为True,则下面可导致按钮的Click事件过程被调用的操作是(  )。(C)

A. 用鼠标右键单击此按钮

B. 按键盘上的Esc键

C. 按键盘上的回车键

D. 用鼠标右键双击此按钮

解析:当命令按钮的Default属性值为True时,程序运行,按回车键和单击该命令按钮一样都会触发按钮的Click事件;当命令按钮的Cancel属性值为True时,程序运行,按Esc键和单击该命令按钮都会触发按钮的Click事件。故选C。

4.下列关于函数过程的叙述中,正确的是( )。(C)

A. 如果不指明函数过程参数的类型,则该参数没有数据类型

B. 函数过程的返回值可以有多个

C. 函数过程形参的类型与函数返回值的类型没有关系

D. 当数组作为函数过程的参数时,既能以传值方式传递,也能以引用方式传递

解析:本题考查过程定义。在VB中出现的变量,如果没有声明类型,那么为变体型。VB中可以通过调用函数过程得到返回值,一个函数过程只能有一个返回值,如果需要改变主调过程的参数,可以进行传址方式调用函数。VB数组参数中不存在传址调用,函数的参数和返回值类型之间没有任何关系。

5.数据库应用系统中的核心问题是( )。(A)

A. 数据库设计

B. 数据库系统设计

C. 数据库维护

D. 数据库管理员培训

解析:数据库应用系统中的核心问题是数据库的设计。

6.设x=4,y=8,z=7,则以下表达式的运算结果是( )。xz)Or z<x(D)

A. 1

B. -1

C. The

D. False

解析:本题考查逻辑运算。将操作数进行逻辑运算,结果是逻辑值。常见的逻辑运算有逻辑与和逻辑或,格式分别为:“条件表达式l And条件表达式2”,条件表达式均为T时结果为T;“条件表达式1 Or条件表达式2”,有一个条件表达式为T时结果为T。Not为取反运算,若xz为False,因此And运算结果为False:又因为Z<X为False,所以Or运算为False。

7.设窗体上有名称为Option1的单选按钮,且程序中有语句:

If Option1.Value=True Then

下面诏句中与该语句不等价的是( )。(C)

A. If Option1.Value Then

B. If Option1=True Then

C. If Value=True Then

D. If Option1 Then

解析:A选项中Option1.Value可作为一个条件表达式,它返回的是单选按钮Value属性的属性值,根据属性值就可判断出单选按钮是否被选中;B选项中Option1等价于Option1.Value;D选项与A选项等价,故A、B、D选项均与程序中语句等价;C选项中Value是属性名,前面必须加控件名才能用,不能单独使用,故C选项错误。

8.在窗体上有一个名称为Command1的命令按钮,并编写有如下事件过程:

Private Sub Command1_Click()

Dim rec As animal

Open\(B)

A. 记录类型animal不能在Form1中定义,必须在标准模块中定义

B. 如果文件c:\vbTest.dat不存在,则Open命令执行失败

C. 由于Put命令中没有指明记录号,因此每次都把记录写到文件的末尾

D. 语句“Put#1,,rec”将animal类型的两个数据元素写到文件中

解析:本题考查随机文件的基本操作。随机文件以记录作为存储单位,以Random打开文件的格式为:Open文件名For Random As #文件号[Len=记录长度]。如果文件不存在,则打开失败。写操作格式为:Put[#]文件号,[记录号],变量名。可以将一个记录变量的内容写到指定的记录位置处,忽略记录号,则表示在当前记录后的位置插入一条记录。读操作格式为:Get[#]文件号,[记录号],变量名。如果忽略记录号,则读出当前记录后面的那一条记录。一般记录类型在VB中是以Type定义的自定义类型,可以在窗体和标准模块中定义。

9.下列程序的执行结果为( )。

n=0

j=1

Do Until n>2

n=n+1:j=j+n*(n+1)

Loop

Print n:i(C)

A. 0 1

B. 3 7

C. 3 21

D. 3 13

解析:本题考查循环程序的分析。在Do Until循环中如果n小于等于2,那么把n*(n+1)的结果累加到j上。因此程序的功能为:循环变量n从0开始到2共执行了3次,目的为计算1+1*2+2*3+3*4。

10.下面关于标准模块的叙述中,错误的是( )。(B)

A. 标准模块中可以声明全局变量

B. 标准模块中可以包含一个Sub Main过程,但此过程不能被设置为启动过程

C. 标准模块中可以包含一些Public过程

D. 一个工程中可以含有多个标准模块

解析:标准模块中可以包含一个Sub Main过程,可以通过“工程属性”对话框中将Sub Main过程设置启动对象。故B选项错误。

11.下列程序的功能是调用字体对话框来设置文本框中的字体,单击Command1按钮弹出对话框,进行相应的字体、字号等的设置,然后单击“确定”按钮退出对话框,则文本框中将发生哪些变化( )。

Private Sub Command1_Click()

CommonDialog1.CancelError=True

CommonDialog1.Flags=3

On Error Resume Next

CommonDialog1.ShowFont

Text1.Font.Name=CommonDialogl.FontName

Text1.Font.Size=CommonDialogl.FontSize

Text1.Font.Bold_=CommonDialog1.FontBold

Text1.Font.Italic==CommonDialog1.Fontlmlic

Text1.FontUnderline~-ommonDialogl.FontUnderline

Text1.FontStrikethru=ommonDialogl.FontStrikethru

Text1.ForeColor=CommonDialog1.Color

End Sub(B)

A. Text1的文字下划线发生变化

B. Text1的字体发生变化

C. Text1的字体和颜色发生变化

D. 程序出错

解析:本题考查通用对话框的属性。CommonDialogl的Flags属性值为3时,出现的字体对话框中没有删除线、下划线、颜色元素,因此利用CommonDialog1不能改变文本框中字体颜色以及删除线和下划线,但是可更改Text1中的字体。

12.在窗体(Name属性为Form1)上画两个文本框(Name属性分别为Text1和Text2)和一个命令按钮(Name属性为Command1),然后编写如下两个事件过程( )。

Private Sub Command1_Click()

a=Text1.Text+Text2.Text

Print a

End Sub

Private Sub Form_Load()

Text1.Text=\(C)

A. 444

B. 321123

C. 123321

D. 132231

解析:文本框的’Text属性返回的是字符串。因此,Text1.Text的值为“123”、Text2.Text的值为“321”,题目中语句“a=Text1.Text+Text2.Text”就是一个连接字符并赋值运算,两个值连接起来就是123321,因此本题最后输出结果为选项C。

13.若在窗体模块的声明部分声明了如下自定义类型和数组

Private Type Tem

Score As Integer

StrName As String

End Type

Dim Student(5) As Tem

则下面的输出语句中正确的是( )。(A)

A. Print Student.Score(2),Student.StrName(2)

B. PrintStudent.Score,Student.StrName

C. Print Student(2).Score,Student(2).StrName

D. Print Score(2),StrName(2)

解析:在标准模块中可以声明自定义类型,该类型由Type关键字声明,在声明中要定义类型的所有域。若用自定义类型声明一个变量,则该变量拥有若干域,取得每个域的值需要用”变量名.域名”的形式。作为一个自定义类型的数组,首先要取出某个数组元素然后才能访问该元素的某个域,所以要想访问Student(2)的域,需要使用Student(2).Score和Student(2).StrName。

14.在标准模块中用Public关键字定义的变量,其作用域为(  )。(B)

A. 本模块所有过程

B. 整个工程

C. 所有窗体

D. 所有标准模块

解析:在标准模块中用Public定义的变量是公用的、全局变量,在整个工程中的所有窗口、模块中都能引用,作用域是整个工程。故B选项正确。

15.在Visual Basic 6.0集成开发环境中,主窗口的标准工具栏上有一个按钮,单击此按钮可以运行正在设计的工程,这个按钮的图标是( )。

(A)

A.

B.

C.

D.

解析:在Visual Basic 6.0集成开发环境中,单击A选项中按钮可以运行正在设计的工程,B图标表示暂停,c图标表示停止,D图标表示撤销。故A选项正确。

16.编写如下程序:

Private Sub Command1_Click()

Dim a(3, 3)As Integer

Dim s As Integer

For i=1 To 3

For j=1 To 3

a(i, j)=i * j+i

Next j

Next i

s=0

For i=1 To 3

s=s+a(i, 4-i)

Next i

Print s

End Sub

程序运行后,单击命令按钮Command1,输出结果为(  )。(C)

A. 7

B. 13

C. 16

D. 20

解析:程序通过For循环为数组a赋值,具体值如下:

a(1,1)=1+1=2, a(1,2)=2+1=3, a(1,3)=3+1=4;

a(2,1)=2+2=4, a(2,2)=4+2=6, a(2,3)=6+2=8;

a(3,1)=3+3=6, a(3,2)=6+3=9, a(3,3)=9+3=12;

程序要计算指定数组元素的和,这几个元素是a(1,3), a(2,2), a(3,1),所以s=4+6+6=16。

17.在窗体上画一个名称为Text1的文本框,并编写如下程序:

Option Base 1

Private Sub Form_Click()

Dim arr

Dim Start As Integer, Finish As Integer

Dim Sum As Integer

arr=Array(12, 4, 8, 16)

Start=LBound(arr)

Finish=UBound(arr)

Sum=0

For i=Start To Finish

Sum=Sum+arr(i)

Next i

c=Sum / Finish

Text1.Text=c

End Sub

运行程序,单击窗体,则在文本框中显示的是(  )。(B)

A. 40

B. 10

C. 12

D. 16

解析:程序中将变量arr初始化为有4个元素的数组,使用Lbound和Ubound函数分别获取数组下标的上下限,然后将数组中的元素值相加,用整除运算求它们的平均值。算式可写为(12+4+8+16)/ 4=(40)/4=10。所以答案为B。

18.以下关于VB特点的叙述中,错误的是(D)

A. VB采用事件驱动的编程机制

B. VB程序能够以解释方式运行

C. VB程序能够以编译方式运行

D. VB程序总是从Form_Load事件过程开始执行

解析:在一般情况下,整个应用程序从设计时的第一个窗体开始执行,需要首先执行的程序代码放在Form_Load事件过程中。如果需要从其他窗体开始执行应用程序,则可通过\

19.设有如下事件过程:

Private Sub Command1_Click()

Dim a

a=Array(3, 5, 6, 3, 2, 6, 5, 3, 5, 4, 3, 9, 4, 5, 6, 3, 5)

x=0

n=UBound(a)

For i=0 To n

m=0

For j=0 To n

If a(i)=a(j)Then

m=m+1

End If

Next j

If m>x Then x=m: b=a(i)

Next i

Print b

End Sub

运行程序,输出是(  )。(B)

A. 2

B. 3

C. 5

D. 9

解析:本题程序中内层For循环是统计具有相同值元素的个数,外层循环的功能则是,对数组中的所有元素进行统计,找出第1个具有相同值的元素个数最多的那个元素值。数组组中元素值为3的元素有5个,元素值为5的元素有5个,元素值为6的元素为3个,元素值为2的元素有1个,元素值为4的元素有1个,元素值为9的元素有1个。因此第1个具有相同元素值的最多个的元素值是3。

20.以下关于控件的叙述中,正确的是(C)

A. 标签控件能够获得焦点

B. 不能对列表框中的列表项进行多项选择

C. 命令按钮的外观可以被设置为图形

D. 设置形状控件的Shape属性,可以使其呈现为直线

解析:标签、框架、菜单、直线、形状、图像框、计时器都不能接收焦点,选项A)错误;列表框用于显示可供做单一或多个选择的列表项,选项B)错误;形状控件(Shape)提供了显示一些规则图形的简易方法,通过设置形状控件Shape属性值,可显示6种图形:0-矩形、1-正方形、2-椭圆、3-圆、4-圆角矩形、5-圆角正方形,选项D)错误。

21.下面不属于软件需求分析阶段主要工作的是( )。(A)

A. 需求变更申请

B. 需求分析

C. 需求评审

D. 需求获取

解析:需求分析阶段的工作可概括为4个方面:

①需求获取;

②需求分析;

③编写需求规格说明书;

④需求审评。

22.一个栈的初始状态为空。现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是(C)

A. 1,2,3,A,B,C

B. C,B,A,1,2,3

C. C,B,A,3,2,1

D. 1,2,3,C,B,A

解析:栈的修改是按后进先出的原则进行的,所以顺序应与入栈顺序相反,故选C。

23.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为(C)

A. 9

B. 10

C. 45

D. 90

解析:冒泡法是在扫描过程中逐次比较相邻两个元素的大小,最坏的情况是每次比较都要将相邻的两个元素互换,需要互换的次数为9+8+7+6+5+4+3+2+1=45,选C。

24.设子程序过程定义的首部为:

Public Sub S(X As Integer, Y As Single)

则以下正确的调用形式为(D)

A. Call S 5, 4.8

B. Call Sub(5, 4.8)

C. Sub 5, 4.8

D. S 5, 4.8

解析:(1)用Call语句调用Sub过程:语法:Call 过程名([实参表列]),实参的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。(2)把过程名作为一个语句来用:语法:过程名 [实参1[,实参2…]],它与(1)的不同点是:去掉了关键字和实参列表的括号。

25.下面程序的运行结果是( )。

Private Sub Form Click()

i=0

Do Until 0

i=i+1

If i>10 Then Exit Do

Loop

Print i

End Sub(C)

A. 0

B. 10

C. 11

D. 出错

解析:本题考查Do Until…Loop循环的。对于这种循环结构,条件判断在循环体前,因此有可能一次循环体条件也不执行。由Until引出的循环为,当条件为False时执行循环体;为True时退出循环。初始时,题中Until后面的条件为0,因此会一直运行循环体,直到i大于10成立,退出循环。i第一次大于10的值为11,因此最后输出11。

26.在窗体上画一个文本框(名称为Text1)和一个标签(名称为Label1),程序运行后,在文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数。以下可以实现上述操作的事件过程是(  )。(A)

A. Private Sub Text1_Change()

Label1.Caption=Str(Len(Text1.Text))

End Sub

B. Private Sub Text1_Click()

Label1.Caption=Str(Len(Text1.Text))

End Sub

C. Private Sub Text1_Change()

Label1.Caption=Text1.Text

End Sub

D. Private Sub Label1_Change()

Label1.Caption=Str(Len(Text1.Text))

End Sub

解析:根据题意可知,在文本框中输入字符这个动作使标签上显示的内容发生变化,说明是文本框触发了某事件,排除D选项;文本框中每输入一个字符,标签中立即就会发生变化,故是Change事件,排除B选项;标签中显示的是文本框中字符的个数,不是输入的内容,排除C选项。故A选项正确。

27.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是(  )。(B)

A. 一对一

B. 一对多

C. 多对一

D. 多对多

解析:因为一间宿舍可以住多个学生即多个学生住在一个宿舍中,但一个学生只能住一间宿舍,所以实体宿舍和学生之间是一对多的关系。

28.以下叙述中错误的是(A)

A. 事件过程可以像通用过程一样由用户指定过程名

B. 在Sub过程中可以调用其它过程

C. 在Sub过程中不能定义其它过程

D. 如果过程被定义为Static类型,则该过程中的局部变量都是Static类型

解析:事件不同通用过程,事件过程名是系统自动生成的,不能通过用户指定,故选项A表述错误。Sub过程可以调用其他过程,但是不能在过程中定义其他过程,故选项B、C表述正确。如果过程被定义为Static,即静态类型,则该过程中的局部变量也是Static类型,故D项表述正确。

29.语句Dim a(-3 To 4,3 To 6)As Integer 定义的数组的元素个数是(  )。(D)

A. 18

B. 28

C. 21

D. 32

解析:本题定义的是一个整型的二维数组,-3 To 4指的是-3、-2、-1、0、1、2、3、4(共8行),3 To 6指的是3、4、5、6(共4列),因此数组元素个数是8×4=32,故选D。

30.对下列二叉树进行前序遍历的结果为( )。

(B)

A. ABCDEFGH

B. ABDGEHCF

C. GDBEHACF

D. GDHEBFCA

解析:遍历就是不重复地访问二叉树的所有结点。二叉树遍历的方法有3种:前序遍历、中序遍历和后序遍历。记住3种遍历的顺序:①前序,访问根一按前序遍历左予树一按前序遍历右子树;②中序,按中序遍历左子树一访问根一按中序遍历右了树:③后序,按后序遍历左子树一按后序遍历右子树一访问根。所以对该二叉树的中序遍历结果为ABDGEHCF。

31.下列循环中,可以正常结束的是(  )。(B)

A. i=10

Do

i=i+1

Loop Until i<1

B. i=1

Do

i=i+1

Loop Until i=10

C. i=10

Do

i=i+1

Loop While i>1

D. i=10

Do

i=i-2

Loop Until i=1

解析:选项A中先执行一次循环体,i的值变成1,测试循环结束条件,i1是否成立,此后i值不会小于等于,循环会一直继续下去,不会正常结束。选项D中i初值为10,每次循环i值减2,因此它总是偶数,而循环结束的条件是i=1,不可能达到,循环会一直继续下去。

32.设子程序过程定义的首部为:

Public Sub S(X As Integer, Y As Single)

则以下正确的调用形式为(D)

A. Call S 5, 4.8

B. Call Sub(5, 4.8)

C. Sub 5, 4.8

D. S 5, 4.8

解析:(1)用Call语句调用Sub过程:语法:Call 过程名([实参表列]),实参的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。(2)把过程名作为一个语句来用:语法:过程名 [实参1[,实参2…]],它与(1)的不同点是:去掉了关键字和实参列表的括号。

33.求1!+2!+……+10!的程序如下:

Private Function s(x As Integer)

f=1

For i=1 To x

f=f * i

Next

s=f

End Function

Private Sub Command1_Click()

Dim i As Integer

Dim y As Long

For i=1 To 10

Next

Print y

End Sub

为实现功能要求,程序的横线处应该填入的内容是(  )。(C)

A. Call s(i)

B. Call s

C. y=y+s(i)

D. y=y+s

解析:题目中过程s的功能是实现一个数的阶乘,而题目是求1到10的阶乘的和,则程序空缺处应该是过程s返回值的累加,因此就应该为y=y+s(i)。

34.以下叙述中,错误的是(B)

A. 标准模块不属于任何一个窗体

B. 工程文件的扩展名为.vbg

C. 窗体文件的扩展名为.frm

D. 一个应用程序可以有多个窗体

解析:工程文件的扩展名为.vbp。

[subscribe id=”文章 ID” credit=”3″]35.下列关于顺序文件的描述中,正确的是(  )。(D)

A. 文件的组织与数据写入的顺序无关

B. 主要的优点是占空间少,且容易实现记录的增减操作

C. 每条记录的长度是固定的

D. 不能像随机文件一样灵活地存取数据

解析:顺序文件的特点是:文件中各记录写入、存放和读取的顺序是一致的,即最先写入的记录放在文件的最前面,后面写入的依次往后面存放,最后写入的记录存放在文件的最后。读取时也是,先读取完前面的记录,才能读取后面的记录。所以文件的组织与数据写入的顺序有关,而且读取文件时效率低,不灵活。故A选项错误,D选项正确。根据顺序文件的特点,文件实现记录的增减不容易。故B选项错误。顺序文件的每条记录中各数据项个数不固定,所以记录的长度也不固定。故C选项错误。

36.软件设计中模块划分应遵循的准则是(C)

A. 低内聚低耦合

B. 高耦合高内聚

C. 高内聚低耦合

D. 以上说法均错误

解析:根据软件设计原理提出如下优化准则:① 划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。② 一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。③ 软件结构的深度、宽度、扇入、扇出应适当。④ 模块的大小要适中。C正确。

37.设窗体上有1个水平滚动条,已经通过属性窗口把它的Max属性设置为1,Min属性设置为100。下面叙述中正确的是(  )。(A)

A. 程序运行时,若使滚动块向左移动,滚动条的Value属性值就增加

B. 程序运行时,若使滚动块向左移动,滚动条的Value属性值就减少

C. 由于滚动条的Max属性值小于Min属性值,程序会出错

D. 由于滚动条的Max属性值小于Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动

解析:水平滚动条的Max和Min属性值可以是0~32767中任意值。当Max>Min属性值时,滚动块向右移动Value属性值增加,向左移动Value属性值减少;反之,当Max<Min属性值时,滚动块向右移动Value属性值减少,向左增加;当它们Max=Min时,滚动块不能移动。故A选项正确。

38.对于循环队列,下列叙述中正确的是(  )。(D)

A. 队头指针是固定不变的

B. 队头指针一定大于队尾指针

C. 队头指针一定小于队尾指针

D. 队头指针可以大于队尾指针,也可以小于队尾指针

解析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构所以对头指针有时可能大于队尾指针有时也可能小于队尾指针。

39.使用Line控件在窗体上画一条从(0,0)到(600,700)的直线,则其相应属性的值应是(  )。(A)

A. X1=0, X2=600, Y1=0, Y2=700

B. Y1=0, Y2=600, X1=0, X2=700

C. X1=0, X2=0, Y1=600, Y2=700

D. Y1=0, Y2=0, X1=600, X2=700

解析:X1、Y1、X2、Y2属性是直线的起点、终点坐标。故选A。

40.输入Visual Basic源程序时,若一个命令行中包含两个语句,则两个语句之间的分隔符应使用(A)

A. 冒号(:)

B. 分号(;)

C. 下划线(_)

D. 连字符(-)

解析:输入Visual Basic源程序时,若一个命令行中包含两个语句,则两个语句之间的分隔符应使用冒号(:)。

基本操作题

请根据以下各小题的要求设计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)在考生文件夹下有一个工程文件sjt3.vbp,相应的窗体文件为sjt3.frm。其功能是随机产生20个0—1000范围内的整数,然后放入一个数组中,然后输出这20个整数中大于500的所有整数之和。程序运行后,单击命令按钮(名称为Command1,标题为“输出大于500的整数之和”),即可求出这些整数的和,并显示在窗体上(如图所示)。这个程序不完整,请把它补充完整,并能正确运行。

要求:去掉程序中的注释符,把程序中的“?”改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。

(1)【操作步骤】

步骤1:打开本题工程文件。

步骤2:分析并编写程序代码。

程序提供代码

Option Base 1

Private Sub Command1_Click()

Dim arrN(20) As Integer

Dim Sum As Integer

Randomize

For i = 1 To 20

’ arrN(i) = Int(Rnd * ?)

Next i

’ Sum = ?

For i = 1 To 20

’ If ? Then

’  Sum = ?

End If

Next i

Print Sum

End Sub

程序结束

参考答案

第1个?处填入:1000

第2个?处填入:0

第3个?处填入:arrN(i) > 500 或500<arrN(i)

第4个?处填入:Sum + arrN(i)

步骤3:调试并运行程序,关闭程序后按题目要求存盘。

(2)【操作步骤】

步骤1:打开本题工程文件。

步骤2:分析并编写程序代码。

程序提供代码

Sub SaveData()

Open App.Path & \

解析:

综合应用题

44.在考生的文件夹下有一个工程文件sjt5.vbp,相应的窗体文件为sjt5.frm。在窗体上有两个命令按钮,其名称分别为Command1和Cornrnand2,标题分别为“写文件”和“读文件”,如图3.131(a)所示。其中“写文件”命令按钮事件过程用来建立一个通信录,以随机存取方式保存到文件t5.txt中;而“读文件”命令按钮事件过程用来读出文件t5.txt中的每个记录,并在窗体上显示出来。通信录中的每个记录由三个字段组成,结构如下:

姓名(Name) 电话(Tel) 邮政编码(Pos)

LiuMingliang (010)62781234 100082

各字段的类型和长度为:

姓名(Name):字符串15

电话(Tel):字符串15

邮政编码(Pos):长整型(Long)

程序运行后,如果单击“写文件”命令按钮,则可以随机存取方式打开文件t5.txt,并根据提示向文件中添加记录,每写入一个记录后,都要询问是否再输入新记录,,回答“Y”(或“y”)则输入新记录,回答“N”(或“n”)则停止输入;如果单击“读文件\

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

RecNum=RecNum+1

Put #1,RecNum,Pers

Loop While UCase(asp) \

解析:在“写文件”命令按钮的Click事件过程中,用Open语句打开考生文件夹下的文件t5.txt,变量RecNurn代表记录个数,在Do…Loop循环中(以输入的不是“N”作为循环条件),用Put语句将记录变量Pers写入随机文件中相应记录号的记录,然后令记录号加1以便下次继续写入。在“读文件”命令按钮的Crick事件过程中,用Open语句打开文件t5.txt,同样使用变量RecNum代表记录个数,然后再一个For循环中依次使用Get语句取出每一个记录并且显示。[/subscribe]

资源下载《国家二级(VB)机试模拟试卷339附答案解析.doc》 文档下载价格为30下载币,请先
将本套试题Word文档或文章下载到电脑,方便收藏和打印
资源下载
《国家二级(VB)机试模拟试卷339附答案解析.doc》
试题含答案和解析word文档下载价格:30 下载币
《国家二级(VB)机试模拟试卷339附答案解析.doc》
试题含答案和解析word文档VIP优惠:免费
将本套试题Word文档或文章下载到电脑,方便收藏和打印
0

评论0

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