![VB上機試題及答案_第1頁](http://file4.renrendoc.com/view/5e9c6188ed6b71ed348bbb78dfa86a19/5e9c6188ed6b71ed348bbb78dfa86a191.gif)
![VB上機試題及答案_第2頁](http://file4.renrendoc.com/view/5e9c6188ed6b71ed348bbb78dfa86a19/5e9c6188ed6b71ed348bbb78dfa86a192.gif)
![VB上機試題及答案_第3頁](http://file4.renrendoc.com/view/5e9c6188ed6b71ed348bbb78dfa86a19/5e9c6188ed6b71ed348bbb78dfa86a193.gif)
![VB上機試題及答案_第4頁](http://file4.renrendoc.com/view/5e9c6188ed6b71ed348bbb78dfa86a19/5e9c6188ed6b71ed348bbb78dfa86a194.gif)
![VB上機試題及答案_第5頁](http://file4.renrendoc.com/view/5e9c6188ed6b71ed348bbb78dfa86a19/5e9c6188ed6b71ed348bbb78dfa86a195.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
______________________________________________________________________________________________________________精品資料上機操作練習題1.某數組有20個元素,其值為隨機產生的兩位整數?,F要求將前10個元素與后10個元素對換。即第1個元素與第20個元素互換,第2個數與第19個元素互換,…,第10個元素與第11個元素互換。在窗體上輸出數組原來各元素的值與對換后各元素的值。OptionexplicitDima(1to20)asinteger,Iasinteger,jasinteger,tasintegerPrivateSubForm_Load()ShowPrint"原始數組是:"RandomizeFori=1To20a(i)=Int(Rnd*90)+10Printa(i);IfiMod10=0ThenPrintNextiPrintPrint"現在數組是:"Fori=1To10j=21-it=a(i):a(i)=a(j):a(j)=tNextiFori=1To20Printa(i);IfiMod10=0ThenPrintNextiEndSub2.從數組中刪除一個數。先定義一個一維數組,大小、數組的值自定。從鍵盤上輸入一個數,若這個數在數組當中,就把它刪除;若這個數不在數組中,提示“該數不在數組中”注意:1)如果數組中存在多個與該數相同的元素,每一個都能刪除;2)能實現多次刪除PrivateSubForm_Load()ShowReDima(9)AsIntegerm=1Print"原來數組為:"Fori=0To9a(i)=InputBox("請輸入第"&m&"個數:")Printa(i);m=m+1NextiPrintn=InputBox("查找的數是:")i=0:flag=FalseDoIfa(i)=nThenj=i:flag=TrueFork=jToUBound(a)-1a(k)=a(k+1)NextkReDimPreservea(UBound(a)-1)i=i-1EndIfi=i+1LoopWhile(i<=UBound(a))Ifflag=FalseThenMsgBoxn&"不在該數組中"ElsePrint"刪除"&n&"后的數組是:"Fori=0ToUBound(a)Printa(i);NextiEndIfEndSub3.數組a中存放著升序排列的數據,使用array賦值,將inputbox輸入的新數插入到數組中,插入后數組仍有序。注意:要求利用動態(tài)數組,能夠實現多次插入PrivateSubForm_Load()Shown=8:ReDima(n)a=Array(5,15,23,52,68,88,90,99)n=n+1:ReDimPreservea(n)m=InputBox("請輸入要插入的數據:")Fori=1Ton-1Ifm<a(i)ThenExitForNextiFork=nToi+1Step-1a(k)=a(k-1)Nextka(k)=mFori=1TonPrinta(i);NextiPrintEndSub4.6個評委為4位歌手打分,分數介于1-100之間。去掉一個最高分,一個最低分,求出每位選手的最后得分。將4位歌手得分從高到低排列輸出,同時輸出該選手的編號。如:歌手395分歌手187分歌手480分歌手270分OptionBase1PrivateTypegeshouxuhaoAsStringfenshu(6)AsIntegerscoreAsIntegerpingjunAsIntegerEndTypeDimsinger(1To4)AsgeshouPrivateSubCommand1_Click()Fori=1To4Forj=1To6singer(i).fenshu(j)=Int(Rnd*100)singer(i).xuhao="歌手"&iNextNextCallpaixuEndSubPrivateSubpaixu()DimpAsgeshouFori=1To4Forj=1To5Fork=jTo6Ifsinger(i).fenshu(j)>singer(i).fenshu(k)Thent=singer(i).fenshu(j)singer(i).fenshu(j)=singer(i).fenshu(k)singer(i).fenshu(k)=tEndIfNextNextNextFori=1To4Forj=2To5singer(i).score=singer(i).score+singer(i).fenshu(j)Nextsinger(i).pingjun=singer(i).score/4NextFori=1To3Forj=iTo4Ifsinger(i).score<singer(j).scoreThenp=singer(i):singer(i)=singer(j):singer(j)=pEndIfNextNextFori=1To4Printsinger(i).xuhao&"得分:"&singer(i).pingjunNextEndSubPrivateSubForm_Load()EndSub10個評委給10個選手打分PrivateSubForm_Load()Shown=UBound(b)Fori=1To10Forj=1To10a(i,j)=Val(InputBox("請第"&j&"位評委給第"&i&"位選手打分:"))NextjNextiFori=1To10max=a(i,1):sum=0min=a(i,1):ave=0Forj=1To10Ifa(i,j)>maxThenmax=a(i,j)Ifa(i,j)<minThenmin=a(i,j)sum=sum+a(i,j)Nextjave=(sum-max-min)/(n-2)b(i)=aveNextiFori=1Ton-1Forj=i+1TonIfb(i)<b(j)Thent=b(i):b(i)=b(j):b(j)=tEndIfNextjNextiPrint"選手的得分由高到低為:"Fori=1To10Printb(i);NextiEndSub5.編寫函數求一元二次方程ax2+bx+c=0的解。注意:要求考慮方程有兩相等實根、兩不等實根和兩個虛根的情況。DimaAsSingle,bAsSingle,cAsSingleDimsAsSinglea=InputBox("請輸入a")b=InputBox("請輸入b")c=InputBox("請輸入c")s=b^2-4*a*cIfs<0ThenMsgBox("方程無解")ElseIfs=0ThenPrint-b/2*aElsePrint((-b)+Sqr(s))/2*a&""&((-b)-Sqr(s))/2*aEndIfEndSub6.任意輸入一組字符,統(tǒng)計出大寫字母多少個,小寫字母多少個,數字多少個?要求用過程實現。Calltongji(a,n,m,o)Print"數字:"&n&Chr(13)&"小寫:"&m&Chr(13)&"大寫:"&oEndSubPrivateSubtongji(aAsString,nAsInteger,mAsInteger,pAsInteger)Fori=1ToLen(a)IfAsc(Mid(a,i,1))>47AndAsc(Mid(a,i,1))<58Thenn=n+1ElseIfAsc(Mid(a,i,1))>96AndAsc(Mid(a,i,1))<123Thenm=m+1ElseIfAsc(Mid(a,i,1))>64AndAsc(Mid(a,i,1))<91Thenp=p+1EndIfNextEndSub7.隨機產生一個5*5的矩陣,將主對角線和次對角線元素都置為1,并求出矩陣的四周元素之和,顯示在列表框中。OptionBase1PrivateSubForm_Load()Dima(5,5)AsIntegerDimsAsIntegerFori=1To5Forj=1To5Ifi=jOri=6-jThena(i,j)=1Elsea(i,j)=Int(Rnd*1000)EndIfText1.Text=Text1.Text&""&a(i,j)s=s+a(i,j)NextText1.Text=Text1.Text&vbCrLf&vbCrLfNextList1.AddItem(s)EndSub8.編寫一個函數,能將字母按下列規(guī)律譯成密碼:A<-->Za<-->zB<-->Yb<-->y即第1個字母與第26個字母互換,第i個字母與第(26-i+1)個字母互換。在文本框中任意輸入一個字符串,調用該函數將密碼顯示在另一個文本框中。PrivateSubCommand1_Click()Dims1AsStrings1=Text1.TextText2.Text=convert(s1)EndSubPrivateFunctionconvert(s1AsString)AsStringFori=1ToLen(s1)IfAsc(Mid(s1,i,1))<91AndAsc(Mid(s1,i,1))>64Thenconvert=convert&Chr(91-Asc(Mid(s1,i,1))+64)ElseIfAsc(Mid(s1,i,1))<123AndAsc(Mid(s1,i,1))>96Thenconvert=convert&Chr(123-Asc(Mid(s1,i,1))+96)EndIfNextEndFunction9.編寫2個函數,分別求兩個正整數的最大公約數和最小公倍數,用戶任意輸入兩個數,采用函數嵌套調用,該函數將它們在窗體顯示。PrivateSubForm_Load()Text1="":Text2=""EndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenText2.SetFocusEndSubPrivateSubText2_KeyPress(KeyAsciiAsInteger)DimmAsInteger,nAsInteger,rAsInteger,tAsInteger,xClsIfKeyAscii=13Thenm=Text1.Textn=Text2.TextIfm<nThent=m:m=n:n=tEndIfr=mModnWhiler<>0m=n:n=r:r=mModnWendPrintIfm<0Orn<0Thenx=MsgBox("請輸入正數",vbCritical+vbOKCancel)Ifx=vbCancelThenEndElseText1="":Text2=""Text1.SetFocusEndIfElsePrintText1.Text&"和"&Text2.Text&"的最大公約數是:";nEndIfEndIfEndSub10.編寫計算階乘的Function過程,利用ex的下列公式計算e(直到最后一項小于10-6為止)的近似值。ex≈1+x/1!+x2/2!+x3/3!+…+xn/n!
OptionExplicitPrivateSubForm_Load()ShowDimxAsInteger,nAsInteger,sAsDoublex=InputBox("請輸入一個數:")n=1:s=1Dos=s+x^n/(jiecheng(n))n=n+1LoopUntilx^n/(jiecheng(n))<10^(-6)PrintsEndSubPublicFunctionjiecheng(nAsInteger)AsDoubleDimiAsInteger,sAsDoubles=1Fori=1Tons=s*iNextijiecheng=sEndFunction11.輸入整數N,顯示具有N行的楊輝三角形,要求按正三角形的形式在圖片框中顯示。OptionExplicitPrivateSubForm_Load()WindowState=2ShowDima(),nAsInteger,iAsInteger,jAsInteger,gAsInteger,eAsIntegern=InputBox("請輸入一個數:")ReDima(n,n)e=80Fori=1Tone=e-5:g=eForj=1TonIfj>iThena(i,j)=0ElseIfi=jThena(i,j)=1Elsea(i,j)=a(i-1,j)+a(i-1,j-1)EndIfEndIfIfa(i,j)=0ThenExitForElsePicture1.PrintTab(g);a(i,j);g=g+10EndIfNextjPicture1.PrintNextiEndSubPrivateSubPicture1_Click()EndSub12.編寫一個過程,輸出以下菱形圖形:ABBBCCCCCDDDDDDDCCCCCBBBA主程序輸入一個奇數(>=3),調用過程在窗體上輸入圖形。PrivateSubCommand1_Click()DimnAsIntegern=InputBox("")IfnMod2=0Orn<=3ThenMsgBox("錯誤")ElseCalldraw(n)EndIfEndSubSubdraw(nAsInteger)Fori=1To(n+1)/2s=Chr(64+i)PrintTab(41-i+1);String(2*(i-1)+1,s)Nextc=1Forj=(n-1)/2To1Step(-1)c=c+1s=Chr(64+i-c)PrintTab(41-i+c+1);String(2*(j-1)+1,s)NextEndSub13.編寫一個將十進制轉換為二進制字符串輸出的函數。調用函數計算用戶輸入一個十進制數,在文本框中輸出二進制值。注意:輸入數據為負數,應該將符號位輸出如-13結果-1101OptionBase1Dima()PrivateFunctionconvert(y)AsStringDimiAsIntegeri=1ReDima(i)x=Abs(y)DoWhilex<>0ReDimPreservea(i)a(i)=xMod2Ifa(i)=1Thenx=(x-1)/2Elsex=x/2EndIfi=i+1LoopReDimPreservea(UBound(a))Ify<0ThenFori=1ToUBound(a)convert=convert&a(i)Nextconvert="-"&convertElseFori=1ToUBound(a)convert=convert&a(i)NextEndIfEndFunctionPrivateSubCommand1_Click()DimyAsIntegerText1.Text=""y=InputBox("請輸入十進制數字")Text1.Text=convert(y)EndSubPrivateSubForm_Load()EndSub14.輸入一個整數N,產生N個隨機數(范圍1—10*N),然后采用任何2種算法實現由小到大的排序。將排序前后的數據顯示出來。OptionBase1PrivateSubCommand1_Click()Dima()AsInteger,nAsIntegern=InputBox("請輸入數列項數")ReDima(n)Fori=1Tona(i)=Int(Rnd*10*n+1)Printa(i);NextPrintReDimPreservea(n)Fori=1Ton-1Forj=i+1TonIfa(i)>a(j)Thent=a(i):a(i)=a(j):a(j)=tEndIfNextNextReDimPreservea(n)Fori=1TonPrinta(i);NextEndSubPrivateSubCommand2_Click()Dima()AsInteger,nAsIntegern=InputBox("請輸入數列項數")ReDima(n)Fori=1Tona(i)=Int(Rnd*10*n+1)Printa(i);NextPrintReDimPreservea(n)Fori=1Ton-1Forj=1Ton-iIfa(j)>a(j+1)Thent=a(j):a(j)=a(j+1):a(j+1)=tEndIfNextNextReDimPreservea(n)Fori=1TonPrinta(i);NextEndSubPrivateSubForm_Load()EndSub15.編寫程序,在窗體上輸出3~100之間的所有素數。要求每行顯示4個數。PrivateSubCommand1_Click()DimfAsBoolean,cAsIntegerFori=3To100f=FalseForj=2ToInt(Sqr(i))IfiModj=0Thenf=True:ExitForEndIfNextIff=FalseThenPrinti;c=c+1IfcMod4=0ThenPrintEndIfEndIfNextEndSubPrivateSubForm_Load()EndSub16.把文本框1、文本框2指定的范圍內的所有素數添加到列表框中,并選中列表框數據中最后一位是9的所有數據(設定selected屬性),把它們的和值輸出。PublicaAsIntegerPrivateFunctionfact(n)AsLongIfn=1Thenfact=1ElseIfn=2Thenfact=1Else:fact=fact(n-2)+fact(n-1)EndIfEndFunctionPrivateSubCommand1_Click()n=InputBox("請輸入n")Printfact(n)EndSubPrivateFunctions(n)AsLongs1=1:s2=1Fori=1Ton-2s=s1+s2:t=s2:s2=s:s1=tNextEndFunctionPrivateSubCommand2_Click()n=InputBox("請輸入n")Prints(n)EndSub17.編寫2個函數,分別采用遞歸法和遞推法求斐波納契數列的第n個月的兔子數,n使用inputbox輸入,調用函數的結果在窗體上顯示。PrivateSubCommand1_Click()List1.ClearDimiAsIntegerFori=Val(Text1.Text)ToVal(Text2.Text)Ifisprime(i)=TrueThenList1.AddItem(i)c=c+1IfiMod10=9ThenList1.Selected(c-1)=Trues=s+iEndIfEndIfNextPrintsEndSubFunctionisprime(nAsInteger)isprime=TrueFori=2Ton-1IfnModi=0Thenisprime=FalseExitForEndIfNextEndFunction18DimsumAsLongPrivateSubCommand1_Click()DimiAsInteger,jAsInteger,a(40)AsLonga(1)=1a(2)=1Fori=3To40a(i)=a(i-1)+a(i-2)Nextisum=0Forj=1To40sum=sum+a(j)NextjEndSubPrivateSubCommand2_Click()Open"out18.txt"ForOutputAs#1Print#1,"數列1,1,2,3,5,8…的前四十項的之和是:"Print#1,sumClose#1EndSub百錢買百雞OptionExplicitPrivateSubCommand1_Click()DimaAsInteger,bAsIntegerFora=1To34Forb=1To20If3*a+5*b+(100-a-b)/3=100ThenPrinta;Printb;Print100-a-bEndIfNextbNextaEndSub分錢作業(yè)PrivateSubCommand1_Click()DimaAsSingle,bassingle,cassinglea=Text1.Textb=Fix(a/100)Print"100元:";Printbc=a-100*bb=Fix(c/50)Print"50元:";Printbc=c-b*50b=Fix(c/20)Print"20元:";Printbc=c-20*b******************b=Fix(c/0.05)Print"0.05元:";Printbc=c-0.05*bb=Fix((c+0.005)/0.02)Print"0.02元:";Printbc=c-0.02*bb=Fix(c/0.01)Print"0.01元:";PrintbEndSub最大公約數、最小公倍數OptionExplicitPrivateSubCommand1_Click()DimaAsInteger,bAsInteger,cAsInteger,tAsIntegera=InputBox("請輸入第一個數:")b=InputBox("請輸入第二個數:")Ifa<bThenc=bb=aa=cEndIft=aModbDoWhilet<>0a=bb=tt=aModbLoopIfb=1ThenMsgBox("無最大公約數")ElseMsgBox("最大公約數是:"&b)EndIfEndSubPrivateSubCommand2_Click()DimaAsInteger,bAsInteger,cAsInteger,tAsInteger,mAsInteger,nAsIntegera=InputBox("請輸入第一個數:")b=InputBox("請輸入第二個數:")Ifa<bThenc=bb=aa=cEndIft=a*bm=aModbDoWhilem<>0a=bb=mm=aModbLoopn=t\bMsgBox("最小公倍數是:"&n)EndSub輸出九九表OptionExplicitPrivateSubCommand1_Click()DimaAsInteger,bAsIntegerPrintFora=1To9Forb=1ToaPrintTab(b*9);a&"*"&b;"=";a*b;NextbPrintNextaEndSub排序OptionExplicitOptionBase1Dima(1To10)AsIntegerPrivateSubCommand1_Click()DimiAsInteger,jAsIntegerRandomizeFori=1To10aaa:a(i)=Int(Rnd()*90+10)Forj=1Toi-1Ifa(i)=a(j)ThenGoToaaaEndIfNextjNextiFori=1To10Printa(i);NextiPrintEndSubPrivateSubCommand2_Click()DimiAsInteger,jAsInteger,tAsIntegerFori=1To9Forj=1+iTo10Ifa(i)>a(j)Thent=a(j)a(j)=a(i)a(i)=tEndIfNextjNextiFori=1To10Printa(i);NextiPrintEndSubPrivateSubCommand3_Click()DimiAsInteger,jAsInteger,tAsIntegerFori=1To9Forj=1To10-iIfa(j)>a(j+1)Thent=a(j+1)a(j+1)=a(j)a(j)=tEndIfNextjNextiFori=1To10Printa(i);NextiPrintEndSub求平方根OptionExplicitPrivateSubCommand1_Click()DimaAsDouble,bAsDouble,cAsDouble,iAsDoublea=0c=Text1.Textb=cDoWhileAbs(((a+b)/2)^2-c)>10^(-5)i=(a+b)/2Ifi^2-c>0Thenb=iElseIfi^2-c=0ThenExitDoElsea=iEndIfLoopMsgBox(i)EndSub閏年OptionExp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年五年級品社下冊《校園紅綠燈》說課稿 上??平贪?/a>
- 2025股份轉讓合同
- 煤礦集中檢修方案
- 襄陽防腐木屋施工方案
- 青島垂直植物墻施工方案
- 2024-2025學年高中歷史 專題八 當今世界經濟的全球化趨勢 第三課 經濟全球化的世界說課稿 人民版必修2
- 凈化設備合同范例
- 28 棗核 說課稿-2023-2024學年統(tǒng)編版語文三年級下冊
- Unit 3 Fit for life Welcome to the unit 說課稿-2024-2025學年高中英語譯林版(2020)選擇性必修第二冊
- 橋面防腐木施工方案
- 線性系統(tǒng)理論鄭大鐘第二版
- 寧騷公共政策學完整版筆記
- 走進奧運奧運知識簡介
- 項目負責人考試題庫含答案
- GB/T 7251.5-2017低壓成套開關設備和控制設備第5部分:公用電網電力配電成套設備
- 2023年湖南高速鐵路職業(yè)技術學院高職單招(數學)試題庫含答案解析
- 中考語文非連續(xù)性文本閱讀10篇專項練習及答案
- 勇者斗惡龍9(DQ9)全任務攻略
- 經顱磁刺激的基礎知識及臨床應用參考教學課件
- 小學語文人教四年級上冊第四單元群文閱讀“神話故事之人物形象”PPT
- ISO 31000-2018 風險管理標準-中文版
評論
0/150
提交評論