foVB编程题及答案dk.docx

上传人:b****5 文档编号:5933876 上传时间:2023-01-02 格式:DOCX 页数:26 大小:22.35KB
下载 相关 举报
foVB编程题及答案dk.docx_第1页
第1页 / 共26页
foVB编程题及答案dk.docx_第2页
第2页 / 共26页
foVB编程题及答案dk.docx_第3页
第3页 / 共26页
foVB编程题及答案dk.docx_第4页
第4页 / 共26页
foVB编程题及答案dk.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

foVB编程题及答案dk.docx

《foVB编程题及答案dk.docx》由会员分享,可在线阅读,更多相关《foVB编程题及答案dk.docx(26页珍藏版)》请在冰豆网上搜索。

foVB编程题及答案dk.docx

foVB编程题及答案dk

1定义一个下标上界为10整型数组,并用随机函数为其赋值(值处于[0,100]之间),计算数组中所有偶数的和。

PrivateSubCommand1_Click()

Randomize

Dima%(10)

Dimi%,s%

Fori=0To10

a(i)=101*Rnd()

Next

Fori=0To10

Ifa(i)Mod2=0Then

s=s+a(i)

EndIf

Next

Print"所有偶数的和为",s

2设S=35,C=0.3,编写程序,计算并输出下面级数的部分和。

结果取小数点后面7位。

C/1!

-C^3/3!

+C^5/5!

-…+(-1)^(S-1)*C^(2*S-1)/(2*S-1)!

+…

参考答案如下:

PrivateSubCommand1_Click()

DimnAsInteger

DimxAsDouble

x=0.3

DimitemAsDouble

DimsumAsDouble

DimfacAsDouble

Forn=1To35

fac=1

DimiAsInteger

Fori=1To2*n-1

fac=fac*i

Next

item=(-1)^(n-1)*x^(2*n-1)/fac

sum=sum+item

Next

sum=Int(sum*10000000+0.5)/10000000

MsgBox(sum)

EndSub

'sum=0.479426

3定义一个下标上界为30的单精度数组,设置好其初值(值处于[20,90]),

计算数组中所有元素的均值。

Dimi,sum,aveAsInteger

Dima(30)AsSingle

Fori=0To30

a(i)=20+Int(Rnd()*71)

Next

Fori=0To30

sum=sum+a(i)

Next

ave=sum/31

printsum

4在窗体上放置文本框Text1、Text2,放置一个按钮Command1。

在Text1里写入一个整数,点击按钮时,对Text1内的数据进行判断,如果是偶数,则在Text2里显示“该数是偶数”。

DimxAsInteger

x=Val(Text1.Text)

IfxMod2=0ThenT

Text2.Text="该数是偶数"

Else

Text2.Text="该数是奇数"

EndIf

5输入一个三位数,分别输出它的百位数字、十位数字和个位数字。

Dima,baiwei,gewei,shiweiAsInteger

a=Val(InputBox(""))

gewei=aMod10

baiwei=a\100

shiwei=(a\10)Mod10

MsgBox(gewei)

MsgBox(shiwei)

6.计算sum=2+4+6+...+1000

Dimsum,iAsInteger

Fori=2To1000Step2

sum=sum+i

Next

printsum

7求下面级数前S项中奇数项的和sum。

在求和过程中,以第一个奇数项的数值大于10000的项为末项。

1!

-2!

+3!

-4!

+…+(-1)^(S-1)*S!

+…

参考答案如下:

PrivateSubCommand1_Click()

DimnAsInteger

DimitemAsDouble

DimiAsInteger

DimsumAsDouble

DimfacAsDouble

sum=0

n=1

DoWhileTrue

item=1

Fori=1Ton

item=item*i

Nexti

sum=sum+item

IfAbs(item)>10000Then

ExitDo

Else

n=n+2

EndIf

Loop

MsgBox(sum)

EndSub

8.已知A、B为整数,A和B的立方和为1000,求所有的A、B。

Dimx,yAsInteger

Forx=0To10

Fory=0To10

Ifx^3+y^3=1000Then

MsgBox(x&""&y)

EndIf

Next

Next

9建立一个5×5的整型二维数组,由Rnd函数产生[25,95)的随机整数对该数组赋初值,输出数组中的最大元素。

参考答案如下:

DimA(4,4)AsInteger

Dimi,jAsInteger

Fori=0To4

Forj=0To4

A(i,j)=25+Int(Rnd()*71)

Next

Next

DimmaxAsInteger

max=A(0,0)

Fori=0To4

Forj=0To4

IfA(i,j)>maxThen

max=A(i,j)

EndIf

Next

10.的项为末项,计算并输出和SUM。

1!

-2!

+3!

-4!

+…+(-1)^(s-1)*s!

+……

PrivateSubCommand1_Click()

DimnAsInteger

DimitemAsDouble

DimsumAsDouble

sum=0

n=2

DoWhileTrue

item=1

DimiAsInteger

Fori=2Ton

item=item*i

Next

sum=sum+item

Ifitem>10000Then

ExitDo

Else

n=n+2

EndIf

Loop

sum=-1*sum

MsgBox(sum)

EndSub

'sum=368047

11.建立一个9×9的整型二维数组(由Rnd函数产生[10,60)的随机整数对数组初始化),输出数组中所有奇数行元素的和。

DimA(8,8)AsInteger

Dimi,jAsInteger

Fori=0To8

Forj=0To8

A(i,j)=10+Int(Rnd()*51)

Next

Next

DimsumAsInteger

Fori=0To8Step2

Forj=0To8

sum=sum+A(i,j)

Next

Next

Text1.Text=sum'所有奇数行元素的和为:

506

12.编写一个函数,判断某整数是否为素数。

调用该函数,输出区间[1000,2000]内所有素数的和。

PrivateFunctionisprime(ByValnAsInteger)AsBoolean

DimiAsInteger

Fori=2Ton-1

IfnModi=0Then

isprime=False

ExitFunction

EndIf

Next

isprime=True

EndFunction

PrivateSubCommand1_Click()

DimiAsInteger

DimsumAsLong

Fori=1000To2000

Ifisprime(i)=TrueThen

sum=sum+i

EndIf

Next

Text1.Text="sum="&sum

EndSub

'sum=419684

13.编写一个函数,求某个数的阶乘。

调用该函数计算22!

PublicFunctionfact(ByValnAsInteger)AsLong

DimiAsInteger,fAsLong

f=1

Fori=1Ton

f=f*i

Nexti

fact=f

EndFunction

PrivateSubCommand1_Click()

DimmAsInteger,iAsInteger,sAsLong

m=InputBox("输入一个正整数:

")

s=fact(m)

MsgBox(s)

EndSub

‘479001600

14.编写子过程,计算并输出3000-4000之间的素数之和C与其中最小的素数MIN。

PrivateSubCommand1_Click()

Dimsum,i,minAsInteger

min=0

Fori=3000To4000

DimisprimeAsBoolean=True

DimjAsInteger

Forj=2Toi-1

IfiModj=0Then

isprime=False

ExitFor

EndIf

Next

Ifisprime=TrueThen

Ifmin=0Then

min=i

EndIf

Ifi

min=i

EndIf

C=C+i

EndIf

Next

MsgBox(sum)

MsgBox(min)

EndSub

'sum=1617104mi=16001

15.定义下标上界为35的整型数组,并赋初值(用Rnd函数初始化数组,使各个元素的值处于[200,300]之间),求数组中所有不大于350的元素之和。

Dima(35),i,sumAsInteger

Fori=0To35

a(i)=200+Int(Rnd()*101)

Next

Fori=0To35

Ifa(i)<=350Then

sum=sum+a(i)

EndIf

Next

printsum

16编写函数,计算S=1/1!

+1/3!

+1/5!

+...+1/9!

PrivateFunctionFact(ByValxAsInteger)AsInteger

Dimsum,i,fAsDouble

f=1

Fori=1To9

f=f*i

IfiMod2=1Then

sum=sum+1/f

EndIf

Next

Fact=sum

EndFunction

17编写一个函数(参数为一维整型数组),求所有数组元素中最小值的下标。

PublicFunctionmax(ByRefa()AsInteger)AsInteger

DimtAsInteger

t=0

DimiAsInteger

Fori=1ToUBound(a)

Ifa(i)

t=i

EndIf

Next

max=t

EndFunction

18计算并输出下面级数中奇数项的和SUM,要求在第一次出现SUM的绝对值大于100时结束。

1*2-2*3+3*4-4*5+……+(-1)^(m-1)*m*(m+1)+……

PrivateSubCommand1_Click()

DimsumAsLong

DimitemAsLong

DimnAsInteger

n=1

Do

item=(-1)^(n-1)*n*(n+1)

sum=sum+item

n=n+2

LoopWhileAbs(sum)<=100

MsgBox(sum)

EndSub

'sum=-68

19编写一个函数,其功能为求两个数的最大公约数。

PublicFunctiongcd(ByValmAsInteger,ByValnAsInteger)AsInteger

DimiAsInteger

Ifm>nThen

DimtAsInteger

t=m:

m=n:

n=t

EndIf

Fori=mTo1Step-1

IfmModi=0AndnModi=0Then

gcd=i

ExitFunction

EndIf

Next

EndFunction

20.用InputBox输入一个年份,判断该年份是否是平年,若是则输出“Yes”,否则输出“No”。

DimyearAsInteger

year=Val(InputBox(""))

If(yearMod400=0)Or(yearMod4=0AndyearMod100<>0)Then

MsgBox("No")

Else

MsgBox("Yes")

EndIf

21输入两个整数m、n,编写程序使得m>=n,并输出m、n的值。

Dimm,nAsInteger

m=Val(InputBox(""))

n=Val(InputBox(""))

Ifm

DimtAsInteger

t=m:

m=n:

n=t

EndIf

MsgBox("m="&m&";"&"n="&n)

22求下面级数前n项的和S,在求和过程中,当某项(注意,该项参与求和)的绝对值小于0.0001时求和终止。

结果取5位小数。

1-1/3+1/5-1/7+1/9-1/11+…+(-1)^(n-1)*1/(2n-1)+…

PrivateSubCommand1_Click()

DimnAsInteger

DimitemAsDouble

DimsumAsDouble

i=1

DoWhileTrue

item=(-1)^(i-1)*1/(2*i-1)

sum=sum+item

IfAbs(item)<0.0001Then

ExitDo

Else

i=i+1

EndIf

Loop

MsgBox(Format(sum,"0.0000"))

EndSub

'sum=0.78545

23编写一个函数,其功能为判断一个3位正整数是否是"水仙花数"。

("水仙花数"是指各位数字的立方和与该数相等,如153=1^3+5^3+3^3,153就是水仙花数。

PublicFunctionPanduan(ByValxAsInteger)AsBoolean

DimaAsInteger,bAsInteger,cAsInteger

a=x\100

b=(xMod100)\10

c=xMod10

Ifx=a^3+b^3+c^3Then

Panduan=True

Else

Panduan=False

EndIf

EndFunction

PrivateSubCommand1_Click()

DimiAsInteger

i=InputBox("输入一个3位正整数:

")

MsgBox(Panduan(i))

EndSub

24定义一个下标上界为10整型数组,并为其赋值(值处于[0,100]之间),

计算数组中所有不小于60的数据的和。

Dima(10),i,sumAsInteger

Fori=0To10

a(i)=Int(Rnd()*101)

Next

Fori=0To10

Ifa(i)〉=60Then

sum=sum+a(i)

EndIf

Next

printsum

25.编写程序,求下面级数前n项的和s=1/1!

-1/2!

+1/3!

-1/4!

+....+(-1)^(n-1)*1/n!

+.....。

'求和过程当某一项的绝对值小于0.0001时结束(注意,该项参与求和),计算并输出所求的s,要求结果保留6位小数。

PrivateSubCommand1_Click()

DimmAsDouble,nAsLong,sAsDouble,fAsInteger

s=0:

n=-1:

m=1:

f=1

DoWhile1/m>=0.0001

m=m*f

f=f+1

n=-n

s=s+n/m

Loop

s=Format(s,"0.000000")

Prints

EndSub

26输入一个四位数,分别输出它的个位数字,是十位数字,百位数字,千位数字。

PrivateSubCommand1_Click()

Dima%,j%,k%,i%,m%

a=InputBox("请输入一个四位整数")

j=a\1000

k=a\100Mod10

i=a\10Mod10

m=aMod10

Print"个位数字;";m

Print"十位数字;";i

Print"百位数字;";k

Print"千位数字;";j

EndSub

6.计算sum=2!

+4!

+6!

+...+10!

PrivateSubCommand1_Click()

Dima%,i%

Sum=0

i=1:

a=1

Do

a=2*i

IfiMod2=0Then

Sum=Sum+a

EndIf

i=i+1

LoopWhilei<=10

PrintSum

EndSub

27编写程序,计算并输出下面级数前n项(n=20)中奇数项的和。

1*2*3-2*3*4+3*4*5-4*5*6+....+(-1)^(n-1)*n*(n+1)*(n+2)+...

PrivateSubCommand1_Click()

Dims!

i%

Fori=1To20Step2

s=s+i*(i+1)*(i+2)

Next

MsgBox(s)

EndSub

28随机输出一个小写字母。

PrivateSubCommand1_Click()

DimaAsString

Randomize

a=Chr(Int(97+26*Rnd))

MsgBox(a)

EndSub、

29编写程序,计算并输出下面级数前n项(n=50)中偶数项的和。

s=1*2+2*3+3*4+4*5+....+n*(n+1)+.....

PrivateSubCommand1_Click()

Dims!

i%

Fori=2To50Step2

s=s+i*(i+1)

Next

MsgBox(s)

EndSub

30斐波那契数列是由计算某类动物繁殖增长量而提出的。

数列的前两项是1、1,以后的每一项都是其相邻前两项的和。

编写程序求:

数列前30项和。

PrivateSubCommand1_Click()

Dima&,b&,c&,i%

a=1:

b=1:

c=2:

Sum=0

Fori=1To28

c=a+b

a=b

b=c

Sum=Sum+c

Next

MsgBox(Sum)

EndSub

31输入三个数a、b、c,编写程序使得a<=b<=c,并输出a、b、c的值。

PrivateSubCommand1_Click()

Dima%,b%,c%,t%

a=Val(InputBox("请输入a的值!

"))

b=Val(InputBox("请输入b的值!

"))

c=Val(InputBox("请输入c的值!

"))

Ifa>bThen

t=b

b=a

a=t

EndIf

Ifa>cThen

t=a

a=c

c=t

EndIf

Ifb>cThen

t=b

b=c

c=t

EndIf

Printa,b,c

EndSub

32编写程序,设n=20,x=3.4,计算并输出S(n)的值,要求结果保留5位小数。

S(n)=Inx/x+In2x/x^2+In3x/x^3+.....+In(n*x)/x^n+.....

PrivateSubCommand1_Click()

Dimx#,i%

DimS(20)AsDouble

n=20

x=3.4

Fori=1To20

S(20)=S(20)+Log(i*x)/(x^i)

Next

PrintFormat(S(20),"0.00000")

EndSub

33输入任意三个数找出其中最大的数

PrivateSubCommand1_Click()

Dima!

b!

c!

Max!

a=Text1.Text

b=Text2.Text

c=Text3.Text

Max=a

Ifb>MaxThenMax=b

Ifc>MaxThenMax=c

Text4.Text=Max

EndSub

输出1到100之间的素数

Print1;2;

a=3

Whilea<=100

i=2

Whilei

IfaModi=0Then

i=a

EndIf

i=i+1

Wend

Ifi=aThen

Printa;

EndIf

a=a+1

Wend、

34打印斐波那契数列20项

Privatesubform_click()

A=0

B=1

Text1.text=text1.text&str(A)&st

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

当前位置:首页 > 高等教育 > 农学

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

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