1、全国计算机等级考试二级 VB 上机试题及答案 (十一)基本操作(2 小题,每题 15 分,共 30 分)*请根据以下各小题的要求设计 VB 应用程序(包括界面和代码)。请根据以下各个小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(1)在名称为 Form1 的窗体上画一个列表框,其名称为 List1,通过属性窗口向列表框中输入 9 个项目,分别为 10、20、30、40、50、60、70、80、90;画一个文本框,其名称为 Hscroll,Min 属性和 Max 分别为 0 和 100,如图所示,编写适当的事件过程。程序运行后,如果单击列表框中的某个项目内容,并把滚动条的
2、滚动框移动到相应的位置,如图所示。要求:不得使用任何变量。(2)在名称为 Form1 的窗体中画一个图像框,名称为 Image1,其高、宽分别为1800、4500,通过属性窗口把考生文件夹下的图像文件 smile.bmp 装入图像框;再画一个命令按钮,名称为 Cmd1,标题为“放大“。请编写适当事件过程,程序运行后,单击“放大“按钮,则把图像框的高度、宽度均增加 100,同时图像也随之自动放大。注意:程序中不得使用任何变量。程序运行时的界面如图所示。*参考答案与分析(1)【解析】滚动条的属性设置:Min-最大值属性。默认值为 32767;Max-最小值属性,默认值为 0;Value-返回或设置
3、滚动条的当前位置的值,返回直介于 Max 和Man 属性之间的值,包括这两个值。要实现滚动条的返回值与 List 的设置值同步变化,在两者之间建立等式关系即可。而 Text 属性对应的变量类型为字符串,所以这里用了一个转化函数Val()来实现。Val(S)函数将字符串转化为数值。与之对应的将数值转化为字符串的函数 Str(N)。【答案】第一步:启动 VB,新建一个工程文件。第二步:在窗体上画一个文本框,文本框的 Name 属性为 Text1,Text 属性空,再在窗体上画一个水平滚动条 Max 为 100,Min 为 0,Name 为 HScroll1,再画一个列表框 List1,在 List
4、 属性中输入“10、20、30、40、50、60、70、80、90“。第三步:编写程序代码:1 Private Sub List1_Click()2 Text1.Text = List1.Text3 HScroll1.Value = Val(List1.Text)4 End Sub第四步:调试并运行程序,运行正确后按要求保存。(2)【解析】本题主要考查了图像框的 Stretch 属性以及控制其大小的 Height、Width 属性。Height、Width 属性与其它控件类似,设置相应的值即可动态的改变图像框的大小,例如题目要求单击“放大“按钮要使得图像框的宽度和高度均增加 100,故在 Cm
5、d1 的 Click 事件中改变 Image 的 Height 和 Width,在原先的基础上加上 100。另外,题目中要求固定图片框的大小,即不能由于图片的大小而改变图片框的大小,而且改变图像框的大小后,其中加载的图片也要自动改变大小,所以必须将 Image 的 Stretch 属性设置为 True。【答案】第一步:启动 VB,新建一个工程文件。第二步:在窗体中画一个图像框,名称为 Image1,设置 Height 属性1800,Width 属性 1500,Stretch 属性为 True,在 Picture 属性中装入文件夹下的图像文件 smile.bmp,再画一个命令按钮,Name 属性
6、为 Cmd1,Caption 属性为“放大“。第三步:编辑代码:1 Private Sub Cmd1_Click()2 Image1.Height = Image1.Height + 1003 Image1.Width = Image1.Width + 1004 End Sub第四步:调试并运行程序,运行正确后按要求保存。 简单操作(2 小题,每题 20 分,共 40 分)*请根据以下各小题的要求设计 VB 应用程序(包括界面和代码)。(1)在考生文件夹下有一个工程文件 stj3.vbp,及其窗体文件 stj3.frm,程序运行时,如果用鼠标左键按住窗体,并在其上移动,则窗体上显示“您按下了鼠
7、标的左键“;如果用鼠标的右键按住窗体,并在其上移动,则显示“您按下了鼠标的右键“。程序运行时的窗体界面如图所示。要求:题目中所给的程序不完整,请读懂程序后将其补充完整,以原文件名保存。试题源程序:1 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)2 If Button = ? Then Print “您按下了鼠标的左键“3 If Button = ? Then Print “您按下了鼠标的右键“4 End Sub(2)在考生文件夹下有一个工程文件 stj4.vbp
8、,及其窗体文件 stj4.frm,窗体上有一个标签和一个文本框,控件及其属性均已设置完毕,现使用 KeyPress 事件编写一个口令程序,程序运行后,在文本框中输入口令,如果正确,则显示相应的信息,单击“确定“按钮后,将显示一行信息;如果口令不正确,则要求重新输入。3 次输入的口令都不正确,则停止输入,并结束程序。程序运行的画面如图所示。要求:题目中所给的程序不完整,请读懂程序后将其补充完整,以原文件名保存。试题源程序:1 Private Sub Form_Load()2 Text1.Text = “3 Text1.FontSize = 104 Label1.FontSize = 125 La
9、bel1.FontBold = True6 Label1.Font0 = “隶书“7 Label1.Caption = “请输入口令.“8 End Sub9 Private Sub Text1_KeyPress(KeyAscii As Integer)10 Static PWord As String11 Static Counter As Integer12 Static Numberftries As Integer13 Numberftries = Numberftries + 114 If ? Then End15 Counter = Counter + 116 PWord = PWo
10、rd + ?17 KeyAscii = 018 Text1.Text = String$(Counter, “*“)19 If LCase$(PWord) = “abcd“ Then20 Text1.Text = “21 PWord = 022 MsgBox “口令正确,继续.“23 Counter = 024 Print “continue.“25 ElseIf ?Then26 Counter = 027 PWord = “28 Text1.Text = “29 MsgBox “口令不对,请重新输入“30 End If31 End Sub*参考答案与分析(1)【解析】本题主要考查了鼠标左键以
11、及右键的使用,即鼠标的 Button 属性。Button 为1 时,表示鼠标的左键,为 2 时,表示鼠标的右键,为 4 时,表示鼠标的中键,故在第一个?处填入 1,表示按下鼠标的左键,第二个?处填入 2,表示鼠标的右键。【答案】(1)启动 VB,打开考生文件夹下的工程文件 stj2.vbp。(2)双击窗体的任何位置,进入代码编辑窗口,补充程序如下:第一个?处填入 1第二个?处填入 2(3)运行程序,确定无误后以原文件名保存。(2)【解析】本题主要考查了文本框的 KeyPress 事件。每按下键盘的一个键就触发一次KeyPress 事件。在本题中用文本框的 KeyPress 事件来测试输入口令是
12、否正确。在该过程中,定义了 3 个静态变量,其中 Numberftries 变量用来对输入的口令字符计数。每按一次键,就触发一次 KeyPress 事件,Numberftries 变量加 1,当该值达到 12 时结束程序,因此第一个问号处应填入 Numberftries = 12。口令由四个字符组成,既由每次输入的字符连接起来组成,因此第二个问号处应填入 Chr$(KeyAscii),用 Counter 来表示输入口令长度,每输入四个为一个完整的口令,因此第三个问号处应填入 Counter = 4。【答案】(1)启动 VB,打开考生文件夹下的工程文件 stj4.vbp。(2)双击窗体的任何位置
13、,进入代码编辑窗口,填写代码:第一个?处填入:Numberftries = 12第二个?处填入:Chr$(KeyAscii)第三个?处填入:Counter = 4(3)填写完毕,调试并运行,运行无误后以原文件名保存。 综合应用(1 小题,共 30 分)*请根据以下各小题的要求设计 VB 应用程序(包括界面和代码)。在考生文件夹下有工程文件 djks043.vbp 及窗体文件 djks043.frm,该程序是不完整的,请在有?的地方填入正确内容,然后删除?及所有注释符(),但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在窗体上有两个标签、两个文本框、一个框架、三个单选框以及两个
14、控制按钮。标签的名称分别为 Label1 与 Label2,标题分别为“原文本“、“加密文本“;文本框的名称分别为 Text1 与 Text2,Text 属性均为空;两个控制按钮的名称分别为 Command1 与 Command2,标题分别为“加密“与“读入“;单选框的名称统一为Option1,标题分别为 2、4、6;框架名称为 Frame1,标题为“加密类型“。单击“读入“按钮,程序将读入考生文件夹下的文本文件 in043.txt,单击“加密“按钮,加密过的文本显示在 Text2 中。根据单选框中不同的数字,加密的方法不同。例如选择Option1,则逐一把 Text1 中的字符串改为它后面的
15、第 2 个字母。程序运行时的窗体界面如图所示。【试题源程序】1 Private Sub Command1_Click()2 Text2.Text = “3 Dim n As Integer4 Dim i As Integer5 Dim m As Integer6 Dim Str As String7 Dim StrText As String8 For i = 0 To 29 If Option1(i).Value Then10 n=Val(?.Caption)11 End If12 Next i13 m = Len(Text1.Text)14 For i = 1 To m15 Str=Mid
16、$(Text1.Text,?,1)16 Str=?(1,Asc(Str)+n)17 If Str “z“ Or Str “Z“ And Str “a“ Then18 Str = String(1, Asc(Str) - 26)19 End If20 StrText = StrText + Str21 Next i22 Text2.Text = StrText23 End Sub24 25 Private Sub Command2_Click()26 Dim s As String27 Open App.Path & “in043.txt“ For Input As #128 Input #1,
17、 s29 Text1.Text = s30 Close #131 End Sub*参考答案与分析【解析】第一个?处填 Option1(i),表示如果第 i 个单选框被选中,则把第 i 个单选框的 Caption 转换成数值赋给 n。Mid 表示从字符串指定的位置截取指定的字符。第二个?处填 i,表示从字符串第 i 个字符处向右截取 1 个字符,这为转化这个字符做准备。第三个?处填 String,表示返回指定数量的指定字符串,它的第一个参数确定返回字符串的个数,第二个字符串确定返回的字符。注意,String 函数的第二个参数,可以是 Ascii 码值,返回对应的字符。【答案】1单击考试界面的“功能“选项,从弹出的菜单中选择“启动应用程序“选项。Visual Basic 启动后,打开考生文件下的工程文件。2.将文本框 Text1 与 Text2 的 MultiLine 属性设为 True,ScrollBars 属性设为2。3.双击窗体的任何部分,进入程序编写窗口,补充程序如下:第一个?处填 Option1(i)第二个?处填 i第三个?处填 String4填写完毕,删除“符号,调试程序,确定无误后,将工程与窗体按照原来的文件名保存在考生文件夹下。