1、VB 机试模拟试卷 16 及答案与解析 一、基本操作题( 30分) 1 注意:下面出现的 “考生文件夹 ”均为 c: wexam25160001。 请根据以下各小题的要求设计 Visual Basic应用程序 (包括界面和代码 )。 (1) 在名称为 Form1的窗体上放置一个名称为 Drive1的 Drive ListBox 控件,一个名称为 Dir1的 DirListBox控件和一个名称为 Filel的 FileListBox 控件。程序运行时,可以对系统中的文件进行浏览;当双击 File1中的文件名时,用 MsgBox显示文件名 (不显 示路径名 )。如图 16-1所示。 注意:程序中不
2、得使用任何变量;保存时必须存放在考生文件夹下,窗体文件名为 sjt1.frm,工程文件名为 sjt1.vbp。 (2) 在名称为 Form1的窗体上放置一个名为 Text1的文本框控件和一个名为 Timer1的计时器控件,程序运行后,文本框中显示的是当前的时间,而且每一秒文本框中所显示的时间都会随时间的变化而改变。 注意:程序中不得使用任何变量;保存时必须存放在考生文件夹下,窗体文件名为 sjt2.frm,工程文件名为 sjt2.vbp,如图 16-2所示。二、简单应用题 ( 40分) 2 注意:下面出现的 “考生文件夹 ”均为 c: wexam25160001。 (1) 在考生文件夹下有一个
3、工程文件 sjt3.vbp,窗体上有一个单选按钮数组,含三个单选按钮,均没有标题,请利用 “属性 ”窗口为单选按钮依次添加标题为 “北京 ”、 “上海 ”、 “广州 ”;再添加一个标题为 “显示 ”的命令按钮,如图 18-3所示。程序的功能是在运行时,如果选中一个单选按钮后,单击 “显示 ”按钮,则根据单选按钮的选中情况,在窗体上显示 “我的出生地是北京 ”、 “我的出生地是上海 ”或 “我的出生地是广州 ”。 要求: 依次添加单 选按钮标题为 “北京 ”、 “上海 ”、 “广州 ”;设初始选中的是 “广州 ”,添加命令按钮标题为 “显示 ”;去掉程序中的注释符,把程序中的 ?改为正确的内容,
4、使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的其他属性。最后把修改后的文件按原文件名存盘。 (2) 在考生文件夹下有一个工程文件sjt4.vbp,请在 Form1窗体中画三个标签,名称分别为 B1、 B2和 L1,标题分别为“字号 ”、 “字体 ”、 “计算机等级考试 ”,其中 L1 的高为 500,宽为 3000;再在 B1和B2标签的下面画两个组合框,名称分别为 Cb1和 Cb2,并为 Cb1添加项目:“10”、 “15”和 “20”,为 Cb2添加项目: “黑体 ”、 “隶书 ”和 “宋体 ”,以上请在设计时实现。请编写适当的事件过程,使得程序在运行时,当在 Cb1中选一
5、个字号,在Cb2中选一个字体,标签 11中的文字立即变为选定的字号和字体。程序运行界面如图 18-4所示。 注意:考生不得修改窗体文件中已经存在的程序,在结束程序运行之前,必须选择一个字号和字体。必须用窗体右上角的关闭按钮结束程序,否则无成绩。最后,按原文件名存盘,程序中不能使用任何变量。三、综合应用题( 30分) 3 注意:下面出 现的 “考生文件夹 ”均为 c: wexam25160001。 在考生文件夹下有工程文件 sjt5.vbp及窗体文件 sjt5.frm,该程序是不完整的,请在有 ?号的地方填入正确内容,然后删除 ?及所有注释符 (即 号 ),但不能修改其他部分。存盘时不得改变文件
6、名和文件夹。如图 17-5所示。 在名称为 Form1,标题为 “分苹果 ”的窗体上,有名称为 Frame1,标题为 “分苹果大赛 ”的一个 Frame控件。其中包括 4个Picture控件、 4个 Labe1控件和 4个 Command控件。具体如下: PicSmile(0) (1)为 Tom和 Marry的笑脸图案 ,PicCry(0) (1)为哭脸图案; PicSmile(0)和 PicCry(0)重叠, PicSmile(1)和 PicCry(1)重叠。按 Command1(0)和 Command1(1)时, Labe1(0)和labe1(1)减少。当 Labe1(0)或 Labe1(
7、1)的值为零时,相对应的 Command按钮失效(变灰 );按 Command2(0)和 Command1(1)时, Labe1(0)和 Labe1(1)增加。程序启动时两人均为笑脸。两人当中所分苹果比较多的呈现笑脸,另一个是哭脸; 如果两人的苹果一样多,则两人都为笑脸。 VB 机试模拟试卷 16 答案与解析 一、基本操作题( 30分) 1 【正确答案】 在窗体上建立好控件后,先设置控件属性,再编写事件过程。 文件系统控件有 3种:驱动器列表框 (DriveListBox),目录列表框 (DirListBox)和文件列表框 (FileListBox)。 3个文件系统控件必须协调工作才能构成一个
8、文件管理系统,当用户在驱动器列表框中选择一个新的列表框或在当目录列表框 Path的属性改变都触发 Change事件,将三者 (利用本题中 3个对象的名称 )实现同步的 代码为: File1.Path=Dir1.Path, Dir1.Path= Drive1.Drive。双击触发 DblClick事件弹出MsgBox显示文件名,其格式为: MsgBox提示 ,按钮 ,标题 。解题步骤: 第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 16-1。第二步:编写程序代码。 参考代码: Option ExpliCit Private Sub Dir1_Change() File1.Path
9、=Dir1.Path End Sub Private Sub Drive1_Change() Dir1.Path=Drive1.Drive End Sub Private Sub File1_dblClick() MsgBox Filel.FileName End Sub Private Sub Form_Load() Dir1.Path=Drive1.Drive File1.Path=Dir1.Path End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。 (2)在 窗体上建立好控件后,先设置控件的属性,再编写事件过程。 时钟控件作用是以一定的时间间隔激发计时器事件 (Time
10、r)而执行相应程序代码,其 Interval属性决定时间间隔的长短,以毫秒为单位,所以要实现每一秒文本框的时间改变只要使该属性设置为 1000即可,要使程序运行后取得当前时间可用 Time函数取得,程序用到的 Str函数将其中的内容转化为字符串。解题步骤: 第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表16-2。 第三步:调试并运行程序。 第四步:按题目要求存盘。 二、简单应用题( 40分) 2 【正确答案】 单选按钮的标题由 Caption属性设置,检测单选按钮的状态通过Value属性来实现。如果单选按钮被选中,则 Value值为 1;没选中, Value值为0。当建立控件数组
11、时,系统给每个元素赋一个惟一的索引号 (Index),通过属性窗口的 Index属性,可以知道该控件的下标是多少;在窗体上显示信息通过 Print方法实现,其形式为: 对象 . print要显示的内容。解题步骤: 第一步:建立界面并设置控件属性。程序用到的控件及其属性见表 18-3。第二步:编写程序代码。 程序提供的代 码: Private Sub C1_Click() For i= ? To ? If Op1(i) ?=True Then Print “我的出生地是 “+Op1(i) .? End If Next End Sub 参考代码: Private Sub C1_Click() Fo
12、r i=0 To Op1.Count-1 If Op1(i) .Value=True Then Print “我的出生地 是 “+Op1(i) .Caption End If Next End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。 (2)在窗体上建立好控件后,先设置控件的属性,再编写事件过程。 标签的标题由 Caption属性设置,控件的高和宽分别由 Height和Width属性来设置。控件的名称由 Name属性设置,向组合框添加项目有两种方法,可以在 “属性 ”窗口的 List属性里直接添加,也可以在代码中添加。题目要求在设计时添加。字体和字号分别由控件 FontSiz
13、e属性和 FontName属性来设置。解题步骤: 第一步:建立界面并设置控件属性。程序用到的控件及其属性见表 18-4。 第二步:编写程序代码。 参考代码: Private Sub Cb1_Click() L1.Font.Size=Cb1.Text End Sub Private Sub Cb2_Click() L1.Font.Name=Cb2.Text End Sub Private Sub Form Unload(Cancel As Integer) Dim i As Long, j As Long Open “out4.txt“ For Output As #1 For i=0 To C
14、b1.LiStCount-1 Cb1.ListIndex=i For j=0 To Cb2.ListCount-1 Cb2.ListIndex=j Print #1, Cb1.Text & Cb2.Text & CInt(L1.Font.Size) & L1.Font Next j Next i Close #1 End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。 三、综合应用题( 30分) 3 【正确答案】 在窗体上建立好控件后,先设置控件属性,再编写事件过程。 控件数组是由一组相同类型的控件组成,建立控件数组时系统给每个元素赋一个惟一的索引号 (Index),控件数组 cm
15、dName(3)表示控件数组名为 cmdName的第 4个元素;利用其下标号可选择不同的控件数组元素,如:控件是否可用由其 Enabled属性决定,当该属性值为 True时可用,为 False时不可用 (灰色 );控件是否可见由其Visible属性决定,该值为 True时,控件可见,为 False时控件不可见。解题步骤: 第一步:建立界面并 设置控件属性。程序中用到的控件及其属性见表 17-5。第二步:编写程序代码。 程序提供的代码: Option Explicit Private Sub Command1_Click(Index As Integer) If Index=0 Then If
16、Val(Label3(0) .Caption) 1 Then Command1 (0) .Enabled=True Label3(0) .Caption=Labe13(0) .Caption-1 Else If Val(Label3(0) .Caption)=1 Then Labe13(0) .Caption=Labe13(0) .Caption-1 End If Command1(0) .Enabled= End If Else If Val(Label3(1) .Caption) 1 Then Command1 (1) .Enabled=True Label3(1) .Caption=La
17、bel3(1) .Caption-1 Else If Val(Label3(1) .Caption)=1 Then Label3(1) .Caption=Label3(1) .Caption-1 End If Commandl(1) .Enabled=False End If End If If Val(Label3(0) .Caption) ? Val(Label3(1) .Caption) Then picSmile(0) .Visible=True picCry(0) .Visible=False picCry(1) .Visible=True picSmile(1) .Visible=
18、False Else If Val(Label3(0) .Caption) ? Val(Label3(1) .Caption) Then picCry(0) .Visible=True picSmile(0) .Visible=False picSmile(1) .Visible=True picCry(1) .Visible= False Else picSmile(0) .Visible=True picCry(0) .Visible=False picSmile(1) .Visible=True picCry(1) .Visible=False End If End If End Sub
19、 Private Sub Command2_Click(Index As Integer) If Index=0 Then Label3(0) .Caption= Command1 (0) .Enabled=True Else: Label3(1) .Caption= Command1 (1) .Enabled=True End If If Val(Label3(0) .Caption) ? Val(Label3(1) .Caption) Then picSmile(0) .Visible=True picCry(0) .Visible=False picCry(1) .Visible=Tru
20、e picSmile(1) .Visible=False Else If Val(Label3(0) .Caption) ? Val(Label3(1) .Caption) Then picCry(0) .Visible=True picSmile(0) .Visible=False picSmile(1) .Visible=True picCry(1) .Visible=False Else picSmile(0) .Visible=True picCry(0) .Visible=False picSmile(1) .Visible=True picCry(1) .Visible=False
21、 End If End If End Sub Private Sub Form Load () PicSmile(0) .Visible=True picSmile(1) .Visible=True Command1(0) .Enabled=False Command1(1) .Enabled=False End Sub 参考代码: Option Explicit Private Sub Command1_Click(Index As Integer) If Index=0 Then If Val(Label3(0) .Caption) 1 Then Command1 (0) .Enabled
22、=True Label3(0) .Caption=Label3(0) .Caption-1 Else If Val(Label3(0) .Caption)=1 Then Label3(0) .Caption=Label3(0) .Caption-1 End If Command1(0) .Enabled=False End If Else If Val(Label3(1) .Caption) 1 Then Command1(1) .Enabled=True Label3(1) .Caption=Label3(1) .Caption-1 Else If Val(Label3(1) .Captio
23、n)=1 Then Label3(1) .Caption=Label3(1) .Caption-1 End If Command1(1) .Enabled=False End If End If If Val(Label3(0) .Caption) Val(Label3(1) .Caption) Then picSmile(0) .Visible=True picCry(0) .Visible=False picCry(1) .Visible=True picSmile(1) .Visible=False Else If Val(Label3(0) .Caption) Val(Label3(1
24、) .Caption) Then picCry(0) .Visible=True picSmile(0) .Visible=False picSmile(1) .Visible=True picCry(1) .Visible=False Else picSmile(0) .Visible=True picCry(0) .Visible=False picSmile(1) .Visible=True picCry(1) .Visible=False End If End If End Sub Private Sub Command2_Click(Index As Integer) If Inde
25、x=0 Then Label3(0) .Caption=Label3(0) .Caption+1 Command1 (0) .Enabled=True Else: Label3(1) .Caption=Label3(1) .Caption+1 Commandl (1) .Enabled=True End If If Val(Label3(0) .Caption) Val(Label3(1) .Caption) Then picSmile(0) .Visible = True picCry(0) .Visible = False picCry(1) .Visible = True picSmil
26、e(1) .Visible = False Else If Val(Label3(0) .Caption) Val(Label3(1).Caption) Then picCry(0) .Visible=True picSmile(0) .Visible=False picSmiie(1) .Visible=True picCry(1) .Visible=False Else picSmile(0) .Visible=True picCry(0) .Visible=False picSmile(1) .Visible=True picCry(1) .Visible=False End If End If End Sub Private Sub Form Load() picSmile(0) .Visible=True picSmile(1) .Visible=True Command1(0) .Enabled=False Command1(1) .Enabled=False End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。