第三讲习题答案.docx

上传人:b****8 文档编号:27915725 上传时间:2023-07-06 格式:DOCX 页数:49 大小:183.25KB
下载 相关 举报
第三讲习题答案.docx_第1页
第1页 / 共49页
第三讲习题答案.docx_第2页
第2页 / 共49页
第三讲习题答案.docx_第3页
第3页 / 共49页
第三讲习题答案.docx_第4页
第4页 / 共49页
第三讲习题答案.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

第三讲习题答案.docx

《第三讲习题答案.docx》由会员分享,可在线阅读,更多相关《第三讲习题答案.docx(49页珍藏版)》请在冰豆网上搜索。

第三讲习题答案.docx

第三讲习题答案

第三讲习题答案

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

Print

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

Print

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

Ifmax

Ifmin>a(i)Thenmin=a(i)

Nexti

Print

Print"最大值:

"&max

Print"最小值:

"&min

EndSub

20.产生10个100以内的随机整数,去掉一个最大值,去掉一个最小值,求平均值

PrivateSubCommand1_Click()

DimiAsInteger

DimmaxAsInteger

DimminAsInteger

DimaveAsSingle

DimsumAsInteger

Dima(10)AsInteger

Randomize

Fori=1To10

a(i)=Int(Rnd*100)

Printa(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

Print

Print"平均值为:

"&ave

EndSub

21.产生10个100以内的随机整数,统计其中偶数有多少个

PrivateSubCommand1_Click()

Dima(10)AsInteger

DimiAsInteger

DimcounAsInteger

Randomize

Fori=1To10

a(i)=Int(Rnd*100)

Printa(i);"";

Next

coun=0

Fori=1To10

Ifa(i)Mod2=0Thencoun=coun+1

Nexti

Print

Print"有"&coun&"个偶数"

EndSub

22.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如:

153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

PrivateSubCommand1_Click()

'方法一

DimiAsInteger

DimsAsString

DimaAsInteger

DimbAsInteger

DimcAsInteger

Fori=100To999

s=LTrim(Str(i))

a=Val(Left(s,1))

b=Val(Mid(s,2,1))

c=Val(Right(s,1))

Ifa^3+b^3+c^3=iThen

Printi

EndIf

Nexti

EndSub

PrivateSubCommand2_Click()

'方法二

DimiAsInteger

DimsAsString

DimaAsInteger

DimbAsInteger

DimcAsInteger

Fori=100To999

a=iMod10

b=i\100

c=(i\10)Mod10

Ifa^3+b^3+c^3=iThen

Printi

EndIf

Nexti

EndSub

23.输入二个整数,计算它们的最大公约数和最小公倍数

PrivateSubCommand1_Click()

DimmAsInteger

DimnAsInteger

DimdAsInteger

Dimm1AsInteger

Dimn1AsInteger

m=InputBox("请输入第一个数")

n=InputBox("请输入第二个数")

m1=m

n1=n

Ifm

d=m

m=n

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1