VB课后习题参考答案.docx
《VB课后习题参考答案.docx》由会员分享,可在线阅读,更多相关《VB课后习题参考答案.docx(64页珍藏版)》请在冰豆网上搜索。
VB课后习题参考答案
第1章参考答案1
第2章参考答案1
第3章参考答案5
第4章参考答案7
第5章参考答案10
第6章参考答案15
第7章参考答案19
第8章参考答案23
第9章参考答案26
第10章参考答案35
第11章参考答案36
第12章参考答案39
第1章参考答案
一、简答题(略)
二、单选题:
1.A2.D3.C4.B5.A
6.D7.C
三、填空题:
1.设计运行
2.Proj1Demo1
3.程序代码控件
4.编译可执行文件
5.可视化
6.窗体对象
7.视图F4
实验部分(略)
第2章参考答案
一、简答题(略)
二、找出以下语句中的错误
1.False---错,因为False是VB的关键字或保留字
2.Integers-----错,正确的写法是dimx,y,zasinteger
3.a+b=c改为c=a+b
4.Mode----错,应改为mod
5.37001---错,因为x取值范围是–32768----32767
6.÷-----错,应该写为/
7..E----错,E的左边必须是一个数字
8.错,赋值符号的左边字符串缺了双引号
9.1---错,应改为:
”1”
10.错,正确的是:
#01-01-00#
三、编写语句完成以下任务
1.设这3个数用x、y、z表示,则求3个数乘积的表达式为:
x*y*z
2.Optionexplicit
3.Form1.print“PrintTexttoTheWindows”
4.Dimresultaslong
Result=(x+y+z)/3
5.Dimxasinteger,yasinteger,zasinteger
6.Y=3*x^5+2*x^4-6*x^3-1
四、数据常量有:
”Xname”(字符串型)、True(逻辑型)、517.3(实数型)、
"2/08/05"(日期时间型)、#1-1#(日期时间型)、
”String”(字符串型)、1(整型)
数据变量有:
Xname、X
VB关键字:
Step
五、表达式为:
1.6
2.2002-1-1
3.xyz123abc
4.xyz123abc
5.12
6.11
六.程序段1在窗体上输出为:
57
-2-9
FalseFalse
程序段2在窗体上输出为:
Visual
TheDemoBasic
实验部分
1.参考代码:
PrivateSubForm_Click()
DimxAsInteger,yAsInteger,zAsInteger
x=InputBox("请输入:
")
y=InputBox("请输入:
")
z=InputBox("请输入:
")
Printx+y+z
Printx*y*z
Print(x+y+z)/3
EndSub
2.参考代码和界面如下:
PrivateSubCommand1_Click()
DimrAsInteger
r=InputBox("请输入圆半径:
")
Label1.Caption=2*r&""
Label1.Caption=Label1.Caption&3.14*r^2&""
Label1.Caption=Label1.Caption&2*3.14*r
EndSub
PrivateSubCommand2_Click()
DimrAsInteger
Label1.Caption=""
r=InputBox("请输入圆半径:
")
Label1.Caption=2*r&""
Label1.Caption=Label1.Caption&3.14*r^2&""
Label1.Caption=Label1.Caption&2*3.14*r
EndSub
PrivateSubCommand3_Click()
End
EndSub
3.参考代码:
PrivateSubForm_Click()
DimaAsInteger
a=InputBox("请输入:
")‘输入的值分别是16,33等
MsgBox"注意观测!
",a,"消息框"
EndSub
4.参考代码和界面如下:
PrivateSubcommand1_Click()
DimtempAsInteger
text1.Text=""
text2.Text=""
text3.Text=""
Label4.Caption="+"
text1.Text=InputBox("请输入第一个数:
")
text2.Text=InputBox("请输入第二个数:
")
temp=Val(text1.Text)+Val(text2.Text)
text3.Text=temp
EndSub
PrivateSubcommand2_Click()
DimtempAsInteger
text1.Text=""
text2.Text=""
text3.Text=""
Label4.Caption="-"
text1.Text=InputBox("请输入第一个数:
")
text2.Text=InputBox("请输入第二个数:
")
temp=Val(text1.Text)-Val(text2.Text)
text3.Text=temp
EndSub
PrivateSubCommand3_Click()
DimtempAsInteger
text1.Text=""
text2.Text=""
text3.Text=""
Label4.Caption="*"
text1.Text=InputBox("请输入第一个数:
")
text2.Text=InputBox("请输入第二个数:
")
temp=Val(text1.Text)*Val(text2.Text)
text3.Text=temp
EndSub
PrivateSubCommand4_Click()
DimtempAsSingle
text1.Text=""
text2.Text=""
text3.Text=""
Label4.Caption="/"
text1.Text=InputBox("请输入第一个数:
")
text2.Text=InputBox("请输入第二个数:
")
temp=Val(text1.Text)/Val(text2.Text)
text3.Text=temp
EndSub
第3章参考答案
一、单选题
1.D2.A3.C4.D5.B
二、填空题
1、SmallChange2、Locked设置为True3、Int(Rnd*900+100)
4、(2*3.1415926*R+Exp(-5))*Log(X+1)5、续行符”_”
二、程序阅读题
1、2、
实验部分:
1、参考代码
PrivateSubForm_Click()
DimaAsSingle,bAsSingle,hAsSingle,sAsSingle
a=InputBox("输入梯形的上底")
b=InputBox("输入梯形的下底")
h=InputBox("输入梯形的高")
s=(a+b)*h/2
MsgBox"梯形面积为:
"&Round(s,2)
EndSub
2、参考代码
PrivateSubForm_Load()
Form1.Caption="颜色示例"
HScroll1.Max=255
HScroll1.SmallChange=10
HScroll1.LargeChange=20
HScroll2.Max=255
HScroll2.SmallChange=10
HScroll2.LargeChange=20
HScroll3.Max=255
HScroll3.SmallChange=10
HScroll3.LargeChange=20
Label1.Caption="红"
Label2.Caption="绿"
Label3.Caption="蓝"
Label4.Caption=0
Label5.Caption=0
Label6.Caption=0
Text1.Text=""
EndSub
4、参考代码
PrivateSubCommand1_Click()
CurrentX=500
CurrentY=500
Print"水光潋艳晴方好,山色空蒙雨亦奇"
CurrentX=500
CurrentY=1000
Print"欲把西湖比西子,淡妆浓抹总相宜"
EndSub
PrivateSubCommand2_Click()
Form1.FontUnderline=False
Form1.FontItalic=False
Form1.FontBold=True
Form1.Cls
CurrentX=500
CurrentY=500
Print"水光潋艳晴方好,山色空蒙雨亦奇"
CurrentX=500
CurrentY=1000
Print"欲把西湖比西子,淡妆浓抹总相宜"
EndSub
PrivateSubCommand3_Click()
Form1.FontBold=False
Form1.FontUnderline=False
Form1.FontItalic=True
Form1.Cls
CurrentX=500
CurrentY=500
Print"水光潋艳晴方好,山色空蒙雨亦奇"
CurrentX=500
CurrentY=1000
Print"欲把西湖比西子,淡妆浓抹总相宜"
EndSub
PrivateSubCommand4_Click()
Form1.FontBold=False
Form1.FontItalic=False
Form1.FontUnderline=True
Form1.Cls
CurrentX=500
CurrentY=500
Print"水光潋艳晴方好,山色空蒙雨亦奇"
CurrentX=500
CurrentY=1000
Print"欲把西湖比西子,淡妆浓抹总相宜"
EndSub
PrivateSubCommand5_Click()
End
EndSub
PrivateSubForm_Load()
Form1.FontSize=16
Form1.Caption="字体示例"&Time
EndSub
第4章参考答案
一、
1、A2、D3、B4、D
二、
1、框架2、ifx1^2+y1^2<=93、value4、该框架
三、
s=4
s=5.2
s=8
实验:
1.
PrivateSubCommand1_Click()
DimxAsSingle
x=Val(InputBox("请输入X"))
Ifx<-2Then
Y=(3*x*x-x-1)/x
ElseIfx<1Then
Y=Sin(x)+2^x
Else
Y=(Sqr(x-1)+Log(x)/Log(10))/2
EndIf
Label1.Caption="你输入的X是"+Str(x)+",得到的Y值是"+Str(Y)
EndSub
2.
PrivateSubForm_Click()
DimaAsInteger,bAsInteger,cAsInteger
a=Val(InputBox("请输入第一个数a"))
b=Val(InputBox("请输入第一个数b"))
c=Val(InputBox("请输入第一个数c"))
Max=a
Ifb>MaxThenMax=b
Ifc>MaxThenMax=c
PrintMax
EndSub
3.
OptionExplicit
PrivateSubForm_Load()
Form1.Caption="个人所得税"
Label1.Caption="薪金总额"
Text1.Text=""
Label2.Caption=""
Command1.Caption="计算"
EndSub
PrivateSubCommand1_Click()
DimxAsSingle,yAsSingle
x=Val(Text1.Text)
x=x-1600
Ifx>40000Orx<-1600Then
MsgBox"输入的薪金有错",,"出错"
ElseIfx>=0Andx<=500Then
y=x*0.05
ElseIfx>=500Andx<=2000Then
y=500*0.05+(x-500)*0.1
ElseIfx>=2000Andx<=5000Then
y=500*0.05+1500*0.1+(x-2000)*0.15
ElseIfx>=5000Andx<=20000Then
y=500*0.05+1500*0.1+3000*0.15+(x-5000)*0.2
ElseIfx>20000Then
y=500*0.05+1500*0.1+3000*0.15+15000*0.2+(x-20000)*0.25
Else
y=0
EndIf
Label2.Caption="个人所得税为:
"&Str(y)
EndSub
4.
PrivateSubForm_click()
s=Val(InputBox("请输入计算机文化成绩"))
SelectCases
Case180To200
Prints,"优"
Case160To179
Prints,"良"
Case140To159
Prints,"中"
Case120To139
Prints,"及格"
Case0To120
Prints,"不及格"
CaseElse
Prints,"输入成绩错误"
EndSelect
EndSub
第5章参考答案
一、单选题
1、C2、C3、C4、C5、B
二、填空题
1、F2、7,353、0
三、程序阅读
1、37
55
46
28
2、6
四、程序填空
Whilen<=0Orn>=30
k=0
sum+1/(k*(k+1))
五、略
六、
1.
PrivateSubCommand1_Click()
DimxAsInteger,nAsInteger,iAsInteger
Randomize
x=Int(Rnd
(1)*99+1)
Fori=1To10
y=Val(InputBox("请输入一个小于100的整数","猜数游戏"))
Ify=xThen
MsgBox"恭喜你猜中啦!
"+"你猜了"+Str(i)+"次",48
ExitFor
ElseIfy>xThen
MsgBox"对不起,猜大了!
"+"你已经猜了"+Str(i)+"次",48
ElseIfyMsgBox"对不起,猜小了!
"+"你已经猜了"+Str(i)+"次",48
EndIf
Ifi=10ThenMsgBox"对不起,你已经猜了10次,下次再来",vbCritical+vbDefaultButton1+vbExclamation
Next
EndSub
PrivateSubCommand2_Click()
End
EndSub
2.
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger,cAsInteger
DimnAsInteger,iAsInteger
Cls
Print"a","b","c"
Fora=1To50
Forb=aToc
Forc=bTob
Ifc*c=b*b+a*aThen
Printa,b,c
n=n+1
EndIf
Nexta
Nextb
Nextc
Print"符合要求的三角形个数有:
";n;"个"
EndSub
3.
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger
Fora=1To100
Forb=1To100
IfInt(Sqr(a+b))=(Sqr(a+b))AndInt(Sqr(Abs(a-b)))=(Sqr(Abs(a-b)))Then
Printa;b,
n=n+1
IfnMod3=0ThenPrint
EndIf
Nextb
Nexta
EndSub
4.
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger
Fori=1To9
Forj=1Toi
Printi;"*";j;"=";i*j;
Ifi*j<10ThenPrintSpc
(1);
Nextj
Print
Nexti
EndSub
5.
PrivateSubCommand1_Click()
DimxAsString,iAsInteger,x1asinteger
x=val(Text1.Text)
IfOption1.Value=TrueThen
Dowhilex>0
x1=xmod10
x=x\10
Text2.Text=text2.text&x
loop
ElseIfOption2.Value=TrueThen
Dowhilex>0
x1=xmod10
x=x\10
Text2.Text=val(text2.text)+x1
loop
ElseIfOption3.Value=TrueThen
Text2.text=”1”
Dowhilex>0
x1=xmod10
x=x\10
Text2.Text=val(text2.text)*x1
loop
EndIf
EndSub
PrivateSubOption1_Click()
Text2.Text=""
EndSub
PrivateSubOption2_Click()
Text2.Text=""
EndSub
PrivateSubOption3_Click()
Text2.Text=""
EndSub
6.
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger,nAsInteger
Cls
n=Val(InputBox("请输入图案的行数","输入"))
Fori=1Ton
PrintSpc(25-i);
Forj=1To2*i-1
Print"*";
Nextj
Print
Nexti
EndSub
第6章参考答案
一.思考题
略
二.填空题
1.mouseup
2.产生对象.Dragover事件
3.一个对象的DragMode属性要么是1,要么是0,它在属性窗口或程序代码中被设置。
4.MouseMove
5.指针类型,1799
6,Shift
7.拖放
8.move
9.KeyPress,对应按键的ASCII码。
KeyDown或KeyUp,Shift
10.Click,当前窗体的输出位置
11.右键,菜单
12.ALT
13.Visible,Enabled
14.Click,1
15.EnabledFalse
16.连接符”-”
17.5
18.Clipboard.Clear
19.文本,Clipboard.GetText
20.PopupMenu,CallPopupMenu菜单名称
实验
1.
PrivateSubText1_Change()
IfVal(Text1.Text)>=0AndVal(Text1.Text)<=15Then
Me.MousePointer=Val(Text1.Text)
Else
MsgBox"数据输入错误,请输入0-15的数"
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndIf
EndSub
2.
PrivateSubForm_Load()
Form1.KeyPreview=True
Command1.TabIndex=0
EndSub
PrivateSubform_KeyPress(KeyAsciiAsInteger)
DimDigit1AsInteger
I