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