20.Forj=1To30-3*Ik=i-1To1Step-1
21.PrintTab(3*j);j*i;
22.x=1To100Step2
23.a(i,j)=i*2+jReDimPreservea(3,4)Picture1.Print"a(3,";j-2;")=";a(3,j-2),
Picture1.Print"a(3,";j;")=";a(3,j)
24.a(i,j)=a(i-1,j-1)+a(i-1,j)Picture1.PrintTab(20-i*2);Picture1.Printa(i,j);
25.sc(i,j)=i*5+j
26.x>200
27.(-1)^(K+1)/KForm1.Print4*S
28.M=1S+M或M+S(题目中S和M的数据类型应改为定义成双精度:
dims#,m#)
29.And
30.K*10+M或10*k+M或M+10*k或m+K*10Form1.PrintS
31.题目有错
32.P=1200000000N=N+1
33.b34.n=mn=11-mm=1To10
35.a<>0delta>0a=0
31.更正代码:
DimY(1To11)
Fori=1To10
Y(i)=Val(InputBox("请输入Y(i):
"))
Nexti
x=Val(InputBox("请输入x:
"))
Fori=10To1Step-1
IfxNexti
Forj=10Toi+1Step-1
Y(j+1)=Y(j)
Nextj
Y(i+1)=x
Fori=1To11
PrintY(i)
Nexti
四、阅读程序写结果
1)、B
2)、24
3)、456
4)、4321
5)、10
6)、1.251
7)、1234
8)、30
9)、9
10)、50
11)、11
12)、为数为:
55
13)、55
14)、30
15)、113
16)、272
17)、100
18)、-33
19)、25
20)、5
21)、2
22)、4
23)、1.251
24)、14
25)、21
26)、42
27)、18
28)、498
5
29)、88
30)、n
(2)=2
n(3)=3
31)、42
32)、99to1
33)、134
34)、2468
35)、2010
1015
36)、456
37)、A
38)、15
五、编程题
1、输入3个数,要求按从小到大输出。
PrivateSubCommand1_Click()
End
EndSub
PrivateSubForm_Click()
DimaAsSingle
DimbAsSingle
DimcAsSingle
DimtAsSingle
a=InputBox("请你输入一个数:
")
b=InputBox("请你输入一个数:
")
c=InputBox("请你输入一个数:
")
Ifa>bThent=a:
a=b:
b=t
Ifb>cThen
t=b:
b=c:
c=t
Ifa>cThen
t=a:
a=c:
c=t
EndIf
EndIf
Print("三个数由小到大顺序是:
")
Printa;","&b;","&c
EndSub
PrivateSubForm_Load()
MsgBox("请你单击窗体再输入的三个数!
!
")
EndSub
2、输入10个学生记录(每个记录包括学号、成绩),组成记录类型数组,统计出平均成绩,及成绩最低的学生的学号和成绩。
Dimk()AsSingle
PrivateSubCommand2_Click()
End
EndSub
PrivateSubCommand3_Click()
DimaAsSingle
DimiAsInteger
DimjAsInteger
DimminAsSingle
ReDimk(1,1)
min=k(0,0)
Fori=0To1
Forj=0To1
a=InputBox("请你输入学号:
")
b=InputBox("请你输入成绩:
")
Text1=a
txxt2=b
k(i,j)=a&b
Nextj
Nexti
Fori=0To1
Forj=0To1
Printk(i,j)
Nextj
Nexti
EndSub
3、写一程序将一个数插入到已经有序(设从小到大排序)的数组中,使数组还继续保持有序。
假设原数组中的数为-12,-4,10,23,68。
Dima()AsInteger
PrivateSubForm_Load()
ReDima(0To4)
a(0)=-12
a
(1)=-4
a
(2)=10
a(3)=23
a(4)=68
Show
Print"原来数组中的数据:
"
Fori=0To4
Printa(i);"";
Nexti
Print
t=InputBox("请输入要插入的数:
")
n=UBound(a)
ReDimPreservea(n+1)
Fori=0Ton
Ifa(i)>tThenExitFor
Nexti
Ifi>n+1Then
a(n+1)=t
Else
Fork=n+1Toi+1Step-1
a(k)=a(k-1)
Nextk
a(i)=t
EndIf
Print"插入一个数后:
"
Fori=0Ton+1
Printa(i);"";
Nexti
EndSub
4、求两个数m和n的最大公约数和最小公倍数,要求用一个函数过程来实现。
DimdAsInteger
PrivateSubCommand1_Click()
DimmAsInteger,nAsInteger
m=Text1.Text
n=Text2.Text
Ifmt=m:
m=n:
n=t
EndIf
Label5.Caption=gcd(m,n)
Label6.Caption=d
EndSub
PublicFunctiongcd(aAsInteger,bAsInteger)AsInteger
IfaModb=0Then
gcd=b
Else
gcd=gcd(b,aModb)
EndIf
c=gcd
d=(a*b)/c
EndFunction
5、有一个数列,它的头三项是0,0,1,以后每个数都是其前三个数的和。
编程在窗体上每行输出5个数,输出此数列,直到最后一个数超过1010为止。
PrivateSubForm_click()
Dima%,b%,c%
a=0
b=0
c=1
Printa,b,c,
i=3
Do
t=a+b+c
i=i+1
Printt,
a=b
b=c
c=t
IfiMod5=0ThenPrint
LoopWhilet<1010
EndSub
6、鸡翁一,值钱五,鸡母一,值钱三,鸡雏一,值钱一,百元买百鸡,问鸡翁、鸡母、鸡雏各几何?
PrivateSubForm_Click()
DimxAsInteger,yAsInteger,zAsInteger
Forx=1To19
Fory=1To32
Forz=1To100
Ifx+y+z=100And5*x+3*y+z/3=100Then
Print"鸡翁";x;"只,鸡母";y;"只,鸡雏";z;"只"
EndIf
Nextz
Nexty
Nextx
EndSub
7、用随机函数产生100个20-100之间的随机整数,赋予A数组。
以每行输出10个元素的紧凑格式在图形框中输出,并在标签框中输出数组元素中的最大值、最小值和它们的平均值。
PrivateSubPicture1_Click()
Dima(1To100)AsInteger,iAsInteger
DimsumAsLong,averAsSingle
DimmaxAsInteger,minAsInteger,imaxAsInteger,iminAsInteger
Fori=1To100
a(i)=Int(20+Rnd*81)
Nexti
Fori=1To100
Picture1.Printa(i);
IfiMod10=0ThenPicture1.Print
Nexti
max=a
(1):
min=a
(1):
sum=a
(1)
imax=1:
imin=1
Fori=2To100
sum=sum+a(i)
Ifa(i)>maxThenmax=a(i):
imax=i
Ifa(i)imin=i
Nexti
aver=sum/100
Label1="最大值是:
"&max&"最小值是:
"&min&"平均值是:
"&aver
EndSub
8、编写程序,求S=A!
+B!
+C!
。
阶乘的计算分别用SUB过程和FUNCTION过程两种方法来实现。
DimA,B,CAsInteger
PrivateSubform_load()
Command1.Caption="调用Function过程"
Command2.Caption="调用Sub过程"
EndSub
PrivateSubCommand1_Click()
A=Val(Text1.Text)
B=Val(Text2.Text)
C=Val(Text3.Text)
Picture1.Print
Picture1.Print"调用Function过程的输出结果为:
";
S=factF(A)+factF(B)+factF(C)
Picture1.PrintS
EndSub
PrivateSubCommand2_Click()
A=Val(Text1.Text)
B=Val(Text2.Text)
C=Val(Text3.Text)
Picture1.Print
Picture1.Print
Picture1.Print"调用Sub过程时的输出结果为:
";
DimA1,B1,C1AsDouble
factSA,A1
factSB,B1
factSC,C1
S=A1+B1+C1
Picture1.PrintS
EndSub
SubfactS(ByValnAsInteger,fac)
fac=1
Fori=1Ton
fac=fac*i
Nexti
EndSub
FunctionfactF(ByValnAsInteger)
t=1
Fori=1Ton
t=t*i
Nexti
factF=t
EndFunction
9、把两个按升序(即从小到大)排列的数列a
(1),
(2),……、a(n)和b
(1)、b
(2)……、b(m),合并成一个仍为升序排列的新数列。
Dima(5)AsInteger,b(5)AsInteger,c(5)AsInteger
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger
Fori=0To5
a(i)=InputBox("请输入元素"&i&"的值")
Nexti
EndSub
PrivateSubCommand2_Click()
DimiAsInteger
Fori=0To5
t=i
Forj=i+1To5
Ifa(j)Nextj
Ift<>jThen
Min=a(i)
a(i)=a(t)
a(t)=Min
EndIf
Nexti
Fori=0To5
Picture1.Printa(i);
Next
Picture1.Print("")
Fori=0To5
t=i
Forj=i+1To5
Ifb(j)
Nextj
Ift<>jThen
Min=b(i)
b(i)=b(t)
b(t)=Min
EndIf
Nexti
Fori=0To5
Picture1.Printb(i);
Next
Picture1.Print
EndSub
PrivateSubCommand3_Click()
Fori=0To5
c(i)=a(i)+b(i)
Nexti
Fori=0To5
t=i
Forj=i+1To5
Ifc(j)Nextj
Ift<>jThen
Min=c(i)
c(i)=c(t)
c(t)=Min
EndIf
Nexti
'Picture1.Cls
Fori=0To5
Picture1.Printc(i);
Next
EndSub
PrivateSubCommand4_Click()
DimiAsInteger,jAsInteger
Fori=0To5
b(i)=InputBox("请输入元素"&i&"的值")
Nexti
EndSub
10、编写一个函数,将一个十进制整数转换成2,8,16进制字符串。
PrivateSubCommand1_Click()
Dimm0AsInteger,r0AsInteger,iAsInteger
m0=Val(Text1)
r0=Val(Text2)
Ifr0<2Orr0>16Then
i=MsgBox("输入的r进制数超出范围",vbRetryCancel)
Ifi=vbRetryThen
Text2=""
Text2.SetFocus
Else
End
EndIf
EndIf
Label3="转换成"&r0&"进制数"
Text3=trandec(m0,r0)
EndSub
Functiontrandec(ByValm%,ByValr%)
Dimstrdtor$
Dimmr%
strdtor=""
DoWhilem<>0
mr=mModr
m=m\r
Ifmr>=10Then
strdtor=Chr(mr-10+65)&strdtor
Else
strdtor=mr&strdtor
EndIf
Loop
trandec=strdtor
EndFunction
11、编程序输出在指定范围内的3个随机函数,范围在文本框中输入。
PrivateSubCom