VB题.docx

上传人:b****6 文档编号:7157670 上传时间:2023-01-21 格式:DOCX 页数:28 大小:23.08KB
下载 相关 举报
VB题.docx_第1页
第1页 / 共28页
VB题.docx_第2页
第2页 / 共28页
VB题.docx_第3页
第3页 / 共28页
VB题.docx_第4页
第4页 / 共28页
VB题.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

VB题.docx

《VB题.docx》由会员分享,可在线阅读,更多相关《VB题.docx(28页珍藏版)》请在冰豆网上搜索。

VB题.docx

VB题

编程题

1、求100以内的素数。

PrivateSubCommand1_Click()

DimiAsInteger,mAsInteger,tagAsBoolean

j=0

Form=2To100

tag=True:

Fori=2Tom-1

If(mModi)=0Thentag=False

Nexti

IftagThen

Printm;"";

j=j+1

Ifj=10Thenj=0:

Print

EndIf:

Nextm

EndSub

2、从键盘输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。

PrivateSubCommand1_Click()

Dima$,I%,c$,d$,n%

a=InputBox("输入字符串")

n=Len(a)

ForI=1ToInt(n/2)

c=Mid(a,I,1)

Mid(a,I,1)=Mid(a,n-I+1,1)

Mid(a,n-I+1,1)=c

NextI

Printa

EndSub

3、计算0~200之间所有能被11或5整除的数之和

、PrivateSubForm_click()

Dimi%,sum%

Print

Fori=0To200

IfiMod5=0OriMod11=0Thensum=sum+i

Nexti

Print"0~200之间所有能被5或100整除的数之和为:

",sum

EndSub

4、输入一年份,判断它是否为闰年,并显示有关信息。

(判断闰年的条件是:

年份能被4整除但不能被100整除,或者能被400整除)

PrivateSubCommand2_Click()

Dimy%

y=Year(Now)

IfyMod4=0AndyMod100<>0OryMod400=0Then

MsgBox(y&"年是闰年")

Else:

MsgBox(y&"年是平年")

EndIf

EndSub

5.输入xyz三个数,按从大到小显示。

PrivateSubCommand1_Click()

Dimx!

y!

z!

x=InputBox("inputx")

y=InputBox("inputy")

z=InputBox("inputz")

Print"xyz"

Print"排序前";x;"";y;"";z

Ifx

x=y:

y=t:

Ifx

x=z:

z=t:

Ify

y=z:

z=t:

Print"排序后"&x&""&y&""&z

EndSub

6、求s=a+aa+aaa+...aaaaa(n个a),其中a和n的值随机产生,a的范围是[1,9]的整数,n的范围是[5,10]。

如a=3,n=6,则

s=3+33+333+3333+33333+333333。

编程确定n和a的值,并计算s。

PrivateSubCommand1_Click()

Dims!

t!

i!

a%,n%

a=Int(Rnd*9+1)

n=Int(Rnd*6+5)

t=0:

s=0

Print"a=";a,"n=";n

Fori=1Ton

t=t*10+a

s=s+t

Printt;

Nexti

Print

Print"s=";s

EndSub

9、找出被3、5、7除,余数为1的最小的5个正整数。

PrivateSubCommand1_Click()

Dimcountn%,n%

countn=0

n=1

Do

n=n+1

IfnMod3=0AndnMod5=0AndnMod7=0Then

Printn

countn=countn+1

EndIf

LoopUntilcountn=5'或whilecountn<5

EndSub

10、某次歌曲大奖赛,有7个评委。

如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。

PrivateSubCommand1_Click()

Dimmark!

aver!

i%,max1!

min1!

aver=0

Fori=1To7

mark=InputBox("输入第"&i&"位评为打得分")

Ifi=1Then

max1=mark:

min1=mark

Else

Ifmark

min1=mark

ElseIfmark>max1Then

max1=mark

EndIf

EndIf

aver=aver+mark

Nexti

aver=(aver-mark1-min1)/5

Printaver

EndSub

11、编程显示100~500之间所有的水仙花数之和。

(水仙花数是3位数,其各位数之和等于该数本身)

程序:

PrivateSubCommand1_Click()

Dimi%,j%,k%,sxh,m!

m=0

Fori=1To4

Forj=1To9

Fork=0To9

sxh=i*100+j*10+k

Ifsxh=i^3+j^3+k^3Then

m=sxh+m

EndIf

Nextk

Nextj

Nexti

Print"m=";m

EndSub

13、从键盘输入三角形的三条边a,b,c的值,根据其数值,判断能否构成三角形。

PrivateSubCommand1_Click()

Dimx%,y%,z%

x=Val(InputBox("inputx"))

y=Val(InputBox("inputx"))

z=Val(InputBox("inputx"))

Ifx+y>zAndx+z>yAndz+y>xThen

MsgBox("能构成三角形")

Ifx=yAndy=zThen

MsgBox("是等边三角形")

ElseIfx=yOry=zOrz=xThen

MsgBox("是等腰三角形")

ElseIfSqr(x*x+y*y)=zOrSqr(y*y+z*z)=xOrSqr(x*x+z*z)=yThen

MsgBox("是直角三角形")

Else:

MsgBox("是其他三角形")

EndIf

Else:

MsgBox("不能构成三角形"):

EndIf

EndSub

14、已知数组a(),编程删除a中第5个元素。

数组a中的元素分别为{12,6,4,89,75,63,100,20,31}。

PrivateSubForm_Click()

Dima(),i%,n%

a=Array(12,6,4,89,75,63,100,20,31)

n=UBound(a)

Fori=0Ton

Printa(i);

Nexti

Print

Fori=5Ton

a(i-1)=a(i)

Nexti

n=n-1

ReDimPreservea(n)

Fori=0Ton

Printa(i);

Nexti

Print

End

21、随机产生10个[30,100]内的整数,求最大值、最小值和平均值

程序代码如下:

PrivateSubForm_Click()

Dima(1To10)AsInteger,i%,maxa%,mina%,avera!

Fori=1To10

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

Nexti

mina=a

(1)

maxa=a

(1)

avera=a

(1)

Fori=2To10

Ifa(i)>maxaThenmaxa=a(i)

Ifa(i)

avera=avera+a(i)

Nexti

Fori=1To10

Printa(i);

Nexti

Print

Print"max=";maxa,"min=";mina,"aver=";avera/10

EndSub

22、定义三个4×4的二维数组A,B,C,A和B中的元素均随机生成,数组A的范围是1~20,数组B的范围是100~200,数组C是A和B相乘得到的。

请编程生成并输出A,B,C。

PrivateSubForm_Click()

Dima%(1To4,1To4),b%(1To4,1To4),c%(1To4,1To4)

Print"数组A"

Fori=1To4

Forj=1To4

a(i,j)=Int(Rnd*20+1)

PrintTab(j*4);a(i,j);

Nextj

Print

Nexti

Print"数组B"

Fori=1To4

Forj=1To4

b(i,j)=Int(Rnd*100+100)

PrintTab(j*6);b(i,j);

Nextj

Print

Nexti

'Print"数组C";

'Fori=1To4

'Forj=1To4

'c(i,j)=b(i,j)*a(i,j)

'PrintTab(j*4);c(i,j);

'Nextj

'Print

'Nexti

Print"数组C";

Fori=1To4

Forj=1To4

c(i,j)=b(i,j)+a(i,j)

PrintTab(j*6);c(i,j);

Nextj

Print

Nexti

EndSub

30、编程输出n行杨辉三角图形,n由键盘输入。

程序代码如下:

SubCommand1_Click()

Dimn%,i%,j%

n=Val(Text1)

Dima%(1To1000,1To1000)

Fori=1Ton

a(i,1)=1

Nexti

Fori=1Ton

a(i,i)=1

Nexti

Forj=2Toi-1

Fori=3Ton

a(i,j)=a(i-1,j-1)+a(i-1,j)

Nexti

Picture1.Print;

Nextj

Picture1.PrintTab(j*n);a(i,j)

Fori=1Ton

Forj=1Toi

Picture1.Printa(i,j);"";

Nextj

Picture1.Print

Nexti

EndSub

33、编写一个过程计算并输出区间[100,1000]内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。

调用该过程。

(提示:

只能被1和自身整除的自然数称为素数。

Functionsushu%(ByValx%)

Dimm%,TagAsBoolean,i%

m=Val(x)

Tag=True

Fori=2Tom-1

If(mModi)=0ThenTag=False

Nexti

IfTagThensushu=x

EndFunction

PrivateSubCommand1_Click()

Dimi%,k%

Fori=100To1000

Ifsushu(i)ThenList1.AddItemi

Nexti

Sum=0

Fork=0ToList1.ListCount-1

Sum=Sum+Val(List1.List(k))

Nextk

Label1="[100,1000]内所有素数和为:

"&Sum

EndSub

35、已知一维数组a()中的元素已排序,分别为{12,15,21,25,27,35,36,39,48,52},编程将30插入数组a,并使a依然有序。

程序代码如下:

PrivateSubForm_load()

Dima(),i%,k%,x%,n%

a=Array(1,4,7,9,12,14,23,56)

n=UBound(a)

Fori=0Ton

List1.AddItema(i)

Nexti

EndSub

PrivateSubcommand1_Click()

x=Val(Text1)

Fork=0ToList1.ListCount-1

Ifx

Nextk

List1.AddItemx,k

EndSub

41、编一个冒泡排序法子过程,对已知的若干整数按递减次序排列。

提示:

子过程的形式为subsort1(a%())。

SubSort1(a())

DimiMin%,i%,j%,t%

Fori=0ToUBound(a)-1

Forj=0ToUBound(a)-1-i

Ifa(j)>a(j+1)Thent=a(j):

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

a(j+1)=t

Nextj

Nexti

Fori=0ToUBound(a)

Printa(i);

Nexti

Print

EndSub

PrivateSubForm_Click()

Dimb()

Print"排序前"

b=Array(56,32,79,21,5,69,98,14,3,15)

Fori=0ToUBound(b)

Printb(i);

Nexti

Print

Print"排序后"

CallSort1(b())

EndSub

42、编一个选择排序法子过程,对已知的若干整数按递减次序排列。

提示:

子过程的形式为subsort1(a%())。

SubSort1(a())

DimiMin%,i%,j%,t%

Fori=0ToUBound(a)-1

iMin=i

Forj=i+1ToUBound(a)

Ifa(j)

Nextj

t=a(i):

a(i)=a(iMin):

a(iMin)=t

Nexti

Fori=0ToUBound(a)

Printa(i);

Nexti

Print

EndSub

PrivateSubForm_Click()

Dimb(),i%

Print"排序前"

b=Array(56,32,79,21,5,69,98,14,3,15)

Fori=0ToUBound(b)

Printb(i);

Nexti

Print

Print"排序后"

CallSort1(b())

EndSub

43、编一个选择排序法子过程,对已知的若干整数按递增次序排列。

提示:

子过程的形式为subsort1(a%())。

PrivateSubCommand1_Click()

DimiA(1To10)

n=6

iA

(1)=8:

iA

(2)=6:

iA(3)=9:

iA(4)=3:

iA(5)=2:

iA(6)=7

Fori=1Ton-1'进行n-1遍比较

iMin=i'对第i遍比较时,初始假定第i个元素最小

Forj=i+1Ton'在数组i~n个元素中选最小元素的下标

IfiA(j)

Nextj

t=iA(i)'i~n个元素中选出的最小元素与第i个元素交换

iA(i)=iA(iMin)

iA(iMin)=t

Fork=1Ton

PrintiA(k);

Nextk

Print

Nexti

44、编一个冒泡排序法子过程,对已知的若干整数按递增次序排列。

提示:

子过程的形式为subsort1(a%())。

PrivateSubCommand1_Click()

DimiA(1To10)

n=6

iA

(1)=8:

iA

(2)=6:

iA(3)=9:

iA(4)=3:

iA(5)=2:

iA(6)=7

Print"冒泡法排序数据变化过程"

Print"8,6,9,3,2,7"

Print"-----------------------------"

Fori=1Ton-1'进行n-1遍比较

'对第i遍比较时,初始假定第i个元素最小

Forj=nToi+1Step-1'在数组i~n个元素中选最小元素的下标

IfiA(j)

t=iA(j)

iA(j)=iA(j-1)

iA(j-1)=t

EndIf

Nextj

Print"i=";i;Spc(i*3-3);

Fork=iTon

PrintiA(k);

Nextk

Print

Nexti

EndSub

31、声明一个整型的二维数组a(1to4,1to4),用随机函数产生各元素,范围介于[1,20]之间,编程将第1行和第3行对应元素交换。

PrivateSubForm_Click()

Dima%(1To4,1To4),i%,j%

Print"排序前"

Fori=1To4

Forj=1To4

a(i,j)=Int(Rnd*20+1)

PrintTab(j*4);a(i,j);

Nextj

Print

Nexti

Print"排序后"

Forj=1To4

t=a(1,j):

a(1,j)=a(3,j):

a(3,j)=t

Nextj

Fori=1To4

Forj=1To4

PrintTab(j*4);a(i,j);

Nextj

Print

Nexti

EndSub

38、随机产生10个[30,100]内的整数,求最小值及所对应的下标。

21.随机产生30~100(包括30、100)中的十个正整数,求最大值、最小值、平均值,并显示整个数组的值和结果。

PrivateSubForm_Click()

Dima(1To10)AsInteger,i%,maxa%,mina%,avera!

Fori=1To10

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

Nexti

mina=a

(1)

maxa=a

(1)

avera=a

(1)

Fori=2To10

Ifa(i)>maxaThenmaxa=a(i)

Ifa(i)

avera=avera+a(i)

Nexti

Fori=1To10

Printa(i);

Nexti

Print

Print"max=";maxa,"min=";mina,"aver=";avera/10

EndSub

15、随机生成一个整型的二维数组,范围在[10,20]之间,以上三角形式输出该数组。

28、随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。

15、随机生成一个整型的二维数组,范围在[10,20]之间,以上三角形式输出该数组。

(下三角、全部元素)

Dima%(4,4),i%,j%

PrivateSubForm_load()

Fori=0To4

Forj=0To4

a(i,j)=Int(Rnd*11+10)

Nextj

Nexti

EndSub

PrivateSubCommand1_Click()

Picture1.Cls

Fori=0To4

Forj=0To4

Picture1.Printa(i,j);"";

Nextj

Picture1.Print

Nexti

EndSub

PrivateSubCommand2_Click()

Picture2.Cls

Fori=0To4

Forj=iTo4

Picture2.Printa(i,j);"";

Nextj

Picture2.Print

Nexti

EndSub

PrivateSubCommand3_Click()

Picture3.Cls

Fori=0To4

Forj=0Toi

Picture3.Printa(i,j);"";

Nextj

Picture3.Print

Nexti

EndSub

29、有10个评委对歌手进行打分(分数存放在A数组中)要求编程计算歌手平均得分(按去掉一个最高分和一个最低分的计算办法计算)。

a=Array(98,97,95,91,90,99,93,94,93,96)

10、某次歌曲大奖赛,有7个评委。

如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。

PrivateSubForm_Click()

Dima(6)As

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

当前位置:首页 > 表格模板 > 合同协议

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

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