VB程序题目.docx
- 文档编号:10293456
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:18
- 大小:30.09KB
VB程序题目.docx
《VB程序题目.docx》由会员分享,可在线阅读,更多相关《VB程序题目.docx(18页珍藏版)》请在冰豆网上搜索。
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
Nexti
ForI=0to3
Forj=0to2*I+2
print“”;
Nextj
Fork=0to4-2*i
Print“*”;
Nexti
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序 题目