a=b:
b=i
DoWhileb<>0
n=aModb:
a=b:
b=n
Loop
Text3.Text=n
EndSub
3.编写程序,随机生成100个两位整数,并统计出其中小于等于40、大于40小于等于70及大于70的数据个数。
PrivateSubForm_Click()
DimnAsInteger
Dimcont1AsInteger,cont2AsInteger,cont3AsInteger
n=Int(Rnd*90+10)
Printn
cont1=0
cont2=0
cont3=0
Ifn<40Then
cont1=cont1+1
EndIf
Ifn>40Andn<70Then
cont2=cont2+1
EndIf
Ifn>70Then
cont3=cont3+1
EndIf
Printcont1:
cont2:
cont3
4.编写程序,单击窗体时在窗体上输出如下所示的图形。
*
***
*****
*******
*********
*******
*****
***
*
PrivateSubForm_Click()
DimiAsInteger,beginAsInteger
begin=5
Fori=1To5
PrintTab(begin);
Forj=1To2*i-1
Print"*";
Nextj
Print
begin=begin-1
Nexti
begin=2
Fori=1To4
PrintTab(begin);
Forj=1To9-2*i
Print"*";
Nextj
Print
begin=begin+1
Nexti
EndSub
5.编写程序,计算并输出下面级数前n项(n=80)的部分和。
1-1/2+1/3-1/4+1/5+……+1/n
(n由键盘输入,要求用循环做,非循环不给分。
)
PrivateSubCommand1_Click()
DimnAsInteger,iAsInteger
DimsumAsDouble
n=Val(InputBox(""))
sum=0
Fori=1Ton
IfiMod2<>0Then
sum=sum+(1/i)
Else
sum=sum-(1/i)
EndIf
Nexti
Printsum
EndSub
6.有100匹马,驮100担货:
大马驮3担,中马驮2担,两匹小马驮1担,问有大、中小马各多少?
OptionExplicit
PrivateSubForm_Click()
DimxAsInteger,yAsInteger,zAsInteger
Print"大马","中马","小马"
Forx=0To33
Fory=0To50
z=100-x-y
If(x*3+y*2+z*0.5)=100Then
Printx,y,z
EndIf
Nexty
Nextx
Print
Print"共7种方案。
"
EndSub
7.编写程序,要求从键盘输入0-6中的一任一个,可对应得到星期日、星期一---星期六。
PrivateSubForm_Click()
DimnAsInteger
n=Int(Val(InputBox("")))
SelectCasen
Case0
Printn;":
星期日"
Case1
Printn;":
星期一"
Case2
Printn;":
星期二"
Case3
Printn;":
星期三"
Case4
Printn;":
星期四"
Case5
Printn;":
星期五"
Case6
Printn;":
星期六"
CaseElse
Printn;":
错误"
EndSelect
EndSub
8.编写程序,输出下列三角形:
(要求用循环做,非循环不给分。
)
1
111
11111
1111111
OptionExplicit
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger,beginAsInteger
begin=7
Fori=1To4
PrintTab(begin);
Forj=1To2*i-1
Print"1";
Nextj
Print
begin=begin-2
Nexti
EndSub
9.求公式:
e=1/1!
+1/2!
+1/3!
+……+1/n!
直到最后一项小于10^(-6)时e的值。
(注:
程序代码写在命令按钮Command1的Click事件中。
)
PrivateSubCommand1_Click()
DimeAsDouble,njAsDouble
DimnAsLong,iAsLong
e=0
n=1
Do
nj=1
Fori=1Ton
nj=nj*i
Nexti
e=e+1/nj
n=n+1
LoopUntil(1/nj)<0.000001
Printe
EndSub
10.编写程序,输出下列三角形:
总行数通过键盘输入。
(要求用循环做,非循环不给分。
)
1111111
11111
111
1
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger,nAsInteger,beginAsInteger
n=Int(Val(InputBox("")))
begin=1
Fori=1Ton
PrintTab(begin);
Forj=1To9-2*i
Print"1";
Nextj
Print
begin=begin+2
Nexti
EndSub
11.输入一串数字,求其中偶数位数字之和。
例如输入234567,则求3+5+7。
PrivateSubCommand1_Click()
DimstrAsString,sAsString*1,iAsLong,sumAsLong
str=InputBox("")
Printstr
sum=0
Fori=2ToLen(str)Step2
s=Mid(str,i,1)
sum=sum+Val(s)
Prints
Nexti
Print"+=";sum
EndSub
12.编写程序,单击窗体时在窗体上输出如下所示的图形。
*
***
*****
*******
*********
*******
*****
***
*
PrivateSubCommand1_Click()
DimbeginAsInteger,nAsInteger,iAsLong
begin=9
Fori=1To5
PrintTab(begin);
Forn=1To2*i-1
Print"*";
Nextn
Print
begin=begin-2
Nexti
begin=3
Fori=1To4
PrintTab(begin);
Forn=1To9-2*i
Print"*";
Nextn
Print
begin=begin+2
Nexti
EndSub
13.有一分数序列:
1,1/2,2/3,3/5,5/8,8/13,13/21……
求出这个数列的前20项之和。
PrivateSubCommand1_Click()
DimsumAsDouble
Dima1AsLong,a2AsLong,a3AsLong
Dimb1AsLong,b2AsLong,b3AsLong
DimiAsLong
a1=1:
a2=1
b1=1:
b2=2
sum=a1/b1+a2/b2
Fori=2To20
a3=a1+a2
b3=b1+b2
sum=sum+a3/b3
a1=a2
a2=a3
b1=b2
b2=b3
Nexti
Printsum
EndSub
14.输入一串数字,求其中奇数数字构成的数与偶数数字构成的数之差。
例如输入1654238,求153-6428。
PrivateSubCommand1_Click()
DimstrAsString,s1AsString,s2AsString,iAsLong
str=InputBox("")
Printstr
s1=""
s2=""
Fori=1ToLen(str)
IfiMod2=1Then
s1=s1&Mid(str,i,1)
Else
s2=s2&Mid(str,i,1)
EndIf
Nexti
Prints1;"-";s2;"=";Val(s1)-Val(s2)
EndSub
16.编写程序,计算下面级数前n项中(n=50)奇数项的和,并输出该级数最后两项之差的绝对值。
(要求用循环做,非循环不给分。
)1*2*3+2*3*4+3*4*5+……+n*(n+1)*(n+2)+…
PrivateSubCommand1_Click()
DimsumAsDouble,plusAsDouble,nAsLong
sum=0
Forn=1To50Step2
sum=sum+n*(n+1)*(n+2)
Nextn
plus=(49-52)*50*51
Printsum
PrintAbs(plus)
EndSub
17.输入3个数x,y,z,按大小顺序把它们输出来。
PrivateSubCommand1_Click()
DimxAsDouble
DimyAsDouble
DimzAsDouble
DimtAsDouble
x=Val(Text1.Text)
y=Val(Text2.Text)
z=Val(Text3.Text)
Ifxt=x:
x=y:
y=t'交换x和y,使x>y
EndIf
Ifyt=y:
y=z:
z=t'交换y和z,使z最小
Ifxt=x:
x=y:
y=t'交换x和y,使x最大
EndIf
EndIf
Text1.Text=Str(x)
Text2.Text=Str(y)
Text3.Text=Str(z)
EndSub
19.编程打印如下图形,总行数通过键盘输入。
(要求用循环做,非循环不给分。
按原图形直接打印者无效。
)
2
333
55555
8888888
131313131313131313
PrivateSubCommand1_Click()
Dimf1AsLong,f2AsLong,f3AsLong
DimnAsLong,beginAsLong
DimiAsLong,jAsLong
n=Int(Val(InputBox("")))
begin=4*n-3
f1=1
f2=1
Fori=1Ton
f3=f1+f2
PrintTab(begin);
Forj=1To2*i-1
PrintTrim(f3);Spc(4-Len(Trim(f3)));
Nextj
begin=begin-4
f1=f2
f2=f3
Nexti
EndSub
20.编写程序,计算并输出下面级数前n项(n=30)的部分和。
(要求用循环做,非循环不给分。
)1/(1*2)+1/(2*3)+1/(3*4)+…+1/(n*(n+1))+……
PrivateSubCommand1_Click()
DimsumAsDouble,nAsLong
sum=0
Forn=1To30
sum=sum+1/(n*(n+1))
Nextn
Printsum
EndSub
22.编写程序,输出下列三角形:
(要求用循环做,非循环不给分。
)
G
FG
EFG
DEFG
CDEFG
BCDEFG
ABCDEFG
PrivateSubCommand1_Click()
Dimcode1AsInteger,code2AsInteger
Forcode1=Asc("G")ToAsc("A")Step-1
Forcode2=code1ToAsc("G")
PrintChr(code2);
Nextcode2
Print
Nextcode1
EndSub
23.编写程序,计算下面级数前n项(n=20)的部分和,并输出该级数最后两项之差的绝对值。
(要求用循环做,非循环不给分。
)1*2*3+2*3*4+3*4*5+……+n*(n+1)*(n+2)+…
PrivateSubCommand1_Click()
DimsumAsDouble,plusAsDouble,nAsLong
sum=0
Forn=1To20
sum=sum+n*(n+1)*(n+2)
Nextn
plus=(19-22)*20*21
Printsum
PrintAbs(plus)
EndSub
24.勾股定理中三个数的关系是:
a^2+b^2=c^2编写程序,输出100以内满足上述关系的整数组合,例如3,4,5就是一个整数组合。
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger,cAsInteger
Dimcnt
cnt=0
Fora=1To99
Forb=1To99
Forc=1To99
If(a*a+b*b=c*c)Then
Printa;"";b;"";c;"",
cnt=cnt+1
IfcntMod4=0ThenPrint
EndIf
Nextc
Nextb
Nexta
EndSub
27.求1000以内分别被3、5、7除,余数都为1的正整数的个数及其和。
OptionExplicit
PrivateSubCommand1_Click()
DimnAsInteger,sumAsDouble
DimcntAsInteger
sum=0
cnt=0
Forn=1To1000
If(nMod3=1)And(nMod5=1)And(nMod7=1)Then
Printn
cnt=cnt+1
sum=sum+n
EndIf
Nextn
Print
Print"共";cnt;"个"
Print"和为";sum
EndSub
4