试题VB经典的程序设计题.docx

上传人:b****8 文档编号:23918942 上传时间:2023-05-22 格式:DOCX 页数:16 大小:29KB
下载 相关 举报
试题VB经典的程序设计题.docx_第1页
第1页 / 共16页
试题VB经典的程序设计题.docx_第2页
第2页 / 共16页
试题VB经典的程序设计题.docx_第3页
第3页 / 共16页
试题VB经典的程序设计题.docx_第4页
第4页 / 共16页
试题VB经典的程序设计题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

试题VB经典的程序设计题.docx

《试题VB经典的程序设计题.docx》由会员分享,可在线阅读,更多相关《试题VB经典的程序设计题.docx(16页珍藏版)》请在冰豆网上搜索。

试题VB经典的程序设计题.docx

试题VB经典的程序设计题

累加求和1到100

PrivateSubCommand1_Click()

DimiAsInteger,sumAsInteger

sum=0

Fori=1To100

sum=sum+i

Next

Text1.Text=sum

EndSub

PrivateSubCommand2_Click()

End

EndSub

1到100的奇数和

PrivateSubCommand1_Click()

DimiAsInteger,sumAsInteger

sum=0

Fori=1To100step2

sum=sum+i

Next

Text1.Text=sum

EndSub

PrivateSubCommand2_Click()

End

求n!

PrivateSubCommand1_Click()

DimfactAsDouble,nAsInteger,iAsInteger

n=Val(Text1.Text)

fact=1

Fori=1Ton

fact=fact*i

Next

Text2.Text=fact

EndSub

累加求和1到100

(Dowhile)

PrivateSubCommand1_Click()

DimiAsInteger,sumAsInteger

sum=0

i=1

DoWhilei<=100

sum=sum+i

i=i+1

Loop

Text1.Text=sum

EndSub

PrivateSubCommand2_Click()

End

EndSub

(DoUntil)

PrivateSubCommand1_Click()

DimiAsInteger,sumAsInteger

sum=0

i=1

Dountili>100

sum=sum+i

i=i+1

Loop

Text1.Text=sum

EndSub

PrivateSubCommand2_Click()

End

EndSub

求平均成绩

PrivateSubCommand1_Click()

DimaAsSingle,bAsSingle,cAsSingle,dAsSingle

DimpjAsSingle

a=60:

b=70:

c=80:

d=90

pj=(a+b+c+d)/4

Text1.Text=Str(pj)

EndSub

求圆的周长

PrivateSubCommand1_Click()

DimrAsDouble

Constpi=3.1415926

r=Val(InputBox("请输入圆的半径"))

Print"圆的周长为:

",2*pi*r

EndSub

输入两个整数mn,使得m>=n,并输出mn

PrivateSubCommand1_Click()

DimmAsInteger,nAsInteger,aAsInteger

m=Val(InputBox("请输入m:

",输入,"m"))

n=Val(InputBox("请输入n:

",输入,"n"))

Ifn>mThen

a=m

m=n

n=a

EndIf

Print"m=",m

Print"n=",n

EndSub

计算sum=1/1!

+1/2!

......+1/10!

PrivateSubCommand1_Click()

DimmAsInteger,nAsLong,sAsDouble

n=1

s=0

Form=1To10

n=n*m

s=s+1/n

Next

Prints

EndSub

定义一个下标上界为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

EndSub

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

(待修改)

PrivateSubCommand1_Click()

Dima%,i%,k%,m%,s$

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

i=aMod10

j=(aMod100)\10

k=(aMod1000)\100

m=a\1000

s="个位数字是:

"&i&vbcrlf"十位数字是:

"&j&vbcrlf&"百位数字是:

"&k&vbcrlf&"千位数字是:

"&m

Prints

EndSub

计算sum=2!

+4!

+6!

+......+10!

PrivateSubCommand1_Click()

Dima!

i%,sum!

i=1:

a=1

Do

a=2*i

IfiMod2=0Then

sum=sum+a

EndIf

i=i+1

LoopWhilei<=10

Printsum

EndSub

用inputbox输入一个年份,判断该年份是否是闰年,若是则输出Yes,否则输出No

PrivateSubCommand1_Click()

Dimj%

j=Val(InputBox("请输入年份"))

IfjMod4=0Then

MsgBox("Yes")

Else

MsgBox("No")

EndIf

EndSub

计算并输出下面级数前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

如果一个三位数等于其各位数字的立方和,则称其为水仙花数。

请输入一个三位数,并判断其是否为水仙花数。

若是,用MsgBox输出“yes”,否则输出“no”

PrivateSubCommand1_Click()

Dima%,i%,j%,k%

a=InputBox("请输入一个三位数!

")

i=a\100

j=a\10Mod10

k=aMod10

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

MsgBox("yes")

Else

MsgBox("no")

EndIf

EndSub

某分段函数描述如下:

(1)当x为偶数时,y的值为x的二分之一

(2)当x为奇数时,y的值为x的二倍

PrivateSubCommand1_Click()

Dimx!

y!

x=Val(InputBox("请输入X的值!

"))

IfxMod2=0Then

y=x/2

Else

y=2*x

EndIf

MsgBox(y)

EndSub

输入三个数,判断其是否能够构成三角形...........

PrivateSubCommand1_Click()

DimiAsInteger,a

(2)AsInteger,pAsSingle,sAsSingle

Fori=0To20

a(i)=val(inputbox("输入第"&i&"条边的边长:

"))

Nexti

Ifa(0)+a

(1)>a

(2)Anda(0)+a

(2)>a

(1)Anda

(1)+a

(2)>a(0)Then

p=(a(0)+a

(1)+a

(2))/2

s=sqr(p*(p-a(0)*(p-a

(1))*(p-a

(2)))

MsgBox(s)

Else

MsgBox("不能形成三角形!

")

EndIf

EndSub

计算1*3*5....*9

PrivateSubCommand1_Click()

DimsumAsLong,iAsInteger

sum=1

Fori=1To9Step2

sum=sum*i

Next

MsgBox(sum)

EndSub

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

-1/2!

+1/3!

-1/4………(-1)∧(n-1)*1/n!

+…..

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

PrivateSubCommand1_Click()

DimmAsDouble,nAsInteger,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

随即输出一个位于【0,100】之间的整数

PrivateSubCommand1_Click()

Randomize

Dims%

s=(101*Rnd)

Prints

EndSub

 

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

PrivateSubCommand1_Click()

Dims!

i%

Fori=2To50Step2

s=s+i*(i+1)

Next

MsgBox(s)

EndSub

 

《VB期末范围题总汇》

1.求随机10个整数的最大值、最小值、平均值以及和;

Dima(1To10)

PrivateSubCommand1_Click()

Randomize

Picture1.Print"产生的随机数为:

"

Fori=1To10

a(i)=Int(Rnd*99+1)

Picture1.Printa(i);

Nexti

Picture1.Print

EndSub

PrivateSubCommand2_Click()

Dimmax,min,ave

max=a

(1)

min=a

(1)

ave=0.1*a

(1)

Fori=2To10

Ifa(i)>maxThenmax=a(i)

Ifa(i)

ave=ave+0.1*a(i)

Nexti

Picture1.Print"最大数为:

";max

Picture1.Print"最小数为:

";min

Picture1.Print"平均数为:

";ave

EndSub

2.求水仙花数

PrivateSubForm_Click()

Dima,b,cAsInteger'a(个)b(十)c(百)

Fora=0To9

Forb=0To9

Forc=1To9

Ifa^3+b^3+c^3=a+10*b+100*cThen

MsgBox100*c+10*b+a

EndIf

Nextc

Nextb

Nexta

EndSub

求1000以内的所有完数

一个按钮里调用的过程

PrivateSubCommand1_Click()

OutputWanNumber1000

EndSub

5.求各位数字之和

inputa:

'输入任意数

do

b=amod10:

'取a的末位数

sum=sum+b:

'求和

a=a\10:

'去掉末位数

loopuntila=0

print"sum=";sum:

'输出

end

(dimnasstring

inputn

fori=1tolen(n)

sum=sum+val(mid(n,i,1))

nexti

printsum)

6.求最小公倍数

PrivateSubForm_Load()

Form1.AutoRedraw=True

Dimn1%,m1%,m%,n%,r%

n1=InputBox("输入n1")

m1=InputBox("输入m1")

Ifm1>n1Then'为了求最小公倍数,增加m,n变量

m=m1:

n=n1

Else

m=n1:

n=m1

EndIf

Do

r=mModn

Ifr=0ThenExitDo

m=n

n=r

Loop

Printn1;",";m1;"的最大公约数为";n

Print"最小公倍数=",m1*n1/n

EndSub

7.求逆序数(感觉题目类型太多)

9.求质因子问题

PrivateSubCommand1_Click()

DimNAsInteger,IAsInteger

N=Val(InputBox("请输入2的整数:

"))

I=2

Do

IfNModI=0Then

PrintI;

N=N\I

Else

I=I1

EndIf

LoopWhileN1

EndSub

1.判定素数过程

Functionisprime(NumAsLong)AsBoolean

IfNum<2Thenisprime=False:

ExitFunction

DimiAsLong

Fori=2ToSqr(Num)

If(NumModi)=0Then

isprime=False

ExitFunction

EndIf

Nexti

isprime=True

EndFunction

PrivateSubCommand1_Click()

DimiAsLong

Fori=1To1000

Ifisprime(i)Then

Printi

EndIf

Nexti

EndSub

2.求最大公约数过程;

FunctionMax公约数(AAsLong,BAsLong)'求出两个数的最大公约数

DimXAsLong,YAsLong,KAsLong

X=IIf(A>=B,A,B)'x存入最大值

Y=IIf(A<=B,A,B)'y存入最小值

Do'辗转相除法

K=XModY:

IfK=0ThenExitDo

X=Y:

Y=K

Loop

Max公约数=Y

EndFunction

3.冒泡排序过程

PrivateSubCommand1_Click()

Dima(9)AsInteger

DimiAsInteger

Fori=0To9

a(i)=InputBox("输入整数")

Next

Sorta

Fori=0To9

Printa(i)

Next

EndSub

PrivateSubSort(ByRefa()AsInteger)

DimiAsInteger

DimjAsInteger

DimtAsInteger

Fori=LBound(a)+1ToUBound(a)

Forj=UBound(a)ToiStep-1

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

t=a(j-1)

a(j-1)=a(j)

a(j)=t

EndIf

Next

Next

EndSub

4顺序查找过程

PrivateSubCommand1_Click()

Dimi,j,t,a(1To10)

Randomize

Print"原数组:

"

Fori=1To10

a(i)=Rnd*10

Print"a("&i&")="&a(i)&Space

(2),

IfiMod2=0ThenPrint

Nexti

Print

Fori=1To9

Forj=i+1To10

Ifa(j)

t=a(i)

a(i

编程题(20分,正式试题为1题)

1、编写一个身份证号码转换程序:

(1)老身份证是15位,先要增加两位年份,变成17位,再计算校验位。

(2)校验位的计算方法是:

17位身份证号码Number每一位都乘上一个权值Weight,然后相加,再除以11,取其余数作为位置数Position。

(3)根据位置数Position查表,得到校验位CheckCode。

(4)Number[i]:

表示身份证号码第i位上的号码

Weight[i]:

表示第i位上的权值

Weight:

79105842163791058421

Position=∑(Number[i]*Weight[i])mod11

(5)Position:

012345678910

CheckCode:

10X98765432

其中罗马数字X表示10,所以在新标准的身份证号码中可能含有非数字的字母X。

2、利用递归函数编写打印杨辉三角形(参见教材第319页上的实验6.11)

(1)编写求Cn,m的递归函数,其递归公式为:

Cn,m=Cn,m-1+Cn-1,m-1

(2)递归条件是:

C0,m=1当n=0

C1,m=m当n=1

Cn,m=Cm-n,m当n>m/2

(3)利用上述递归函数编写打印杨辉三角形的程序

C0,0

C1,0C1,1

C2,0C2,1C2,2

·······

Cn,0Cn,1·······Cn,n-1Cn,n

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

当前位置:首页 > 医药卫生 > 基础医学

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

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