




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第二局部 VB上機考試模擬試題一、程序調(diào)試題(改錯或填空)一說明等級考試上機測試的程序調(diào)試題常常是在考生目錄中給出一個標準模塊程序Modify.BAS,要求根據(jù)題意修改該模塊中的函數(shù)或過程,為檢測所作修改是否正確,可以按照以下操作步驟進行調(diào)試:1要求學生建立一工程,將這一模塊添加到工程中。如果你是通過雙擊標準模塊程序Modify.BAS進入Visual Basic程序設計系統(tǒng)的,那么首先需要添加一個窗體模塊。2將該標準模塊程序Modify.BAS代碼中用-n-n為1,2,3,4,5局部刪除后改為適宜的內(nèi)容或?qū)⒂?錯誤n*標示的下一語句中的錯誤改正,并在窗體模塊中編寫代碼常常寫在窗體的Click
2、()事件中調(diào)用標準模塊中的sub過程或自定義函數(shù)如果在標準模塊程序中有多個過程或函數(shù),要注意調(diào)用的先后順序,否那么得不到正確結(jié)果,調(diào)試運行程序,使其能輸出正確結(jié)果。3按試題要求保存工程。二程序調(diào)試題Modify.bas模塊中的getanswer過程是用于計算一元二次方程的根,并將結(jié)果輸出來。Option ExplicitPublic Sub getanswer() 該過程是用于計算一元二次方程的根,并將結(jié)果輸出來。 Dim dalt!, a#, b#, c# a = InputBox(輸入系數(shù)a) b = InputBox(輸入系數(shù)b) c = InputBox(輸入系數(shù)c) dalt = b
3、 * b - 4 * a * c If dalt0 then dalt = Sqr(dalt) MsgBox Format(-b + dalt) / 2 / a), 0.00 + Chr(13) + Chr(10) + Format(-b - dalt) / 2 / a, 0.00) Elseif dalt=0 then MsgBox Format(-b / 2 / a, 0.00) + Chr(13) + Chr(10) + Format(-b / 2 / a, 0.00) Else dalt= sqr(-dalt) MsgBox Format(-b + dalt) / 2 / a, 0.0
4、0) + +i + Chr(13) + Chr(10) + Format(-b - dalt) / 2 / a, 0.00) + -i End IfEnd Sub 打印輸出一菱形圖案。Public Sub prt() 打印由#組成的菱形圖案 # # # # # # # # # Dim i As Integer, j As Integer Dim start As String 每行起始空格數(shù) Dim count As Integer 每行#個數(shù) For i = 1 To 9 If i = 5 Then start = Space(21 - i) count = 2 * i - 1 Else s
5、tart = Space(11 + i) count = 19 - 2 * i End If Form1.Print start; For j = 1 To count Form1.Print #; Next j Form1.Print Next iEnd Sub過程pyramid用以打印一個數(shù)字金字塔,請在橫線上填入必要的內(nèi)容將橫線刪除掉后填入正確的內(nèi)容,使其完整。Option ExplicitPublic Sub pyramid() 打印數(shù)字金字塔 1 222 33333 4444444 555555555 6666666 77777 888 9 Dim i As Integer Dim
6、j As Integer Dim start As String 每行起始空格數(shù) Dim num As Integer 每行數(shù)字個數(shù) For i = 1 To 9 If i = 5 Then start = Space(20 - i) num = 2 * i - 1 Else start= space(10+i) num= 19-2*i End If Form1.Print start; For j = 1 To num Form1.print cstr(i); Next j Form1.print Next iEnd Sub改錯。Option ExplicitPublic Sub prt()
7、 打印由數(shù)字組成的如下所示金字塔圖案 9 888 77777 6666666 555555555 44444444444 3333333333333 222222222222222 Dim i As Integer, j As Integer * 錯誤1 * For i = 9 To 1 Step -1 Form1.Print Space(i); * 錯誤2 * For j = 1 To 2 * (10 - i) - 1 * 錯誤3 * Form1.Print CStr(i); Next j Form1.Print Next iEnd Sub計算s=7+77+777+n個7組成的數(shù)。Publi
8、c Sub total() 計算s=7+77+777+n個7組成的數(shù) Const n = 20 Dim s As Single Dim i As Integer For i = 1 To n s=s+ number(i) Next i Form1.Print s=; sEnd SubPublic Function number( n As Integer ) As Single Dim i As Integer number = 0 For i = 1 To n Number=number*10+7 Next iEnd FunctionModify.bas模塊中的過程eat用于計算猴子共摘了多
9、少個桃子。Option ExplicitPublic Sub eat() 該過程是用于計算猴子共摘了多少個桃子。 小猴在一天摘了假設干個桃子,當天吃掉了一半多一個; 第二天吃了剩下的一半多一個; 以后每天都吃尚存的一半零一個,到第7天早上要吃時只剩下一個了, 并將結(jié)果輸出來。 Dim n%, i%, x% x = 1 for i=6 to 1 step -1 x = 2 * (x + 1) Next i Form1.Print 共有; x; 個桃子End SubModify.bas模塊中的Prime過程是求出100到200之間所有的素數(shù),并打印出來。Public Sub prime() 打印出
10、100到200之間所有的素數(shù),并統(tǒng)計素數(shù)的個數(shù) Dim i As Integer Dim j As Integer Dim k As Integer Dim t As Integer 統(tǒng)計素數(shù)的個數(shù) Dim b As Boolean For i = 100 To 200 b = True k = 2 j = Int(Sqr(i) Do While k = j And b If i Mod k = 0 Then b = False End If k = k + 1 Loop if b then 或b=True t = t + 1 Form1.Print i End If Next iForm1.
11、Print t=; tEnd sub 過程even用以驗證一個偶數(shù)可以分解為兩個素數(shù)之和;Isprime用以判斷x是否是素數(shù)。請在橫線上填入必要的內(nèi)容將橫線刪除掉后填入正確的內(nèi)容,使其完整。Public Sub even() 從鍵盤輸入一個大于4的偶數(shù),將它所有的不重復的分解式求出 Dim x As Integer Dim i As Integer Do While x 4 and x mod 2=0 x = Val(InputBox(x=) Loop For i = 3 To x / 2 Step 2 在不大于x的奇數(shù)中找素數(shù) If Isprime(i) And Isprime(x - i)
12、 then 或Isprime(i)=True And Isprime(x - i)=True Form1.Print x; =; i; +; x - i End If Next iEnd SubPublic Function Isprime(x As Integer) As Boolean Dim i As Integer Isprime = True For i = 2 To x - 1 If x Mod i = 0 Then Isprime = False Exit For End If Next iEnd FunctionModify.bas模塊中的find過程是用于找出被3、5、7除,
13、余數(shù)為1的最小的5個整數(shù),并將結(jié)果輸出來。Option ExplicitPublic Sub find() 該過程是用于找出被3、5、7除,余數(shù)為1的最小的5個整數(shù),并將結(jié)果輸出來。 Dim countN%, n% countN = 0 n = 1 Do n= n + 7 if n Mod 3 = 1 And n Mod 5 = 1 then Form1.Print n countN = countN + 1 End If Loop While countN 5End SubModify.bas模塊中的過程rn通過調(diào)用函數(shù)isLeapYear判斷某年是否是閏年,假設是,那么打印今年是閏年,否那
14、么打印今年不是閏年。 閏年的判斷方法是:但凡年份不能被4整除的都不是閏年,而且如果年份能被100整除但不能被400整除的也不是閏年。Option ExplicitPublic Sub rn() 該過程通過調(diào)用函數(shù)isLeapYear判斷某年是否是閏年,假設是,那么打印今年是潤年 否那么,打印今年不是閏年。Const year = 2023 If isLeapYear(year) Then 或isLeapYear(year)=true Form1.Print 今年是閏年 Else Form1.Print 今年不是閏年 End If End Sub Function isLeapYear(y As
15、 Integer) As Boolean If y Mod 4 0 Or (y Mod 4 0 And y Mod 100 = 0) Then isLeapYear = False Else isLeapYear = True End IfEnd FunctionModify.bas模塊中的CountTo60過程是用于從一堆一分、二分、五分的硬幣中取出20枚,使其總值為60分,要求輸出取法的數(shù)量及每一種取法的一分、二分、五分的個數(shù)。請建立工程將Modify.bas模塊參加工程中進行調(diào)試。注意:只要修改標出出錯位置的下面那一條語句即可,其余代碼不要改動。Public Sub countto60(
16、) 從一堆一分、二分、五分的硬幣中取出20枚,使其總值為60分 輸出取法的數(shù)量及每一種取法的一分、二分、五分的個數(shù) Dim one As Integer 一分硬幣個數(shù) Dim two As Integer 二分硬幣個數(shù) Dim five As Integer 五分硬幣個數(shù) Const n = 20 總數(shù)20枚 Dim k As Integer 取法數(shù)量 k = 0 For one = 1 To n * 錯誤1 * For two = 1 To n - one five = n - one - two * 錯誤2 * If one + two * 2 + five * 5 Then k = k
17、+ 1 Form1.Print one=; one; two=; two; five=; five End If * 錯誤3 * Next two * 錯誤4 * Next one Form1.Print k=; kEnd Sub過程same用以找出1100之間所有的同構(gòu)數(shù)。所謂同構(gòu)數(shù)是指一個數(shù)出現(xiàn)在它的平方數(shù)的右端,如25在25平方625的右端,那么25為同構(gòu)數(shù)。利用數(shù)字轉(zhuǎn)字符再取出右端字符的方法進行判斷。Public Sub same() Dim i As Integer Dim x1 As String, x2 As String For i = 1 To 1000 x1= CStr(i
18、) 將i轉(zhuǎn)字符型 x2= CStr(i 2) 將i2轉(zhuǎn)字符型 if x1 = Right(x2, Len(x1) Then Form1.Print i; 是同構(gòu)數(shù) End If Next iEnd SubModify.bas模塊中的ArmstrongNumber過程是用于求出1999之間所有的Armstrong數(shù),并打印出來。所謂Armstrong數(shù)是指一個數(shù)等于它每位上數(shù)字的立方和。Public Sub ArmstrongNumber() Dim armstrong As Integer Dim i As Integer Dim hundred As Integer 百位上的數(shù)字 Dim t
19、en As Integer 十位上的數(shù)字 Dim one As Integer 個位上的數(shù)字 For i = 1 To 999 hundred = i 100 ten = (i - hundred * 100) 10 one = i Mod 10 If i = hundred 3 + ten 3 + one 3 Then Form1.Print i; is armstrong number End If Next iEnd Sub過程cloze用以求11000中的所有完數(shù)。所謂完數(shù)是指一個數(shù)的所有因子之和等于其自身。請在橫線上填入必要的內(nèi)容將橫線刪除掉后填入正確的內(nèi)容,使其完整。Option
20、ExplicitDim a(50) As Integer 存放每個數(shù)分解出來的因子Public Sub cloze() 求1-100中的所有完數(shù) Dim i As Integer, j As Integer 16: 215 +11,2,4,8 Dim n As Integer 因子個數(shù) Dim s As Integer 因子和 For i = 1 To 1000 n = 0 s = 0 factor i, n 該語句與call factor(i,n)是等價的,詳見課本P89SUB過程調(diào)用的兩種格式 For j = 1 To n s = s + a(j) Next j If i = s Then
21、 Form1.Print i End If Next iEnd SubPublic Sub factor(ByVal x As Integer, ByRef k As Integer) Dim i As Integer a(1) = 1 k = 1 For i = 2 To x - 1 If x Mod i = 0 Then k = k + 1 a(k) = i End If Next iEnd SubModify.bas模塊中的Summary過程是用于計算并打印出s=1+2+22+23+,直至s超過1E+16。Option ExplicitPublic Sub summary()該過程是用于
22、計算s=1+2+22+23+,直至s超過1E+16 Dim s As Single Dim i As Integer s = 1 i = 1 Do While s 1E+16 s = s + 2 i i = i + 1 Loop Form1.Print s=; sEnd SubModify.bas模塊中的qiuN過程是用于求出滿足不等式1+2x+3x2+4x3+(n+1)xn1000的最大n值。其中x是大于等于1的實數(shù),其值由鍵盤輸入。Option ExplicitPublic Sub qiuN() 該過程是用于求出滿足不等式1+2x+3x2+4x3+(n+1)xn1000的最大n值, 其中x
23、是大于等于1的實數(shù),其值由鍵盤輸入。 Dim x As Single, s As Single, n As Integer, s1 As Single, p As Single x = Val(InputBox(x=) s = 1: n = 1 p = x while s1000 s1 = s s = s + (n + 1) * p p=p* x n= n+1 Wend n= n-2 form1.Print The Maxism of n; n, s=; s1End Subsum過程用于計算f=1-1/(2*3)+1/(3*4)-1/(4*5)+1/(19*20),請在橫線上填入必要的內(nèi)容。O
24、ption ExplicitPublic Sub sum() Dim f As Single Dim i As Integer Dim sign As Integer Sign=-1 f = 1 for I=2 to 19 f = f + sign / (i * (i + 1) sign=-sign Next i Form1.Print f=; fEnd SubModify.bas模塊中的JiSuan過程是用于計算1-1/2+1/3-+1/99-1/100的值并打印出來。Public Sub JiSuan() 計算1-(1/2)+(1/3)-.+(1/99)-(1/100)的值并打印出來 Di
25、m i As Integer * 錯誤1 * Dim k As Single Dim s As Single s = 0 * 錯誤2 * For i = 1 To 100 step 2 k = 1 / i s = s + k * 錯誤3 * k = -1 / (i + 1) s = s + k Next i Form1.Print s=; sEnd SubModify.bas模塊中的summary過程是用于計算1!+2!+20!,并打印出計算結(jié)果,但不完整,請在橫線上填入必要的內(nèi)容,使其完整。Modify.bas模塊中的nFaction函數(shù)過程用于計算n!。Public Function nF
26、actor(ByVal n As Integer) As Double Dim i As Integer Dim temp As Double Temp=1 For i = 1 To n temp = temp * i Next i nFactor = tempEnd FunctionPublic Sub summary() Dim sum As Double Dim i As Integer Dim n As Integer n = 20 For i = 1 To n sum = sum + nFactor(i) Next iForm1.Print sum= & sumEnd SubModi
27、fy.bas模塊中的find過程是用于從1到10000中找出這樣的數(shù),該數(shù)各個位的數(shù)字的階乘相加之和等于該數(shù),并將結(jié)果輸出。其中階乘由fact函數(shù)計算。Option ExplicitPublic Sub find() 該過程是用于從1到10000中找出這樣的數(shù), 該數(shù)各個位的數(shù)字的階乘相加之和等于該數(shù),并將結(jié)果輸出。 Dim k, a, n, i Dim p As Integer For k = 1 To 10000 a = LTrim(Str(k) n = 0 For i= 1 to len(a) p = Val(Mid(a, i, 1) n= n+fact(p) Next i If n =
28、 k Then form1.Print k Next kEnd Sub Function fact(x As Integer) As Long 該函數(shù)用于計算階乘 Dim y As Long Dim i% y = 1 For i% = 1 To x y = y * i% Next i% Fact=yEnd FunctionModify.bas模塊中的Combination過程是用于計算m個數(shù)據(jù)中取出n個數(shù)據(jù)的排列組合值,計算公式為Cmn=m!/(n!*(m-n)!)。Modify.bas模塊中的n過程是產(chǎn)生數(shù)據(jù),數(shù)據(jù)的取值范圍為-1010之間的隨機數(shù)。Public Sub Combinatio
29、n() Dim m As Integer Dim n As Integer Dim Cmn As Long Do m = Val(InputBox(請輸入一個整數(shù)m) n = Val(InputBox(請輸入一個整數(shù)n(n=m) * 錯誤1 * Loop While m =n * 錯誤2 * Cmn = nFactor(m) / (nFactor(n) * nFactor(m - n) Form1.Print 排列組合數(shù)為; CmnEnd SubPublic Function nFactor(ByVal n As Integer) As Double Dim i As Integer Dim
30、temp As Double temp = 1 For i = 1 To n temp = temp * i Next i *錯誤 3 * nFactor = temp 去掉(n),因為函數(shù)過程是用函數(shù)名返回結(jié)果。 * 錯誤4 *End Function過程Uppersen實現(xiàn)從鍵盤上任意輸入一條英文句子,將句子中的每個單詞的首字母都變成大寫例如:輸入I am a good student. 要求輸出 I Am A Good Student.Public Sub Uppersen() Dim oldsen As String, newsen As String Dim char As Stri
31、ng, lastchar As String Dim l As Integer, i As Integer oldsen = InputBox(請輸入英文句子:) l=len(oldsen) 以空格作為單詞的界定,空格后的字母轉(zhuǎn)換為大寫字母 lastchar= 雙引號中有一空格 For i = 1 To l char= mid(oldsen,I,1) If lastchar = Then char= ucase(char) End If newsen = newsen & char lastchar = char Next i Form1.Print input:; oldsen Form1.
32、Print output:; newsenEnd Sub餐廳發(fā)工資程序。Modify.bas模塊中的Money過程是用于統(tǒng)計一個有7個工作人員的餐廳發(fā)工資所需的100元、50元、10元、5元和1元的票面數(shù)。Modify.bas模塊中的SalaryData過程是給出7個員工的工資。Dim salary(7) As IntegerPublic Sub Money() Dim hundred As Integer, totalhundred As Integer 100元票面數(shù)量、總數(shù)量 Dim fifty As Integer, totalfifty As Integer 50元票面數(shù)量、總數(shù)量
33、Dim ten As Integer, totalten As Integer 10元票面數(shù)量、總數(shù)量 Dim five As Integer, totalfive As Integer 5元票面數(shù)量、總數(shù)量 Dim one As Integer, totalone As Integer 1元票面數(shù)量、總數(shù)量 Dim totalsalary As Integer 工資總計 Dim i As Integer, temp As Integer totalhundred = 0 totalfifty = 0 totalten = 0 totalfive = 0 totalone = 0 totals
34、alary = 0 For i = 1 To 7 temp = salary(i) hundred = Int(temp / 100) temp = temp-hundred*100 fifty = Int(temp / 50) temp = temp - fifty * 50 ten = Int(temp / 10) temp = temp - ten * 10 five = Int(temp / 5) temp = temp - five * 5 one = temp totalhundred = totalhundred + hundred totalfifty = totalfifty
35、 + fifty totalten = totalten + ten totalfive = totalfive + five totalone = totalone + one totalsalary = totalsalary+salary(i) Next i Form1.Print 共需100元 & Str(totalhundred) & 張 Form1.Print 共需50元 & Str(totalfifty) & 張 Form1.Print 共需10元 & Str(totalten) & 張 Form1.Print 共需5元 & Str(totalfive) & 張 Form1.Pr
36、int 共需1元 & Str(totalone) & 張 Form1.Print 合計 & Str(totalsalary) & 元End SubPublic Sub SalaryData() salary(1) = 1398 salary(2) = 1765 salary(3) = 689 salary(4) = 1500 salary(5) = 832 salary(6) = 590 salary(7) = 1200End SubModify.bas模塊中的wrap過程用于判斷一個字符串是否“回文。所謂“回文是指字符串順讀與倒讀都是一樣的,如“潮起潮落,落潮起潮。Public Sub Wr
37、ap()Dim length As Integer Dim str1 As String Dim strleft As String Dim strright As String Dim k As Integer str1 = InputBox(請輸入任意的字符串) 輸入任意字符串 *錯誤1* length = Len(str1) k = 1 Do *錯誤2* strleft = Mid(str1, k,1) 從左邊起逐個取出一個字符 *錯誤3* strright = Mid(str1, length-k+1,1) 從右邊起逐個取出一個字符 *錯誤4* If strleft strright
38、Then Exit Do End If k = k + 1 Loop While k length / 2 Then Form1.Print str1 & 是回文 Else Form1.Print str1 & 不是回文 End IfEnd SubModify.bas模塊中的Guess過程是猜數(shù)游戲,由計算機產(chǎn)生一個1,100的任意整數(shù),輸入猜數(shù)后計算機給出提示,如果5次后還沒有猜中就結(jié)束游戲并公布正確答案,請改正其中的錯誤。說明:只要修改標出出錯位置的下面那條語句。Public Sub Guess() Dim R As Integer Dim X As Integer Dim time As
39、 Integer Randomize -1- R=Int(Rnd*100+1) 產(chǎn)生一個1100的任意整數(shù) Times=1 Do X=Val(InputBox(輸入猜數(shù)X) Select Case X Case R Form1.Print 猜中了 Exit Do -2- Case IsRForm1.Print 太大了,繼續(xù)猜! Case ElseForm1.Print 太小了,繼續(xù)猜!End SelectTimes=times+1-3-Loop Until times5If times5 Then Form1.Print 猜數(shù)失敗,游戲結(jié)束! -4- Form1.Print 正確答案為 & S
40、tr(R) End IfEnd SubModify.bas模塊中的Findat過程是用于在一個字符串變量中查找at,并用消息框給出查找結(jié)果的報告:沒有找到或找到的個數(shù)。Public Sub Findat() 在字符串str1中查找at Dim str1 As String Dim length As Integer 字符串長度 Dim sum As Integer 查到的個數(shù) Dim i As Integer str1 = InputBox(請輸入一個字符串) length = Len(str1) i = 1 sum = 0 Do While i 0 Then 找到了指定的字符串 num =
41、num + 1 次數(shù)加1 pos = pos + Len(str2) 繼續(xù)向前找 Else Exit For 沒找到,退出 End If Next i matchCount = numEnd FunctionModify.bas模塊中的過程ComMulti是求任意兩個正整數(shù)的最小公倍數(shù)。最小公倍數(shù)是兩個數(shù)的乘積除以這兩個數(shù)的最大公約數(shù)。Modify.Bas模塊中的Div函數(shù)過程用于求任意兩個正整數(shù)的最大公約數(shù)。Public Sub ComMulti() 該過程是求任意兩個正整數(shù)的最小公倍數(shù) 求最小公倍數(shù)的一種方法是先求出兩個數(shù)的最大公約數(shù), 兩個數(shù)的乘積除以最大公約數(shù)的商即為最小公倍數(shù) Dim
42、 m As Integer, n As Integer 任意兩個正整數(shù) Dim i As Integer Dim multi As Integer 最小公倍數(shù) 輸入兩個正整數(shù),要求m與n都必須大于零 Do m = Val(InputBox(m=) n = Val(InputBox(n=) Loop While n = 0 Or m = 0 multi = m * n / Div(m, n) Form1.Print m; 和; n; 的最小公倍數(shù)是:; multiEnd SubDiv函數(shù)過程求任意兩個正整數(shù)m和n的最大公約數(shù)Public Function Div(m As Integer, n
43、As Integer) As Integer 該函數(shù)過程用于求任意兩個正整數(shù)的最大公約數(shù)。 Dim i As Integer 先將兩個整數(shù)中的較小數(shù)假設為最大公約數(shù),再依次往下 尋找能同時除盡m和n的數(shù)即為最大公約數(shù) Div = m If n m Then Div = n End If Do While m Mod Div 0 Or n Mod Div 0 Div = Div - 1 LoopEnd Function過程ComDiv用以實現(xiàn)求任意兩個正整數(shù)的最大公約數(shù),請改正其中的錯誤。說明:只要修改標出出錯位置的下面那條語句。Public Sub ComDiv() Dim m As Inte
44、ger, n As Integer 任意兩個正整數(shù) Dim i As Integer Dim div As Integer 最大公約數(shù) 輸入兩個正整數(shù),要求m與n都必須大于零 Do m = Val(InputBox(m=) n = Val(InputBox(n=) * 錯誤1 * Loop While m = 0 Or n = 0 先將兩個整數(shù)中的較小數(shù)假設為最大公約數(shù),再依次往下 尋找能同時除盡m和n的數(shù)即為最大公約數(shù) * 錯誤2 * div = m If n m Then div = n End If * 錯誤3 * Do Until m Mod div = 0 And n Mod div
45、 = 0 * 錯誤4 * div = div - 1 Loop Form1.Print m; 和; n; 的最大公約數(shù)是:; divEnd Sub過程DtoB采用連除2取余數(shù)的方法實現(xiàn)將一個十進制數(shù)轉(zhuǎn)換為二進制數(shù),但不完整,請在橫線上填入必要的內(nèi)容將橫線刪除掉后填入正確的內(nèi)容,使其完整。Public Sub DToB() Dim Dec As Integer 輸入一個十進制數(shù) Dim Bin As String 轉(zhuǎn)換為二進制表示 Dim res As Integer Dim i As Integer Dec = Val(InputBox(x=) Form1.Print 十進制數(shù):; Dec D
46、o res= Dec Mod 2 求出除以2的余數(shù) Bin= res & Bin Dec= Dec 2 Loop While Dec 0 Form1.Print 轉(zhuǎn)換為二進制數(shù)為:; BinEnd SubModify.bas模塊中的Transfer過程用于將一個十六進制整數(shù)轉(zhuǎn)換為十進制整數(shù);number函數(shù)過程用于將一個十六進制符號轉(zhuǎn)換為數(shù)值。Public Sub Transfer() Dim Hex As String 十六進制數(shù) Dim Dec As Double 十進制數(shù) Dim temp As String Dim i As Integer Dim n As Integer Hex =
47、 InputBox(輸入一個十六進制整數(shù)) * 錯誤1 * n = Len (Hex) i = 0 Do * 錯誤2 * temp = Mid(Hex, n - i, 1) * 錯誤3 * Dec = Dec + number(temp) * 16 i i = i + 1 Loop While i n * 錯誤4 * Form1.Print Hex & 轉(zhuǎn)換為十進制數(shù)為 & str(Dec)End SubPublic Function number(str As String) As Integer Select Case str Case a, A number = 10 Case b, B
48、 number = 11 Case c, C number = 12 Case d, D number = 13 Case e, E number = 14 Case f, F number = 15 Case Else number = Val(str) End SelectEnd Function有一個數(shù)列,它的前三個數(shù)是0,1,2,從第四個數(shù)起,每個數(shù)都是它前面的兩個數(shù)之和斐邦納契數(shù)列,過程Fabonia用于求出該數(shù)列的第17個數(shù)是多少?求出該數(shù)列的第幾個數(shù)起每個數(shù)都超過1E+8?請在橫線上填入必要的內(nèi)容。Option ExplicitPublic Sub Fabonia() Dim l
49、ast_one As Long Dim last_two As Long Dim this_one As Long Dim i As Integer last_one = 1 數(shù)列的第二個數(shù) last_two = 2 數(shù)列的第三個數(shù) i = 4 從數(shù)列的第四個數(shù)求起 Do this_one = last_one + last_two last_one = last_two last_two = this_one If i = 17 Then Form1.Print No:17=; this_one End If i = i + 1 Loop While this_one 1E+8End Sub
50、Modify.bas模塊中的countEven過程是用于統(tǒng)計在隨機產(chǎn)生的10個兩位整數(shù)中的偶數(shù)的個數(shù)并用消息框輸出。Option ExplicitPublic Sub countEven() 該過程是用于統(tǒng)計在隨機產(chǎn)生的10個兩位整數(shù)中的偶數(shù)的個數(shù)并用消息框輸出。 Dim a(10) As Integer 存放10個隨機數(shù)第一個為a(0) Dim count As Integer Dim I As Integer, n As Integer Randomize *錯誤1* For I = 0 To 9 *錯誤2* n = Int(Rnd * 90 + 10) a(I) = n Form1.Pr
51、int a(I) If a(I) Mod 2 = 0 Then count = count + 1 End If Next I *錯誤3* msgbox 偶數(shù)個數(shù): & count End SubModify.bas模塊中的TJ過程是將一批數(shù)據(jù)中小于零的數(shù)及它們的積打印出來,但不完整,請在橫線上填入必要的內(nèi)容,使其完整。Modify.bas模塊中的SCSJ過程是產(chǎn)生數(shù)據(jù),數(shù)據(jù)的取值范圍為-1010之間的隨機數(shù)。Private Const n = 10Private a(1 To n) As IntegerTJ過程是將一批數(shù)據(jù)中小于零的數(shù)及它們的積打印出來數(shù)據(jù)由SCSJ過程產(chǎn)生,數(shù)據(jù)的取值范圍為
52、-10 10 之間的隨機整數(shù)數(shù)Public Sub TJ() Dim i As Integer Dim t As Single t = 1 For i = 1 To 10 If a(i) 0 Then t = t * a(i) End If Next i Form1.Print T=; tEnd SubPublic Sub SCSJ() Randomize Form1.Print 原始數(shù)據(jù) Dim i As Integer Dim j As Integer For i = 1 To n 隨機產(chǎn)生0或1,為0時取負,為1時取正 j = Int(Rnd * 2) If j = 0 Then J =
53、 -1 a(i) = j * Int(Rnd * (n + 1) Form1.Print a(i); Next i Form1.PrintEnd SubModify.bas模塊中的calculate過程是產(chǎn)生100個0,99范圍內(nèi)的隨機整數(shù),統(tǒng)計個位上的數(shù)字分別為1,2,3,4,5,6,7,8,9,0的數(shù)的個數(shù)并打印出來.Public sub calculate()Dim a(1 to 100) as integerDim x(1 to 10) as integerDim I as integer,p as integer產(chǎn)生100個0,99范圍內(nèi)的隨機整數(shù)每行10個打印出來for I=1 t
54、o 100*1*a(i)= Int(Rnd * 100)if a(i)10 then form1.print space(2);a(i);else form1.print space(1);a(i);endifif I mod 10=0 then form1.printnext I統(tǒng)計個位上的數(shù)字分別為1,2,3,4,5,6,7,8,9,0的數(shù)的個數(shù)并將統(tǒng)計結(jié)果保存在數(shù)組x(1),x(2),x(10)中,將統(tǒng)計結(jié)果打印出來for I=1 to 100 *2* p=int(a(i) Mod 10) 求個位上的數(shù)字if p=0 then p=10*3*x(p)=x(p) + 1next Iform
55、1.print “統(tǒng)計結(jié)果for I=1 to 10 p=Iif I=10 then p=0*4*form1.print “個位數(shù)為+str(p)+共“+str(x(I)+個next Iend subModify.bas模塊中的過程prt是輸出由數(shù)字組成的如下所示楊輝三角形圖案。Option ExplicitPublic Sub prt() 該過程是輸出由數(shù)字組成的如下所示楊輝三角形圖案 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 Const n = 8 Dim a(n + 1) As Byte, i As Inte
56、ger, j As Integer Dim s As String 給數(shù)組a賦初值 For i = 1 To n + 1 a(i) = 0 Next i 計算并打印第一個數(shù) a(1) = 1 Form1.Print Space(2 * n + 2); 計算數(shù)字前的空格數(shù) Form1.Print a(1) 計算其余行的數(shù)并打印 For i = 2 To n + 1 a(i) = a(i - 1) For j = i - 1 To 2 Step -1 a(j) = a(j) + a(j - 1) Next j Form1.Print Space(n - i + 1) * 2); For j = 1
57、 To i s = Trim(Str(a(j) Form1.Print Space(Int(4 - Len(s) / 2 + 0.5) + s + Space(Int(4 - Len(s) / 2 + 0.5); Next j Form1.Print Next iEnd Sub過程Del實現(xiàn)以下功能:產(chǎn)生10個1,100的隨機整數(shù),從鍵盤上輸入一個數(shù),將該數(shù)從數(shù)組中刪除。請在橫線上填入必要的內(nèi)容將橫線刪除掉后填入正確的內(nèi)容,使其完整。Option ExplicitPublic Sub Del() Randomize Dim x As Integer Dim a() As Integer Dim
58、 i As Integer, pos As Integer ReDim a(10) As Integer For i = 1 To 10 a(i)= Int(Rnd * 100) + 1 Next i Form1.Print 原始數(shù)據(jù): For i = 1 To 10 Form1.Print a(i); ; Next i Form1.Print x = Val(InputBox(輸入刪除的數(shù)x=) pos = 0 For i = 1 To 10 If x = a(i) Then pos = i Exit For End If Next i If pos 0 Then For i= pos To
59、 9 a(i) = a(i + 1) Next i ReDim Preserve a(9) Form1.Print 刪除后數(shù)據(jù): For i = 1 To 9 Form1.Print a(i); ; Next i Form1.PrintElse MsgBox 數(shù)組中未找到 & Str(x) & ,刪除不成功 End IfEnd SubModify.bas模塊中的FindMax過程是用于查找一批數(shù)據(jù)中的最大數(shù),并打印出最大數(shù)的值及最大數(shù)在數(shù)組中的下標值,但不完整,在橫線上填入必要的內(nèi)容,使其完整。Modify.bas模塊中的GenerateData過程用于產(chǎn)生30個1-500之間的隨機整數(shù)并5個
60、一行打印出來。Dim a(30) As IntegerPublic Sub FindMax() Dim Position As Integer 最大數(shù)在數(shù)組中的下標 Dim max As Integer 最大數(shù) Dim i As Integer GenerateData max = a(1) Position = 1 For i = 2 To 30 If a(i) max Then max = a(i) Position = i End If Next i Form1.Print 最大值= & Str(max) Form1.Print 最大值的下標= & Str(Position)End Su
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DSE和木霉降解木質(zhì)纖維素殘渣及其發(fā)酵產(chǎn)物對菘藍促生抗旱研究
- 婚約解除損害賠償責任制度研究
- 慢性阻塞性肺疾病合并肌少癥患者SI、TWEAK水平的變化及相關研究
- C鋼管公司供應鏈績效優(yōu)化研究
- 井蓋勞務合同范例
- 買買車定金合同范例
- 保險經(jīng)濟公合同范例
- 企業(yè)保養(yǎng)合同范例
- 買賣合同范例參考
- 農(nóng)場水果采摘經(jīng)營合同范例
- 足球迷互動活動策劃與執(zhí)行策略
- 公司內(nèi)部辦公用品采購預算表
- 四川省南充市2025屆高三下學期高考適應性考試(二診)語文試題(含答案)
- 湖北省2025屆高三下學期2月調(diào)考語文試題及參考答案
- 2025年湖南國防工業(yè)職業(yè)技術學院單招職業(yè)技能測試題庫完整版
- ESC+2024+心房顫動(房顫)管理指南解讀
- 2025年《地陪導游服務程序》公開課標準教案
- 愛耳日完整課件
- 2025年國電投核能限公司招聘高頻重點模擬試卷提升(共500題附帶答案詳解)
- 云南省2025年中考化學第三次模擬考試試題含答案
- 高中英語新課程標準解讀課件
評論
0/150
提交評論