1、国家二级 VB机试(上机操作)模拟试卷 437及答案与解析 一、基本操作题 1 (1)在名称为 Form1的窗体上添加一个名称为 Command1的命令按钮 (如图 1所示 ),然后通过属性窗口设置窗体和命令按钮的属性,实现如下功能: 窗体标题为 “设置按钮属性 ”; 命令按钮的标题为 “等级考试 ”; 程序运行后,命令按钮不可见; 命令按钮的标题字号、字体用三号常规黑体显示。 程序的运行情况如图 2所示。 要求:不编写任何代码。注意:存盘时必须存放住考生文件夹下,工程文件名保存为 sjt1 vbp,窗体文件名保存为 sjt1 frm。(2)在名称为 Form1的窗体上添加一个名称为 Lahe
2、ll的标签,在属性窗口中把 BordcrStyle属性设置为 1(如图 1所示 ),编写适当的事件过程。使得程序在运行后,如果单击窗体,则可使标签移到窗体的右上角 (只允许在程序中修改适当属性求实现 ) 要求:不得使用任何变量。注意:存盘时必须存放在考生文件夹霞,工程文件名保存为 sjt2 vbp,窗体文件名保存为sjt2 frm。 二、简单应用题 2 (1)在考生文件夹下有一个工程文件 sjt3 vbp,在 Form1的窗体中有一个文本框、一个计 时器和两个命令按钮。程序的功能是在运行时,单击 “开始计数 ”按钮,就开始计数 (如图所示 ),每隔 1秒,文本框中的数加 1;单击 “停止计数
3、”按钮,则停止计数。要求:修改适当的控件的属性,并去掉程序中的注释符,把程序中的 ?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后将修改后的文件以原来的文件名存盘。 (2)已知出租车行驶不超过4公里时一律收费 10元。超过 4公里时分段处理,具体处理方式为: 15公里以内每公里加收 1 2元, 15公里以上每公里收 1 8元。 在考生文件夹下有一个工程文件 sjt4 vbp。程序的功能是:单击 “输入 ”按钮,将弹出一个输入对话框,接收出租车行驶的里程数;单击 “计算 ”按钮,则可根据输入的里程数计算应付的出租车费,并将计算结果在名称为 Text1的文本框内显示。 在窗体文
4、件中已经给出了全部控件 (如图所示 ),但程序不完整,要求去掉程序中的注释符,把程序中的 ?改为正确的内容。注意:不得修改已经存在的内容和控件属性,最后将修改后的文件按原文件名存盘。 三、综合应用题 3 考生文件夹下有一个工程文件 sjt5 vbp,窗体上有两个文本框,名称分别为Text1、 Text2,都可以多行显示。 还有三个命令按钮,名称分别为 C1、 C2、 C3,标题分别为 “取数 ”、 “排序 ”、 “存盘 ”。 “取数 ”按钮的功能是将考生文件夹下的in5 dat文件中的 50个整数读到数组中,并住 Tex1中显示出来; “排序 ”按钮的功能是对这 50个数按升序排序,并显示在
5、Text2中; “存盘 ”按钮的功能是把排好序的 50个数存到考生目录下的 out5 dat文件中,如图所示。在窗体中已经给出了全部控件和部分程序代码,要求阅读程序并去掉程序中的注释符,把程序中的 ?改为止确的内容,并编写 “排序 ”按钮的 Click事件过程,使其实现上述功能,仙不能 修改程序中的其他部分,也不能修改控件的属性。最后将修改后的文件按原文件名存盘。 国家二级 VB机试(上机操作)模拟试卷 437答案与解析 一、基本操作题 1 【正确答案】 (1)步骤 1:新建一个窗体,按照题目要求建立命令按钮控件并设置命令按钮和窗体的相应属性,如图 3 23所示。程序中用到的属性见表3 21。
6、 步骤 2:调试并运行程序,关闭程序后按题目要求存盘。 (2)步骤 1:新建一个窗体,按照题目要求建立标签控件并设置标签的相应属性,见表 3 22。步骤 2:打开代码编辑窗口,在指定位置编写如下代码 。 参考答案 Private Sub Form_Slick() Label1 Top=0设置 Label1的初始位置 Label1 Left =Form1 Width Label1 Width End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析】 (1)窗体对象和命令按钮控件的标题均由其 Caption属性来设置,Visible属性用于设置窗体或控件在运行时是否可见,
7、设计时可通过修改命令按钮的 Font属性来设置标题的字体、字号和字型。 (2)标签的 BorderStyle属性用于设置标签的边框样式,值为 0表示无边框,值为1表示有固定边框。要使标签位于窗体的右上角,其 Top属性值应为 0, Left属性值应为窗体的内部有效宽度减去标签宽度后的值。 二、简单应用题 2 【正确答案】 (1)步骤 l:打开本题工程文件,设置计时器 Interval属性为 1000,Enabled属性设置为 False。 步骤 2:打开代码编辑窗口,去掉程序中的注释符 “”,将问号改为正确的内容。 参考答案 Private Sub C1_Click(Index As Inte
8、ger) Select Case Index通过控件下标确定单击哪一个按钮 Case 1 Timer1 Enabled=FalSe Case 0控制下标从 0开始,此处应为 0 Timerl Enabled=True End Select End Sub Private Sub Timerl_Timer() Text1 Text=Text1 Text +1Text1中的内容加 1显示 End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 (2)步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,去掉程序中的注释符 “”,将问号改为正确的内容。 参考答案 Dim s As
9、Integer Private Sub Command1_Click() S=Val(InputBox(“输入里程数 (单位:公里 )“)s用于存储里程数 End Sub Private Sub Command2_Click() If s0 Then Select Case s对 S进行判断 CaSe Is15 f=10+11*1 2+(s一 15)*1 8同理 End Select Text1 Text=f在 Text1中显示结果 Else MsgBox “请单击 “输入 “按钮输入里程数 !“ End If End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析】
10、 (1)首先打开本题工程文件,设置计时器 Interval属性为 1000,Enabled属性设置为 False,实现开始计数的时间间隔为 1秒,计时器不可用。运用 Select Case语句,通过命令按钮数组的 Index属性值确定是 “开始计数 ”或是 “停止计数 ”按钮,通过设置 Timerl的 Enabled属性,实现对开始计数和停止计数的操作。 Timerl_Timer事件过程用于使文本框中的数值加 1。 (2)通过 InputBox()函 数,输入出租车行驶的里程数,运用 Val()函数,实现将字符转换为数值,并把数值赋值给变量 s。如果 s大于 0,则进入 Select Case
11、语句,对于 s值进行判断,当行驶不超过 4公里时一律收费 10元。超过 4公里时分段处理,具体处理方式为 15公里以内每公里加收 1 2元, 15公里以上每公里收 1 8元,然后把得出的结果显示到文本框中。如果 s的值小于等于 0或者其他字符,通过 MsgBox()函数弹出对话框 “请单击 输入 按钮输入里程数 !”。 三、综合应用题 3 【正确答案】 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,去掉程序中的注释符 “”,将问号改为正确的内容,并编写代码。 参考答案 Dim a(50)As Integer Private Sub C1_Click() Dim k As Integ
12、er, ch As String Open“in5 dat“For Input As #1 ch=“ For k=1 To 50 Input #1, a(k)将取出的数据存入数组 a中 ch=ch+Str(a(k)+“ 将数据存 入 ch Next k Close #1 Text1 Text=ch在 Text1文本框中显示文件内容 End Sub Private Sub C2_Click() End Sub Private Sub C3_Click() Open“out5 dat“For Output As #1 Print #1, Text2 Text Close #1 End Sub 需编
13、写的 “排序 ”按钮的代码 Private Sub C2_Click() Dim t As Integer Dim i As Integer Dim j As Integer Dim ch As String ch=“ For i=50 To 2 Step-1 使用冒泡算法从小到大排序 For j=1 To 49 If a(j)a(j+1)Then两 两比较 t=a(j+1) a(j+1)=a(j) a(j)=t End If Next j Next i For j=1 To 50将排序后的数组重新赋给 ch ch=ch+Str(a(j)+“ “ Next j Text2 Text=ch En
14、d Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析】 str函数用于数值转化为字符串,语法为: Str(number)。 在循环语句中 Step表示步长,可以为正数,表示下一个变量加一个数,也可以为负数,则相反,在默认情况下,步长为 1,就不需要使用 Step特意 标识。 “冒泡法 ”是一种重要的数据排序算法,它的核心思路是按顺序让一个数列中的每一个数都与它之后的所有的数逐一进行比较,如果该数大于其后面的数,则把这两个位置的数进行交换。通过这样的循环,最终按照从小到大的顺序排列出该数列。从程序提供的代码中可以看出,整型数组 a的使用范围是本窗体中的所有事件过程,用来存放从文件中读取的数据。在排序中,使用双重循环,外循环每循环一次,确定内循环循环的次数,内循环就是把本次循环中最大的数,放在数组的最后面,这样就可以实现对这 50个数的升序排序。