国家二级VB最新新题库.docx
《国家二级VB最新新题库.docx》由会员分享,可在线阅读,更多相关《国家二级VB最新新题库.docx(360页珍藏版)》请在冰豆网上搜索。
国家二级VB最新新题库
2013年国家二级VB新题库(全)
共93套
考生须在每科开考前15分钟进入考场,迟到30分钟则不准参加当科考试,开考30分钟内不得交卷退场。
考试中途禁止不交卷离场。
考生交卷出场后不得再次进入考场,不得在考场附近逗留或交谈。
*****第01套简单应用题
(1)在考生文件夹下有一个工程文件sjt3.vbp,窗体上已经有一个标签Label1,请添加一个单选按钮数组,名称为
Op1,含三个单选按钮,它们的Index属性分别为0、1、2,标题依次为"飞机"、"火车"、"汽车",再添加一个名称为Text1的文本框。
窗体文件中已经给出了Op1的Click事件过程,但不完整,要求去掉程序中的注释符,把程序中的?
改为正确的内容,使得在程序运行时单击"飞机"或"火车"单选按钮时,在Text1中显示"我坐飞机去"或"我坐火车去",单击"汽车"单选按钮时,在Text1中显示"我开汽车去",如图所示。
注意:
不能修改程序中的其他部分。
最后将修改后的文件按原文件名存盘。
PrivateSubOp1_Click(IndexAsInteger)
DimaAsString,bAsString,cAsString
a="我坐"
b="我开"
'SelectCase?
*****Index*****
Case0
Text1.Text=a+Me.Op1(0).Caption+"去"
Case1
'Text1.Text=?
+Me.Op1
(1).Caption+"去"*****a*****
Case2
Text1.Text=b+Me.Op1
(2).Caption+"去"
EndSelect
EndSub
(2)在考生文件夹下有一个工程文件sjt4.vbp,Form1窗体中有一个文本框,名称为Text1;请在窗体上添加两个框架控件,名称分别为F1、F2,标题分别为"性别"、"身份";在F1中添加两个单选按钮控件Op1、Op2,标题分别为"男"、"女";在F2中添加两个单选按钮控件Op3、Op4,标题分别为"学生"、"教师";再添加一个命令按钮,名称为C1,标题为"确定"。
如图所示。
请编写适当的事件过程,使得在运行时,在F1、F2中各选一个单选按钮,然后单击"确定"按钮,就可以按照下表把结果显示在文本框中。
性别
身份
在文本框中显示的内容
男
学生
我是男学生
男
教师
我是男教师
女
学生
我是女学生
女
教师
我是女教师
最后把修改后的文件以原来的文件名存盘。
注意:
考生不得修改窗体文件中已经存在的程序和Text1的属性,在结束程序运行之前,必须进行能够产生上表中一个结果的操作。
必须用窗体右上角的关闭按钮结束程序,否则无成绩。
‘*****请考生编写程序*****
Ifop1andop3thenText1.Text=”我是男学生”
Ifop1andop4thenText1.Text=”我是男教师”
Ifop2andop3thenText1.Text=”我是女学生”
Ifop2andop4thenText1.Text=”我是女教师”
*****第01套综合应用题
以下数列:
1,1,2,3,5,8,13,21,…,的规律是从第3个数开始,每个数都是其前面两个数之和。
在考生文件夹下有一个工程文件sjt5.vbp。
窗体中已经给出了所有控件,如图所示。
请编写适当的事件过程完成如下功能:
选中一个单选按钮后,单击"计算"按钮,则计算出上述数列的第n项的值,并在文本框中显示,n是选中的单选按钮后面的数值。
(提示:
因计算结果较大,应使用长整型变量。
)
注意:
不能修改已经给出的程序和已有的控件的属性;在结束程序运行之前,必须选中一个单选按钮,并单击"计算"按钮获得一个结果;必须使用窗体右上角的关闭按钮结束程序,否则无成绩。
最后把修改后的文件按原文件名存盘。
PrivateSubCommand1_Click()
‘*****请考生编写程序*****
Dima(35)AsLong
Ifop1(0)thenn=30
Ifop1
(1)thenn=33
Ifop1
(2)thenn=35
a
(1)=1
a
(2)=1
Fori=3Ton
a(i)=a(i-1)+a(i-2)
Next
Text1.Text=a(n)
EndSub
*****第02套简单应用题
(1)在考生文件夹下有一个工程文件sjt3.vbp,窗体中有两个图片框,名称分别为P1、P2,其中的图片内容分别是一架航天飞机和一朵云彩,一个命令按钮,名称为C1,标题为"发射",还有一个计时器,名称为Timer1。
并给出了两个事件过程,但并不完整,要求:
①设置Timer1的属性,使其在初始状态下不计时;
②设置Timer1的属性,使其每隔0.1秒调用Timer事件过程一次。
③去掉程序中的注释符,把程序中的?
改为正确的内容,使得在运行时单击"发射"按钮,则航天飞机每隔0.1秒向上移动一次,当到达P2的下方时停止移动,如图所示。
注意:
不能修改程序中的其他部分。
最后把修改后的文件按原文件名存盘。
PrivateSubC1_Click()
' Timer1.Enabled=?
*****True*****
EndSub
PrivateSubTimer1_Timer()
Statica%
a=a=+1
' IfP1.Top>P2.Top+P2.?
Then*****Height*****
P1.MoveP1.Left,P1.Top-5-a,P1.Width,P1.Height
Else
' Timer1.Enabled=?
*****False*****
EndIf
EndSub
(2)在考生文件夹下有一个工程文件sjt4.vbp,运行情况如图所示。
程序的功能是计算下列表达式的值:
其中的N和x的值通过键盘分别输入到文本框Text1、Text2中。
之后如果单击标题为"计算"、名称为Command1的命令按钮,则计算表达式的值z,并将计算结果显示在名称为Label1的标签中。
在给出的窗体文件中已经添加了全部控件和程序,但程序不完整。
要求去掉程序中的注释符,把程序中的?
改为正确的内容。
注意:
考生不得修改窗体文件中已经存在的程序。
程序中不得使用^运算符,而应使用函数xn进行幂运算。
程序至少运行一次,按照下图输入数据,使x=10,N=5,单击"计算"按钮,计算z的值,并将结果显示在标签Label1中,否则没有成绩。
最后,程序按原文件名存盘。
PrivateFunctionxn(aAsSingle,mAsInteger)
DimiAsInteger
tmp=1
Fori=1Tom
' tmp=?
*****tmp*a*****
Next
'xn=?
*****tmp*****
EndFunction
PrivateSubCommand1_Click()
DimnAsInteger
DimiAsInteger
DimtAsSingle
Dims,xAsSingle
n=Val(Text1.Text)
x=Val(Text2.Text)
z=0
Fori=2Ton
t=x+i
' z=z+?
*****xn(t,i)*****
Next
'Label1.Caption=?
*****z*****
CallSaveResult
EndSub
PrivateSubSaveResult()
OpenApp.Path&"\out4.dat"ForOutputAs#1
Print#1,Label1.Caption
Close#1
EndSub
*****第02套综合应用题
在考生文件夹中有一个工程文件sjt5.vbp。
该程序的功能是从in5.txt文件中读入40个数据,统计这些数据中素数的个数,并找出所有素数中最小的素数(判断素数的函数已给出)。
最后将查找和统计的结果分别显示在标签Label4和Label3中(窗体外观如图所示)。
程序不完整,请在指定的位置把程序补充完整。
注意:
不得修改原有程序和控件的属性。
在结束程序运行之前,必须至少正确运行一次程序,将统计的结果显示在标签中,否则无成绩。
最后把修改后的文件按原文件名存盘。
Privatearr(100)AsInteger
PublicFunctionprime(xAsInteger)
k=Int(Sqr(x)+5)
Fori=2Tok
IfxModi=0Then
prime=False
ExitFunction
EndIf
Next
prime=True
EndFunction
PrivateSubCommand1_Click()
OpenApp.Path&"\in5.txt"ForInputAs#1
Fori=1To40
Input#1,arr(i)
Next
Close#1
EndSub
PrivateSubCommand2_Click()
‘*****请考生编写程序*****
DimaAsInteger
DimbAsInteger
a=0
b=arr
(1)
Fori=1To40
Ifprime(arr(i))Thena=a+1
Label3.Caption=a
Next
Fori=1To40
Ifprime(arr(i))Andarr(i)<=bThenb=arr(i)
Label4.Caption=b
Next
'*****考生编写程序结束*****
OpenApp.Path&"\out5.txt"ForOutputAs#1
Print#1,Label3.Caption,Label4.Caption
Close#1
EndSub
*****第03套简单应用题
(1)在考生文件夹下有一个工程文件sjt3.vbp,其功能是:
①单击"读数据"按钮,则将考生文件夹下in3.dat文件中的100个0到999之间的整数读入到数组a中;
②单击"计算"按钮,则找出这100个整数中的所有水仙花数,并将它们的最大值与最小值分别显示在文本框Text1、Text2中。
(注:
当一个数的值等于该数中的各位数字的立方和时,此数被称为水仙花数。
如:
所以153就是一个水仙花数)
在窗体文件中已经给出了全部控件(如图所示)和"读数据"命令按钮的事件过程以及判断一个数是否为水仙花数的通用过程。
要求编写"计算"命令按钮的事件过程。
注意:
考生不得修改窗体文件中已经存在的控件和程序,在结束程序运行前,必须进行"计算",并且必须通过单击窗体右上角的"关闭"按钮结束程序,否则无成绩。
最后,程序按原文件名存盘。
Dima(100)AsInteger
PrivateSubCommand1_Click()
DimkAsInteger
OpenApp.Path&"\in3.dat"ForInputAs#1
Fork=1To100
Input#1,a(k)
Nextk
Close#1
EndSub
PrivateSubCommand2_Click()
'*****需考生编写的程序*****
DimiAsInteger
DimmaxAsInteger,minAsInteger
max=-1
min=1000
Fori=1To100
Ifisnarc(a(i))Then
Ifmax<=a(i)Thenmax=a(i)
Ifmin>=a(i)Thenmin=a(i)
EndIf
Nexti
Text1=max
Text2=min
EndSub
'以下Function过程用于判断某数是否为水仙花数
Functionisnarc(pAsInteger)
x=Fix(p/100)
y=Fix((p-x*100)/10)
z=p-x*100-y*10
Ifp=x^3+y^3+z^3Then
isnarc=True
Else
isnarc=False
EndIf
EndFunction
PrivateSubFormUnload(CancelAsInteger)
OpenApp.Path&"\out3.dat"ForOutputAs#1
Print#1,Val(Text1.Text)
Print#1,Val(Text2.Text)
Close#1
EndSub
(2)在考生文件夹下有一个工程文件sjt4.vbp。
请在窗体上添加一个组合框,名称为cb1,并输入三个列表项:
"3"、"7"、"11"(列表项的顺序不限,但必须是这3个数字);添加一个名为Text1的文本框;再添加一个标题为"计算"、名称为C1的命令按钮。
如图所示。
请编写适当的事件过程,使得在程序运行时,在组合框中选定一个数字后,单击"计算"按钮,则计算5000以内能够被该数整除的所有数之和,并放入Text1中。
最后,按原文件名存盘。
提示:
由于计算结果较大,应使用长整型变量。
注意:
考生不得修改窗体文件中已经存在的程序,在结束程序运行之前,必须至少进行一次计算。
并且必须用窗体右上角的关闭按钮结束程序,否则无成绩。
PrivateSubC1_Click()
'*****需考生编写的程序*****
DimsumAsLong
DimnAsInteger
DimiAsInteger
n=Val(Cb1.Text)
Fori=nTo5000
IfiModn=0Then
sum=sum+i
EndIf
Nexti
Text1.Text=sum
EndSub
*****第03套综合应用题
在考生文件夹下有一个工程文件sjt5.vbp,其名称为Form1的窗体上已有三个文本框Text1、Text2、Text3,以及部分程序代码。
请完成以下工作:
①在属性窗口中修改Text3的适当属性,使其在运行时不显示,作为模拟的剪贴板使用。
窗体如图所示;
②建立下拉式菜单,如下表所示:
标题
名称
编辑
Edit
剪切
Cut
复制
Copy
粘贴
Paste
③窗体文件中给出了所有事件过程,但不完整,请去掉程序中的注释符,把程序中的?
改为正确的内容。
以便实现如下功能:
当光标所在的文件框中无内容时,"剪切"、"复制"不可用,否则可以把该文本框中的内容剪切或复制到Text3中;若Text3中无内容,则"粘贴"不能用,否则可以把Text3中的内容粘贴在光标所在的文本框中的内容之后。
注意:
不能修改程序中的其他部分。
各菜单项的标题名称必须正确。
最后将修改后的文件按原文件名存盘。
DimwhichAsInteger
PrivateSubcopy_Click()
Ifwhich=1Then
Text3.Text=Text1.Text
ElseIfwhich=2Then
Text3.Text=Text2.Text
EndIf
EndSub
PrivateSubcut_Click()
Ifwhich=1Then
Text3.Text=Text1.Text
Text1.Text=""
ElseIfwhich=2Then
Text3.Text=Text2.Text
Text2.Text=""
EndIf
EndSub
PrivateSubedit_Click()
' Ifwhich=?
Then*****1*****
IfText1.Text=""Then
cut.Enabled=False
Copy.Enabled=False
Else
cut.Enabled=True
Copy.Enabled=True
EndIf
' ElseIfwhich=?
Then*****2*****
IfText2.Text=""Then
cut.Enabled=False
Copy.Enabled=False
Else
cut.Enabled=True
Copy.Enabled=True
EndIf
EndIf
IfText3.Text=""Then
Paste.Enabled=False
Else
Paste.Enabled=True
EndIf
EndSub
PrivateSubpaste_Click()
Ifwhich=1Then
'Text1.Text=?
*****Text1.Text+Text3.Text*****
ElseIfwhich=2Then
'Text2.Text=?
*****Text2.Text+Text3.Text*****
EndIf
EndSub
PrivateSubText1_GotFocus()'本过程的作用是:
当焦点在Text1中时,which=1
which=1
EndSub
PrivateSubText2_GotFocus()'本过程的作用是:
当焦点在Text2中时,which=2
which=2
EndSub
*****第04套简单应用题
(1)在名称为Form1的窗体上添加一个名称为Label1、标题为"添加项目:
"的标签;添加一个名称为Text1的文本框,初始内容为空;添加一个名称为Combo1的下拉式组合框,并通过属性窗口输入若干项目(不少于3个,内容任意);再添加两个命令按钮,名称分别为Command1、Command2,其标题分别为"添加"、"统计"。
在程序运行时,向Text1中输入字符,单击"添加"按钮后,则将Text1中的内容作为一个列表项被添加到组合框的列表中;单击"统计"按钮,则在窗体空白处显示组合框中列表项的个数,如图所示。
请编写两个命令按钮的Click事件过程。
注意:
程序中不得使用变量,也不能使用循环结构。
存盘时必须存放在考生文件夹下,工程文件名保存为sjt3.vbp,窗体文件名保存为sjt3.frm。
'*****需考生编写的程序*****
PrivateSubCommand1_Click()
Combo1.AddItemText1
EndSub
PrivateSubCommand2_Click()
PrintCombo1.ListCount
EndSub
(2)在考生文件夹下有一个工程文件sjt4.vbp,其窗体如图所示。
该程序用来对在上面的文本框中输入的英文字母串(称为"明文")加密,加密结果(称为"密文")显示在下面的文本框中。
加密的方法为:
选中一个单选按钮,单击"加密"按钮后,根据选中的单选按钮后面的数字n,将"明文"中的每个字母改为它后面的第n个字母("z"后面的字母认为是"a","Z"后面的字母认为是"A"),如图所示。
窗体中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的?
改为正确的内容。
注意:
不得修改程序中的其他部分和控件的属性。
最后将修改后的文件按原文件名存盘。
PrivateSubCommand1_Click()
DimnAsInteger,kAsInteger,mAsInteger
DimcAsString,aAsString
Fork=0To2
IfOp1(k).ValueThen
' n=Val(Op1(k).?
)*****Caption*****
EndIf
Nextk
m=Len(Text1.Text)
a=""
' Fork=1To?
*****m*****
' c=Mid$(Text1.Text,?
1)*****k*****
c=String(1,Asc(c)+n)
Ifc>"z"Orc>"Z"Andc<"a"Then
c=String(1,Asc(c)-26)
EndIf
' ?
=a+c*****a*****
Nextk
Text2.Text=a
EndSub
*****第04套综合应用题
在考生文件夹下有一个工程文件sjt5.vbp,窗体上有两个文本框,名称分别为Text1、Text2,都可以多行显示。
还有三个命令按钮,名称分别为C1、C2、C3,标题分别为"取数"、"排序"、"存盘"。
"取数"按钮的功能是将考生文件夹下的in5.dat文件中的50个整数读到数组中,并在Text1中显示出来;"排序"按钮的功能是对这50个数按升序排序,并显示在Text2中;"存盘"按钮的功能是把排好序的50个数存到考生目录下的out5.dat文件中。
如图所示。
在窗体中已经给出了全部控件和部分程序代码,要求阅读程序并去掉程序中的注释符,把程序中的?
改为正确的内容,并编写"排序"按钮的Click事件过程,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。
最后将修改后的文件按原文件名存盘。
Dima(50)AsInteger
PrivateSubC1_Click()
DimkAsInteger,chAsString
Open"in5.dat"ForInputAs#1
ch=""
Fork=1To50
' Input#1,?
*****a(k)*****
ch=ch+Str(a(k))+""
Nextk
Close#1
' Text1.Text=?
*****ch*****
EndSub
PrivateSubC2_Click()
'*****需考生编写的程序*****
DimtAsInteger
D