vb题目及答案.docx
《vb题目及答案.docx》由会员分享,可在线阅读,更多相关《vb题目及答案.docx(10页珍藏版)》请在冰豆网上搜索。
vb题目及答案
1、用二分法求函数f(x)=x3-6x-1=0在x=2~5范围内的x=2附近的一个实根,其计算误差为|x1-x2|<10-6。
将二维数组元素的行列互换(即求转置矩
privatesubommand1-click()
'用牛顿迭代法解方程
Dimxassingle,x0 assingle,fassingleflassingle
x0=2
Do
x0=x
f=(x^2-6)*x-1
fl=2*x^2-6
x=x0-f/fl
loopwhileabs(x-x0)>=0.
print
printtab(8);“解方程x^3-x*6-1=0"
printtab(8);“方程的解=”&x
endsub
2、将二维数组元素的行列互换(即求转置矩阵)
阵)
3、编写一个程序,利用随机函数生成15个80~99之间的随机整数,输出其中的最大值与最小值。
privatesubcommand1_click()
printa;
ifi=7ori=15thenprint
next
print"最大值:
";max
print"最小值:
";min
endsub
4、编写程序生成一个二维数组A(5,5),求两条对角线元素之和。
OptionExplicit
PrivateSubCommand1_Click()
Dima(5,5)AsInteger
DimiAsInteger
DimjAsInteger
DimxAsInteger
DimyAsInteger
Fori=0To5
Forj=0To5
a(i,j)=Int(100*Rnd)'随机产生一个0~100的整数
Ifi=jThenx=x+a(i,j)
Ifi+j=5Theny=y+a(i,j)
Next
Next
MsgBox"两条对角线元素之和分别是"&x&","&y
EndSub
5、编写程序将文本框Text1中的大写字母放到文本框Text2中。
privatesubFormlood()
DimaAsstring,bAsstring,cAsstring
a=Text1.Text.
Fori=1Tolen(a)
b=Mid(a,i,1)
IfAsc(b)>=65AndAsc(b)<=90
Thenc=c+b
EndIf
Text2.Text=c
6、随机生成20个两位正整数存放到Text1中,找出其中的偶数并以与找出相反的顺序存放到Text2中。
optionbace1
privatesubForm_laod()
DimaAsstring,bAsstring,cAsstring
DimiAsInterger
a=Text1.text
Fori=1toLen(a)
b=Mid(a,i,1)
IfAsc(b)>=65AndAsc(b)<=90
Thenc=c+b
EndIf
Nexti
Text2.text=c
7、编写程序将窗体上文本框Text1中的字符串中的所有大写字母出到文本框Text2中。
optionbace1
privatesubform_load()
DimaAsstring,bAsstring,iAsInterger,dAsinterger,cAsstringeAsstring
a=text1.text
Fori=1ToLen(a)
b=Mid(a,i,1)
ifase(b)>=65AcdAsc(b)<=90
Thenc=c+b
EndIf
Fori=1ToLen(c)
a(i)=Mid(c,i,1)
Nexti
d=Len(c)
Fori=1toLen(c)
e=a(d+i)+e
Nexti
Text2.text=e
8、编写程序输出二维数组中所有非零元素及其所在位置。
'用a(i,j)表示二维 print
optionbase1 print"非零元素所有位置为“
privatesubform.load() fori=1ton
dimiasinterger,jasinteger, forj=1tom
fori=1ton.a(n,m)assingle ifa(i,j)<>0then.
forj=1tom print"i="&i;spc(4);"j="&j
a(i,j)=rnd*100
printtab(8*j);a(i,j); endif
9、编程序求二维数组每行元素的和。
optionbase1 print
privatesub form_load() fori=1to n
Dim forj=1tom
Fori=1ton print"第"&i"行的和为"
forj=1tom
a(i,j)=Rnd*100
printtab(8*j);a(i,j)
10、从窗体界面的文本框输入三角形的3条边的长,计算三角形的面积。
1.PrivateSubCommand1_Click()
DimiAsInteger,a
(2)AsInteger,pAsSingle,sAsSingle
Fori=0To2
a(i)=Val(InputBox("输入第"&i&"条边的边长:
"))
Nexti
Ifa(0)+a
(1)>a
(2)Anda(0)+a
(2)>a
(1)Anda
(1)+a
(2)>a(0)Then
p=(a(0)+a
(1)+a
(2))/2
s=Sqr(p*(p-a(0))*(p-a
(1))*(p-a
(2)))
MsgBox(s)
Else
MsgBox("不能构成三角形")
EndIf
EndSub
2.PrivateSubCommand1_Click()
a=Abs(Val(InputBox("请输入三角形一边A")))
b=Abs(Val(InputBox("请输入三角形一边B")))
c=Abs(Val(InputBox("请输入三角形一边C")))
Ifa+b>cAnda+c>bAndb+c>aThen
q=(a+b+c)/2
s=Sqr(q*(q-a)*(q-b)*(q-c))
Prints
Else
MsgBox"输入的不是三角形的三条边,请重新输入!
"
EndIf
EndSub
11、是采用“冒泡排序”法从键盘上输入10个整数,将10个数从小到大排序。
optionbase1
privatesubform_click()
"起泡法排序
constn=10
dima(n)asinteger
dimiasinteger,jadinteger,tasinteger
randomize
print
print"显示排序前的A元素:
"
"产生1~100间的随机整数
fori=1Ton
a(i)=int(rnd*100)+1
printa(i);
nexti
forj=1ton-1
fori=1ton-j
ifa(i)>a(i+1)then '相邻的数比较并调换顺序
t=a(i) “t为中间变量
(i)=a(i+1)
a(i+1)=t
endif
nexti
nextj
print
print“显示排序后A元素:
”
Fori=1ton
printa(i); 在窗口显示排序后的A元素
nexti
恩德sub
12、求斐波那契数列:
1,1,2,3,5,8,…数列满足以下关系
privatesubform_click()
dimiasinteger,f()asinteger
dimnas integer
n=val(inputBox"请输入数组元素个数","输入”))
ifn<>0then
redimf(n)
f(0)=oTon-1
ifimd5=0andi<>0then
printtab(8*(iMod5));
endif
print
endif
endsub
13、用程序找出50以内所有能构成直角三角形的整数组
PrivateSubCommand1_Click()
Fora=1TO50
Forb=aTO50
C=Sqr(a^2+b^2)
Ifc<=50Andc=lnt(c)
nextb
nexta
ENdsub
14编程序实现计算1~l0之和。
privatesubcommand1_click()
dimiasinteger,sumasinteger
sum=0
fori=1to10
sum=sum+i
nexti
text1.text=sum
endsub
15、单击窗体产生10个2位随机正整
PrivateSubForm_Click()
Dimi,a(10),b,max
Fori=1To10
a(i)=Int(Rnd*90)+10
Ifmaxb=i
Printa(i);
Next
Print
Print"最大数:
";max
Print"在数组中的位置:
";b
EndSub
16. 计算并在窗体中显示出杨辉三角形(要求显示出8行)。
1
11
121
1331
14641
15101051
Private Sub Form_Click()
Print
Print
Print Tab(30); ""
Dim A(1 To 10, 1 To 10) As Integer
For i = 1 To 10
For j = 1 To i
If j = 1 Or i = j Then
A(i, j) = 1
Print A(i, j); Tab(5 * j);
Else
A(i, j) = A(i - 1, j) + A(i - 1, j - 1)
Print A(i, j); Tab(5 * j);
End If
Next j
Print
Next i
End Sub