VB上机改错和填空.docx
《VB上机改错和填空.docx》由会员分享,可在线阅读,更多相关《VB上机改错和填空.docx(36页珍藏版)》请在冰豆网上搜索。
VB上机改错和填空
属性设置及程序改错题
gc402.读入N后,求算式1+1/(1×2)+1/(2×3)+…+1/((n-1)×n)的值。
请修改程序中2处错误,在二行带有“*”的提示行之间
DimsumAsSingle,kkAsSingle,mmAsSingle
DimiAsInteger,nAsInteger
mm=InputBox("请输入要求的项数N")
n=Val(mm)
sum=1
Fori=1Ton改:
Fori=1Ton-1
kk=i*(i+1)
sum=1/kk改:
sum=sum+1/kk
Nexti
Print"SUM=";sum
gc403.求三角形的面积。
该窗体上有1个标签Label1“请输入三条边的边长”,3个文本框Text1、Text2和Text3,1个命令按钮Command1“开始计算”。
程序运行后,能够先判断从3个文本框中输入的3条边是否构成三角形。
如果可以构成,则计算并输出该三角形的面积;否则要求重新输入。
DimaAsDouble,bAsDouble,cAsDouble,sAsDouble,areaAsDouble
a=Val(Text1.Text)
b=Val(Text2.Text)
c=Val(Text3.Text)
If((a+b>c)And(c>0))And((a+c>b)And(b>0))or((c+b>a)And(a>0))Thenor改and
s=(a+b+c)/2
area=Abs((s*(s-a)*(s-b)*(s-c))Abs改sqr
MsgBox"面积是"&area
Else
MsgBox"不能构成三角形,请重新输入"
EndIf
gc319.该窗体运行时位居VisualBasic主窗口的中央,运行时呈最大化窗口。
在编辑框中输出从100开始被3、5、7除余数均为1的10个数。
该窗体有两个命令按钮command1“开始计算”、command2“清空文本框”和一个文本框Edit1。
点击“开始计算”,开始求满足条件的数,将满足条件的数输出到文本框中,每输出一个换一行。
要求:
(1)设置窗体Form1和命令按钮command1的属性;
(2)在command1的click代码中有两个错误,请调试改。
Dimi%,j%,k%
i=100
j=0
Do
If(iMod3=1)And(iMod5=1)And(iMod7=1)Then
Text1.Text=Text1.Text&i&Chr(13)&Chr(10)
j=j+1
EndIf
Ifj>10ThenExitDo改:
j>=10
i=i–1改:
i=i+1
Loop
gc482.在窗体上建有2个标签控件(Label1、Label2)、2个文本框(Text1、Text2)和两个命令按钮(Command1、Command2)。
Label1、Label2的属性已设置;Text1、Text2分别用于输入和显示华摄氏温度,其Text属性为空;Command1、Command2分别用于“华氏转摄氏”、“摄氏转华氏”(Caption属性),温度转换公式为:
F=9/5*C+32(其中F为华氏温度,C为摄氏温度)。
要求:
1)设置Text1、Text2和Command1、Command2的属性;
2)在编写的Command1_Click()和Command2_Click()二个过程代码中各有一个错误,请调试改正。
PublicCAsDouble,FAsDouble
PrivateSubCommand1_Click()
F=Text1.Value改:
F=val(Text1.Value)
C=5/9*(F-32)
Text2.Text=C
EndSub
PrivateSubCommand2_Click()
C=Text2.Value改:
C=val(Text2.Value)
F=9/5*C+32
Text1.Text=F
EndSub
gc481.已知Fibonacci数列:
1,1,2,3,5,8......即
F1=1(n=1)
F2=1(n=2)
Fn=Fn-1+Fn-2(n>=3)
下列程序的功能是:
建立一个窗体,运行时,点击该窗体,用数组来求Fibonacci数列的前20项,且以每行5项的格式将这20项显示出来。
窗体代码中有二行错误,请改正,不得增删语句。
Dimf(20)AsInteger
f
(1)=1
f
(2)=1
Fori=3To20
f(i)=f(i)+f(i-1)改f(i)=f(i-2)+f(i-1)
Nexti
Fori=1To20
Printf(i);
If(iMod5)=5Then改(iMod5)=0
Print
EndIf
Nexti
gc536.编写一个窗体的代码,其功能是:
产生100个在区间[20,100]中的随机整数,然后求其中所有偶数的和。
Dimarr(100)AsInteger,sAsInteger
Fori=1To100
arr(i)=20+80*Rnd(-1)改Int(20+81*Rnd)
Nexti
Fori=1To100
Ifarr(i)Mod2=0Then
s=s+arr
(1)改:
s=s+arr(i)
EndIf
Nexti
Prints
gc372.交换两个数(例10,20),要求Swap1用值传递,Swap2用地址传递,使第一个PRINT语句输出:
A=10,B=20;第二个PRINT语句输出:
A=20,B=10。
PublicSubswap1(xAsInteger,yAsInteger)
改:
swap1(ByValxAsInteger,ByValyAsInteger)
DimtAsInteger
t=x:
x=y:
y=t
EndSub
PublicSubswap2(mAsInteger,nAsInteger)
DimtAsInteger
t=m:
n=m:
n=t改:
t=m:
m=n:
n=t
EndSub
gc320.设计一个窗口,使用到frame,option,text,label,line五种控件。
选择加、乘运算来得到相应的结果,其中乘法运算取整。
要求如下:
①设置Option3的caption属性,Option3的caption要求为运算符号"*",当鼠标移动到该控件时,能够出现对该运算符号的解释,如"*"的解释为"乘法"。
②在编写的两个程序代码option1_click()和option3_click()中各有一个错误,请调试改正。
PrivateSubOption1_Click()
Label1.Caption="+"
Text3.Text=Text1.Text+Text2.Text
改:
Text3.Text=Val(Text1.Text)+Val(Text2.Text)
EndSub
PrivateSubOption3_Click()
Label1.Caption="*"
Text3.Text=Integer(Text1.Text*Text2.Text)
改:
Text3.Text=Int(Val(Text1.Text)*Val(Text2.Text))
EndSub
gc248.设计一个窗口,日历牌每10秒显示一次,每次显示10秒;系统时间的数字式表每秒显示一次新的时间。
要求:
一、设置计时器Timer1和Timer2的属性
二、在编写的二个过程代码Timer1_Timer(),Timer2_Timer()中各有一个错误,请调试改正.
IfLabel1.Visible=TrueThen
Label1.Visible=False
Else
Label1.Visible=False改:
=True
EndIf
IfLabel2.Caption<>Time()Then
Label2.Caption=Timer()改:
=Time()
EndIf
gc315.frm窗体的标题为“火箭发射”,其中有两个标签按钮:
航天飞机和云彩,名称分别为P1和P2;还有一个计时器,名称为Timer1;一个命令按钮,名称为C1,标题为“发射”。
1)设置计时器的属性,使其在初始状态下不计时;每隔0.1秒调用Timer事件过程一次。
2)单击“发射”按钮,则航天飞机每隔0.1秒向上移动一次,当到达云彩下方时,航天飞机停止移动。
PrivateSubC1_Click()
'下行有错
Timer1.Enabled=False改:
=True
EndSub
PrivateSubTimer1_Timer()
Statica%
a=a+1
'下行有错
IfP1.Top>P2.Top+P2.LeftThenP2.Left改:
P2.Height
P1.MoveP1.Left,P1.Top-5-a,P1.Width,P1.Height
Else
Timer1.Enabled=False
EndIf
EndSub
gc317.设计一个窗体,单击“自动”按钮,标签Label1每0.1秒向右移动一次,当到达窗体右边时自动向左移动,单击“手动”按钮时则单击一次标签移动一次,要求标签中显示文字为“上机测试”。
具体要求:
①设置计时器Timer1和标签Label1的属性。
②在编写的Command2_Click(),Timer1_Timer()中各有一处错误,请调试改正。
PrivateSubCommand2_Click()
Timer1.Enabled=flase
Timer1.Timer改:
Timer1_Timer
EndSub
rivateSubTimer1_Timer()
Label1.MoveLabel1.Left+50*Step
IfLabel1.Left+Label1.Width>Form1.WidthThen
Step=-1
ElseIfLabel1.Left>0Then改:
IfLabel1.Left<=0
Step=1
EndIf
EndSub
gc335.设计一个窗体,在文本框Text1中显示计算机的当前时间。
在Text2中输入一个比当前晚的时间,输入的时间格式为小时:
分:
秒,单击计时按钮开始倒计时,当到达设定时间时,程序显示时间到并停止计时。
其中Timer1用来控制当前时间的显示,Timer2用来倒计时。
开始时Text2中文本内容为空,窗体标题为“倒计时程序”。
具体要求:
①设置文件Timer1和窗体的属性。
②在编写的二个过程代码Timer1_Timer()和Timer2_Timer()中各有一处错误,请调试改正。
PrivateSubTimer1_Timer()
Text1.Text=Format(Now,"SS:
HH:
MM")改:
"HH:
MM:
SS"
EndSub
PrivateSubTimer2_Timer()
IfText1.Text=Text2.TextThen改:
Text2.Text=Text1.Text
MsgBox"时间到!
"
Timer1.Interval=0
EndIf
EndSub
gc457.在窗体上建有标签(Label1)、定时器(Timer1)和两个命令按钮(Command1、Command2)。
Label1用于显示系统时间的数字式表,每0.5秒显示一次新的时间,其BorderStyle属性为:
1-FixedSingle;Command1、Command2分别用于“计时”、“暂停”。
要求:
1)设置Label1和Timer1的属性;2)在编写的Command2_Click()和Timer1_Timer()二个过程代码中各有一个错误。
PrivateSubCommand2_Click()
Timer1.Enabled=True改:
False
Command1.Enabled=True
Command2.Enabled=False
EndSub
PrivateSubTimer1_Timer()
IfLabel1.Caption<>Time()Then
Label1.Caption=Timer()改:
=Time()
EndIf
EndSub
gc587.在名称为Form1的窗体上建有文本框、命令按钮和计时器各一,其名称分别为Text1、
C1和T1,且Text1的初始内容为0,C1的标题为“开始计数”;在开始运行时不计数,单击“开始计数”按钮
后,则使文本框中的数每秒加1。
要求:
1)设置命令按钮和计时器的属性;
2)在C1_Click()和T1_Timer()两个过程代码中各有一个错误,请调试改正。
PrivateSubC1_Click()
Timer1.Enabled=True改:
T1.Enabled=True
EndSub
PrivateSubT1_Timer()
Text1.Text=Text1.Text+10改:
Text1.Text+1
EndSub
gc334.设计一个窗体,当单击按钮时将文本框Text1中的内容增加到列表框List1中,当单击List1中某个项目时将它增加到List2中,当单击List2中某个项目时将其从List2中删除。
开始时Text1中文本内容为空,按钮Command1的提示信息为“增加”。
具体要求:
①设置文件文本框Text1和命令按钮Command1的属性。
②在编写的二个过程代码List1_Click()和List2_Click()中各有一处错误,请调试改正。
PrivateSubList1_Click()
List2.AddItemList1.ListIndex改:
List1.Text
List2.Refresh
List1.Refresh
EndSub
PrivateSubList2_Click()
List2.RemoveItemList2.List(List2.ListIndex)
改:
List2.RemoveItemList2.ListIndex
List2.Refresh
EndSub
gc562在“求偶数数字组成的平方数”窗体Form1上建有:
命令按钮Command1、Command2和
Command3,分别用于“运行”、“清理”和“结束”(Caption属性);标签Label1,用于提示平方数的位数
“N:
”(3或4位);文本框Text1,用于输入平方数的位数;列表框List1,用于输出偶数数字组成的平方数。
程序启动后,按“清理”按钮,则将文本框及列表框清空,焦点设置在文本框;在文本框中输入n的值,单击
“运行”按钮,在规定范围内查找符合要求的数据并在列表框中显示结果;按“结束”按钮,结束程序运行。
要求:
1)设置Command1、Command2的相关属性;
2)在Command1_Click()和Command2_Click()两个过程代码中各有一个错误,请调试改正。
rivateSubCommand1_Click()
DimiAsInteger,aAsInteger
DimlowAsString,highAsString,nAsInteger
n=Text1.Text
low="10000"
high="99999"
Fori=Left(low,n)ToLeft(high,n)
Ifflag(i)Then
IfInt(Sqr(i))=Sqr(i)Then
Ifflag(Sqr(i))Then
List1.Listi&"="&Sqr(i)&"^2"'此处有一错
改:
List1.AddItemi&"="&Sqr(i)&"^2"
EndIf
EndIf
EndIf
Nexti
EndSub
PrivateSubCommand2_Click()
Text1=""
List1.Clear
Text1.Focus'此处有一错改:
Text1.SetFocus
EndSub
gc318.设置文字"欢迎使用VISUALBASIC6.0"字体大小和字体颜色,字体大小由水平滚动条来确定(最大为20,最小为10),字体颜色由三个文本框输入,采用RGB格式。
要求:
(1)设置Hscroll1的属性。
(2)在过程Command1_Click()和HScroll1_Change()代码中各有一处错误,请调试更正,不得增删语句。
PrivateSubCommand1_Click()
Label1.ForeColor=RGB(Text1.Text,Text2.Text,Text3.Text)
改:
RGB(Val(Text1.Text),Val(Text2.Text),Val(Text3.Text))
EndSub
PrivateSubHScroll1_Change()
Label1.FontSize=HScroll1改:
=HScroll1.Value
EndSub
gc458.窗体上有一个文本框,名称为Text1;3个标签,名称分别为“请输入成绩”、“成绩评语”和空白;一个命令按钮,名称为C1,标题为“获得评语”。
请编写适当的事件过程,使得在运行时,在Text1中输入0到100间的数字,单击“获得评语”按钮,在Labbel3中本题表中显示的内容。
PrivateSubc1_click()
x=Val(Text1.Text)
Ifx>100Andx<0ThenAnd改:
Or
MsgBox"输入成绩错误,程序退出!
"
End
EndIf
Ifx>=85Then
strtemp="该生成绩优秀"
ElseIfx>=60Then
strtemp="该生成绩合格"
Else
strtemp="该生成绩不合格"
EndIf
Label3.Caption="该生成绩"改:
Label3.Caption=strtemp
EndSub
gc510gc509.frm的功能是:
输入圆的半径,求圆面积。
在“求圆面积”窗体上建有3个Label控件、2个Command控件和1个Text控件,Text1用于输入圆的半径,Label1和Label2分别用于提示“已知圆的半径圆:
”和“面积为:
”,Label3用于显示输出圆的面积,以上控件的属性已经设置。
Command1和Command2分别用于“计算”和“结束”(Caption属性),它们的快捷键分别是Alt-S和Alt-X,即单击Command1或按Alt-S开始计算,单击Command2或按Alt-X退出程序运行。
要求:
1)设置Command1、Command2的属性;
2)在Command1_Click()和Command2_Click()二个过程代码中各有一个错误,请调试改正。
PrivateSubCommand1_Click()
Constpi=3.14
IfText1.Text=""Then改:
IfText1.Text<>""Then
r=Text1.Text
Ifr=Val(Text1.Text)Then
s=pi*r*r
Label3.Caption=s
Else
MsgBox"输入的不是数据,请重新输入!
"
Text1.SetFocus
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
Exit改:
End
EndSub
gc316.的功能是:
设计一个窗体,当在文件控件File1中单击相应图形文件时能实现在Image1中进行浏览,要求文件控件中只显示扩展名为BMP的文件,图形要求按同样大小进行显示。
具体要求:
①设置文件控件File1和图像控件Image1的属性。
②在编写的二个过程代码Dir1_Change(),File1_Click()中各有一处错误,请调试改正。
PrivateSubDir1_Change()
File1.Path=Dir1.Drive改:
File1.Path=Dir1.Path
EndSub
PrivateSubFile1_Click()
DimfnameAsString
IfRight(Dir1.Path,1)="\"Then
fname=Dir1.Path&File1.FileName
Else
fname=Dir1.Path&"\"&File1.FileName
EndIf
Image1.Picture=fname改:
Image1.Picture=LoadPicture(fname)
EndSub
tk316.frm的功能是:
当按下“显示杨辉三角形”按钮时,提示从键盘输入一个数值n,并在Picture1中显示n行杨辉三角形,
该程序不完整,请补充空白
(1)、
(2)处,以便能得到正确答案。
PrivateSubCommand1_Click()
'当n=5时的三角形为
'1
'11
'121
'1331
'14641
Dimn%,a()AsLong
Dimi%,j%
n=InputBox("请输入需要显示的行数N:
")
ReDima(n)
Picture1.Cls
Fori=1Ton
a
(1)=1
a(i)=1
Forj=i-1To2Step-1
a(j)=
(1)填:
a(j)+a(j-1)
Nextj
Forj=1Toi
Picture1.PrintTab(6*(j-1));a(j);
Nextj
(2)