您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 中国海洋大学VB上机试题
读书破万卷下笔如有神1.某数组有20个元素,其值为随机产生的两位整数。现要求将前10个元素与后10个元素对换。即第1个元素与第20个元素互换,第2个数与第19个元素互换,…,第10个元素与第11个元素互换。在窗体上输出数组原来各元素的值与对换后各元素的值。OptionExplicitDima(1To20)AsInteger,iAsInteger,jAsInteger,tAsIntegerPrivateSubForm_Load()me.ShowPrint原始数组是:RandomizeFori=1To20a(i)=Int(Rnd*90+10)'10to99Printa(i);IfiMod10=0ThenPrintNextiPrintPrint现在数组是:Fori=1To10j=21-it=a(i):a(i)=a(j):a(j)=tNextiFori=1To20Printa(i);IfiMod10=0ThenPrintNextiEndSub2.从数组中删除一个数。先定义一个一维数组,大小、数组的值自定。从键盘上输入一个数,若这个数在数组当中,就把它删除;若这个数不在数组中,提示“该数不在数组中”注意:1)如果数组中存在多个与该数相同的元素,每一个都能删除;2)能实现多次删除Dima()AsIntegerPrivateSubCommand1_Click()DimiAsInteger,jAsInteger,nAsInteger,kAsInteger,mAsInteger,flagAsBooleann=InputBox(查找的数是:)i=0:flag=FalseDoIfa(i)=nThenj=i:flag=TrueFork=jToUBound(a)-1a(k)=a(k+1)NextkReDimPreservea(UBound(a)-1)i=i-1读书破万卷下笔如有神EndIfi=i+1LoopWhile(i=UBound(a))Ifflag=FalseThenMsgBox(n&不在该数组中)ElsePrint删除&n&后的数组是:Fori=0ToUBound(a)Printa(i);NextiEndIfEndSubPrivateSubForm_Load()DimiAsIntegerReDima(9)AsIntegerShowRandomizePrint原来数组为:Fori=0To9a(i)=Int(Rnd*99+1)Printa(i);NextiPrintEndSub3.数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数插入到数组中,插入后数组仍有序。注意:要求利用动态数组,能够实现多次插入OptionBase1Dima()AsInteger,iAsInteger,kAsInteger,mAsInteger,nAsIntegerPrivateSubCommand1_Click()Print随机产生的原数组:ReDimPreservea(10)n=10Fori=1TonRandomizea(i)=Int(Rnd*99+1)NextFori=1Ton-1Forj=i+1TonIfa(i)a(j)Thent=a(i):a(i)=a(j):a(j)=t读书破万卷下笔如有神EndIfNextjPrinta(i);NextiPrinta(n)EndSubPrivateSubCommand2_Click()n=n+1ReDimPreservea(n)m=InputBox(输入一个正整数)PrintPrint插入;m;后的数组为Ifa(1)mAnda(n-1)mThenFori=2Ton-2Ifa(i)=mAnda(i+1)=mThenj=i:ExitForNexta(j+1)=mFori=1TonPrinta(i);NextEndIfIfm=a(1)ThenFori=nTo1Step-1a(i+1)=a(i)Nexta(1)=mFori=1TonPrinta(i);NextEndIfIfm=a(10)Thena(n)=mFori=1TonPrinta(i);NextEndIfEndSub3.数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数插入到数组中,插入后数组仍有序。注意:要求利用动态数组,能够实现多次插入读书破万卷下笔如有神OptionExplicitOptionBase1Dima()AsInteger,iAsInteger,kAsInteger,mAsInteger,nAsInteger,jAsInteger,tAsIntegerPrivateSubCommand1_Click()n=n+1ReDimPreservea(n)m=Val(InputBox(请输入要插入的数据))Fori=1Ton-1Ifma(i)ThenExitForNextiFork=nToi-1Step-1a(k)=a(k-1)Nextka(k)=mFori=1Ton-1Forj=i+1TonIfa(i)a(j)Thent=a(i):a(i)=a(j):a(j)=tEndIfNextjPrinta(i);NextiPrinta(n)PrintEndSubPrivateSubForm_Load()Shown=8ReDima(n)a(1)=5:a(2)=10:a(3)=15:a(4)=20:a(5)=30:a(6)=90:a(7)=108:a(8)=1025Fori=1TonPrinta(i);NextPrintEndSub4.6个评委为4位歌手打分,分数介于1-100之间。去掉一个最高分,一个最低分,求出每位选手的最后得分。将4位歌手得分从高到低排列输出,同时输出该选手的编号。如:歌手395分歌手187分歌手480分歌手270分读书破万卷下笔如有神OptionExplicitOptionBase1PrivateTypecj'自定义类型naAsString*3fsAsIntegerEndTypeDima(4,6)AsSinglePrivateSubCommand1_Click()DimiAsInteger,jAsIntegerFori=1To4Forj=1To6a(i,j)=InputBox(请第&j&位评委给第&i&位选手打分)NextNextEndSubPrivateSubCommand2_Click()DimiAsInteger,jAsInteger,b(4)AscjDimmaxAsSingle,sumAsSingle,minAsSingle,aveAsSingle,tAscjFori=1To4max=a(i,1):sum=0min=a(i,1):ave=0Forj=1To6Ifa(i,j)maxThenmax=a(i,j)Ifa(i,j)minThenmin=a(i,j)sum=sum+a(i,j)Nextave=(sum-max-min)/4b(i).na=歌手&i:b(i).fs=aveNextFori=1To3Forj=i+1To4Ifb(i).fsb(j).fsThent=b(i):b(i)=b(j):b(j)=tEndIfNextPrintb(i).na;Spc(1);b(i).fs&分NextPrintb(4).na;Spc(1);b(4).fs&分EndSub5.编写函数求一元二次方程ax2bxc=0的解。注意:要求考虑方程有两相等实根、两不等实根和两个虚根的情况。PrivateSubCommand1_Click()读书破万卷下笔如有神a=CSng(InputBox(请输入二次项系数))b=CSng(InputBox(请输入一次项系数))c=CSng(InputBox(请输入常数项))Printgetresult(a,b,c)EndSubPublicFunctiongetresult(ByValaAsSingle,ByValbAsSingle,ByValcAsSingle)AsStringIfb^2-4*a*c0ThenX1=((-1)*b+(b^2-4*a*c)^0.5)/(2*a)X2=((-1)*b-(b^2-4*a*c)^0.5)/(2*a)getresult=x1=&CStr(X1)&Chr(9)&x2=&cstr(X2)ElseX=(-1)*b/(2*a)Ifb^2=4*a*cThengetresult=x=&CStr(X)Elsey=(4*a*c-b^2)^0.5getresult=x1=&CStr(X)&+&CStr(y)&i&Chr(9)&x2=&CStr(X)&-&CStr(y)&iEndIfEndIfEndFunction6.任意输入一组字符,统计出大写字母多少个,小写字母多少个,数字多少个?要求用过程实现。PrivateSubCommand1_Click()DimaAsInteger,bAsInteger,cAsIntegera=0:b=0:c=0S=Len(Text1)Fori=1ToSIfMid(Text1,i,1)32Then'没空格IfAsc(a)Asc(Mid(Text1,i,1))AndAsc(Mid(Text1,i,1))Asc(z)Thena=a+1'小写字母IfAsc(A)Asc(Mid(Text1,i,1))AndAsc(Mid(Text1,i,1))Asc(Z)Thenb=b+1'大写的If48Asc(Mid(Text1,i,1))AndAsc(Mid(Text1,i,1))57Thenc=c+1'数字EndIfNextiPrint小写字母共有&a&个Print大写字母共有&b&个Print数字共有&c&个Print其它(包括空格)共有&S-a-b-c&个读书破万卷下笔如有神Print字符个数:&SPrintEndSub7.随机产生一个5*5的矩阵,将主对角线和次对角线元素都置为1,并求出矩阵的四周元素之和,显示在列表框中。PrivateSubForm_Click()Dimi%,j%,s1%,s2%,s3%,s4%,s%Dimmat(1To5,1To5)'定义矩阵Fori=1To5Forj=1To5Ifi=jOri+j=6Then'主对角线和次对角线mat(i,j)=1Elsemat(i,j)=Int(Rnd*8+2)'其他位置产生随机的大于2的一位数EndIfNextNextFori=1To5Forj=1To5Printmat(i,j);'一定不能忘记分号;NextPrintNexti'以下为求和Fori=1To5s1=s1+mat(i,1)'计算第一纵行的和s2=s2+mat(i,5)'计算第五纵行的和NextForj=1To5s3=s3+mat(1,j)s4=s4+mat(5,j)NextPrints1,s2,s3,s4EndSub8.编写一个函数,能将字母按下列规律译成密码:A--Za--zB--Yb--y即第1个字母与第26个字母互换,第i个字母与第(26-i+1)个字母互换。在文本框中任意输入一个字符串,调用该函数将密码显示在另一个文本框中。OptionExplicitDimstr1AsString,str2AsString,aAsString,ssAsStringDimiAsInteger,nAsInteger读书破万卷下笔如有神PrivateSubCommand1_Click()Text1.Text=:Text2.Text=EndSubPrivateSubText1_Change()str1=Text1.Textn=Len(str1)Fori=1Tona=Mid(str1,i,1)'从字符串str1中的第i个字符开始向后截取1个字符IfAsc(a)=97AndAsc(a)=122Then'说明是小写字母str2=Chr(219-Asc(a))'12297-i使首尾对调ElseIfAsc(a)=65AndAsc(a)=90Then'说明是大写字母str2=Ch
本文标题:中国海洋大学VB上机试题
链接地址:https://www.777doc.com/doc-5548792 .html