VB程序题目.docx
《VB程序题目.docx》由会员分享,可在线阅读,更多相关《VB程序题目.docx(18页珍藏版)》请在冰豆网上搜索。
![VB程序题目.docx](https://file1.bdocx.com/fileroot1/2023-2/9/62add2a1-bcae-43c2-ae9a-7a7df323c2bf/62add2a1-bcae-43c2-ae9a-7a7df323c2bf1.gif)
VB程序题目
程序改错
1题目:
求s=2!
+4!
+6!
+8!
,阶乘的计算用Function过程fact实现。
程序代码:
PrivateSubForm_Click()
Dimiasinteger,saslong
Fori=2to8 →Fori=2to8step2
s=s+fact(i)
Nexti
Prints
EndSub
PublicFunctionfact() →PublicFunctionfact(Byvaln%)
Dimtaslong
Dimiasinteger
t=1
Fori=1ton
t=t*i
Nexti
Fact=i →Fact=t
Endfunction
2题目:
请根据下列描述编写购物优惠程序。
某商场为了加速促成商品流通,采用购物打折的优惠办法,每位顾客一次购物
(1)在100元以上者,按九五折优惠;
(2)在200元以上者,按九折优惠;(3)在300元以上者,按八折优惠;(4)在500元以上者,按七折优惠。
在窗体上添加两个文本框和一个命令按钮,要求在Text1中输入购物商品总金额,单击命令按钮,在Text2中输出优惠价。
程序代码:
PrivateSubCommand1_Click()
DimxAsInteger,yAsSingle
x=Val(Text1.Text)
If x<100then
x=y →y=x
Else
If x<200then
y=0.95*x
Else
If x<300then
y=0.9*x
Else
If x<300then
y=0.8*x
Else
y=0.7*x
ElseIf → EndIf
EndIf
EndIf
EndIf
Text2.text=x →Text2.text=y
EndSub
程序填空
1题目:
由输入对话框输入n(n必须为大于零且小于30的自然数),计算下列表达式的值,并在标签框label1上显示。
Sum=1/2+1/6+……+1/(k*(k+1)) (k<=n)
Privatesubform_click()
Dimnasinteger,sumasdouble,kasinteger
N=val(inputbox(“n=”,”请输入自然数n(n>0且n<30)”))
Dowhilen<=0 orn>30
N=val(inputbox(“n=”,”请重新输入”))
Loop
Sum=0
K=0
Do
K= k+1
Sum=sum+1/(k*(k+1))
Loopuntil (k+1)>n
Label1.caption=“sum”+str(sum)
Endsub
2题目:
下面的程序用于打印出以下图形。
程序代码:
Privatesubform_click()
Dimi%,j%,k%
ForI=3to0step-1
Forj=0to2*i
Print“”;
Nextj
Fork=5to11-2*i
Print“*”;
Nextk
print
Nexti
ForI=0to3
Forj=0to2*I+2
print“”;
Nextj
Fork=0to4-2*i
Print“*”;
Nexti
print
Nexti
Endsub
程序设计
1题目:
求二维数组中最大元素及其所在的行和列,并将最大值存入变量Max中,将最大值的行位置存入row中,列位置存入变量column中
程序代码:
PrivateSubForm_load()
Show
Dima(2,3)AsInteger
DimmaxAsInteger,rowAsInteger,columnAsInteger
a(1,1)=34:
a(1,2)=34:
a(1,3)=43
a(2,1)=34:
a(2,2)=78:
a(2,3)=12
Max=a(1,1)
Row=1
Column=1
Fori=1to2
Forj=1to3
Ifa(i,j)>maxThenmax=a(i,j):
row=i:
column=j
Nextj
Nexti
Printmax,row,column
EndSub
2题目:
(事件)双击窗体(响应)求3+6+9+12+15+18+……+300的和,并将结果输出到窗体上。
将结果存入变量sum中。
程序代码:
PrivateSubForm_DblClick()
DimsumAsInteger
Sum=0
Forj=3to300step3
Sum=sum+j
Nextj
Printsum
EndSub
3题目:
创建一个绘图程序。
当程序运行时,单击“绘图”按钮,在窗体的Picture控件上画出【-pi,pi】即【-3.14,3.14】区间的余弦函数曲线。
要求将图片框的坐标系定义为左上角为(-4,2),右下角为(4,-2),并在图片框中画出坐标的x轴和y轴。
图例:
程序代码:
PrivateSubCommand1_Click()
DimiAsInteger → DimiAssingle
Picture1.Scale(4,2)-(4,2) →Picture1.Scale(-4,2)-(4,-2)
Picture1.Line(-4,0)-(4,0)
Picture1.Line(0,2)-(0,-2)
Picture1.CurrentX=0.2
Picture1.CurrentY=-0.1
Picture1.Print“0”
Picture1.CurrentX=-3.2
Picture1.CurrentY=-0.1
Picture1.Print“-n”
Picture1.CurrentX=3.3
Picture1.CurrentY=-0.1
Picture1.Print“n”
Picture1.CurrentX=0.2
Picture1.CurrentY=0.9
Picture1.Print“1”
Picture1.CurrentX=0.2
Picture1.CurrentY=-0.8
Picture1.Print“-1”
Fori=-3.141To3.141Step0.001
Picture1.Pset (i,sin(i)) → Picture1.Pset (i,cos(i))
Nexti
EndSub
PrivateSubCommand2_Click()
End
EndSub
4题目:
用自定义函数的方法求sum(x)。
当x在[-1,1]上,sum(x)=x/2!
+x^2/3!
+x^3/4!
+……+x^n/(n+1)!
;当x>1或x<-1时,sum(x)=0。
当n<=0时,输入数据错误。
x,n都是由用户输入。
程序代码:
PrivateSubCommand1_Click()
DimsASSingle
DimnAsInteger,xAsSingle,kAsInteger
n=Val(Inputbox(“Pleaseinputaintegervalue:
”))
x=Val(Inputbox(“Pleaseinputasinglevalue:
”))
ifn<=0then
k=MsgBox(“数据输入错误!
”,vbRetryCancel,”数据输入”)
ExitSub
EndIf
s=sum(x,n)
Prints
EndSub
FunctionSum(xAsSingle,nAsInteger)
DimiAsInteger,ssAsLong
ss=1
sum=0
Ifx>1Orx<-1Then
Exit→sum=0
Else
Fori=2Ton →Fori=2Ton+1
ss=ss*i
sum=x^(i-1)/ss→sum=sum+x^(i-1)/ss
Nexti
Endif
EndFunction
程序填空
3题目:
以下程序段用于实现:
输入两个正整数m和n,求其最大公因数和最小公倍数。
程序代码:
Privatesubform_click()
Dima%,b%,num1%,num2%,temp
Num1=inputbox(“请输入一个正整数”)
Num2=inputbox(“请输入一个正整数”)
Ifa Temp=num1:
num1=num2:
num2=temp
Endif
A=num1
B=num2
Dowhileamodb<>0
Temp=amodb
A=b
b=temp
Loop
Print“最大公约数为:
”;b
Print”最小公倍数为:
”;num1*num2/b
Endsub
4题目:
窗体上建立一个文本框text1,用于显示结果。
单击按钮弹出输入对话框,录入0-6之间的数值,判断输出值为星期几。
程序代码:
Privatesubcommand1_click()
Dimxasinteger
X=val(inputbox(“请输入星期几(0~6)”))
Selectcasex
Caseis=0
Text1.text=“星期日”
Caseis=1
Text1.text=“星期1”
Caseis=2
Text1.text=“星期2”
Caseis=3
Text1.text=“星期3”
Caseis=4
Text1.text=“星期4”
Caseis=5
Text1.text=“星期5”
Caseis=6
Text1.text=“星期6”
Case else
Text1.text=“输入错误”
Endselect
Endsub
程序设计
3题目:
(事件)单击窗体(响应)求100以内偶数的和,并将结果输出在窗体上。
将结果存入变量sum中。
程序代码:
PrivateSubForm_Click()
DimsumAsInteger
Sum=0
Forj=2To100Step2
Sum=sum+j
Nextj
Printsum
EndSub
4题目:
(事件)单击窗体(响应)求10!
的值。
并将结果输出到窗体上。
将结果存入变量sum中。
PrivateSubForm_Click()
DimsumAsLong
Sum=1
Forj=1To10do
Sum=sum*j
Nextj
Printsum
EndSub
程序改错
5题目:
请修改程序中的错误,保证程序最后输出效果如图1所示。
图例:
程序代码:
PrivateSubForm_Click()
DimiAsInteger
Fori=1To7
PrintSpc(7); →PrintSpc(7-i);
Ifi>=1Then →Ifi<=1Then
Print“*”
Else
Print“*”;Spc(2*(i-1));”*” → Print“*”;Spc(2*(i-1)-1);”*”
EndIf
Nexti
EndSub
6题目:
输入一个字符串,将所有的小写字母都转换为大写字母。
程序代码:
PrivateSubForm_Click()
Dims1AsString,s2AsString,iAsInteger,tAsString
s1=Inputbox(“输入字符串,以#号结束”)
i=1
s1=Mid(s1,i,1)→t=Mid(s1,i,1)
Whilet<>“#”
If t>=“a”Andt<=“z”Thent=Chr(Asc(t)-30) → If t>=“a”Andt<=“z”Thent=Chr(Asc(t)-32)
s2=s2+t
i=i+1
t=Mid(s1,i,1)
Wend
Print“新字符串为:
”;s1→ Print“新字符串为:
”;s2
EndSub
程序填空
5题目:
下面的时间过程判断文本框text1中输入的数所在区间,并在文本框text2中输出判断结果。
程序代码:
privatesubcommand1_click()
Dimint1asinteger
int1=val(text1.text)
Selectcaseint1
Case0
Text2.text=“值为0”
Case1to10
Text2.text=“值在1和10之间(包括1和10)”
CaseIs>10
Text2.text=“值大于10”
Caseelse
Text2.text=“值小于0”
Endselect
Endsub
程序设计
5题目:
(事件)单击窗体。
(响应)求1!
+2!
+3!
+4!
+5!
并将结果输出到窗体上。
结果存入变量S中。
程序代码:
Privatesubform_click()
DimsAsInteger
S=0
Fori=1To5
x=1
Forj=1Toi
x=x*j
Nextj
S=s+x
Nexti
Prints
EndSub
6题目:
(事件)单击窗口(响应)求1-1/2+1/3-1/4+……+1/99-1/100的值将结果存入变量J中。
程序代码:
PrivateSubForm_Click()
DimIAsSingle
x=0
j=0
Fori=1To100
x=(-1)^(i+1)/i
J=j+x
Nexti
Printj
EndSub
程序改错
1题目:
求s=2!
+4!
+6!
+8!
,阶乘的计算用Function过程fact实现。
程序代码:
PrivateSubForm_Click()
Dimiasinteger,saslong
Fori=2to8→Fori=2to8step2
s=s+fact(i)
Nexti
Prints
EndSub
PublicFunctionfact()→PublicFunctionfact(Byvaln%)
Dimtaslong
Dimiasinteger
t=1
Fori=1ton
t=t*i
Nexti
Fact=i →Fact=t
Endfunction
2题目:
请根据下列描述编写购物优惠程序。
某商场为了加速促成商品流通,采用购物打折的优惠办法,每位顾客一次购物
(1)在100元以上者,按九五折优惠;
(2)在200元以上者,按九折优惠;(3)在300元以上者,按八折优惠;(4)在500元以上者,按七折优惠。
在窗体上添加两个文本框和一个命令按钮,要求在Text1中输入购物商品总金额,单击命令按钮,在Text2中输出优惠价。
程序代码:
PrivateSubCommand1_Click()
DimxAsInteger,yAsSingle
x=Val(Text1.Text)
If x<100then
x=y →y=x
Else
If x<200then
y=0.95*x
Else
If x<300then
y=0.9*x
Else
If x<300then
y=0.8*x
Else
y=0.7*x
ElseIf → EndIf
EndIf
EndIf
EndIf
Text2.text=x →Text2.text=y
EndSub
1题目:
由输入对话框输入n(n必须为大于零且小于30的自然数),计算下列表达式的值,并在标签框label1上显示。
Sum=1/2+1/6+……+1/(k*(k+1)) (k<=n)
Privatesubform_click()
Dimnasinteger,sumasdouble,kasinteger
N=val(inputbox(“n=”,”请输入自然数n(n>0且n<30)”))
Dowhilen<=0orn>30
N=val(inputbox(“n=”,”请重新输入”))
Loop
Sum=0
K=0
Do
K=k+1
Sum=sum+1/(k*(k+1))
Loopuntil(k+1)>n
Label1.caption=“sum”+str(sum)
Endsub
2题目:
下面的程序用于打印出以下图形。
*
***
*****
*******
*****
***
*
程序代码:
Privatesubform_click()
Dimi%,j%,k%
ForI=3to0step-1
Forj=0to2*i
Print“”;
Nextj
Fork=5to!
!
11-2*i!
!
Print“*”;
Nextk
print
Nexti
ForI=0to3
Forj=0to2*I+2
print“”;
Nextj
Fork=0to4-2*i
Print“*”;
Nextk
print
Nexti
Endsub