第三讲习题答案.docx
- 文档编号:15634814
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:49
- 大小:183.25KB
第三讲习题答案.docx
《第三讲习题答案.docx》由会员分享,可在线阅读,更多相关《第三讲习题答案.docx(49页珍藏版)》请在冰点文库上搜索。
第三讲习题答案
第三讲习题答案
1.从键盘输入三个数,判断它们能否构成三角形的三个边。
如果能构成一个三角形,则计算三角形的面积,否则给出相应信息。
PrivateSubCommand1_Click()
DimaAsInteger
DimbAsInteger
DimcAsInteger
DimsAsSingle
DimareaAsSingle
a=InputBox("请输入第一条边的长度:
")
b=InputBox("请输入第二条边的长度:
")
c=InputBox("请输入第三条边的长度:
")
If(a+b>c)And(a+c>b)And(b+c>a)Then
s=(a+b+c)/2
area=Sqr((s-a)*(s-b)*(s-c))
MsgBox"能构成三角形"&Chr(13)&Chr(10)&"三角形面积是:
"&area
Else
MsgBox"不能构成三角形"
EndIf
EndSub
2.编写程序,任意输入一个整数,判定该整数奇偶性。
PrivateSubCommand1_Click()
DimnAsInteger
n=InputBox("输入一个整数")
IfnMod2=0Then
Print"是偶数"
Else
Print"是奇数"
EndIf
EndSub
3.求一元二次方程的a*x^2+b*x+c=0根.
PrivateSubCommand1_Click()
DimaAsSingle
DimbAsSingle
DimcAsSingle
DimdeltaAsSingle
Dimx1AsSingle
Dimx2AsSingle
a=InputBox("输入方程系数a:
")
b=InputBox("输入方程系数b:
")
c=InputBox("输入方程系数c:
")
delta=b*b-4*a*c
Ifdelta>=0Then
x1=(-b+Sqr(delta))/(2*a)
x2=(-b-Sqr(delta))/(2*a)
MsgBox"方程的根为:
"&x1&"和"&x2
Else
MsgBox"方程没有根"
EndIf
EndSub
4.编程求出S=1+(1+2)+(1+2+3)+……(1+2+3+4+……+N)的值(N的值由键盘输入)。
PrivateSubCommand1_Click()
DimnAsInteger
DimsAsLong
DimiAsInteger
DimpAsLong
n=InputBox("请输入N的值:
")
s=0
p=0
Fori=1Ton
p=p+i
s=s+p
Next
MsgBox"和:
"&s
EndSub
5.编写程序,输出100~300间的所有素数。
PrivateSubCommand1_Click()
DimiAsInteger
DimjAsInteger
DimflagAsInteger
DimlineAsInteger
line=1
Fori=100To300
flag=1
Forj=2ToSqr(i)
IfiModj=0Then
flag=0
ExitFor
EndIf
Nextj
Ifflag=1Then
Printi;"";
Ifline>=5Then
line=0
EndIf
line=line+1
EndIf
Nexti
EndSub
6.编写程序,求解鸡兔同笼问题。
一个笼子中有鸡X只,兔Y只,每只鸡有2只脚,每只兔有4只脚。
今知鸡和兔的总头数为H,总脚数为F。
问笼中鸡和兔各若干?
(H,F的值由键盘输入)
PrivateSubCommand1_Click()
DimhAsInteger
DimfAsInteger
DimxAsInteger
DimyAsInteger
h=Val(Text1.Text)
f=Val(Text2.Text)
Forx=1Toh
y=h-x
If2*x+4*y=fThen
Text3.Text=x
Text4.Text=y
ExitFor
EndIf
Nextx
EndSub
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
EndSub
7.勾股定理中3个数的关系是:
a^2+b^2=c^2。
编写程序,输出30以内满足上述关系的整数组合,例如3、4、5就是一个整数组合。
PrivateSubCommand1_Click()
DimaAsInteger
DimbAsInteger
DimcAsInteger
Fora=1To30
Forb=1To30
Forc=1To30
If(a*a+b*b=c*c)And(b>a)Then
Printa,b,c
EndIf
Nextc
Nextb
Nexta
EndSub
8.从键盘上输入10个整数,并放入一个一维数组中,然后将其前5个元素与后5个元素对换,即第1个元素与第10个元素互换,第2个元素与第9个元素互换……第5个元素与第6个元素互换,。
分别输出数组原来的各元素的值和对换后各元素的值。
PrivateSubCommand1_Click()
DimiAsInteger
Dima(10)AsInteger
DimtempAsInteger
Fori=1To10
a(i)=InputBox("请输入第"&i&"数")
Nexti
Fori=1To10
Printa(i);"";
Nexti
Fori=1To5
temp=a(i)
a(i)=a(11-i)
a(11-i)=temp
Nexti
Fori=1To10
Printa(i);"";
Nexti
EndSub
9.编程计算某学生奖学金的等级,以三门课成绩(用户输入)为依据,评定标准如下:
(1)一等奖,符合下列条件之一:
(a)平均分大于95
(b)有两门课100分,第三门课不低于80分
(2)二等奖,符合下列条件之一:
(a)平均分大于90分
(b)有一门课100分,其他课程不低于75分
(3)三等奖,各门课成绩均不低于70分
PrivateSubCommand1_Click()
Dimcj1AsInteger
Dimcj2AsInteger
Dimcj3AsInteger
DimavecjAsSingle
cj1=Val(Text1.Text)
cj2=Val(Text2.Text)
cj3=Val(Text3.Text)
avecj=(cj1+cj2+cj3)/3
If(avecj>95)Or(cj1=100Andcj2=100Andcj3>=80)Or(cj1=100Andcj3=100Andcj2>=80)Or(cj3=100Andcj2=100Andcj1>=80)Then
Text4.Text="一等奖"
ElseIf(avecj>90)Or(cj1=100Andcj2>=75Andcj3>=75)Or(cj1=100Andcj3>=75Andcj2>=75)Or(cj3=100Andcj2>=75Andcj1>=75)Then
Text4.Text="二等奖"
ElseIf(cj1>=70Andcj2>=70Andcj3>=70)Then
Text4.Text="三等奖"
EndIf
EndSub
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
EndSub
10.从键盘上输入10个无序数,去掉一个最大数和最小数,然后求其平均值。
PrivateSubCommand1_Click()
DimiAsInteger
DimmaxAsInteger
DimminAsInteger
DimaveAsSingle
DimsumAsInteger
Dima(10)AsInteger
Fori=1To10
a(i)=InputBox("请输入第"&i&"个数")
Next
sum=a
(1)
max=a
(1)
min=a
(1)
Fori=2To10
Ifmax Ifmin>a(i)Thenmin=a(i) sum=sum+a(i) Nexti sum=sum-max-min ave=sum/8 MsgBox"平均值为: "&ave EndSub 11.求下面第n个Fibonacel数,Fibonacel数定义如下: a)f(0)=0 b)f (1)=1 c)f(n)=f(n-1)+f(n-2)n>=2 PrivateSubCommand1_Click() Dimf()AsInteger DimiAsInteger DimnAsInteger n=InputBox("请输入要输出多少项") ReDimf(n) f(0)=0 f (1)=1 Fori=2Ton-1 f(i)=f(i-1)+f(i-2) Nexti Fori=0Ton-1 Printf(i);""; If(i+1)Mod5=0ThenPrint Nexti EndSub 12.100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马2匹驮一担,编程计算大、中、小马的数量。 PrivateSubCommand1_Click() DimbighAsInteger DimmidhAsInteger DimsmallhAsInteger Forbigh=1To33 Formidh=1To50 smallh=100-bigh-midh Ifbigh*3+midh*2+smallh*0.5=100Then Printbigh,midh,smallh EndIf Nextmidh Nextbigh EndSub 13.有36块砖,共36人搬,男人一次搬4砖,女人一次搬3砖,小孩一次两人搬一块,求一次搬完且不可以空手,问男人,女人和小孩各需多少人? PrivateSubCommand1_Click() DimmanAsInteger DimwomanAsInteger DimchildAsInteger Forman=1To9 Forwoman=1To12 child=36-man-woman Ifman*4+woman*3+child*0.5=36Then Printman,woman,child EndIf Nextwoman Nextman EndSub 14.编写猜数游戏程序,由计算机自动产生一个1,100]的随机整数,用户输入猜数后由计算机自动比较,并通过消息框提示太大了或太小了等信息,共有5次猜数机会,如果在规定的次数内猜中,则消息框中显示猜中了等信息,如果5次都不对,则显示猜数失败等信息。 PrivateSubCommand1_Click() DimcomputerAsInteger DimuserAsInteger DimiAsInteger Randomize computer=Int(Rnd*100)+1 Fori=1To5 user=InputBox("请输入你猜的数") Ifuser=computerThen MsgBox"你猜对了" ExitFor Else Ifuser>computerThen MsgBox"猜错了,太大了,还有"&(5-i)&"次机会" Else MsgBox"猜错了,太小了,还有"&(5-i)&"次机会" EndIf EndIf Nexti Ifi>5Then MsgBox"猜数失败" EndIf EndSub 15.编程完成,从一堆一分,二分,五分的硬币中取出20枚,使其总值为60分,要求输出有多少种取法,及每一种取法的一分,二分,五分的个数. PrivateSubCommand1_Click() DimyfAsInteger'表示一分 DimefAsInteger'表示二分 DimwfAsInteger'表示五分 DimcounAsInteger coun=0'计数器 Print"一分","二分","五分" Foryf=1To20 Foref=1To20 wf=20-yf-ef Ifyf+ef*2+wf*5=60Then Printyf,ef,wf coun=coun+1 EndIf Nextef Nextyf Print"一共有"&coun&"种取法" EndSub 16.随机生成20个100以内的正整数,将其中的奇数和偶数分两行显示在窗体上。 PrivateSubCommand1_Click() Dima(20)AsInteger DimiAsInteger Randomize Fori=1To20 a(i)=Int(Rnd*100) Nexti '处理奇数 Fori=1To20 Ifa(i)Mod2=1ThenPrinta(i);""; Nexti Print '处理偶数 Fori=1To20 Ifa(i)Mod2=0ThenPrinta(i);""; Nexti EndSub 17.产生10个100以内的随机整数,将它们从大到小排序输出 PrivateSubCommand1_Click() DimiAsInteger,jAsInteger Dima(10)AsInteger DimposAsInteger DimtempAsInteger Randomize Fori=1To10 a(i)=Int(Rnd*100)'生成10个随机数,并输出 Printa(i);""; Nexti Print Fori=1To9 pos=i Forj=i+1To10 Ifa(pos) Nextj Ifpos<>iThen'交换最大数和当前第一个数的位置 temp=a(i) a(i)=a(pos) a(pos)=temp EndIf Nexti Fori=1To10 Printa(i);"";'将结果输出显示 Nexti EndSub 18.产生10个100以内的随机整数,求它们的和及平均值 PrivateSubCommand1_Click() DimiAsInteger Dima(10)AsInteger DimsumAsInteger DimaveAsSingle Randomize Fori=1To10 a(i)=Int(Rnd*100)'生成10个随机数,并输出 Printa(i);""; Nexti Fori=1To10 sum=sum+a(i) Nexti ave=sum/10 Print Print"和为: "&sum Print"平均值: "&ave EndSub 19.产生10个100以内的随机整数,求它们的最大值和最小值 PrivateSubCommand1_Click() DimiAsInteger Dima(10)AsInteger DimmaxAsInteger DimminAsInteger Randomize Fori=1To10 a(i)=Int(Rnd*100)'生成10个随机数,并输出 Printa(i);""; Nexti max=a (1) min=a (1) Fori=1To10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 习题 答案