练习题参考答案.docx
《练习题参考答案.docx》由会员分享,可在线阅读,更多相关《练习题参考答案.docx(57页珍藏版)》请在冰豆网上搜索。
练习题参考答案
附录 练习题参考答案
练习题1
1.答:
略。
2.答:
略。
练习题2
1.答:
略。
2.答:
略。
3.答:
略。
练习题3
图A.1Form1设计界面
1.解:
Form1窗体的界面如图A.1所示,有两个标签(Label1和Label2)、两个文本框(TextBox1和TextBox2)和一个命令按钮Button1。
在该窗体上设计如下代码:
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesButton1.Click
DimnAsInteger
DimsAsLong
n=0
s=Val(TextBox1.Text)
DoWhiles>0
n=n+sMod10
s=Int(s*1.0/10)
Loop
TextBox2.Text=n
EndSub
EndClass
图A.2Form1执行界面
图A.3Form2设计界面
运行本窗体,在TextBox1中输入123456789,单击“求数字和”命令按钮,其结果如图A.2所示。
2.解:
Form2窗体的界面如图A.3所示,有3个标签(Label1、Label2和Label3)、两个文本框(TextBox1和TextBox2)和一个命令按钮Button1。
在该窗体上设计如下代码:
PublicClassForm2
PrivateSubButton1_Click(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimy,m,dAsInteger
DimleapAsBoolean
y=Val(TextBox1.Text)
m=Val(TextBox2.Text)
IfyMod400=0Then'闰年时leap=true,平年时leap=false
leap=True
ElseIfyMod4=0AndyMod100<>0Then
leap=True
Else
leap=False
EndIf
SelectCasem
图A.4Form2执行界面
图A.5Form3设计界面
Case1,3,5,7,8,10,12
d=31
Case4,6,9,11
d=30
Case2
Ifleap=TrueThen
d=29
Else
d=28
EndIf
EndSelect
Label3.Text="该月有"+Trim(Str(d))+"天"
EndSub
EndClass
运行本窗体,在TextBox1中输入2009,在TextBox2中输入2,单击“确定”命令按钮,其结果如图A.4所示。
3.解:
Form3窗体的界面如图A.5所示,有3个标签(Label1、Label2和Label3)、两个文本框(TextBox1和TextBox2)和一个命令按钮Button1。
在该窗体上设计如下代码:
PublicClassForm3
PrivateSubButton1_Click(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimn,m,iAsInteger
DimfAsBoolean
n=Val(TextBox1.Text)
m=Val(TextBox2.Text)
f=True
Fori=0Ton\2
If2*i+4*(n-i)=mThen
Label3.Text="鸡"+Trim(Str(i))+"只,兔"+_
Trim(Str(n-i))+"只"
f=False
ExitFor
图A.6Form3执行界面
EndIf
Nexti
Iff=TrueThen
Label3.Text="数据输入错误,无解"
EndIf
EndSub
EndClass
运行本窗体,在TextBox1中输入30,在TextBox2中输入90,单击“确定”命令按钮,其结果如图A.6所示。
练习题4
图A.7Form1设计界面
1.解:
Form1窗体的界面如图A.7所示,有两个标签(Label1和Label2)、两个文本框(TextBox1和TextBox2)和一个命令按钮Button1。
在该窗体上设计如下代码:
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.
Object,_
ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimcity()AsString={"北京","上海","天津","广州","哈尔滨",_
"长春","沈阳","西安","兰州","银川","太原","济南","南京",_
"合肥","郑州","成都","重庆","贵阳","昆明","杭州","福州",_
"南昌","武汉","长沙","南宁","拉萨","海口"}
Dimno()AsString={"010","021","022","020","0451","0431",_
"024","029","0931","0971","0951","0351","025","0551",_
"0371","028","023","0851","0871","0571","0591","0791",_
"027","0731","0771","0891","0898"}
DimiAsInteger=0
While(i0)
i=i+1
EndWhile
图A.8Form1执行界面
图A.9Form2设计界面
IfiLabel2.Text="对应的城市:
"+city(i)
Else
Label2.Text="区号未找到"
EndIf
EndSub
EndClass
运行本窗体,在TextBox1中输入027,单击“确定”命令按钮,其结果如图A.8所示。
2.解:
Form2窗体的界面如图A.9所示,有3个标签(Label1~Label3)、6个文本框(TextBox1~TextBox6)和一个命令按钮Button1。
在该窗体上设计如下代码:
PublicClassForm2
PrivateStructurecomplex'自定义复数类型
PublicxAsSingle
PublicyAsSingle
EndStructure
PrivateSubButton1_Click(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesButton1.Click
DimaAscomplex
DimbAscomplex
DimcAscomplex
a.x=Val(TextBox1.Text)
a.y=Val(TextBox2.Text)
b.x=Val(TextBox3.Text)
图A.10Form2执行界面
b.y=Val(TextBox4.Text)
c.x=a.x*b.x-a.y*b.y
c.y=a.x*b.y+a.y*b.x
TextBox5.Text=c.x
TextBox6.Text=c.y
EndSub
EndClass
运行本窗体,输入两个复数分别为:
1+2i、3+4i,单击“确定”命令按钮,结果如图A.10所示。
图A.11Form3设计界面
3.解:
Form3窗体的界面如图A.11所示,有两个标签(Label1和Label2)、两个文本框(TextBox1和TextBox2)和一个命令按钮Button1。
在该窗体上设计如下代码:
PublicClassForm3
PrivateStructurepoint'自定义点类型
PublicxAsInteger
PublicyAsInteger
EndStructure
PrivateSubButton1_Click(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimp1Aspoint
Dimp2Aspoint
DimdAsSingle
p1.x=Val(TextBox1.Text)
p1.y=Val(TextBox2.Text)
p2.x=Val(TextBox3.Text)
p2.y=Val(TextBox4.Text)
d=Math.Sqrt((p1.x-p2.x)*(p1.x-p2.x)+_
图A.12Form3执行界面
图A.13Form4设计界面
(p1.y-p2.y)*(p1.y-p2.y))
Label3.Text="两点的距离:
"+Format$(d,"#####.##")
EndSub
EndClass
运行本窗体,输入两个点(2,3)、(9,14),单击“确定”命令按钮,结果如图A.12所示。
4.解:
Form4窗体的界面如图A.13所示,有3个标签(Label1~Label3)、4个文本框(TextBox1~TextBox4,其中TextBox2的MultiLine属性设置为True)和一个命令按钮Button1。
在该窗体上设计如下代码:
PublicClassForm4
PrivateSubButton1_Click(ByValsenderAsSystem.
Object,_
ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimi,n,sumAsInteger
Dimscore()AsInteger
DimmystrAsString=""
n=Val(TextBox1.Text)
ReDimscore(n-1)
Randomize()'初始化随机数生成器
sum=0
Fori=0Ton-1
score(i)=Int(Rnd()*80)+20'通过随机函数产生20~100的分数
sum=sum+score(i)
NextI
ReDimPreservescore(n+1)
score(n)=sum/n
score(n+1)=0
Fori=0Ton-1
Ifscore(i)>score(n)Thenscore(n+1)=score(n+1)+1
NextI
Fori=0Ton-1
mystr=mystr+Str(score(i))+Chr(13)+Chr(10)
Next
TextBox2.Text=mystr
TextBox3.Text=score(n)
TextBox4.Text=score(n+1)
EndSub
PrivateSubForm4_Load(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesMyBase.Load
TextBox1.Text=""
TextBox2.Text=""
图A.14Form4执行界面
TextBox3.Text=""
TextBox4.Text=""
EndSub
EndClass
上述代码中,用score(0…n-1)数组元素存放n个学生的分数,score(n)数组元素存放平均分,score(n+1)数组元素存放高于平均分的人数。
运行本窗体,输入n为10,单击“确定”命令按钮,结果如图A.14所示。
练习题5
图A.15Form1设计界面
1.答:
略。
2.答:
略。
3.解:
Form1窗体的界面如图A.15所示,有两个标签(Label1和Label2)、两个文本框(TextBox1和TextBox2)和两个命令按钮(Button1和Button2)。
在该窗体上设计如下代码:
PublicClassForm1
Privatea(9)AsSingle
PrivateSubButton1_Click(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesButton1.Click
DimiAsInteger
Randomize()'随机数初始化
TextBox1.Text=""
Fori=0To9'用随机函数为实参数组元素赋值
a(i)=Int(90*Rnd()+10)
TextBox1.Text=TextBox1.Text+CStr(a(i))+""
Next
EndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesButton2.Click
CallAver(a)'调用通用过程,通过形参a返回数组a各元素平均值
TextBox2.Text=Format(a(UBound(a)))'显示一维数组的最后一个元素值
EndSub
PrivateSubAver(ByRefb()AsSingle)
Dimi,nAsInteger
n=UBound(a)
ReDimPreserveb(n+1)'重新定义数组的大小,并保持原来的值.
b(n+1)=0'给最后一个元素赋初值
Fori=0Ton
b(n+1)=b(n+1)+b(i)
Nexti
图A.16Form1运行界面
图A.17Form2设计界面
b(n+1)=b(n+1)/n'最后一个元素值除以原来的长度得到平均值
EndSub
EndClass
运行本窗体,分别单击“产生数组”和“求平均值”命令按钮,结果如图A.16所示。
4.解:
Form2窗体的界面如图A.17所示,有一个标签(Label1)、3个文本框(TextBox1~TextBox3)和两个命令按钮(Button1和Button2)。
在该窗体上设计如下代码:
PublicClassForm2
DimmmAsInteger=7
Functionaddmm(ByValxAsString)AsString'加密操作函数过程
Dimi,nAsInteger
Dims1AsString,s2AsString,s3AsString
s3=""
n=Len(x)
Fori=1Ton
s1=Mid(x,i,1)
s2=Chr(Asc(s1)+mm)
s3=s3&s2
Next
addmm=s3
EndFunction
Functionremovemm(ByValxAsString)AsString'解密操作函数过程
Dimi,nAsInteger
Dims1AsString,s2AsString,s3AsString
s3=""
n=Len(x)
Fori=1Ton
s1=Mid(x,i,1)
s2=Chr(Asc(s1)-mm)
s3=s3&s2
Next
removemm=s3
EndFunction
PrivateSubButton1_Click(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesButton1.Click
DimsAsString=TextBox1.Text
TextBox2.Text=addmm(s)
EndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesButton2.Click
DimsAsString=TextBox2.Text
TextBox3.Text=removemm(s)
EndSub
PrivateSubForm2_Load(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesMyBase.Load
图A.18Form2运行界面
图A.19Form3设计界面
TextBox1.Text=""
TextBox2.Text=""
TextBox3.Text=""
EndSub
EndClass
上述代码中,运行本窗体,mm为加密因子,addmm是加密操作函数,removemm是解密操作函数,它们分别对原字符串中每个字符的ASCII码加上mm和减去mm。
运行本窗体,输入原字符串,分别单击两个命令按钮,结果如图A.18所示。
5.解:
Form3窗体的界面如图A.19所示,有两个标签(Label1和Label2)、两个文本框(TextBox1和TextBox2)和一个命令按钮Button。
在该窗体上设计如下代码:
PublicClassForm3
PrivateSubButton1_Click(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimi,n,sumAsInteger
n=Val(TextBox1.Text)
sum=0
Fori=1To10
sum=sum+fac(i)'调用函数过程后,进行累加
Next
TextBox2.Text=Format(sum)
EndSub
Functionfac(ByValnAsInteger)AsInteger
DimjAsInteger
DimtotalAsInteger=1
Forj=1Ton
total=total*j
Next
fac=total
EndFunction
PrivateSubForm3_Load(ByValsenderAsSystem.Object,_
图A.20Form3运行界面
ByValeAsSystem.EventArgs)HandlesMyBase.Load
TextBox1.Text=""
TextBox2.Text=""
EndSub
EndClass
运行本窗体,输入n为5,单击“求值”命令按钮,结果如图A.20所示。
练习题6
图A.21Form1设计界面
1.答:
略。
2.解:
Form1窗体的界面如图A.21所示,只有一个标签Label1。
在该窗体上设计如下代码:
PublicClassForm1
PrivateSubForm1_Load(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesMyBase.Load
Me.BackgroundImage=_
System.Drawing.Image.FromFile("H:
\vb程序\spring.jpg")
EndSub
EndClass
图A.22Form1运行界面
图A.23Form2设计界面
运行本窗体,其结果如图A.22所示。
3.解:
Form2窗体的界面如图A.23所示,有3个标签(Label1~Label3)、两个文本框(TextBox1和TextBox2,TextBox2的Passwordchar属性设置为“*”)和一个命令按钮Button1。
在该窗体上设计如下代码:
PublicClassForm2
PrivateSubButton1_Click(ByValsenderAsSystem.Object,_
ByValeAsSystem.EventArgs)HandlesButton1.Click
IfTextBox1.Text="1234"Then
IfTextBox2.Text="1234"Then
MsgBox("用户名/口令正确,进入系统运行",vbOKOnly,"信息提示")
'调用其他系统窗体
Else
MsgBox("口令不正确,重新输入",vbOKOnly,"信息提示")
TextBox2.Text=""
TextBox2.Focus()
EndIf
Else
MsgBox("用户名/口令不正确,重新输入",vbOKOnly,"信息提示")
图A.24Form2运行界面
图A.25Form3设计界面
TextBox1.Text=""
TextBox2.Text=""