完整word版VB复习题带答案1.docx

上传人:b****9 文档编号:26265607 上传时间:2023-06-17 格式:DOCX 页数:41 大小:278.69KB
下载 相关 举报
完整word版VB复习题带答案1.docx_第1页
第1页 / 共41页
完整word版VB复习题带答案1.docx_第2页
第2页 / 共41页
完整word版VB复习题带答案1.docx_第3页
第3页 / 共41页
完整word版VB复习题带答案1.docx_第4页
第4页 / 共41页
完整word版VB复习题带答案1.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

完整word版VB复习题带答案1.docx

《完整word版VB复习题带答案1.docx》由会员分享,可在线阅读,更多相关《完整word版VB复习题带答案1.docx(41页珍藏版)》请在冰豆网上搜索。

完整word版VB复习题带答案1.docx

完整word版VB复习题带答案1

程序填空

1、'功能:

要求输入若干学生的成绩,计算平均分和高于平均分的人数,并将这两个数据放入数组的最后。

PrivateSubForm_Click()

Dimmark()AsInteger,i%,n%,aver

n=InputBox("输入学生的人数")

ReDimmark(1Ton)

aver=0

Fori=1Ton

mark(i)=Int(Rnd*101)

aver=aver+mark(i)

Nexti

'**********SPACE**********preserve

ReDim【?

】mark(1Ton+2)'增加两个元素,存放平均分和高于平均分的人数,原来的学生成绩仍保留

mark(n+1)=aver/n

mark(n+2)=0

Fori=1Ton

'**********SPACE**********

Ifmark(i)>mark(【?

】)Thenmark(n+2)=mark(n+2)+1n+1

Nexti

Fori=1Ton

Print"mark(";i;")=";mark(i)

Nexti

Print"平均分=";mark(n+1),"高于平均分人数=";mark(n+2)

EndSub

2、功能:

以下程序的功能如(图1)。

PrivateSubForm_Click()

Dima%,b%,c%,d!

x1,x2,p,q,r

a=InputBox("请输入a的值")

b=InputBox("请输入b的值")

c=InputBox("请输入c的值")

d=b*b-4*a*c

p=-b/(2*a)

Ifd>=0Then

'**********SPACE**********

If【?

】Thend>0

r=Sqr(d)/(2*a)

x1=p+r

x2=p-r

Else

x1=p

x2=p

'**********SPACE**********

【?

】endif

Print"x1=";x1,"x2=";x2

'**********SPACE**********

【?

】else

q=Sqr(-d)/(2*a)

Print"x1=";p;"+";q;"i","x2=";p;"-";q;"i"

EndIf

EndSub

3、功能:

以下程序用于判断一个正整数(≥3)是否为素数。

PrivateSubForm_Click()

n=InputBox("请输入一个正整数(≥3)")

k=Int(Sqr(n))

i=2

swit=0

'**********SPACE**********

DoWhilei<=kAnd【?

】swit=0

'**********SPACE**********

If【?

】Thennmodi=0

swit=1

Else

'**********SPACE**********

【?

】i=i+1

EndIf

Loop

Ifswit=0Then

Printn;"是一个素数"

Else

Printn;"不是素数"

EndIf

EndSub

4、功能:

下面的程序段,用于实现在一个nXm的矩阵中,找出值最大的元素所在的行和列,并输出其值及行号和列号。

PrivateSubForm_Click()

Dimmat()AsInteger

Dimnasinteger,mAsInteger

n=Val(InputBox("请输入矩阵的行数"))

m=Val(InputBox("请输入矩阵的列数"))

'**********SPACE**********

【?

】ReDimmat(n,m)AsInteger

Fori=1Ton

Forj=1Tom

mat(i,j)=InputBox("请输入数组元素值")

mat(i,j)=Val(mat(i,j))

Nextj

Nexti

Print"所建立的矩阵为"

Fori=1Ton

Forj=1Tom

Printmat(i,j);

Nextj

Print

Nexti

Max=mat(1,1)

Fori=1Ton

Forj=1Tom

'**********SPACE**********

If【?

】Thenmat(I,j)>max

Max=mat(i,j)

col=j

'**********SPACE**********

【?

】row=i

EndIf

Nextj

Nexti

Print

Print"矩阵最大的元素的值为:

";mat(row,col)

Print"它所在的行号为:

";row;"列号为:

";col

EndSub

5、功能:

以下程序段用于实现矩阵转置,即将一个n×m的矩阵的行和列互换

PrivateSubForm_Click()

Constn=3

Constm=4

Dima(n,m),b(m,m)AsInteger

ForI=1Ton

Forj=1Tom

a(I,j)=Int(Rnd*90)+10

Nextj

'**********SPACE**********

【?

】nexti

ForI=1Ton

Forj=1Tom

'**********SPACE**********

【?

】b(j,i)=a(I,j)

Nextj

NextI

Print"矩阵转置前"

ForI=1Ton

Forj=1Tom

Printa(I,j);

Nextj

'**********SPACE**********

【?

】print

NextI

Print"矩阵转置后"

ForI=1Tom

Forj=1Ton

Printb(I,j);

Nextj

Print

NextI

EndSub

6、下面过程max()用于求3个数中最大值,利用这个过程求5个数中最大值。

PrivateSubForm_Click()

Print"5个数34、124、68、73、352的最大值是:

"

max1=max(34,124,68)

'**********SPACE**********

max1=【?

】max(max1,73,352)

Printmax1

EndSub

PublicFunctionmax(ByVala%,ByValb%,ByValc%)

'**********SPACE**********

If【?

】Thena>b

m=a

Else

m=b

EndIf

'**********SPACE**********

If【?

】Thenm>c

max=m

Else

max=c

EndIf

EndFunction

7、功能:

以下程序段利用随机函数生成15个10-100之间的整数,然后用选择法将其从小到大排序。

PrivateSubForm_Click()

Constn=15

Dima(1Ton)AsInteger

DimiAsInteger,jAsInteger,tAsInteger,minAsInteger

Randomize

Fori=1Ton

'**********SPACE**********

a(i)=【?

】int(rnd*91+10)

Nexti

Fori=1Ton

Printa(i);

Nexti

Print

Fori=1Ton-1

'**********SPACE**********

【?

】t=I

Forj=i+1Ton

Ifa(j)

Nextj

'**********SPACE**********

If【?

】Thent<>i

min=a(i):

a(i)=a(t):

a(t)=min

EndIf

Nexti

Fori=1Ton

Printa(i);

Nexti

EndSub

8、功能:

下面的程序段用于实现以下功能:

利用冒泡法将一组整数从小到大排序。

PrivateSubForm_Click()

Constn=15

Dima(1Ton)AsInteger,workAsBoolean

DimiAsInteger,jAsInteger,xAsInteger

Randomize

Fori=1Ton

a(i)=Int(90*Rnd)+10

Nexti

Fori=1Ton

Printa(i);

Nexti

Print

'**********SPACE**********

Fori=nTo2【?

】step-1

work=True

Forj=1Toi-1

Ifa(j)>a(j+1)Then

x=a(j):

a(j)=a(j+1):

a(j+1)=x

'**********SPACE**********

【?

】work=false

EndIf

Nextj

'**********SPACE**********

IfworkThen【?

】exitfor

Nexti

Fori=1Ton

Printa(i);

Nexti

EndSub

9、功能:

以下程序的功能如(图1)。

PrivateSubForm_Click()

DimsAsSingle,mAsInteger,p#

s=1

Form=1To10

'**********SPACE**********

p=【?

】n(m)

s=s+1/p

Nextm

Prints

EndSub

Functionn(k%)

p=1

Form=1Tok

'**********SPACE**********

p=【?

】p*m

Nextm

'**********SPACE**********

【?

】n=p

EndFunction

10、功能:

从键盘输入学生分数,统计学生总人数和各分数段人数,即优秀(90-100)、良好(80-89)、中等(70-79)、及格(60-69)、不及格(60以下)的人数。

PrivateSubForm_Click()

Dimscore%,n1%,n2%,n3%,n4%,n5%

msg="请输入分数(-1结束)"

msgtitile="输入数据"

score=Val(InputBox(msg,msgtitle))

'**********SPACE**********

While【?

】score>=0andscore<=100

total=total+1

'**********SPACE**********

SelectCase【?

】score

CaseIs>=90

n1=n1+1

CaseIs>=80

n2=n2+1

CaseIs>=70

n3=n3+1

CaseIs>=60

n4=n4+1

CaseElse

n5=n5+1

'**********SPACE**********

【?

】endselect

score=Val(InputBox(msg,msgtitle))

Wend

Printn1,n2,n3,n4,n5,total

EndSub

11、功能:

以下程序段用于实现:

输入两个正整数m和n,求其最大公因数和最小公倍数。

PrivateSubForm_Click()

Dima%,b%,num1%,num2%,temp

num1=InputBox("请输入一个正整数")

num2=InputBox("请输入一个正整数")

'**********SPACE**********

If【?

】Thennum1

temp=num1:

num1=num2:

num2=temp

EndIf

a=num1

b=num2

'**********SPACE**********

DoWhile【?

】b<>0

temp=aModb

a=b

'**********SPACE**********

【?

】b=temp

Loop

Print"最大公因数为:

";a

Print"最小公倍数为:

";num1*num2/a

EndSub

12、功能:

利用下面的过程求m!

和m*n

PrivateSubForm_Click()

DimmAsInteger,nAsInteger

m=2

n=3

'**********SPACE**********

【?

】findm,n

EndSub

PrivateSubfind(xAsInteger,yAsInteger)

Dims,iAsInteger

'**********SPACE**********

【?

】s=1

Fori=1Tox

s=s*i

'**********SPACE**********

p=【?

】x*y

Nexti

Prints,p

EndSub

13、功能:

以下程序段用于求∑n!

PrivateSubForm_Click()

DimsumAsInteger,nAsInteger

n=InputBox("请输入一个正整数")

sum=0

Fori=1Ton

'**********SPACE**********

sum=【?

】sum+mul(i)

Nexti

Printsum

EndSub

PrivateFunctionmul(ByValxAsInteger)

DimsAsInteger,iAsInteger

s=1

'**********SPACE**********

Fori=1To【?

】x

s=s*i

Nexti

'**********SPACE**********

【?

】mul=s

EndFunction

14、功能:

从键盘上输入一串字符,以"?

"结束,统计输入字符中的大、小写字母和数字的个数。

PrivateSubForm_Click()

Dimch$,n1%,n2%,n3%

n1=0

n2=0

n3=0

ch=InputBox("请输入一个字符")

'**********SPACE**********

DoWhile【?

】ch<>?

SelectCasech

Case"a"To"z"

n1=n1+1

'**********SPACE**********

Case【?

】"A"To"Z"

n2=n2+1

Case"0"To"9"

n3=n3+1

EndSelect

ch=InputBox("请输入一个字符")

'**********SPACE**********loop

【?

Printn1,n2,n3

EndSub

15、功能:

下面的程序实现:

从键盘输入一个数字,将其插入一个有序数组中,插入后的数组仍保持有序。

PrivateSubForm_Click()

Dima(10)AsInteger,xAsInteger

Fori=1To8

a(i)=2*i-1

Printa(i);

Nexti

Print

x=InputBox("请输入要插入的整数")

'**********SPACE**********

【?

】a(0)=x

i=8

DoWhilea(i)>x

'**********SPACE**********

【?

】a(i+1)=a(i)

i=i-1

Loop

'**********SPACE**********

Ifi>0Then【?

】a(i+1)=x

Fori=1To9

Printa(i);

Nexti

EndSub

16、功能:

过程suixian可以判断某一个数字是否是水仙花数,利用该过程找出三位数中所有水仙花数。

所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。

PrivateSubForm_Click()

DimiAsInteger

Fori=100To999

'**********SPACE**********

【?

】suixiani

Nexti

EndSub

PublicSubsuixian(xAsInteger)

Dimi%,j%,k%

'**********SPACE**********

i=【?

】x\100

j=(x-i*100)\10

k=x-i*100-j*10

'**********SPACE**********

If【?

】ThenPrintxi^3+j^3+k^3=x

EndSub

17、功能:

输入一个数,若大于0,则显示"+";若小于0,则显示"-";若等于"0",则显示"零"。

PrivateSubCommand1_Click()

x=Val(Text1.Text)

SelectCasex

'**********SPACE**********

【?

】CaseIs>0

Label1.Caption="+"

CaseIs<0

'**********SPACE**********

【?

】Label1.Caption="-"

'**********SPACE**********

【?

】case0

Label1.Caption="零"

EndSelect

EndSub

18、功能:

以下程序段用于计算数组中各元素的乘积。

PrivateSubCommand1_Click()

'**********SPACE**********

Dima(1To5)【?

】,b%(2To10),i%,t1#,t2#AsIinteger

Fori=1To5

a(i)=i

Nexti

Fori=2To10

b(i)=i

Nexti

t1=tim(a())

t2=tim(b())

Print"t1=";t1,"t2=";t2

EndSub

'**********SPACE**********

Functiontim(【?

】AsInteger)a()

Dimt#,i%

t=1

Fori=LBound(a)ToUBound(a)

t=t*a(i)

Nexti

tim=t

EndFunction

19、功能:

本程序功能为,单击窗体,Form1的输出结果为

'A1=10B1=20

'A2=20B2=10

'**********SPACE**********

PublicSubSwap1【?

】xAsInteger,ByValyAsInteger)(ByVal

DimtAsInteger

t=x

x=y

y=t

EndSub

PublicSubSwap2(xAsInteger,yAsInteger)

DimtAsInteger

t=x

x=y

y=t

EndSub

PrivateSubForm_Click()

DimaAsInteger,bAsInteger

a=10

b=20

'**********SPACE**********

【?

】a,b

Form1.Print"A1=";a,"B1=";b

a=10

b=20

'**********SPACE**********

【?

】a,b

Form1.Print"A2=";a,"B2=";b

EndSub

20、功能:

求表达式s=x/2!

+x^3/4!

+...+x^(2n-1)/(2n)!

的值,并在窗体上输出。

PrivateSubForm_Click()

DimxAsSingle

DimnAsInteger

DimsumAsSingle

x=Val(InputBox("PleaseinputxValue:

"))

n=Val(InputBox("Pleaseinputainteger:

"))

'**********SPACE**********

sum=【?

Print"s=";sum

EndSub

Functions(nAsInteger,xAsSingle)AsSingle

DimiAsSingle,tAsLong

s=0

Fori=1Ton

t=1

Forj=1To2*i

'**********SPACE**********

【?

Nextj

'**********SPACE**********

s=s+x^(【?

】)/t

Nexti

EndFunction

21、功能:

写出程序运行后,单击窗体,Form1上显示的内容sum函数的功能为累加求和

'isum=1

'

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

当前位置:首页 > 总结汇报 > 学习总结

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

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