郑州轻院VB综合题.docx
《郑州轻院VB综合题.docx》由会员分享,可在线阅读,更多相关《郑州轻院VB综合题.docx(15页珍藏版)》请在冰豆网上搜索。
郑州轻院VB综合题
编写程序,实现一维数组A(M)元素值循环左移一位。
例:
A=(12345)左移后,A=(23451)
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dima(),i,m,tAsInteger
DimstAsString
st=""
m=InputBox("请输入M的值:
")
ReDima(m)
Fori=0Tom
a(i)=InputBox("请输入a("+Str(i)+"):
")
Next
t=a(0)
Fori=1Tom
a(i-1)=a(i)
Next
a(m)=t
Fori=0Tom
st=st+Str(a(i))
Next
TextBox1.Text=st
EndSub
编写程序,实现一维数组A(M)元素值循环右移一位。
例:
A=(12345)右移后,A=(51234)
(本题不要求填写运行结果)
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dima()AsInteger
Dimm,i,tAsInteger
Dimstr1AsString
m=Val(InputBox("m"))
ReDima(m)
str1=""
Fori=0Tom
a(i)=Val(InputBox("inputa"))
Next
t=a(m)
Fori=m-1To0Step-1
a(i+1)=a(i)
Next
a(0)=t
Fori=0Tom
str1=str1+Str(a(i))
Next
MsgBox(str1)
EndSub
编写程序,实现一维数组A(M)元素值循环右移2位。
例:
A=(12345)右移后,A=(45123)
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dima()AsInteger
Dimm,i,j,tAsInteger
Dimstr1AsString
m=Val(InputBox("m"))
ReDima(m)
str1=""
Fori=0Tom
a(i)=Val(InputBox("inputa"))
Next
Fori=1To2
t=a(m)
Forj=m-1To0Step-1
a(j+1)=a(j)
Next
a(0)=t
nexti
Fori=0Tom
str1=str1+Str(a(i))
Next
MsgBox(str1)
EndSub
编写程序,实现一维数组A(M)元素值的循环左移3位。
例:
A=(12345)左移后,A=(45123)
PrivateSubButton8_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton8.Click
Dima()AsInteger={1,2,3,4,5,6,7,8,9,10}
Dimi,j,tAsInteger
DimstAsString
st=""
Fori=1To3
t=a(0)
Forj=1To9
a(j-1)=a(j)
Next
a(9)=t
Next
Fori=0To9
st=st+Str(a(i))
Next
TextBox1.Text=st
EndSub
编写程序,求一个十进制整数N的各位数字之和。
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
Dimn,sAsInteger
n=InputBox("请输入n:
")
s=0
DoWhilen>0
s=s+nMod10
n=n\10
Loop
TextBox1.Text=s
EndSub
编写程序,输入一段英文,统计26个字母出现的频率,并按其出现频率由高到低排序输出。
PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click
Dimcs(26),i,jAsInteger
Dimpl(26),fAsDouble
Dimch,st,tc,zm(26)AsString
ch=Lcase(InputBox("请输入一个串:
"))
st=""
Fori=1To26
cs(i)=0
pl(i)=0
zm(i)=Chr(96+i)
Next
Fori=1ToLen(ch)
cs(Asc(Mid(ch,i,1))-Asc("a")+1)=cs(Asc(Mid(ch,i,1))-Asc("a")+1)+1
Next
Fori=1To26
pl(i)=cs(i)/Len(ch)
Next
Fori=1To25
Forj=1To26-i
Ifpl(j)f=pl(j)
pl(j)=pl(j+1)
pl(j+1)=f
tc=zm(j)
zm(j)=zm(j+1)
zm(j+1)=tc
EndIf
Next
Next
‘另一种排序算法
Fori=1To25
Forj=1To26-i
Ifpl(j)f=pl(j)
pl(j)=pl(j+1)
pl(j+1)=f
tc=zm(j)
zm(j)=zm(j+1)
zm(j+1)=tc
EndIf
Next
Next
Fori=1To26
st=st+zm(i)
Next
TextBox1.Text=st
EndSub
‘另解
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dima(25)AsString
Dimb(25),i,j,n,p,mAsInteger
Dimstr1,str2,str3,str4AsString
str1=lcase(InputBox("inputastring"))
n=Len(str1)
a(0)="a"
Fori=1To25
a(i)=Chr(Asc(a(0))+i)
Next
Forj=1Ton
str2=Mid(str1,j,1)
Fori=0To25
Ifa(i)=str2Then
b(i)=b(i)+1
ExitFor
EndIf
Next
Next
Fori=0To24
p=i
Forj=i+1To25
Ifb(p)
Nextj
Ifp<>iThen
m=b(i)
b(i)=b(p)
b(p)=m
str3=a(i)
a(i)=a(p)
a(p)=str3
EndIf
Nexti
Fori=0To25
Ifb(i)>0Then
str4=str4+a(i)+""
EndIf
Next
MsgBox(str4)
EndSub
编写程序,从键盘输入N个字符串,将字符串按从小到大的顺序排列并输出。
PrivateSubButton4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton4.Click
Dims(),t,stAsString
Dimi,n,jAsInteger
n=InputBox("请输入n的值:
")
ReDims(n)
Fori=1Ton
s(i)=InputBox("请输入串s("+Str(i)+")")
Next
Fori=1Ton-1
Forj=1Ton-i
Ifs(j)>s(j+1)Then
t=s(j)
s(j)=s(j+1)
s(j+1)=t
EndIf
Next
Next
Fori=1Ton
st=st+s(i)+Chr(13)+Chr(10)
Next
TextBox1.Text=st
EndSub
编写程序,从键盘输入一个字符串,分别统计字母“M”和“m”在其中出现的次数。
(本题不要求填写运行结果)
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dimstr1,str2AsString
Dimi,n,n1,n2AsInteger
str1=InputBox("inputastring")
n=Len(str1)
n1=0
n2=0
Fori=1Ton
str2=Mid(str1,i,1)
Ifstr2="M"Thenn1=n1+1
Ifstr2="m"Thenn2=n2+1
Next
MsgBox("M出现"+Str(n1)+"次,"+"m出现"+Str(n2)+"次")
EndSub
编写程序,建立一个有10个元素组成的一维数组(数据自定,并已按降序排列),要求从键盘输入一个数据,并将其插入到数组适当位置,即插入后的数组仍按降序排列。
PrivateSubButton5_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton5.Click
Dima()AsInteger={121,110,108,100,90,80,70,50,40,20}
Dimi,xAsInteger
DimstAsString
st=""
ReDimPreservea(10)
x=InputBox("请输入x:
")
Fori=9To0Step-1
Ifa(i)a(i+1)=a(i)
Else
ExitFor
EndIf
Next
a(i+1)=x
Fori=0To10
st=st+Str(a(i))
Next
TextBox1.Text=st
EndSub
编写程序,从键盘输入一批(不少于10个)任意数据,去掉其中的最大数和最小数,求剩余数据的平均值。
PrivateSubButton6_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton6.Click
Dimt,min,max,gs,sumAsDouble
DimiAsInteger
t=InputBox("请输入一个数据:
")
gs=1
sum=t
max=t
min=t
Fori=1To13
t=InputBox("请输入一个数据:
")
Iftmin=t
EndIf
Ift>maxThen
max=t
EndIf
sum=sum+t
gs=gs+1
Next
sum=sum-min-max
sum=sum/(gs-2)
TextBox1.Text=sum
EndSub
编写程序,从键盘输入一批(不少于10个)任意数据,求这些数据中的最大数、最小数和平均值,并将统计结果保存到一个数据文件(数据文件不需要上传)中。
(本题不要求填写运行结果)
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dima()AsInteger
Dimmax,min,sum,n,iAsInteger
DimaverAsDouble
n=Val(InputBox("inputthenumberofdata"))
ReDima(n-1)
a(0)=Val(InputBox("inputadata"))
max=a(0)
min=a(0)
sum=a(0)
Fori=1Ton-1
a(i)=Val(InputBox("inputadata"))
sum=sum+a(i)
Ifa(i)>maxThenmax=a(i)
Ifa(i)Next
aver=sum/n
FileOpen(1,"d:
\da1.dat",OpenMode.Output)
WriteLine(1,max,min,aver)
FileClose
(1)
EndSub
编写程序,建立一个5×5的二维数组(数据自定或由程序随机产生),分别计算两条对角线上的元素之和,并找出第3列元素中的最大者。
PrivateSubButton7_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton7.Click
Dima(4,4),max,sum,i,jAsInteger
Fori=0To4
Forj=0To4
a(i,j)=1000*Rnd()
Next
Next
sum=0
Fori=0To4
sum=sum+a(i,i)+a(i,4-i)
Next
max=a(0,2)
Forj=1To4
Ifa(j,2)>maxThen
max=a(j,2)
EndIf
Next
TextBox1.Text=sum
TextBox2.Text=max
EndSub
编写程序,自己产生一个二维数组A(N,N),(N取5),计算数组中每一列数据的平均值。
PrivateSubButton11_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton11.Click
Dima(5,5),i,jAsInteger
Dimb(5)AsDouble
DimstAsString
Fori=1To5
Forj=1To5
a(i,j)=1000*Rnd()
Next
Next
Fori=1To5
b(i)=0
Next
Fori=1To5
Forj=1To5
b(i)=b(i)+a(j,i)
Next
Next
Fori=1To5
b(i)=b(i)/5
st=st+Str(b(i))
Next
TextBox1.Text=st
EndSub
编写程序,建立一个6×6的二维数组(数据自定或由程序随机产生),输出数组中的最大元素,并统计最大元素所在行的所有元素之乘积。
PrivateSubButton10_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton10.Click
Dima(5,5),max,cj,i,j,rowAsLong
Fori=0To5
Forj=0To5
a(i,j)=100*Rnd()
Next
Next
max=a(0,0)
row=0
Fori=0To5
Forj=0To5
If(a(i,j)>max)Then
max=a(i,j)
row=i
EndIf
Next
Next
cj=1
Forj=0To5
cj=cj*a(row,j)
Next
TextBox1.Text=max
TextBox2.Text=cj
EndSub
编写程序,建立一个4×6的二维数组(数据自定或由程序随机产生),求各行最大元素之和。
(本题不要求填写运行结果)
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dima(3,5),b(3)AsInteger
Dimi,j,sAsInteger
Dimstr1AsString
Randomize()
Fori=0To3
Forj=0To5
a(i,j)=Int(Rnd()*101)
str1=str1+Str(a(i,j))+""
Next
str1=str1+Chr(13)+Chr(10)
Next
Fori=0To3
b(i)=a(i,0)
Forj=1To5
Ifb(i)Next
s=s+b(i)
Next
MsgBox(str1+Chr(13)+Chr(10)+"各行最大元素之和:
"+Str(s))
EndSub
编写程序,建立一个4×6的二维数组(数据自定或由程序随机产生),输出数组中的最大元素,并显示其下标位置。
(本题不要求填写运行结果)
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dima(3,5)AsInteger
Dimi,j,max,p,qAsInteger
Dimstr1AsString
Randomize()
Fori=0To3
Forj=0To5
a(i,j)=Int(Rnd()*101)
str1=str1+Str(a(i,j))+""
Next
str1=str1+Chr(13)+Chr(10)
Next
max=a(0,0)
p=0
q=0
Fori=0To3
Forj=0To5
Ifmaxmax=a(i,j)
p=i
q=j
EndIf
Next
Next
p=p+1
q=q+1
str1=str1+"最大元素为"+Str(max)+Chr(13)+Chr(10)+"位于第"+Str(p)+"行,第"+Str(q)+"列"
MsgBox(str1)
EndSub