




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第二局部 VB上機考試模擬試題一、程序調試題(改錯或填空)一說明等級考試上機測試的程序調試題常常是在考生目錄中給出一個標準模塊程序Modify.BAS,要求根據題意修改該模塊中的函數或過程,為檢測所作修改是否正確,可以按照以下操作步驟進行調試:1要求學生建立一工程,將這一模塊添加到工程中。如果你是通過雙擊標準模塊程序Modify.BAS進入Visual Basic程序設計系統的,那么首先需要添加一個窗體模塊。2將該標準模塊程序Modify.BAS代碼中用-n-n為1,2,3,4,5局部刪除后改為適宜的內容或將用*錯誤n*標示的下一語句中的錯誤改正,并在窗體模塊中編寫代碼常常寫在窗體的Click
2、()事件中調用標準模塊中的sub過程或自定義函數如果在標準模塊程序中有多個過程或函數,要注意調用的先后順序,否那么得不到正確結果,調試運行程序,使其能輸出正確結果。3按試題要求保存工程。二程序調試題Modify.bas模塊中的getanswer過程是用于計算一元二次方程的根,并將結果輸出來。Option ExplicitPublic Sub getanswer() 該過程是用于計算一元二次方程的根,并將結果輸出來。 Dim dalt!, a#, b#, c# a = InputBox(輸入系數a) b = InputBox(輸入系數b) c = InputBox(輸入系數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 每行起始空格數 Dim count As Integer 每行#個數 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用以打印一個數字金字塔,請在橫線上填入必要的內容將橫線刪除掉后填入正確的內容,使其完整。Option ExplicitPublic Sub pyramid() 打印數字金字塔 1 222 33333 4444444 555555555 6666666 77777 888 9 Dim i As Integer Dim
6、j As Integer Dim start As String 每行起始空格數 Dim num As Integer 每行數字個數 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、 打印由數字組成的如下所示金字塔圖案 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組成的數。Publi
8、c Sub total() 計算s=7+77+777+n個7組成的數 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天早上要吃時只剩下一個了, 并將結果輸出來。 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之間所有的素數,并打印出來。Public Sub prime() 打印出
10、100到200之間所有的素數,并統計素數的個數 Dim i As Integer Dim j As Integer Dim k As Integer Dim t As Integer 統計素數的個數 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用以驗證一個偶數可以分解為兩個素數之和;Isprime用以判斷x是否是素數。請在橫線上填入必要的內容將橫線刪除掉后填入正確的內容,使其完整。Public Sub even() 從鍵盤輸入一個大于4的偶數,將它所有的不重復的分解式求出 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的奇數中找素數 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、余數為1的最小的5個整數,并將結果輸出來。Option ExplicitPublic Sub find() 該過程是用于找出被3、5、7除,余數為1的最小的5個整數,并將結果輸出來。 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通過調用函數isLeapYear判斷某年是否是閏年,假設是,那么打印今年是閏年,否那
14、么打印今年不是閏年。 閏年的判斷方法是:但凡年份不能被4整除的都不是閏年,而且如果年份能被100整除但不能被400整除的也不是閏年。Option ExplicitPublic Sub rn() 該過程通過調用函數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分,要求輸出取法的數量及每一種取法的一分、二分、五分的個數。請建立工程將Modify.bas模塊參加工程中進行調試。注意:只要修改標出出錯位置的下面那一條語句即可,其余代碼不要改動。Public Sub countto60(
16、) 從一堆一分、二分、五分的硬幣中取出20枚,使其總值為60分 輸出取法的數量及每一種取法的一分、二分、五分的個數 Dim one As Integer 一分硬幣個數 Dim two As Integer 二分硬幣個數 Dim five As Integer 五分硬幣個數 Const n = 20 總數20枚 Dim k As Integer 取法數量 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之間所有的同構數。所謂同構數是指一個數出現在它的平方數的右端,如25在25平方625的右端,那么25為同構數。利用數字轉字符再取出右端字符的方法進行判斷。Public Sub same() Dim i As Integer Dim x1 As String, x2 As String For i = 1 To 1000 x1= CStr(i
18、) 將i轉字符型 x2= CStr(i 2) 將i2轉字符型 if x1 = Right(x2, Len(x1) Then Form1.Print i; 是同構數 End If Next iEnd SubModify.bas模塊中的ArmstrongNumber過程是用于求出1999之間所有的Armstrong數,并打印出來。所謂Armstrong數是指一個數等于它每位上數字的立方和。Public Sub ArmstrongNumber() Dim armstrong As Integer Dim i As Integer Dim hundred As Integer 百位上的數字 Dim t
19、en As Integer 十位上的數字 Dim one As Integer 個位上的數字 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中的所有完數。所謂完數是指一個數的所有因子之和等于其自身。請在橫線上填入必要的內容將橫線刪除掉后填入正確的內容,使其完整。Option
20、ExplicitDim a(50) As Integer 存放每個數分解出來的因子Public Sub cloze() 求1-100中的所有完數 Dim i As Integer, j As Integer 16: 215 +11,2,4,8 Dim n As Integer 因子個數 Dim s As Integer 因子和 For i = 1 To 1000 n = 0 s = 0 factor i, n 該語句與call factor(i,n)是等價的,詳見課本P89SUB過程調用的兩種格式 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的實數,其值由鍵盤輸入。Option ExplicitPublic Sub qiuN() 該過程是用于求出滿足不等式1+2x+3x2+4x3+(n+1)xn1000的最大n值, 其中x
23、是大于等于1的實數,其值由鍵盤輸入。 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),請在橫線上填入必要的內容。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!,并打印出計算結果,但不完整,請在橫線上填入必要的內容,使其完整。Modify.bas模塊中的nFaction函數過程用于計算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中找出這樣的數,該數各個位的數字的階乘相加之和等于該數,并將結果輸出。其中階乘由fact函數計算。Option ExplicitPublic Sub find() 該過程是用于從1到10000中找出這樣的數, 該數各個位的數字的階乘相加之和等于該數,并將結果輸出。 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 該函數用于計算階乘 Dim y As Long Dim i% y = 1 For i% = 1 To x y = y * i% Next i% Fact=yEnd FunctionModify.bas模塊中的Combination過程是用于計算m個數據中取出n個數據的排列組合值,計算公式為Cmn=m!/(n!*(m-n)!)。Modify.bas模塊中的n過程是產生數據,數據的取值范圍為-1010之間的隨機數。Public Sub Combinatio
29、n() Dim m As Integer Dim n As Integer Dim Cmn As Long Do m = Val(InputBox(請輸入一個整數m) n = Val(InputBox(請輸入一個整數n(n=m) * 錯誤1 * Loop While m =n * 錯誤2 * Cmn = nFactor(m) / (nFactor(n) * nFactor(m - n) Form1.Print 排列組合數為; 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),因為函數過程是用函數名返回結果。 * 錯誤4 *End Function過程Uppersen實現從鍵盤上任意輸入一條英文句子,將句子中的每個單詞的首字母都變成大寫例如:輸入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) 以空格作為單詞的界定,空格后的字母轉換為大寫字母 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餐廳發工資程序。Modify.bas模塊中的Money過程是用于統計一個有7個工作人員的餐廳發工資所需的100元、50元、10元、5元和1元的票面數。Modify.bas模塊中的SalaryData過程是給出7個員工的工資。Dim salary(7) As IntegerPublic Sub Money() Dim hundred As Integer, totalhundred As Integer 100元票面數量、總數量 Dim fifty As Integer, totalfifty As Integer 50元票面數量、總數量
33、Dim ten As Integer, totalten As Integer 10元票面數量、總數量 Dim five As Integer, totalfive As Integer 5元票面數量、總數量 Dim one As Integer, totalone As Integer 1元票面數量、總數量 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過程是猜數游戲,由計算機產生一個1,100的任意整數,輸入猜數后計算機給出提示,如果5次后還沒有猜中就結束游戲并公布正確答案,請改正其中的錯誤。說明:只要修改標出出錯位置的下面那條語句。Public Sub Guess() Dim R As Integer Dim X As Integer Dim time As
39、 Integer Randomize -1- R=Int(Rnd*100+1) 產生一個1100的任意整數 Times=1 Do X=Val(InputBox(輸入猜數X) Select Case X Case R Form1.Print 猜中了 Exit Do -2- Case IsRForm1.Print 太大了,繼續猜! Case ElseForm1.Print 太小了,繼續猜!End SelectTimes=times+1-3-Loop Until times5If times5 Then Form1.Print 猜數失敗,游戲結束! -4- Form1.Print 正確答案為 & S
40、tr(R) End IfEnd SubModify.bas模塊中的Findat過程是用于在一個字符串變量中查找at,并用消息框給出查找結果的報告:沒有找到或找到的個數。Public Sub Findat() 在字符串str1中查找at Dim str1 As String Dim length As Integer 字符串長度 Dim sum As Integer 查到的個數 Dim i As Integer str1 = InputBox(請輸入一個字符串) length = Len(str1) i = 1 sum = 0 Do While i 0 Then 找到了指定的字符串 num =
41、num + 1 次數加1 pos = pos + Len(str2) 繼續向前找 Else Exit For 沒找到,退出 End If Next i matchCount = numEnd FunctionModify.bas模塊中的過程ComMulti是求任意兩個正整數的最小公倍數。最小公倍數是兩個數的乘積除以這兩個數的最大公約數。Modify.Bas模塊中的Div函數過程用于求任意兩個正整數的最大公約數。Public Sub ComMulti() 該過程是求任意兩個正整數的最小公倍數 求最小公倍數的一種方法是先求出兩個數的最大公約數, 兩個數的乘積除以最大公約數的商即為最小公倍數 Dim
42、 m As Integer, n As Integer 任意兩個正整數 Dim i As Integer Dim multi As Integer 最小公倍數 輸入兩個正整數,要求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; 的最小公倍數是:; multiEnd SubDiv函數過程求任意兩個正整數m和n的最大公約數Public Function Div(m As Integer, n
43、As Integer) As Integer 該函數過程用于求任意兩個正整數的最大公約數。 Dim i As Integer 先將兩個整數中的較小數假設為最大公約數,再依次往下 尋找能同時除盡m和n的數即為最大公約數 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用以實現求任意兩個正整數的最大公約數,請改正其中的錯誤。說明:只要修改標出出錯位置的下面那條語句。Public Sub ComDiv() Dim m As Inte
44、ger, n As Integer 任意兩個正整數 Dim i As Integer Dim div As Integer 最大公約數 輸入兩個正整數,要求m與n都必須大于零 Do m = Val(InputBox(m=) n = Val(InputBox(n=) * 錯誤1 * Loop While m = 0 Or n = 0 先將兩個整數中的較小數假設為最大公約數,再依次往下 尋找能同時除盡m和n的數即為最大公約數 * 錯誤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; 的最大公約數是:; divEnd Sub過程DtoB采用連除2取余數的方法實現將一個十進制數轉換為二進制數,但不完整,請在橫線上填入必要的內容將橫線刪除掉后填入正確的內容,使其完整。Public Sub DToB() Dim Dec As Integer 輸入一個十進制數 Dim Bin As String 轉換為二進制表示 Dim res As Integer Dim i As Integer Dec = Val(InputBox(x=) Form1.Print 十進制數:; Dec D
46、o res= Dec Mod 2 求出除以2的余數 Bin= res & Bin Dec= Dec 2 Loop While Dec 0 Form1.Print 轉換為二進制數為:; BinEnd SubModify.bas模塊中的Transfer過程用于將一個十六進制整數轉換為十進制整數;number函數過程用于將一個十六進制符號轉換為數值。Public Sub Transfer() Dim Hex As String 十六進制數 Dim Dec As Double 十進制數 Dim temp As String Dim i As Integer Dim n As Integer Hex =
47、 InputBox(輸入一個十六進制整數) * 錯誤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 & 轉換為十進制數為 & 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有一個數列,它的前三個數是0,1,2,從第四個數起,每個數都是它前面的兩個數之和斐邦納契數列,過程Fabonia用于求出該數列的第17個數是多少?求出該數列的第幾個數起每個數都超過1E+8?請在橫線上填入必要的內容。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 數列的第二個數 last_two = 2 數列的第三個數 i = 4 從數列的第四個數求起 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過程是用于統計在隨機產生的10個兩位整數中的偶數的個數并用消息框輸出。Option ExplicitPublic Sub countEven() 該過程是用于統計在隨機產生的10個兩位整數中的偶數的個數并用消息框輸出。 Dim a(10) As Integer 存放10個隨機數第一個為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 偶數個數: & count End SubModify.bas模塊中的TJ過程是將一批數據中小于零的數及它們的積打印出來,但不完整,請在橫線上填入必要的內容,使其完整。Modify.bas模塊中的SCSJ過程是產生數據,數據的取值范圍為-1010之間的隨機數。Private Const n = 10Private a(1 To n) As IntegerTJ過程是將一批數據中小于零的數及它們的積打印出來數據由SCSJ過程產生,數據的取值范圍為
52、-10 10 之間的隨機整數數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 原始數據 Dim i As Integer Dim j As Integer For i = 1 To 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過程是產生100個0,99范圍內的隨機整數,統計個位上的數字分別為1,2,3,4,5,6,7,8,9,0的數的個數并打印出來.Public sub calculate()Dim a(1 to 100) as integerDim x(1 to 10) as integerDim I as integer,p as integer產生100個0,99范圍內的隨機整數每行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統計個位上的數字分別為1,2,3,4,5,6,7,8,9,0的數的個數并將統計結果保存在數組x(1),x(2),x(10)中,將統計結果打印出來for I=1 to 100 *2* p=int(a(i) Mod 10) 求個位上的數字if p=0 then p=10*3*x(p)=x(p) + 1next Iform
55、1.print “統計結果for I=1 to 10 p=Iif I=10 then p=0*4*form1.print “個位數為+str(p)+共“+str(x(I)+個next Iend subModify.bas模塊中的過程prt是輸出由數字組成的如下所示楊輝三角形圖案。Option ExplicitPublic Sub prt() 該過程是輸出由數字組成的如下所示楊輝三角形圖案 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 給數組a賦初值 For i = 1 To n + 1 a(i) = 0 Next i 計算并打印第一個數 a(1) = 1 Form1.Print Space(2 * n + 2); 計算數字前的空格數 Form1.Print a(1) 計算其余行的數并打印 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實現以下功能:產生10個1,100的隨機整數,從鍵盤上輸入一個數,將該數從數組中刪除。請在橫線上填入必要的內容將橫線刪除掉后填入正確的內容,使其完整。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 原始數據: For i = 1 To 10 Form1.Print a(i); ; Next i Form1.Print x = Val(InputBox(輸入刪除的數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 刪除后數據: For i = 1 To 9 Form1.Print a(i); ; Next i Form1.PrintElse MsgBox 數組中未找到 & Str(x) & ,刪除不成功 End IfEnd SubModify.bas模塊中的FindMax過程是用于查找一批數據中的最大數,并打印出最大數的值及最大數在數組中的下標值,但不完整,在橫線上填入必要的內容,使其完整。Modify.bas模塊中的GenerateData過程用于產生30個1-500之間的隨機整數并5個
60、一行打印出來。Dim a(30) As IntegerPublic Sub FindMax() Dim Position As Integer 最大數在數組中的下標 Dim max As Integer 最大數 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學習障礙干預策略教育心理學的實踐應用
- 技術助力教學評估體系的新構建
- 醫療設備操作中的學習心理障礙克服
- 中國嬰兒全棉套裝行業發展分析及投資風險預測分析報告2025-2028版
- 中國休閑高幫鞋行業發展趨勢及發展前景研究報告2025-2028版
- 中國Y型鋼行業發展現狀及發展趨勢與投資風險分析2025-2028版
- 電子商務運營講課件
- 生產加工合同履約金的規定
- 食堂清潔維護合同
- 防水設施維護與保養合同
- 胸痛健康教育課件
- 2025年合肥城建發展股份有限公司及所屬子公司招聘17人(二批次)筆試參考題庫附帶答案詳解
- 【上料機械手結構中的真空系統的設計計算案例1100字】
- 西方美術史試題及答案
- 七年級數學下學期期末測試卷(1)(學生版+解析)-2025年七年級數學下學期期末總復習(北師大版)
- 醫院員工手冊管理制度
- 校園短劇創作與演出指導行業跨境出海項目商業計劃書
- 泉州水務集團有限公司招聘考試真題2024
- 東航客運崗位面試題目及答案
- 【7歷期末】安徽省合肥市包河區2023-2024學年部編版七年級下學期期末歷史試卷
- 2025年人教版小學數學三年級下冊期末考試卷(帶答案)
評論
0/150
提交評論