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-返回或设立滚动条的当前位置的值,返回直介于Max 和Man属性之间的值,涉及这两个值。
3、要实现滚动条的返回值与List的设立值同步变化,在两者之间建立等式关系即可。而Text属性相应的变量类型为字符串,所以这里用了一个转化函数Val()来实现。Val(S)函数将字符串转化为数值。与之相应的将数值转化为字符串的函数Str(N)。【答案】第一步:启动VB,新建一个工程文献。第二步:在窗体上画一个文本框,文本框的Name属性为Text1,Text属性空,再在窗体上画一个水平滚动条Max为100,Min为0,Name为HScroll1,再画一个列表框List1,在List属性中输入10、20、30、40、50、60、70、80、90。第三步:编写程序代码:1 Private Sub Li
4、st1_Click()2 Text1.Text = List1.Text3 HScroll1.Value = Val(List1.Text)4 End Sub第四步:调试并运营程序,运营对的后按规定保存。(2)【解析】本题重要考察了图像框的Stretch属性以及控制其大小的Height、Width属性。Height、Width属性与其它控件类似,设立相应的值即可动态的改变图像框的大小,例如题目规定单击放大按钮要使得图像框的宽度和高度均增长100,故在Cmd1 的Click事件中改变Image的Height和Width,在原先的基础上加上100。此外,题目中规定固定图片框的大小,即不能由于图片的
5、大小而改变图片框的大小,并且改变图像框的大小后,其中加载的图片也要自动改变大小,所以必须将Image的Stretch属性设立为True。【答案】第一步:启动VB,新建一个工程文献。第二步:在窗体中画一个图像框,名称为Image1,设立Height属性1800,Width属性1500,Stretch 属性为True,在Picture属性中装入文献夹下的图像文献smile.bmp,再画一个命令按钮,Name属性为Cmd1,Caption属性为放大。第三步:编辑代码:1 Private Sub Cmd1_Click()2 Image1.Height = Image1.Height + 1003 Im
6、age1.Width = Image1.Width + 1004 End Sub第四步:调试并运营程序,运营对的后按规定保存。 简朴操作(2小题,每题20分,共40分)*请根据以下各小题的规定设计VB应用程序(涉及界面和代码)。(1)在考生文献夹下有一个工程文献stj3.vbp,及其窗体文献stj3.frm,程序运营时,假如用鼠标左键按住窗体,并在其上移动,则窗体上显示您按下了鼠标的左键;假如用鼠标的右键按住窗体,并在其上移动,则显示您按下了鼠标的右键。程序运营时的窗体界面如图所示。规定:题目中所给的程序不完整,请读懂程序后将其补充完整,以原文献名保存。试题源程序:1 Private Sub
7、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,及其窗体文献stj4.frm,窗体上有一个标签和一个文本框,控件及其属性均已设立完毕,现使用KeyPress事件编写一个口令程序,程序运营后,在文本框中输入口令,假如对的,则显示相应的信息,单击拟定按钮后,将显示一行信息;假如口令不
8、对的,则规定重新输入。3次输入的口令都不对的,则停止输入,并结束程序。程序运营的画面如图所示。规定:题目中所给的程序不完整,请读懂程序后将其补充完整,以原文献名保存。试题源程序:1 Private Sub Form_Load()2 Text1.Text = 3 Text1.FontSize = 104 Label1.FontSize = 125 Label1.FontBold = True6 Label1.Font0 = 隶书7 Label1.Caption = 请输入口令.8 End Sub9 Private Sub Text1_KeyPress(KeyAscii As Integer)10
9、 Static PWord As String11 Static Counter As Integer12 Static Numberftries As Integer13 Numberftries = Numberftries + 114 If ? Then End15 Counter = Counter + 116 PWord = PWord + ?17 KeyAscii = 018 Text1.Text = String$(Counter, *)19 If LCase$(PWord) = abcd Then20 Text1.Text = 21 PWord = 022 MsgBox 口令对
10、的,继续.23 Counter = 024 Print continue.25 ElseIf ?Then26 Counter = 027 PWord = 28 Text1.Text = 29 MsgBox 口令不对,请重新输入30 End If31 End Sub*参考答案与分析(1)【解析】本题重要考察了鼠标左键以及右键的使用,即鼠标的Button属性。Button为1时,表达鼠标的左键,为2时,表达鼠标的右键,为4时,表达鼠标的中键,故在第一个?处填入1,表达按下鼠标的左键,第二个?处填入2,表达鼠标的右键。【答案】(1)启动VB,打开考生文献夹下的工程文献stj2.vbp。(2)双击窗体
11、的任何位置,进入代码编辑窗口,补充程序如下:第一个?处填入1第二个?处填入2(3)运营程序,拟定无误后以原文献名保存。(2)【解析】本题重要考察了文本框的KeyPress事件。每按下键盘的一个键就触发一次KeyPress事件。在本题中用文本框的KeyPress事件来测试输入口令是否对的。在该过程中,定义了3个静态变量,其中Numberftries变量用来对输入的口令字符计数。每按一次键,就触发一次KeyPress事件,Numberftries变量加1,当该值达成12时结束程序,因此第一个问号处应填入Numberftries = 12。口令由四个字符组成,既由每次输入的字符连接起来组成,因此第二
12、个问号处应填入Chr$(KeyAscii),用Counter来表达输入口令长度,每输入四个为一个完整的口令,因此第三个问号处应填入Counter = 4。【答案】(1)启动VB,打开考生文献夹下的工程文献stj4.vbp。(2)双击窗体的任何位置,进入代码编辑窗口,填写代码:第一个?处填入:Numberftries = 12第二个?处填入:Chr$(KeyAscii)第三个?处填入:Counter = 4(3)填写完毕,调试并运营,运营无误后以原文献名保存。 综合应用(1小题,共30分)*请根据以下各小题的规定设计VB应用程序(涉及界面和代码)。在考生文献夹下有工程文献djks043.vbp及
13、窗体文献djks043.frm,该程序是不完整的,请在有?的地方填入对的内容,然后删除?及所有注释符(),但不能修改其他部分。存盘时不得改变文献名和文献夹。本题描述如下:在窗体上有两个标签、两个文本框、一个框架、三个单选框以及两个控制按钮。标签的名称分别为Label1与Label2,标题分别为原文本、加密文本;文本框的名称分别为Text1与Text2,Text属性均为空;两个控制按钮的名称分别为Command1与Command2,标题分别为加密与读入;单选框的名称统一为Option1,标题分别为2、4、6;框架名称为Frame1,标题为加密类型。单击读入按钮,程序将读入考生文献夹下的文本文献i
14、n043.txt,单击加密按钮,加密过的文本显示在Text2中。根据单选框中不同的数字,加密的方法不同。例如选择Option1,则逐个把Text1中的字符串改为它后面的第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=
15、Val(?.Caption)11 End If12 Next i13 m = Len(Text1.Text)14 For i = 1 To m15 Str=Mid$(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()2
16、6 Dim s As String27 Open App.Path & in043.txt For Input As #128 Input #1, 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填写完毕,删除符号,调试程序,拟定无误后,将工程与窗体按照本来的文献名保存在考生文献夹下。