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