
vb程序设计
引黄-公司采购单模板
2023年3月20日发(作者:浮力怎么算)3.题目:(事件)单击窗体。(响应)求一个数(该数为1000以内的数),它除3余2,除5余3,
除7余2,请将满足上面条件的最小数保存到sum变量中。使用for...next语句完成程序
DimiAsInteger
Fori=2To1000
IfiMod3=2AndiMod5=3AndiMod7=2Then
Printi
ExitFor
EndIf
Nexti
sum=i
4.题目:(事件)单击窗体。(响应)求10!的值,并将结果输出到窗体上。将结果存入变量
SUM中。
DimiAsInteger
sum=1
Fori=1To10
sum=sum*i
Next
Printsum
7.题目:(事件)单击窗体。(响应)求1+2+3+……+100的值,并把结果输出在窗体上。结果
存入变量SUM中。
DimiAsInteger
Fori=1To100
sum=sum+i
Next
Printsum
9.题目:(事件)单击窗体。(响应)求1!+2!+3!+4!+5!并将结果输出到窗体上。结果存入变
量S中
Dimi,j,kAsInteger
Fori=1To5
k=1
Forj=1Toi
k=k*j
Next
s=s+k
Next
Print(CStr(s))
11.题目:(事件)单击命令按钮Command1。(响应)计算如下表达式s的值,
s=1+(1*2)+(1*2*3)+……+(1*2*3*……*6)并将结果输出到文本框Text1中。
DimjAsInteger
DimiAsInteger
j=1
s=0
Fori=1To6
j=j*i
s=s+j
Nexti
=s
13.题目:(事件)双击窗体。(响应)求1+5+10+15+……+500的和,并将结果输出到窗体上。
将结果存入变量SUM中。
DimiAsInteger
Fori=1To500
IfiMod5=0Then
sum=sum+i
EndIf
Next
Printsum
14.题目:(事件)单击窗体。(响应)已知S=1+1/4+1/9+1/16+1/25+…+1/100,结果输出在
窗体上。
DimiAsInteger
s=0
Fori=1To10
s=s+1/(i^i)
Next
Print(s)
15.题目:(事件)双击窗体。(响应)求3+6+9+12+15+18+……+300的和,并将结果输出到窗
体上。将结果存入变量SUM中。
DimiAsInteger
Fori=3To300
IfiMod3=0Then
sum=sum+i
EndIf
Next
Printsum
19.题目:请用Select语句编程计算打折后的金额?
'折扣方法如下:
'购物300以下,无优惠(使用MsgBox显示"无优惠");
'购物300以上,95折;
'购物500以上,9折;
'购物1000以上,85折;
'购物5000以上,8折?
SelectCasen
CaseIs>5000
n=n*0.8
CaseIs>1000
n=n*0.85
CaseIs>500
n=n*0.9
CaseIs>300
n=n*0.95
CaseElse
MsgBox"无优惠"
EndSelect
20.题目:(事件)单击窗体。(响应)求200~300之间既能被3整除又能被7整除的数。并求出所
有数之和存入变量SUM中
DimiAsInteger
Fori=201To300
If((iMod3)=0)And((iMod7)=0)Then
Print(CStr(i))
sum=sum+i
EndIf
Next
Printsum
21.题目:(事件)单击窗体。(响应)求从100到1000之间所有是3的倍数的数之和,当和大
于3000时,停止计算并输出和。请将结果输出到窗体上,并存入所给变量SUM中。使用
for...next语句完成程序
DimiAsInteger
sum=0
fori=100to1000
ifimod3=0then
sum=sum+i
ifsum>3000then
exitfor
endif
endif
next
Printsum
22.题目:(事件)双击窗体。(响应)求出100~200之间,能被5整除,但不能被3整除的数。
并求所有数之和,存入变量中SUM中。
DimiAsInteger
Fori=100To200
If((iMod5)=0)And((iMod3)0)Then
Print(CStr(i))
sum=sum+i
EndIf
Next
25勾股定理中3个数的关系是a2+b2=c2。编写程序,输出20以内满足上述关系的整数组合。
PrivateSubForm_Click()
DimaAsInteger
DimbAsInteger
DimcAsInteger
Fora=1To20
Forb=1To20
Forc=1To20
Ifa^2+b^2=c^2Then
Print"a=";a,"b=";b,"c=";c
EndIf
Nextc
Nextb
Nexta
EndSub
26打印如下金字塔
PrivateSubForm_Click()
DimiAsInteger
DimjAsInteger
Fori=1To9
PrintSpc(-3*i+30);
Forj=1Toi
Printj;
Next
Forj=i-1To1Step-1
Printj;
Next
Next
EndSub
PrivateSubForm_click()
Dimi%,j%
Fori=0To8'外循环确定行数
PrintTab(27-3*i);'确定每行的起点
Forj=1Toi
Printj;'打印一行的前半递增数字部分
Nextj
Forj=i+1To1Step-1
Printj;'打印一行的后半递减数字部分
Nextj
Print'换行
Nexti
EndSub
28输入一个字符串,统计其中有多少个小写字母,多少个数字字符,多少个其他字符。
PrivateSubForm_Click()
DimstrAsString
DimxAsString
DimiAsInteger
Dimn1%,n2%,n3%
str=InputBox("请输入一个字符串")
Fori=1ToLen(str)
x=Mid(str,i,1)
SelectCasex
Case"a"To"z"
n1=n1+1
Case"1"To"9"
n2=n2+1
CaseElse
n3=n3+1
EndSelect
Next
Print"输入的字符串是:";str
Print"共有小写字母";n1;"个"
Print"共有数字字符";n2;"个"
Print"共有其他字符";n3;"个"
EndSub
29求一个数,它除3余2,除5余3,除7余2,求满足要求的最小自然数。
PrivateSubForm_Click()
'除3余2,除5余3,除7余2
DimnAsInteger
Forn=1To100
If(nMod3=2)And(nMod5=3)And(nMod7=2)Then
Print"这个数是";n
ExitFor
EndIf
Next
EndSub
30输入一个数,判断这个数是否既可以被3整除,又可以被5整除。
PrivateSubForm_Click()
'既可以被3整除,又可以被5整除
DimnAsInteger
n=InputBox("请输入一个整数")
IfnMod15=0Then
Print"这个数能够被3整除也能被5整除"
Else
Print"这个数不符合要求"
EndIf
EndSub
31寻找水仙花数。在100~999之间找出所有这样的数并输出:该数的值等于该数中各
位数字的立方和。(例如153=13+53+33)
PrivateSubForm_Click()
Forn=100To999
a=n100
b=(nMod100)10
c=nMod10
Ifn=a^3+b^3+c^3Then
Printn;
x=x+1
IfxMod5=0ThenPrint
EndIf
Next
EndSub
32评分。在某次比赛中,有7个评委打分(由键盘输入7个评委的分数),去掉一个
最高分,去掉一个最低分后,求出平均分为该参赛者的最终得分。写程序实现。
DimnAsSingle
DimsAsSingle
Dimmax!,min!
Dimavg!
max=0
min=100
Fori=1To7
n=InputBox("请输入第"&i&"位评委的分数")
Ifn>maxThenmax=n
Ifn s=s+n Next s=s-max-min avg=s/5 Print"最高分是:",max Print"最低分是:",min Print"平均分是:",avg EndSub 33.设有一个一维数组,数组长度由键盘输入。编写程序将数组逆序并输出。 PrivateSubForm_Click() Dima()AsInteger,b()AsInteger Dimn% n=InputBox("请输入数组的长度") ReDima(n) Fori=1Ton a(i)=Int(Rnd*101) Printa(i); Next Print ReDimb(n) Fori=1Ton b(i)=a(n-i+1) Next Print"逆序后的数组为:" Fori=1Ton Printb(i); Next EndSub 34.编写程序,用随机函数产生20个在[1,100]之间的正整数,找出其中的最大数和最 小数并输出,同时输出下标。 OptionBase1 PrivateSubForm_Click() Dima(20)AsInteger Dimm%,n%,i%,Max%,Min% Randomize Fori=1To20 a(i)=Int(Rnd*100)+1 Printa(i); Next Print Max=a(1) Min=a(1) Fori=2To20 Ifa(i)>MaxThenMax=a(i):m=i Ifa(i) Next Print"最大的数是:";Max;"最大数的下标是:";m Print"最小的数是:";Min;"最小数的下标是:";n EndSub 35.编写程序,显示斐波那契数列的第15项。(两种方法)斐波纳契数列(Fibonacci Sequence),又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、…… PrivateSubForm_Click() Dims1%,s2%,s% s1=1 s2=1 Fori=3To15 s=s1+s2 s1=s2 s2=s Next Print"第15项是:";s EndSub 38.题目:编写函数fun,其功能是:能计算从1开始到n的 '自然数中偶数的平方的和。 DimsumAsInteger,iAsInteger sum=0 Fori=2TonStep2 sum=sum+i*i Next fun=sum 39.题目:编写函数fun其功能是:根据整型形参m,计算 '如下公式的值:y=1/2+1/4+1/6+...+1/2m '例如:若m=9,则应输出:1.413 DimyAsDouble DimiAsInteger Fori=1Tom y=y+1/(2*i) Next fun=y 40.题目:编写函数fun,函数的功能是:求从m到n的乘积并显示, '如:m为2,n为4时,显示"24" '存储连乘的乘积的变量必须为Product '要求使用For语句来实现。 Product=1 Fori=mTon Product=Product*i Nexti fun=Product 41.题目:编写函数fun,函数的功能是:求1~1000以内能 '同时被m、n整除的数的总和并显示。如: 'm为15,n为11时,显示"3465" '存储总和的变量必须为Sum ‘要求使用For语句来实现。 Sum=0 Fori=1To1000 IfiModm=0AndiModn=0Then Sum=Sum+i EndIf Nexti fun=Sum 42.题目:编写函数fun,函数的功能是:求1~100以内 '能被m整除或能被n整除的数的总和并显示。如: 'm为15,n为11时,显示"810" '存储总和的变量必须为Sum '要求使用For语句来实现。 Sum=0 Fori=1To100 IfiModm=0OriModn=0Then Sum=Sum+i EndIf Nexti fun=Sum 3.题目:编写函数fun,函数的功能是:当x的初值为10,每年增长率为千分之 八,计算多少年以后x的值能达到y,并显示所需年数的值(变量名必须为n)。 要求使用DoWhile...Loop语句来实现。 答案:Functionfun(n%) DimxAsInteger DimyAsInteger DimnAsInteger x=10 DoWhilex<=y x=x*1.008 n=n+1 fun=n EndFunction 13.题目:(事件)单击窗体。(响应)求10~20之间所有素数的乘积并输出在窗体 上。将结果存入变量L中。 答案:DimiResAsLong DimbFlagAsBoolean iRes=1 Fori=10To20 bFlag=False Forj=2Toi/2 IfiModj=0Then bFlag=True ExitFor EndIf Nextj IfNotbFlagThen iRes=iRes*i EndIf Nexti PrintiRes