VB期末考试上机模拟题附代码.docx
《VB期末考试上机模拟题附代码.docx》由会员分享,可在线阅读,更多相关《VB期末考试上机模拟题附代码.docx(17页珍藏版)》请在冰豆网上搜索。
VB期末考试上机模拟题附代码
一、基本操作题
请根据以下各小题的要求设计VisualBasic应用程序(包括界面和代码)。
1、在名称为Form1的窗体上画一个名称为Chk1的复选框数组(Index属性从0开始),含三个复选框,其标题分别为“语文”、“数学”、“英语”。
利用属性窗口设置适当的属性,使“语文”未选,“数学”被选中,“英语”为灰色,再把窗体的标题设置为“选课”,程序运行时的窗体界面如图所示。
2、在名称为窗体上画一个命令按钮,其名称为Cmd1,标题为“清除”。
请编写适当的事件过程,使得程序运行后,窗体上的标题为“VB期末上机考试”,如图1所示,如单击命令按钮,则清除窗体的标题,程序运行时的窗体界面如图2所示。
PrivateSubCommand1_Click()
Form1.Caption=""
EndSub
PrivateSubForm_Load()
Form1.Caption="VB期末考试"
EndSub
图1图2
3、在名称为Form1的窗体上画一个命令按钮,其名称为Cmd1,标题为“移到左上”。
编写适当的事件过程,使程序运行时,如单击命令按钮,则按钮移到窗体的左上角。
程序中不得使用任何变量。
程序运行时的窗体界面如图。
PrivateSubCommand1_Click()
Command1.Top=0:
Command1.Left=0
EndSub
4、在名称为Form1的窗体上建立一个名称为L1的标签,标题为“选课”,其字号大小为4号;再建立三个复选框,名称分别为Chk1、Chk2、Chk3,标题分别为“操作系统”、“数据库原理”、和“概率论”,字体大小均为14,其中“概率论”被禁用,运行界面如图。
5、在Form1的窗体上画一个命令按钮,其名称为Cmd1,标题为“显示”;再画一个文本框,其名称为Txt1,编写适当的事件过程。
程序运行后,在窗体加载时使文本框不可见,如双击窗体,则文本框出现;此时如单击命令按钮,则在文本框中显示“期末考试”,如图所示。
PrivateSubCommand1_Click()
Text1.Text="期末考试"
EndSub
PrivateSubForm_DblClick()
Text1.Visible=True
EndSub
PrivateSubForm_Load()
Text1.Visible=False
EndSub
6、在名称为Form1的窗体上,画一个组合框和一个命令按钮。
组合框的名称为Cbo1,初始内容为空,有“长跑”、“游泳”、和“跳远”三个可供选择项。
命令按钮的名称为Cmd1,Opt2,标题为“确定”。
编写适当的事件过程,使得程序运行时,选择组合框中的某项,单击命令按钮后,就会弹出一个对话框,内容为“您选择了(该项)”。
程序中不得使用任何变量。
程序运行时的窗体界面如图所示。
PrivateSubCommand1_Click()
MsgBox"你选择了"&Combo1.Text
EndSub
7、在名称为Form1的窗体上画一个名称为H1的水平滚动条,请在“属性”窗口中设置它的属性值,使之满足以下要求:
它的最大刻度值为100,最小刻度值为1,在运行时鼠标单击滚动条上滚动框以外的区域(不包括两边的按钮),滚动框移动10个刻度。
再在滚动条下面画两个名称分别为L1和L2的标签,并分别显示1和100,运行时的窗体界面如图所示。
PrivateSubForm_Click()
HScroll1.Value=HScroll1.Value+10
EndSub
8、在名称为Form1的窗体上画两个文本框,无初始内容;再建立一个下拉菜单,菜单标题为“操作”,名称为M1,此菜单下有两个子菜单项,名称分别为Copy和Clear,标题分别为“复制”和“清除”。
请编写适当的事件过程,使得程序运行时,单击“复制”菜单项,则把Text1中的内容复制到Text2中,单击“清除”菜单项,则清除Text2中的内容。
程序运行时的窗体界面如图所示。
要求在程序中不得使用任何变量,每个事件过程中只能写一个语句。
PrivateSubclear_Click()
Text2.Text=""
EndSub
PrivateSubcopy_Click()
Text2.Text=Text1.Text
EndSub
9、在Form1的窗体上画一个文本框,其名称为Text1,程序运行时,在文本框中输入字符,文本框中的字符将赋值到窗体的标题栏中。
注意,本程序代码中不得使用任何变量。
程序运行时的窗体界面如图所示。
PrivateSubText1_Change()
Form1.Caption=Text1.Text
EndSub
10、在窗体上有一个名称为text1的文本框,一个名称为C1,标题为“校验”的命令按钮。
其中文本框用来输入口令,要求在文本框中输入的内容都必须以“*”显示(通过属性窗口设置)。
要求程序运行后,输入口令,单击命令按钮后,对口令进行校验。
如果输入的内容是“ABC”这3个大写字母,则用MsgBox信息框输出“正确”,否则输出“错误”。
如图所示。
PrivateSubCommand1_Click()
IfText1.Text="ABC"Then
MsgBox("正确")
Else
MsgBox("错误")
EndIf
EndSub
二、简单应用题
1、在窗体Form1上已有两个文本框,一个命令按钮,命令按钮标题为“转换”。
要求在窗体上补充三个单选钮,名称分别为Opt1、Opt2、Opt3,标题分别为“大小写转换”、“全部大写”、“全部小写”。
要求补充完整代码窗口的代码后,在Text1中输入一段字符,选中“大小写转换”,单击转换按钮后,Text2中显示大小写相反的字符串;选中“全部大写”,单击转换按钮后,Text2中显示全部大写字符串,选中“全部小写”,单击转换按钮后,Text2中显示全部小写字符串。
界面如图。
PrivateSubCommand1_Click()
DimnAsInteger,kAsInteger,chAsString,aAsString
ch=""
IfOpt1.Value=TrueThen
n=Len(Text1)
Fork=1Ton
a=Mid$(Text1,k,1)
Ifa>="a"Anda<="z"Then
ch=ch+UCase(a)
ElseIfa>="A"Anda<="Z"Then
ch=ch+LCase(a)
Else
ch=ch+a
EndIf
Nextk
EndIf
IfOpt2.Value=TrueThench=UCase(Text1)
IfOpt3.Value=TrueThench=LCase(Text1)
Text2=ch
EndSub
2、编写程序,演示列表框控件的基本操作。
在窗体上建立两个列表框,两个命令按钮。
程序运行后,在第一个列表框中选择所需要的项目,单击“添加”按钮,把所选择的项目移到第二个列表框中。
如果单击“删除”按钮,则执行相反的操作。
程序运行时的窗体界面如图。
3、在窗体上建立一个命令按钮,标题为“输出最大值”。
要求产生30个0~100的随机整数,放入一个数组中,然后输出其中的最大值。
请把程序中有“?
”号的地方补充完整。
程序运行时的效果如图。
OptionBase1
PrivateSubCommand1_Click()
Dimarrn(30)AsInteger,maxAsInteger
Randomize
Fori=1To30
arrn(i)=Int(Rnd*101+0)
Nexti
max=arrn
(1)
Fori=2To30
IfmaxNexti
Printmax
EndSub
4、在Form1的窗体上有一个名称为Txt1的文本框和两个命令按钮,命令钮名称分别为Cmd1和Cmd2,标题分别为“显示A”和“显示B”。
要求程序运行后,如单击“显示A”命令按钮,则弹出对话框,输入要显示的个数,根据输入的数值在文本框中显示相应数量的字符串A;如单击“显示B”命令按钮,也弹出对话框,输入要显示的个数,根据输入的数值在文本框中显示相应数量的字符串B。
程序运行时的窗体界面如图所示。
PrivateSubCmd1_Click()
DimaAsInteger
a=InputBox("请输入显示个数")
Fori=1Toa
Text1.Text=Text1.Text&"A"
Nexti
EndSub
PrivateSubCmd2_Click()
DimbAsInteger
b=InputBox("请输入显示个数")
Forj=1Tob
Text1.Text=Text1.Text&"B"
Nextj
EndSub
5.在窗体上建立一个名称为Label1和Label2的2个标签,单击命令按钮command1,使Label1中的内容与Label2中的内容互换,按命令按钮Command2,结束程序。
PrivateSubCommand1_Click()
DimchAsString
ch=Label1.Caption:
Label1.Caption=Label2.Caption:
Label2.Caption=ch
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubForm_Load()
Label1.Caption="你好":
Label2.Caption="Hello"
EndSub
6、在窗体Form1上有一个文本框,名称为Text1;请在窗体上画两个框架,名称分别为F1和F2,标题分别为“性别”和“身份”;在F1中画两个单选钮Op1和Op2,标题分别为“男”和“女”;在F2中画两个单选钮Op3和Op4,标题分别为“学生”和“教师”;再画一个命令按钮,名称为C1,标题为“确定”。
程序运行时的窗体界面如图所示。
请编写适当的事件过程,使得在运行时,在F1和F2中各选一个按钮,然后单击“确定”按钮,就可以照表中内容把结果显示在文本框中。
性别
身份
文本框中显示的内容
男
学生
我是男学生
男
教师
我是男教师
女
学生
我是女学生
女
教师
我是女教师
PrivateSubC1_Click()
Dimch1,ch2AsString
IfOp1.Value=TrueThen
ch1=Op1.Caption
Else
ch1=Op2.Caption
EndIf
IfOp3.Value=TrueThen
ch2=Op3.Caption
Else
ch2=Op4.Caption
EndIf
Text1.Text="我是"&ch1&ch2
EndSub
7、编写一个通用过程FindMax求数组的最大值。
在窗体上的4个文本框中各输入一个整数作为各数组元素的值,然后单击命令按纽,即可求出数组的最大值,并在窗体显示出来,如图所示。
PublicFunctionFindMax%(ByVala%,ByValb%,ByValc%,ByVald%)
DimmAsLong
m=a
Ifb>mThen
m=b
EndIf
Ifc>mThen
m=c
EndIf
Ifd>mThen
m=d
EndIf
FindMax=m
EndFunction
PrivateSubCommand1_Click()
Dimn1,n2,n3,n4,maxAsLong
n1=Val(Text1):
n2=Val(Text2):
n3=Val(Text3):
n4=Val(Text4)
max=FindMax%(n1,n2,n3,n4)
Printmax
EndSub
8、 有一文档不完整,在有“?
”的地方把程序补完整
orm上有一个text1,一个command1,要求在text1中添入文本,但用“*”显示,若文本是“ABC”,则msgbox"正确",否则msgbox"错误"
以给程序:
PrivateSubcommand1.Click()
iftext1.text="ABC"thenmsgbox"正确"Elsemsgbox"错误"
endsub
9、在窗体Form1上画一个图像框,其高、宽分别为600,通过属性窗口把一个图像文件装入图像框;再画一个命令按钮,标题为“放大”。
请编写适当事件过程,程序运行后,单击“放大”按钮,则把图像框的高度、宽度均增加600,同时图像也随之自动放大。
程序运行后,窗体界面如图所示。
PrivateSubCommand1_Click()
Image1.Stretch=False
Image1.Height=Image.Height+600
Image1.Width=Image1.Width+600
EndSub
10、在窗体上建立一个名称为text1的文本框,然后建立两个主菜单,标题分别为“国家制度”和“帮助”,名称分别为vbmenu和vbhelp,其中“国家制度”菜单包括“君主制”、“民主制”、“混合制”三个子菜单,名称分别为vbmenu1、vbmenu2、vbmenu3。
要求程序运行后,如果在“国家制度”的下拉菜单中选择“君主制”,则在文本框内显示“伊拉克、英国”;如选择“民主制”则在文本框内显示“澳大利亚、加拿大”;如选择“混合制”,则在文本框内显示“芬兰、丹麦”(要求:
不使用任何变量,直接显示字符串)。
程序运行时,选择“民主制”的效果如图。
PrivateSubvbmenu1_Click()
Text1.Text="伊拉克、英国"
EndSub
PrivateSubvbmenu3_Click()
Text1.Text="芬兰、丹麦"
EndSub
PrivateSubvbmwnu2_Click()
Text1.Text="澳大利亚、加拿大"
EndSub
三、综合应用题
1、在窗体form1上有一个文本框,还有一命令按钮,名称为Cmd1,标题“计算”,如图所示。
并有一个函数isprime可以在程序中直接调用,其功能是判断参数a是否素数,如是,则返回true,否则返回false。
请编写适当的事件过程,使得在运行时,单击“确定”按钮,则找出小于3000的最大素数,并显示在text1中。
PrivateFunctionisprime(aAsInteger)AsBoolean
DimflagAsBoolean
flag=True
b%=2
DoWhileb%<=Int(a/2)Andflag
IfInt(a/b%)=a/b%Then
flag=False
Else
b%=b%+1
EndIf
Loop
isprime=flag
EndFunction
2、编写一程序,显示出所有的水仙花数。
所谓水仙花数,是指一个3位数,其各位数字立方和等于该数本身。
例如,153是水仙花数,因为153=13+53+33
PrivateSubCommand1_Click()
Dima,b,cAsInteger
Fori=100To999
c=iMod10:
b=(iMod100)\10:
a=i\100
Ifi=a*a*a+b*b*b+c*c*cThen
Printi
EndIf
Nexti
EndSub
3、在窗体form1上画两个命令按钮,名称分别为Cmd1和Cmd2,标题为“添加”和“清除”。
再画一个文本框,名称为Txt1,内空;画一个列表框,名称为Lst1。
在文本框中输入文本,若单击“添加”按钮,文本框中的文本被作为一个列表项加入到列表框中,之后“添加”按钮变为无效,“清除”按钮有效;若单击“清除”按钮,则使文本框中的内容为空,且使“添加”按钮变为有效,“清除”按钮无效。
本题运行时的窗体界面如图。
PrivateSubCmd1_Click()
Lst1.AddItemTxt1.Text
Cmd1.Enabled=False:
Cmd2.Enabled=True
EndSub
PrivateSubCmd2_Click()
Txt1.Text=""
Cmd1.Enabled=True:
Cmd2.Enabled=False
EndSub
4、在窗体form1上建立一个命令按钮,名称为Cmd1,标题为“计算”。
程序运行时单击该按钮,把数组A中的数值按升序排列。
请在有“?
”号的地方添正确内容,然后删除“?
”,但不能修改其它部分。
OptionBase1
PrivateSubCommand1_Click()
Dima
a=Array(678,45,324,528,439,387,87,876,273,823)
Fori=1To10(LBound(a)ToUBound(a))
Forj=i+1To10(i+1ToNBound(a))
Ifa(i)>=a(j)Then
a1=a(i):
a(i)=a(j):
a(j)=a1
EndIf
Nextj
Nexti
Fori=1To10
Printa(i);
Nexti
EndSub
5、单击命令按钮command1,在Label1中随机产生10个25--99的随机整数,单击命令按钮command2,在Label2中对产生的10个随机整数按升序排序。
单击命令按钮command3,则结束程序运行。
Dimnum(1To10)
PublicSubCommand1_Click()
Fori=LBound(num)ToUBound(num)
num(i)=Int(Rnd*75+25)
Label1.Caption=Label1.Caption&""&num(i)
Nexti
EndSub
PublicSubCommand2_Click()
Forj=LBound(num)ToUBound(num)
Fork=j+1ToUBound(num)
Ifnum(j)>=num(k)Then
z=num(j):
num(j)=num(k):
num(k)=z
EndIf
Nextk
Nextj
Forl=LBound(num)ToUBound(num)
Label2.Caption=Label2.Caption&""&num(l)
Nextl
EndSub
PrivateSubCommand3_Click()
End
EndSub