1、国家二级 VB机试(上机操作)模拟试卷 304及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请根据以下各小题的要求设计 Visual Basic应用程序(包括界面和代码)。(1)在名称为 Form1、标题为“图片”的窗体上画一个名称为 Image1的图像框,其高为 2500、宽为 2000。请通过属性窗口设置适当属性,装入考生目录下的图片文件 pic1jpg,并使图片适应图像框的大小(如图 3156所示)。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1vbp,窗体文件名为 sjt1frm。 (2)在名称为Form1的窗体上画一个名
2、称为 Label1、标题为“口令”的标签;画一个名称为 Text1的文本框;再画三个命令按钮,名称分别为 Command1、Command2、Command3,标题分别为“显示口令”、“隐藏口令”、“重新输入”。程序运行时,在 Text1中输入若干字符,单击“隐藏口令”按钮,则只显示同样数量的“*”,如图 3157(b)所示;单击“显示口令”按钮,则显示输入的字符,如图 3157(a)所示,单击“重新输入”按钮,则清除 Text1中的内容,并把光标定位到 Text1中。要求:请画出所有控件,编写命令按钮的 Click事件过程,程序中不得使用变量,在“显示口令”按钮、“隐藏口令”按钮的事件过程中
3、只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名为 sit2vbp,窗体文件名为sjt2frm。 (分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.(1)在考生文件夹下有一个工程文件 sjt3vbp,在程序运行时,单击“输入整数”按钮,可以从键盘输入一个整数,并在窗体上显示此整数的所有不同因子和因子个数。如图 3158(a)是输入 53后的结果,如图 3158(b)是输入 100的结果。已经给出了全部控件和程序,但程序不完整。 要求:请去掉程序中的注释符,把程序中的?改为正确的内容。不能修改程序中的其他部分,也不能修改控件的属性。最后用原来的文件名保存工程文件和窗体文
4、件。(2)在考生文件夹下有一个工程文件 sjt4vbp。在其窗体中“待选城市”下的 List1列表框中有若干个城市名称。程序运行时,选中 List1中若干个列表项,如图3159(a)所示,单击“选中”按钮则把选中的项目移到 List2中;单击“显示”按钮,则在 Text1文本框中显示这些选中的城市,如图 3159(b)所示。已经给出了所有控件和程序,但程序不完整。要求:请去掉程序中的注释符,把程序中的“?”改为正确的内容,使其能正确运行,但不能修改程序中的其他部分和控件属性。最后用原来的文件名保存工程文件和窗体文件。 (分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在考生文
5、件夹下有一个工程文件 sjt5vbp,其窗体中有一个实心圆。程序运行时,当用鼠标左键单击窗体任何位置时,实心圆则向单击位置直线移动;若用鼠标右键单击窗体,则实心圆停止移动。窗体文件中已经给出了全部控件,但程序不完整。要求:请去掉程序中的注释符,把程序中的“?”改为正确的内容,使其能正确运行,不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。(分数:2.00)_国家二级 VB机试(上机操作)模拟试卷 304答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请根据以下各小题的要求设计 Visual Basic应用程序(包括界面和代码)
6、。(1)在名称为 Form1、标题为“图片”的窗体上画一个名称为 Image1的图像框,其高为 2500、宽为 2000。请通过属性窗口设置适当属性,装入考生目录下的图片文件 pic1jpg,并使图片适应图像框的大小(如图 3156所示)。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1vbp,窗体文件名为 sjt1frm。 (2)在名称为Form1的窗体上画一个名称为 Label1、标题为“口令”的标签;画一个名称为 Text1的文本框;再画三个命令按钮,名称分别为 Command1、Command2、Command3,标题分别为“显示口令”、“隐藏口令”、“重新输入”。程序运行时
7、,在 Text1中输入若干字符,单击“隐藏口令”按钮,则只显示同样数量的“*”,如图 3157(b)所示;单击“显示口令”按钮,则显示输入的字符,如图 3157(a)所示,单击“重新输入”按钮,则清除 Text1中的内容,并把光标定位到 Text1中。要求:请画出所有控件,编写命令按钮的 Click事件过程,程序中不得使用变量,在“显示口令”按钮、“隐藏口令”按钮的事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名为 sit2vbp,窗体文件名为sjt2frm。 (分数:2.00)_正确答案:(正确答案:第 1小题 步骤 1:新建一个“标准 EXE”工程,画出控件并设置相应属性
8、。 步骤2:按要求将文件保存至考生文件夹中。 第 2小题 步骤 1:新建一个“标准 EXE”工程,按要求画出控件并设置属性。 步骤 2:在代码编辑窗口,分别编写三个按钮的单击事件过程。 参考代码: Private Sub Command1_Click() Text1PasswordChar=“ “ End Sub Private Sub Command2_Click() Text1PasswordChar=“*“ End Sub Private Sub Command3_Click() Text1=“ “ Text1SetFocus End Sub 步骤 3:按要求将文件保存至考生文件夹中。)
9、解析:解析:第 1小题:本题只需要在窗体上画出控件并相应设置其属性即可。 第 2小题:PasswordChar属性用于设置屏蔽文本框中内容的字符,要去掉对文本框中输入内容的屏蔽,需将其PasswordChar属性值清空,使用 SetFocus方法可使文本获得焦点。二、简单应用题(总题数:1,分数:2.00)2.(1)在考生文件夹下有一个工程文件 sjt3vbp,在程序运行时,单击“输入整数”按钮,可以从键盘输入一个整数,并在窗体上显示此整数的所有不同因子和因子个数。如图 3158(a)是输入 53后的结果,如图 3158(b)是输入 100的结果。已经给出了全部控件和程序,但程序不完整。 要求
10、:请去掉程序中的注释符,把程序中的?改为正确的内容。不能修改程序中的其他部分,也不能修改控件的属性。最后用原来的文件名保存工程文件和窗体文件。(2)在考生文件夹下有一个工程文件 sjt4vbp。在其窗体中“待选城市”下的 List1列表框中有若干个城市名称。程序运行时,选中 List1中若干个列表项,如图3159(a)所示,单击“选中”按钮则把选中的项目移到 List2中;单击“显示”按钮,则在 Text1文本框中显示这些选中的城市,如图 3159(b)所示。已经给出了所有控件和程序,但程序不完整。要求:请去掉程序中的注释符,把程序中的“?”改为正确的内容,使其能正确运行,但不能修改程序中的其
11、他部分和控件属性。最后用原来的文件名保存工程文件和窗体文件。 (分数:2.00)_正确答案:(正确答案:第 1小题 步骤 1:打开考生文件夹中的本题工程文件 sjt3vbp,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: n=InputBox(“请输入一个整数“) If m Mod k=0Then fun=s 步骤 2:按要求将文件保存至考生文件夹中。 第 2小题 步骤 1:打开考生文件夹中的本题工程文件 sjt4vbp,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: For k=List1ListCount-1To0Step
12、-1 List2AddItem List1List(k) List1RemoveItem k Text1=Text1&“ “&List2List(k) 步骤 2:按要求将文件保存至考生文件夹中。)解析:解析:第 1小题:本题源程序在“输入整数”按钮的单击事件过程中,将接收到的数值赋给变量n,并通过调用函数 fun,在窗体上显示其所有约数因子,并返回约数因子的个数。函数 fun利用一个 For循环逐一判断参数 m能否被 1Abs(m)2 间的整数整除,若能整除,则其为 m的一个约数,将其刚Print方法显示在窗体上,并将记录约数因子个数的变量 s加 1。循环结束时将 s作为函数返回值。 第 2小
13、题:在“选中”按钮的单击事件中,由 List1的最后一项依次向前进行遍历判断是否被选中,最后一项的索引值是 ListCount-1,第一项的索引值是 0,所以应该是反向循环,步长为-1:在循环体中如果该项被选中,则将其加入 List2中,同时在 List1中删除这一项。 在“显示”按钮的单击事件中,通过一个For循环依次取出 List2中的每一项并将其连接到 Text1中。三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下有一个工程文件 sjt5vbp,其窗体中有一个实心圆。程序运行时,当用鼠标左键单击窗体任何位置时,实心圆则向单击位置直线移动;若用鼠标右键单击窗体,则实心圆停止移
14、动。窗体文件中已经给出了全部控件,但程序不完整。要求:请去掉程序中的注释符,把程序中的“?”改为正确的内容,使其能正确运行,不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。(分数:2.00)_正确答案:(正确答案:步骤 1:打开考生文件下的本题工程文件 sjt5vbp,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: stepx=0 stepy=a*stepx Timer1Enabled=True Timer1Enabled=False Shape1Move Shape1Left+stepx _Shape1Top+stepy 步骤 2:按要求
15、将文件保存至考生文件夹中。)解析:解析:本题在窗体的鼠标按下事件过程中,若按下的是鼠标左键,则通过计算得出圆心的坐标。若圆心与当前鼠标按下点位于同一竖线上时(即 x=x0),则设定实心圆纵向移动增量为 stepy=Sgn(y-y0)*50,横向移动增量则为 0(即 stepx=0);否则设定实心圆横向移动增量为 stepx=Sgn(x-x0)*50,并根据斜率 a计算出纵向移动增量:stepy=a*stepx,若计算出的纵向移动增量 stepy绝对值大于横向移动增量绝对值 stepx,则重新设定实心圆纵向移动增最为 stepy=Sgn(y-y0)*50,计算出横向移动增量stepx=stepya,以防止实心圆移动速度不均。启动计时器 Timer1(设置其 Enabled属性值为 True),利用其 Timer事件过程控制实心圆移动。 根据计算出的实心网横向移动增量和纵向移动增量,其移动的语句为:Shape1MoveShape1Left+stepx,Shape1Top+stepy。