VB题库.docx
《VB题库.docx》由会员分享,可在线阅读,更多相关《VB题库.docx(115页珍藏版)》请在冰豆网上搜索。
![VB题库.docx](https://file1.bdocx.com/fileroot1/2022-11/30/4ca4c113-b6b7-4382-b034-e16061226fb1/4ca4c113-b6b7-4382-b034-e16061226fb11.gif)
VB题库
'如果位置错误给出提示,否则分别显示删除前后的数组元素
'PrivateSubForm_Click()
DimA(10)AsInteger,XAsInteger,iAsInteger,kAsInteger
Fori=1To10
A(i)=Int(Rnd*90)+10
PrintA(i);
Nexti
Print
X=InputBox("请输入要删除第几位数字")
'**********FOUND**********
IfX>0AndX<=10Then'Ifx>0Then
'**********FOUND**********
Fork=XTo9'Fork=xTo10
A(k)=A(k+1)
Nextk
Print"删除后的数组:
"
Fori=1To9
PrintA(i);
Nexti
Else
Print"删除位置错误"
'**********FOUND**********
EndIf'End
EndSub
题目:
在下列程序段中,过程fb可以显示任意长度的菲
' 波那契数列,现要求通过键盘输入一数字,利用
' 该过程显示不超过指定数字大小的数列
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
OptionExplicit
PrivateSubForm_Click()
DimXAsInteger
X=Val(InputBox("请指定显示范围"))
'**********FOUND**********
Callfb(X)'callfby
EndSub
PublicSubfb(XAsInteger)
Dimi&,j%,k%
j=1
i=1
Printi;j;
k=i+j
'**********FOUND**********
DoUntilk>X'DoWhilek>x
Printk;
i=j
j=k
'**********FOUND**********
k=i+j'k=i-j
Loop
EndSub
题目:
下面的程序段用于实现以下功能:
建立一顺序文
' 件,存放10名同学的学号和三门功课成绩,显示
' 该文件内所有记录,并同时显示其总分和平均分
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
PrivateSubForm_Click()
Dimno%,c1%,c2%,c3%,iAsInteger
'**********FOUND**********
Open"c:
\2.txt"ForOutputAs#1'Open"c:
\2.txt"ForInputAs#1
Fori=1To3
no=InputBox("请输入学号")
c1=InputBox("请输入数学成绩")
c2=InputBox("请输入语文成绩")
c3=InputBox("请输入外语")
Write#1,no,c1,c2,c3
Nexti
Close#1
'**********FOUND**********
Open"c:
\2.txt"ForInputAs#1'Open"c:
\2.txt"ForOutputAs#1
Fori=1To3
'**********FOUND**********
Input#1,no,c1,c2,c3'Print#1,no,c1,c2,c3
Printno,c1,c2,c3,c1+c2+c3,(c1+c2+c3)/3
Nexti
Close#1
EndSub
题目:
以下程序段用于输出100-300的所有素数
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
PrivateSubForm_Click()
DimNAsInteger,kAsInteger,iAsInteger,switAsInteger
ForN=101To300Step2
k=Int(Sqr(N))
i=2
'**********FOUND**********
swit=0'swit=1
'**********FOUND**********
Whileswit=1'Whileswit=0
IfNModi=0Then
swit=1
Else
'**********FOUND**********
i=i+1'i=i-1
EndIf
Wend
Ifswit=0Then
PrintN;
IfNMod7=0ThenPrint
EndIf
NextN
EndSub
题目:
在下面的程序段中过程pd可以判断任意三个数能
'否构成三角形的三边,利用该过程的判定结果,
'对能构成三角形的计算其面积,构不成的显示"
'不能构成三角形"
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
OptionExplicit
PrivateSubForm_Click()
'**********FOUND**********
DimX%,Y%,z%,s!
bAsBoolean,hAsSingle'Dimx%,y%,z%,s%,bAsBoolean,hAsSingle
X=InputBox("请输入三角形的边长")
Y=InputBox("请输入三角形的边长")
z=InputBox("请输入三角形的边长")
b=pd(X,Y,z)
h=(X+Y+z)/2
'**********FOUND**********
IfbThen'IfNotbThen
s=Sqr(h*(h-X)*(h-Y)*(h-z))
Print"三角形面积是";s
Else
Print"不能构成三角形"
EndIf
EndSub
'**********FOUND**********
PublicFunctionpd(X%,Y%,z%)AsBoolean'PublicFunctionpd()AsBoolean
IfX>0AndY>0Andz>0AndX+Y>0AndX+z>YAndY+z>XThen
pd=True
Else
pd=False
EndIf
EndFunction
题目:
以下程序段用于打印如下图形式的九九乘法表:
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
PrivateSubForm_Click()
DimiAsInteger,jAsInteger,kAsInteger
PrintTab(30);"9*9table"
Print:
Print
Print"*";
Fori=1To9
'**********FOUND**********
PrintTab(i*6);i;'PrintTab(i*6);i
Nexti
Print
Forj=1To9
Printj;"";
'**********FOUND**********
Fork=1To9'Fork=1To9(可能会根据图的样式更改为jTo9或1Toj)
'**********FOUND**********
PrintTab(k*6);j*k;"";'PrintTab(j*6);j*k;"";
Nextk
Print
Nextj
EndSub
题目:
一个两位的正整数,如果将它的个位数与十位数
'对调,则产生另一个正整数,我们把后者叫做前
'者的对调数,现给定一个两位的正数,请找到另
'一个两位的正整数,使得这两个两位正整数之和
'等于它们各自的对调数之和。
例如;
'12+32=23+21。
下面程序把具有这种特征的一对对
'两位正整数都找出来。
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
OptionExplicit
PrivateSubForm_Click()
DimkAsInteger,gAsInteger,hAsInteger,MAsInteger
DimNAsInteger,iAsInteger,TAsInteger,sAsInteger,jAsInteger
k=InputBox("请输入一个两位数")
k=Val(k)
g=Int(k/10)
'**********FOUND**********
h=k-g*10:
M=h*10+g'h=k-g*10m=h*10+g
Print
Print"输入的两位数是";k
Print
'**********FOUND**********
ForN=11To99'Forn=1To99
i=Int(N/10)
j=N-i*10
T=i*10+j
s=j*10+i
Ifk+N=M+sThen
Print"";k;"+(";T;")=(";s;")+";M
'**********FOUND**********
EndIf'End
NextN
EndSub
题目:
求s=1!
+3!
+5!
+7!
,阶乘的计算用Function过程
'fact实现.
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
PrivateSubForm_Click()
DimiAsInteger,sAsInteger
'**********FOUND**********
Fori=1To7Step2'Fori=1To7
s=s+fact(i)
Nexti
Prints
EndSub
'**********FOUND**********
PublicFunctionfact%(N%)'PublicFunctionfact()
DimTAsInteger,iAsInteger
T=1
Fori=1ToN
T=T*i
Nexti
'**********FOUND**********
fact=T'fact=i
EndFunction
题目:
下面的程序段的功能是:
读入八进制数,将其转
'换成把十进制数
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
PrivateSubForm_Click()
Dimoct_numAsString
DimlengthAsInteger,sAsInteger,NAsInteger,iAsInteger,dAsString,jAsString
oct_num=InputBox("请输入一八进制数")
'**********FOUND**********
length=Len(oct_num)'length=length(oct_num)
s=0
N=0
'**********FOUND**********
Fori=lengthTo1Step-1'Fori=lengthTo1
d=Mid(oct_num,i,1)
s=s+d*8^N
N=N+1
'**********FOUND**********
Nexti'Nextj
Print"十进制数是:
";s
EndSub
题目:
以下程序段用于计算货物运费?
设货物运费每吨
'单价p元与运输距离s公里之间有如下关系:
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
OptionExplicit
PrivateSubForm_Click()
Dimw!
s!
DimPAsCurrency,TAsCurrency
w=InputBox("请输入货物重量")
s=InputBox("请输入托运距离")
SelectCases
CaseIs<100
P=30
'**********FOUND**********
CaseIs<200
P=27.5
CaseIs<300
P=25
CaseIs<400
P=32.5
'**********FOUND**********
CaseElse
P=20
'**********FOUND**********
EndSelect
T=P*w*s
Print"总运费:
";T;"元"
EndSub
题目:
以下程序用于建立一个三行三列的矩阵,使其两
'条对角线上数字为1,其余位置为0
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
PrivateSubForm_Click()
DimX(3,3),NAsInteger,MAsInteger
ForN=1To3
ForM=1To3
'**********FOUND**********
IfM=NOr((M=3AndN=1)Or(M=1AndN=3))ThenX(N,M)=1ElseX(N,M)=0'Ifn=mThenx(n,m)=1Elsex(n,m)=0(我无法办到直接用表达式输出a(1,3)和a(3,1)也是1)
'**********FOUND**********
NextM,N'Nextn,m
ForN=1To3
ForM=1To3
'**********FOUND**********
PrintX(M,N);'Printx(m,n)
NextM
Print
NextN
EndSub
题目:
下面程序段将7个随机整数从小到大排序
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
PrivateSubForm_Click()
DimT%,M%,N%,w%,A(7)AsInteger
ForM=1To7
A(M)=Int(10+Rnd()*90)
PrintA(M);"";
NextM
Print
ForM=1To6
T=M
'**********FOUND**********
ForN=T+1To7'Forn=2To7
'**********FOUND**********
IfA(T)>A(N)ThenT=N'Ifa(t)>a(n)Thenn=t
NextN
'**********FOUND**********
IfT<>MThen'Ift=mThen
w=A(M)
A(M)=A(T)
A(T)=w
EndIf
NextM
ForM=1To7
PrintA(M);"";
NextM
EndSub
题目:
下面程序可输出如下图形:
'*
'***
'*****
'*******
'*********
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
PrivateSubForm_Click()
DimMAsInteger,NAsInteger,sAsString,iAsInteger,jAsInteger
N=4
M=1
s="*"
Fori=5To1Step-1
'**********FOUND**********
PrintSpc(i);'PrintSpc(n)
Forj=1To2*M-1
Prints;
Nextj
Print
'**********FOUND**********
N=N-1'n=n+1
'**********FOUND**********
M=M+1'm=m-1
Nexti
EndSub
题目:
下面的程序段用于删除数组中指定位置的数字,
'如果位置错误给出提示,否则分别显示删除前
'后的数组元素
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
PrivateSubForm_Click()
DimA(10)AsInteger,XAsInteger
DimiAsInteger,kAsInteger
Fori=1To10
A(i)=Int(Rnd*90)+10
PrintA(i);
Nexti
Print
X=InputBox("请输入要删除第几位数字")
'**********FOUND**********
IfX>=0AndX<=10Then
'**********FOUND**********
Fork=XTo9
'**********FOUND**********
A(k)=A(k+1)
Nextk
Print"删除后的数组:
"
Fori=1To9
PrintA(i);
Nexti
Else
Print"删除位置错误"
EndIf
EndSub
题目:
该程序实现将输入的0-255之间的正整数转
'换成二进制数
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
PrivateSubForm_Click()
ConstN=8
DimA(N)AsInteger,sAsString,MAsInteger,XAsInteger
X=Val(InputBox("请输入一个0-255之间的正整数:
"))
PrintX
'**********FOUND**********
ForM=0ToN'Form=1Ton
A(M)=XMod2
'**********FOUND**********
X=X\2'x=x/2
NextM
s=""
ForM=NTo0Step-1
'**********FOUND**********
s=s+Str(A(M))'s=Str(a(m))
NextM
Prints
EndSub
题目:
以下程序段用于计算5的N次方?
'------------------------------------------------
'注意:
不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------
PrivateSubForm_Cli