VB语言程序设计课后编程及上机调试参考答案.docx
《VB语言程序设计课后编程及上机调试参考答案.docx》由会员分享,可在线阅读,更多相关《VB语言程序设计课后编程及上机调试参考答案.docx(30页珍藏版)》请在冰点文库上搜索。
VB语言程序设计课后编程及上机调试参考答案
VB语言程序设计课后编程及上机调试参考答案
Lt
D
VB语言程序设计课后编程及上机调试参考答案
ex0101
PrivateSubLabel1_Click()
Caption="练习"
Command1.Caption="确定"
Label1.FontBold=True
Label1.AutoSize=True
Label1.Caption="VisualBasic程序设计教程"
EndSub
ex0102
PrivateSubCommand1_Click()
Txt.Text="我有电脑"
EndSub
PrivateSubCommand2_Click()
Txt.Text="我没有电脑"
EndSub
PrivateSubCommand3_Click()
Txt.Text=""'一对双撇号,中间不留空
EndSub
ex0104
PrivateSubCommand1_Click()
DimxAsSingle
x=Val(Text1.Text)
Text2.Text=15*x
EndSub
ex0202
PrivateSubForm_Click()
DimrAsSingle,sAsSingle
r=4.6
s=3.14159*r^2
Text1.Text="圆的面积为"&s
EndSub
ex0204
PrivateSubCommand1_Click()'"最大化"按钮
Form1.WindowState=2'最大化
EndSub
PrivateSubCommand2_Click()'"复原"按钮
Form1.WindowState=0'复原
EndSub
PrivateSubCommand3_Click()'"最小化"按钮
Form1.WindowState=1'最小化
EndSub
ex0205
PrivateSubcommand1_click()
DimxAsSingle
DimyAsSingle
x=Val(Text1.Text)
y=Val(Text2.Text)
Text3.Text=x*x+y*y
EndSub
ex0206
PrivateSubcommand1_click()
DimxAsString
x=Text1.Text
Text2.Text=Left(x,1)+Right(x,1)
EndSub
ex0301
PrivateSubForm_Load()
DimxAsInteger,yAsInteger
DimaAsInteger,bAsInteger,cAsInteger
x=Val(InputBox("请输入一个三位数"))
a=Int(x/100)'求百位数
b=Int(x/10)-a*10'求十位数
c=xMod10'求个位数
Show
y=c*100+b*10+a'生成倒序数
Printx;"倒序数为:
";y'显示倒序数
EndSub
ex0302
PrivateSubCommand1_Click()
n=Val(Text1.Text)
Randomize
x=Int(1+n*Rnd)
Label1.Caption="第一个随机数"+Str(x)
x=Int(1+n*Rnd)
Label2.Caption="第二个随机数"+Str(x)
x=Int(1+n*Rnd)
Label3.Caption="第三个随机数"+Str(x)
EndSub
ex0303
PrivateSubCmd1_Click()
Lab1.Visible=True
Lab1.Caption="您已下达显示命令"
EndSub
PrivateSubForm_Click()
Cmd1.Visible=True
EndSub
ex0304
PrivateSubForm_KeyPress(KeyAsciiAsInteger)
Show
Print"输入字符:
";Chr(KeyAscii),"ASCII码为;";KeyAscii
EndSub
PrivateSubForm_DblClick()
Cls
EndSub
ex0305
PrivateSubForm_Load()
x=MsgBox("在这里显示提示信息",4+0,"请确认")
x=MsgBox("在这里显示"+Chr(13)+"提示信息",3+0,"请确认")
x=MsgBox("在这里显示"+Chr(13)+"提示信息",2+16+0,"请确认")
EndSub
ex0401
PrivateSubForm_Load()
DimxAsLong,sAsString
x=InputBox("输入一个整数(1~35000)")
s="奇数"
IfxMod2=0Thens="偶数"
MsgBoxs
EndSub
ex0402
PrivateSubCommand1_Click()
DimaAsSingle,bAsSingle
DimcAsSingle,dAsSingle
DimmAsSingle,nAsSingle,xAsSingle
Show
a=Val(Text1.Text)
b=Val(Text2.Text)
c=Val(Text3.Text)
d=Val(Text4.Text)
Ifa>bThen'求a、b中的较大数
m=a
Else
m=b
EndIf
Ifc>dThen'求c、d中的较大数
n=c
Else
n=d
EndIf
Ifm>nThen'求m、n中的较大数
x=m
Else
x=n
EndIf
Text5.Text=x
EndSub
ex0403
PrivateSubCommand1_Click()
DimtAsString,pAsString
t=Mid(Text1.Text,5,1)
SelectCaset
Case"2"
p="博士生"
Case"3"
p="硕士生"
Case"4"
p="本科生"
Case"5"
p="专科生"
CaseElse
p="无效学号"
EndSelect
Text2.Text=Left(Text1.Text,2)+"级"
Text3.Text=p
EndSub
ex0404
PrivateSubCommand1_Click()
r=0:
g=0:
b=0
IfCheck1.Value=1Then
r=255
EndIf
IfCheck2.Value=1Then
g=255
EndIf
IfCheck3.Value=1Then
b=255
EndIf
Label1.BackColor=RGB(r,g,b)
EndSub
PrivateSubCommand2_Click()
End
EndSub
ex0405
PrivateSubForm_Load()
LabClk.Caption="0"
LabClk.Alignment=1
LabClk.BorderStyle=1
LabClk.FontSize=22
LabClk.FontName="黑体"
TimClk.Interval=1000
EndSub
PrivateSubTimClk_Timer()
LabClk.Caption=Val(LabClk.Caption)+1
EndSub
ex0406
PrivateSubForm_Load()
Command1.Enabled=False
Command2.Enabled=False
EndSub
PrivateSubText1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
IfText1.SelLength>0Then
Command1.Enabled=True
EndIf
EndSub
PrivateSubCommand1_Click()
Command1.Enabled=True
Command2.Enabled=True
EndSub
PrivateSubCommand2_Click()
Text2.Text=Text1.SelText
Command1.Enabled=False
Command2.Enabled=False
EndSub
ex0501
PrivateSubForm_Load()
DimkAsInteger,sAsInteger,tAsInteger
s=0
Fork=1To100Step2
s=s+k
Nextk
Show
Print"1~100范围内的奇数和:
";s
EndSub
ex0502
PrivateSubForm_Load()
DimsAsSingle
Show
s=0
Fork=1To200
s=s+k/(1+k*k)
Nextk
PrintInt(s*10+0.5)/10
EndSub
ex0503
PrivateSubForm_Load()
Show
k=2
s=0
DoWhilek<101
s=s+k*(k-1)
k=k+2
Loop
Prints
EndSub
ex0504
PrivateSubForm_Load()
DimkAsInteger,aAsInteger,bAsInteger
DimcAsInteger,nAsInteger
Show
n=0
Print"三位数的水仙花数是:
"
Fork=100To999
a=Int(k/100)
b=Int((k-100*a)/10)
c=kMod10
Ifa*a*a+b*b*b+c*c*c=kThen
Printk
n=n+1
EndIf
Nextk
Print"一共有"&n&"个水仙花数"
EndSub
ex0505
PrivateSubForm_Load()
Show
Fork=1000To9999
IfkMod78=0Then
a=Int(k/1000)
b=Int(k/100)-10*a
c=Int(k/10)-100*a-10*b
d=kMod10
Ifa=bAndc=dThen
Printk
EndIf
EndIf
Nextk
EndSub
ex0506
PrivateSubCommand1_Click()
DimsAsString,yAsString
DimxAsString,tAsString
s=Text1.Text:
y=""
Fork=1ToLen(s)
x=Mid(s,k,1)
t=UCase(x)
Ift>="A"Andt<="Z"Then
y=y+x
EndIf
Nextk
Text2.Text=y
EndSub
ex0507
PrivateSubCommand1_click()'"显示"按钮单击事件
FontSize=12
Cls
Fori=0ToList1.ListCount-1'逐项判断
IfList1.Selected(i)Then'真时为选定
PrintList1.List(i)
EndIf
Nexti
EndSub
ex0508
PrivateSubForm_Load()
Show
Fora=1To9
Forb=1To9
Forc=1To9
Ford=1To9
x=a*1000+b*100+c*10+d
y=b*1000+a*100+a*10+c
z=d*100+d*10+a
Ifx-y=zThen
Print"A="&a&",B="&b&",C="&c&",D="&d
EndIf
Nextd
Nextc
Nextb
Nexta
EndSub
ex0601
PrivateSubCommand1_Click()
Dima(10)AsInteger,minAsInteger,posAsInteger
Randomize
Fori=1To10
a(i)=Int(Rnd*90+10)
Printa(i);
Nexti
Print
min=a
(1)
pos=1
Fork=2To10
Ifa(k)min=a(k)
pos=k
EndIf
Nextk
Print"最小数:
";min,"位置:
";pos
EndSub
ex0602
PrivateSubForm_Load()
DimaAsVariant,bAsVariant
Dimc(8)AsInteger
a=Array(3,4,2,1,5,7,8,11,13)
b=Array(10,6,12,9,13,8,8,1,16)
Fork=0To8
c(k)=a(k)+b(k)
Nextk
Show
Fork=0To8
Printc(k)
Nextk
EndSub
ex0603
PrivateSubForm_Load()
Dimd()AsInteger
DimkAsInteger,tAsInteger,mAsInteger
DimhAsInteger,nAsInteger
n=Val(InputBox("请输入数组个数n:
"))
ReDimd(n)
Show
Print"处理前数据:
"
Randomize
Fork=1Ton
d(k)=Int((101*Rnd-50))
Printd(k);
Nextk
Print
m=Int(n/2)
Fork=1Tom
h=n-k+1
t=d(h):
d(h)=d(k):
d(k)=t
Nextk
Print"处理的结果:
"
Fork=1Ton
Printd(k);
Nextk
EndSub
ex0604
PrivateSubForm_Load()
Dima(8,8)AsInteger,nAsInteger
DimsAsLong,iAsInteger,jAsInteger
Show
Randomize
n=8
Fori=1Ton
Forj=1Ton
x=Int(90*Rnd+10)'产生一个随机数
a(i,j)=x
Nextj
Nexti
s=0
Fori=1Ton
Forj=1Ton
s=s+a(i,j)
Nextj
Nexti
Print"所有元素之和;";s
Print
Fori=1Ton
s=0
Forj=1Ton
s=s+a(i,j)
Nextj
Print"第";i;"行元素之和;";s
Nexti
Print
s=0
Fori=1Ton
s=s+a(i,i)
Nexti
Print"主对角线元素之和;";s
Print
s=0
Fori=1Ton
Forj=1Ton
Ifi=1Ori=nOrj=1Orj=nThen
s=s+a(i,j)
EndIf
Nextj
Nexti
Print"所有靠边元素之和;";s
EndSub
ex0605
OptionBase1
PrivateSubForm_Load()
Dima(8,8)AsInteger,nAsInteger
DimmaxAsInteger,rAsInteger,cAsInteger
Show
Randomize
n=8
Fori=1Ton
Forj=1Ton
x=Int(900*Rnd+100)'产生一个随机数
a(i,j)=x
Printx;
Nextj
Print
Nexti
max=0:
r=1:
c=1
Print
Fori=1Ton
Forj=1Ton
Ifa(i,j)>maxThen'判断有无更大数
max=a(i,j):
r=i:
c=j
EndIf
Nextj,i
Print"最大值为:
";max
Print"位于行:
";r,"列:
";c
EndSub
ex0606
DimnAsInteger
PrivateSubCmd1_Click()
n=n+1
Ifn=3Thenn=0
Opt1(n).Value=True
EndSub
PrivateSubForm_Load()
n=1
EndSub
ex0607
PrivateSubForm_Load()
Dima(20)AsInteger
Randomize
a
(1)=Int(10+90*Rnd)
k=1
DoWhilek<20
x=Int(10+90*Rnd)
f=0
Forj=1Tok
Ifx=a(j)Then
f=1
ExitFor
EndIf
Nextj
Iff=0Then
k=k+1
a(k)=x
EndIf
Loop
Show
Forj=1To20
Printa(j)
Nextj
EndSub
ex0701
PrivateSubForm_Click()
DimsAsLong
s=0
Fork=1To10
s=s+jc(k)
Nextk
Prints
EndSub
Functionjc(n)AsLong
DimtAsLong
t=1
Fork=1Ton
t=t*k
Nextk
jc=t
EndFunction
ex0702
PrivateSubForm_Load()
DimaAsSingle,bAsSingle,cAsSingle
DimdAsSingle,mAsSingle,nAsSingle
Show
a=Val(InputBox("输入第1个数"))
b=Val(InputBox("输入第2个数"))
c=Val(InputBox("输入第3个数"))
d=Val(InputBox("输入第4个数"))
m=max(a,b)'求a、b中的较大数
n=max(c,d)'求c、d中的较大数
Print"最大数为:
"&max(m,n)'求m、n中的较大数
EndSub
Functionmax(x,y)AsSingle
Ifx>yThen
max=x
Else
max=y
EndIf
EndFunction
ex0703
PrivateSubCommand1_Click()
Dimd(5)AsSingle,mAsSingle
Fork=0To5
d(k)=Val(Text1(k).Text)
Nextk
CallMax(d(0),d
(1),d
(2),m)
CallMax(m,d(3),d(4),m)
CallMax(m,m,d(5),m)
Text2.Text=m
EndSub
ex0704
PrivateSubForm_Load()
DimxAsLong
Show
x=Val(InputBox("输入一个数"))
Printx;"的位数为:
";fnws(x)
EndSub
Functionfnws(xAsLong)AsInteger
DimnAsInteger
n=1
DoWhilex