VB课后习题参考答案最全.docx
《VB课后习题参考答案最全.docx》由会员分享,可在线阅读,更多相关《VB课后习题参考答案最全.docx(66页珍藏版)》请在冰豆网上搜索。
![VB课后习题参考答案最全.docx](https://file1.bdocx.com/fileroot1/2022-11/25/8e475c30-6d9c-4f9b-be88-f409ab76bc3b/8e475c30-6d9c-4f9b-be88-f409ab76bc3b1.gif)
VB课后习题参考答案最全
第一章
1、B
2、A
3、B
4、答:
属性:
红色、充满氢气;事件:
松手、针刺;方法:
飞走、爆破。
5、答:
事件是指对象能够识别并作出反映的外部刺激。
事件驱动又称消息驱动,事件驱动程序设计是指每个事件对应有相应的程序代码,仅在该事件发生时,该段代码才会被执行。
事件发生的顺序决定了代码执行的顺序,因此每次执行应用程序时,程序代码并不是按照程序编写的顺序来执行的。
6、答:
VB是一个包括界面设计、程序编码、调试、编译并创建可执行程序的集成开发环境。
VB的集成开发环境的主界面中包含:
标题栏、菜单栏、工具栏、控件箱、工程资源管理器、属性窗口、“窗体布局”窗口、窗体设计器、代码编辑器等元素组成。
7、答:
VB菜单条通常情况下有:
文件、编辑、视图、工程、格式、调试、运行、查询、图表、工具、外接程序、窗口、帮助等13项菜单项组成。
8、答:
工具栏可自行定义。
标准工具栏中通常情况下有:
添加标准exe工程、添加窗体、菜单编辑器、打开工程、保存工程、剪切、复制、粘贴、查找、撤消、重复、启动、中断、结束、工程资源管理器、属性窗口、窗体布局窗口、对象浏览器、工具箱、数据视图窗口、可视化元件管理器等按钮组成。
9、答:
创建VB应用程序的一般步骤为:
创建界面;设置窗体和控件属性;编写代码;保存工程;运行并调试程序;检查并排除错误;创建可执行文件。
10、
PrivateSubCommand1_Click()
Label1.Caption="Ilovevb,Ihatevb"
EndSub
第二章
1、
2、
3、S1输入待判断自然数:
N(N>=2);
S2i=2;
S3判断i是否小于N-1,若不是转S5
S4判断N除以i的余数是否为0,如果不是则i=i+1转S3;
S5判断i是否等于N,若是输出“是素数”,否则输出“不是素数”。
4、S1输入待判断自然数:
N;
S2将N转换成字符S,计算S的长度K;
S3i=1;
S4判断i是否小于K-1,若不是转S6;
S5判断S中的第i位和第K-i+1位是否相等,如果是则i=i+1转S4,如果不是则转S6;
S6判断i是否是中间位数,若是输出“是回文数”,否则输出“不是回文数”。
5、S1输入待判断自然数:
a;
S2i=1;
S3判断i是否小于a-1,若不是转S5
S4判断a除以i的余数是否为0,如果是则保留因子i,否则i=i+1转S3;
S5输出所有因子。
6、
第三章
1、窗体的属性主要分为杂项、外观、行为、字体、位置等五类。
Caption是窗体标题,出现在窗体标题栏的文本内容;而Name是窗体名称,在程序代码中被作为窗体的标识名。
2、ABDE
4、改变窗口的工作状态会引发Activate事件,改变窗口大小会引发resize事件。
5、forecolor和backcolor属性首先选择系统中的选项,然后在调色板中设置相应的颜色;font属性设置好以后,在窗体上放置的任何控件都会继承窗体的font属性。
6、C
7、Label、optionbutton、checkbox、commandbutton有caption属性,没有text属性;text、combobox有text属性,没有caption属性
8、对象的属性可以在设计界面时在属性窗口中和运行中在代码中设置;属性窗口中的属性列表并没有包括对象的所有属性。
9、picturebox、frame等
10、optionbutton和checkbox。
Optionbox的Value可以取true-选中和false-未选中,checkbox的Value可以取0-未选中,1-选中,2-变灰,表示暂时不能访问。
11、text、commandbutton可以获得焦点。
在设计界面时第一个放在窗体上的文本框或命令按钮将得到焦点。
12、C
13、把Value的值设为2,表示暂时不能访问复选框,点击复选框后就可以访问了,而把enabled属性设为false则是复选框变灰,完全不能访问。
若把一个控件的Visible属性设为false则在程序运行时看不到该控件。
14、用additem来添加列表项,用removeitem删除已有的列表项,用clear删除所有列表项。
15、
16、
PrivateSubCheck1_Click()
IfCheck1.Value=1Then
Label2.Font.Italic=True
ElseIfCheck1.Value=0Then
Label2.Font.Italic=False
EndIf
EndSub
PrivateSubCheck2_Click()
IfCheck2.Value=1Then
Label2.Font.Bold=True
ElseIfCheck2.Value=0Then
Label2.Font.Bold=False
EndIf
EndSub
PrivateSubCommand1_Click()
End
EndSub
PrivateSubOption1_Click()
IfOption1.ValueThenLabel2.Font.Size=12
Label2.Refresh
EndSub
PrivateSubOption2_Click()
IfOption2.ValueThenLabel2.Font.Size=14
Label2.Refresh
EndSub
PrivateSubOption3_Click()
IfOption3.ValueThenLabel2.Font.Size=16
Label2.Refresh
EndSub
PrivateSubOption4_Click()
IfOption4.ValueThenLabel2.Font.Name="宋体"
Label2.Refresh
EndSub
PrivateSubOption5_Click()
IfOption5.ValueThenLabel2.Font.Name="隶书"
Label2.Refresh
EndSub
PrivateSubOption6_Click()
IfOption6.ValueThenLabel2.Font.Name="黑体"
Label2.Refresh
EndSub
17、
18、
第四章
1.B
2.见教材P40-41
3.不对,通用过程也可以存在于窗体模块中
4.见教材P43
5.字符串型常量的界定符是双引号",日期型数据的界定符是磅号#。
A、B是字符型,C、D是日期型,E、F不属于任何类型。
6.合法变量名有:
A、C、D(VB中合法变量名只能由字母、数字和下划线构成,并且只能以字母开头)
7.见教材P46
8.
(1)a/(b+c/d)
(2)(sqr(x^2+1)+x)^(1/3)
(3)(2*y)/((a*x+b*y)*(a*x-b*y))(4)1+1/(1+1/m)
(5)(d/3)^(2*x)/2(6)log(y+cos(x)^2)
(7)fabs((exp(x)+sin(x)^3)/(x+y))
(8)log((exp(x*y)+fabs(tan(z)^-1+cos(x)^3))/(x+y-z))
9.
(1)
(2)(A+B)/(A-B)
(3)(4)A*B*C/((D+1)*Y)
(5)(6)(X*Y)^5
10.Ax+y<10andx-y>0
Bx*y>0andx=fix(x)andy=fix(y)
CA=0XORB=0
DC1+C2+C3>=255andC1>90andC2>90andC3>80
11.TFFFF
12.BCDE(A会发生溢出的错误)
13.
(1)"3548"
(2)3548(3)"3548"(4)3548
(5)"83"(6)83(7)"3548"(8)3548
14.以2为底的X的对数:
log(x)/log
(2)
15.C
16.z=Inputbox("输入一个数:
","程序示例",1.5)
17.Msgbox"Z的值1.5大于0",48,"程序示例"
18.
OptionExplicit
ConstPIAsSingle=3.14159
PrivateSubCommand1_Click()
DimaAsSingle,bAsSingle,cAsSingle,areaAsSingle
a=Val(Text1.Text)
b=Val(Text2.Text)
c=Val(Text3.Text)*PI/180'角度角转换为弧度角
area=a*b*Sin(c)/2
Text4=CStr(Format(area,"0.00"))'使纯小数能出现整数位的0
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""
EndSub
PrivateSubCommand3_Click()
End
EndSub
第五章
1.
OptionExplicit
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger
a=1:
b=0
DoWhilea<=5
b=b+a*a
a=a+1
Loop
Printa,b
EndSub
PrivateSubCommand2_Click()
DimchAsString,iAsInteger
ch="DEF"
Fori=1ToLen(ch)'循环的上界不会变
ch=Mid(ch,2*i-1,1)&Left(ch,Len(ch))
Printch
Nexti
EndSub
PrivateSubCommand3_Click()
DimpAsInteger,iAsInteger
p=1
Fori=1To5
p=p+(2*i-1)/(2*i+1)
Ifp>=20ThenExitFor'跳出循环前执行不到这一句
Nexti
Printi,p
EndSub
PrivateSubCommand4_Click()
DimpAsInteger,iAsInteger,nAsInteger
p=2:
n=20
Fori=1TonStepp'计数循环的初值、终值和步长都不会变
p=p+2
n=n-3
i=i+1
Ifp>=10ThenExitFor
Nexti
Printi,p,n
EndSub
2.
OptionExplicit
Dimn1AsInteger,n2AsInteger,n3AsInteger
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger,kAsInteger
Fori=1To10
Forj=1To10
k=Int(Rnd*90+10)
Printk;
Ifk<=40Then
n1=n1+1
ElseIfk<=70Then
n2=n2+1
Else
n3=n3+1
EndIf
Nextj
Print
Nexti
EndSub
PrivateSubCommand2_Click()
Print"小于等于40的数据个数为:
"&n1&"个"
Print"大于40小于等于70的数据个数为:
"&n2&"个"
Print"大于70的数据个数为:
"&n3&"个"
EndSub
PrivateSubCommand3_Click()
Cls
EndSub
3.
OptionExplicit
PrivateSubCommand1_Click()
DimxAsInteger,yAsInteger
x=Text1.Text
Ifx<=0Then
y=2-x
ElseIfx<=2Then
y=x+2
ElseIfx<=5Then
y=x^2
Else
y=25-x
EndIf
Text2.Text=y
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2=""
EndSub
4.
OptionExplicit
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger,kAsInteger
Fori=1To2
Forj=1To10
k=Int(Rnd*900+100)
Picture1.Printk;
IfkMod2<>0Then
List1.AddItemk
Else
List2.AddItemk
EndIf
Nextj
Picture1.Print
Nexti
EndSub
5.
OptionExplicit
PrivateSubCommand1_Click()
DimmAsInteger,nAsInteger,rAsInteger
m=Val(Text1.Text)
n=Val(Text2.Text)
Do
r=mModn
Ifr<>0Then
m=n
n=r
Else
ExitDo
EndIf
Loop
Text3.Text=Val(Text1.Text)*Val(Text2.Text)/n
EndSub
6.
OptionExplicit
Dimr1AsInteger,r2AsSingle'r2可能是个很大的数,最好定义成单精度型
PrivateSubCommand1_Click()
DimiAsInteger,kAsInteger
r1=0:
r2=1'r2一定要初始化为1,否则积为0
Fori=1To10
k=InputBox("请输入第"&i&"个数")
Picture1.Printk;
r1=r1+k
r2=r2*k
Nexti
EndSub
PrivateSubCommand2_Click()
Text1=r1
EndSub
PrivateSubCommand3_Click()
Text2=r2
EndSub
7.
OptionExplicit
PrivateSubCommand1_Click()
DimsAsString,s1AsString,s2AsString,iAsInteger
s1=Text1.Text
Fori=1ToLen(s1)
s=Mid(s1,i,1)
Ifs>="0"Ands<="9"Then
s2=s2&s
EndIf
Nexti
Text2.Text=s2
EndSub
8.
OptionExplicit
PrivateSubCommand1_Click()
Text1=""
Text2=""
EndSub
PrivateSubCommand2_Click()
DimnAsInteger,rAsString,sAsString
n=Val(Text1.Text)
Do
r=nMod2
s=r&s
n=n\2
LoopUntiln=0'当商为0时则跳出循环
Text2.Text=s
EndSub
9.
OptionExplicit
PrivateSubCommand1_Click()
DimaAsLong,bAsLong,cAsLong
Fora=1To100
Forb=1To100
Forc=1To100
Ifa*a+b*b=c*cThen
List1.AddItema&","&b&","&c
EndIf
Nextc
Nextb
Nexta
EndSub
10.
OptionExplicit
PrivateSubCommand1_Click()
DimiAsInteger,r1AsInteger,r2AsInteger,r3AsInteger
Fori=100To999
r1=i\100
r2=(i\10)Mod10'或者r2=(imod100)\10
r3=(iMod100)Mod10
Ifr1List1.AddItemi
EndIf
Nexti
EndSub
11.
OptionExplicit
PrivateSubCommand1_Click()
DimaAsSingle,bAsSingle,cAsSingle
a=0:
b=1
c=(a+b)/2
Do
Iff(a)*f(c)>0Then
a=c
Else
b=c
EndIf
c=(a+b)/2
LoopUntilAbs(b-c)<=0.00001
Text1.Text=Format(c,"0.########")
EndSub
PrivateFunctionf(xAsSingle)AsSingle
f=x^3-x^4+4*x^2-1
EndFunction
第六章
6-1结果为6
7
9
2
5
8
1
3
4
6-2
OptionExplicit
OptionBase1
PrivateSubCommand1_Click()
DimiAsInteger,tAsInteger
Dima(15)AsInteger
Randomize
Fori=1To15
a(i)=Int(100*Rnd)
Text1=Text1&Str(a(i))
Nexti
Fori=1To7
t=a(i)
a(i)=a(16-i)
a(16-i)=t
Nexti
Fori=1To15
Text2=Text2&Str(a(i))
Nexti
EndSub
PrivateSubCommand2_Click()
Text1=""
Text2=""
EndSub
PrivateSubCommand3_Click()
End
EndSub
6-3
OptionExplicit
Dima(20)AsInteger
PrivateSubCommand1_Click()
DimiAsInteger
Randomize
Fori=1To20
a(i)=Int(90*Rnd)+10
Text1=Text1&Str(a(i))
Nexti
EndSub
PrivateSubCommand2_Click()
DimiAsInteger,jAsInteger,fAsBoolean
DimnAsInteger
Fori=1To20
f=True
Forj=i+1To20
Ifa(i)=a(j)Thenf=False
Nextj
Iff=TrueThenn=n+1
Nexti
Text2=n
EndSub
PrivateSubCommand3_Click()
Text1=""
EndSub
PrivateSubCommand4_Click()
End
EndSub
6-4
OptionExplicit
Dima(20)AsInteger
PrivateSubCommand1_Click()
DimiAsInteger
Randomize
Fori=1To20
a(i)=Int(90*Rnd)+10
Text1=Text1&Str(a(i))
Nexti
EndSub
PrivateSubCommand2_Click()
DimiAsInteger,jAsInteger,maxAsInteger
DimnAsInteger,wAsInteger,pAsInteger
Fori=1To20
n=0:
p=i
Forj=1To4
Ifi>20Thenp=p-20
n=n+a(p)
Nextj
Ifn>maxThen
max=n
w=i
EndIf
Nexti
Text2=max
Picture1.Printw&"--"&w+4
EndSub
PrivateSubCommand3_Click()
Text1=""
EndSub
PrivateSubCo