1、VB 机试模拟试卷 50 及答案与解析 一、基本操作题( 30分) 1 在考生文件夹下有一个工程文件 ylc.vbp。在标题为 “数组转换窗口 ”的窗体上创建两个命令按钮,名字分别为 Command1和 Command2,标题分别为 “数据导入 ”和“数据存盘 ”。单击 “数据导入 ”按钮后,应用对话框连续输入 12个整数,并放入数组 Array中。单击 “数据存盘 ”,将该数组的前 6个元素与后 6个元素互换;即第 1个与第 12个,第 2个与第 11个元素互换,依此类推。最后互换前后的数组输出到考生文件夹下的 data.txt文件中。程序运行界面如 图 31所示。要求实现题目给出的功能,并
2、将文件保存在考生文件夹下,工程文件名为 ylc.Vbp。二、简单应用题( 40分) 2 注意:下面出现的 “考生文件夹 ”均为 C:wexam25160002。 (1) 在名称为 Form1的窗体中画一个名称为 L1 的标签,其标题为 “0”, BorderStyle属性为 “再添加一个名称为 Timer1的计时器。请设置适当的控件属性,并编写适当的事件过程,使得在运行时,每隔一秒钟标签中的数字加 1。如图 27-3所示的是程序刚启动时的情况。程序中不得使用任何变量。 注意:存盘时必须 存放在考生文件夹下,工程文件名为 sjt3.vbp,窗体文件名为 sjt3.frm。 (2)在考生文件夹下有
3、一个工程文件sjt4.vbp,要求程序运行后,如果多次单击列表框中的项,则可同时选择这些项。而如果单击 “显示 ”按钮,则在窗体上输出所有选中的列表项,如图 27-4所示。 要求:修改列表框的适当属性,使得运行时可以多选,并去掉程序中的注释符,把程序中的 ?改为正确的内容,使其实现上述功能,但不得修改程序中的其他部分。最后把修改后的程序以原来的文件名存盘。三、综合应用题( 30分) 3 注意:下面出现的 “考 生文件夹 ”均为 C:wexam25160002。 在考生文件夹下有一个工程文件 sjt5.vbp在名称为 Form1的窗体上画一个文本框,名称为 Text1,允许多行显示:再画 3个命
4、令按钮,名称分别为 C1、 C2和 C3,标题分别为 “输入 ”、“转换 ”和 “存盘 ”,如图 26-5所示。请编写适当的事件过程,使得在运行时,单击“输入 ”按钮,则从考生文件夹中读入 in5.txt文件 (文件中只有字母和空格 ),放入Text1中;单击 “转换 ”按钮,则把 Text1中的所有小写字母转换为大写字母;单击“存盘 ”按钮,则把 Text1中的内容 存入 out5.txt文件中。 注意:去掉程序中的注释符,把程序中的 ?改为正确的内容,考生必须把转换后的内容用 “存盘 ”按钮存入out5.txt文件,否则无成绩。考生的工程文件以文件名 sjt5.vbp存盘,窗体文件以文件名
5、 sjt5.frm存盘。 VB 机试模拟试卷 50 答案与解析 一、基本操作题( 30分) 1 【正确答案】 (1)Visual Basic集成环境中,执行 “文件 ”“ 打开工程 ”命令,选择ylc.vbp文件打开。 (2)在工具箱中选择单选按钮控件,在窗体上创建两个命令按钮,名字分别为Command1和 Command2,标题分别为 “数据导入 ”和 “数据存盘 ”。 (3)双击 “数据导入 ”按钮,弹出代码窗口,在其中添加如下代码: Dim Array1(1 To 12) As Integer Private Sub Command1_Click() For i=1 To 12 Arra
6、y1(i)=InputBox(“请输入数据 “) Next i End Sub (4)编写 savedata过程,把文件中的数值读到指定的数组中保 存事件。其代码如下; Sub SaveData(str As String) Open App.Path &“&“out.txt“For Output As #1 Print count Close #1 End Sub (5)双击 “数据存盘 ”按钮,弹出代码窗口,在其中添加如下代码: Private Sub Command2_Click() Dim temp As String Dim m As Integer For i=1 To 6 tem
7、p=Array(i) Array1(i)=Array1(12-i+1) Array1(12-i+1)=temp Next i For i=1 To 12 m=m&“ “& CStr(Array1(12-i+1) Next i For i=1 To 12 m=m&“ “&CStr(Array1(i) Next i Call SaveData(“data.txt“,m) End Sub (6)按 F5键运行程序。如图 31所示。 (7)执行 “文件 ”“ 保存工程 ”命令,将工程文件命名为 ylc.vbp,窗体文件命名为ylc.frm。 【试题解析】 本题主要考查了数组的操作和文件输出的实现。利用
8、 InputBox函数弹出对话框来输入数组元素,然后交换其中的数据。题中数组有 12 个元素,因此需要交换 6次。 二、简单应用题( 40分) 2 【正确答案】 在窗体上建立好控件后,先设置控件属性,再编写事件过程。 标签的标题由 Caption设置, BorderStyle属性用来设置标签的边框。计时器控件用来周期性的触发 Timer事件,事件间隔通过计时器的 Interval属性设置,其单位时毫秒,题目要求每隔 1秒。解题步骤: 第一步:建立界面并设置控件的属性。程序中用到的控件及其属性见表 27-3。 第二步:编写程序代码。 参考代码: Private Sub Form_Load() L
9、1.BorderStyle = 1 - fixed Timer1.Enabled = True Timer1.Interval = 1000 End Sub Private Sub Timer1_Timer() L1.Caption = L1.Caption + 1 End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。 (2)在窗体上建立好控件后,先设置控件属性,再编写事件过程。 列表框的 MultiSelect属性用来设置一次可以选择的表项数。该属性有 3种取值: ONone每次只 能选择一项,如果选择另一项则会取消对前一项的选择; 1Simple可以同时选择多个项,后续的选择
10、不会取消前面的选择。可以用鼠标或空格键选择; 2Extended可以选择指定范围内的表项。 因此,为了实现题目要求的功能,应将 MultiSelect属性设置为 1。列表框的 ListCount属性表示表项的数量,列表框中表项的排列从。开始,最后一项的序号为 ListCount-1。为了检测列表框中被选择的项,应使用 Selected属性,该属性实际上是一个数组,每个元素与列表框中的一项对应,其取值为 True或 False。当元素的值为 True时,表明选择了该项;为 False表示未选择。使用 List属性列出被选中项的内容。解题步骤: 第一步:建立界面并设置控件的属性。程序用到的控件及其
11、属性见表 27-4。 第二步;编写程序代码。 程序提供的代码: Private Sub C1_Click() For i = ? To ? If l1.? = True Then Print l1.List(i) End If Next End Sub 参考代码: Private Sub C1_Click() For i = 0 To l1.ListCount - 1 If l1.Selected(i) = True Then Print l1.List(i) End If Next End sub 第三步:调试并运行程序。 第四步;按题目要求存盘。 三、综合应用题( 30分) 3 【正确答案
12、】 窗体上建立好控件后,先设置控件属性,再编写事件过程。 要使文本框允许多行显示,应将其 MultLine属性设置为 True。文本框的 Text属性设置为空。命令按钮的标题通过 Caption属性设置,单击命令按钮触发 Click事件。 进行读文件的 操作在 “输入 ”按钮的 Click事件过程中完成。将文件 in5.txt以顺序文件输入方式打开,将读取的字符串赋值给文本框的 Text属性。文件的操作一般按照如下步骤进行: 打开或建立文件;进行读 /写操作;关闭文件。 要将字符串的小写字母转换成大写字母,可以有 UCase函数实现。 UCase函数将小写字母转换成大写字母 0。其语法格式为:
13、 UCase(string) string 不要参数为任何有效的字符串表达式。 只有小写的字母会转成大写:原本大写或非字母之字符保持不变。解题步骤: 第一步:建立控件并设置对象属性。 程序中用到的控件及其属性见表 26-5。程序所提供的代码: Private Sub C1_Click() Open App.Path & “in5.txt“ For Input AS #1 Do While Not EOF(1) Input #1, ? Text1.Text = mystring Loop Close #1 End Sub Private Sub C2_Click() Text1.Text = ?
14、 End Sub Private Sub C3_Click() Open App.Path & “out5.txt“ For Output As #2 Print #2, Text1.? Close #2 End Sub 参考代码: Private Sub C1_Click() Open App.Path & “in5.txt“ For Input As #1 Do While Not EOF(1) Input #1, mystring Text1.Text = mystring Loop Close #1 End Sub Private Sub C2_Click() Text1.Text = UCase(Text1.Text) End Sub Private Sub C3_Click() Open App.Path & “out5.txt“ For Output As #2 Print #2, Text1.Text Close #2 End Sub 第三步:调试并运行程序 第四步:按题目要求存盘