




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、程序調(diào)試題1.計算1!+2!+.+20!Public Function nFactor(ByVal n As Integer) As Double '該過程用于計算n!。Dim i As Integer Dim temp As Double -1- temp=1 For i = 1 To n temp = temp * i Next i nFactor = -2- tempEnd Function Public Sub summary() '該過程用于計算1!+2!+.+20!,并打印出計算結(jié)果。Dim sum As Double Dim i As Integer D
2、im n As Integer n = 20 For i = 1 To n sum = sum +-3-nFactor (i) Next i Form1.Print "sum=" & -4- sumEnd Sub47Public 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- 1 to a p = Val
3、(Mid(a, i, 1) n= -2- n+fact(p) Next i If n = k Then form1.Print k Next kEnd SubFunction 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% -3- fact=yEnd Function2. -統(tǒng)計個位上的數(shù)字Public Sub calculate() Dim a(1 To 100) As Integer Dim x(1 To 10) As Intege
4、r Dim i As Integer, p As Integer '產(chǎn)生100個0,99范圍內(nèi)的隨機整數(shù) '每行10個打印出來 For i = 1 To 100 '* 錯誤1 * a(i) = Rnd * 99 a(i)=int(Rnd*100) If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print Next i '統(tǒng)計個位上的數(shù)字分別為1,2,3,4,5,6,7,8,9,0
5、的數(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) / 10) '求個位上的數(shù)字 p=a(i) mod 10 If p = 0 Then p = 10 '* 錯誤3 * x(p) = x(p) 1 x(p)=x(p)+1 Next i Form1.Print "統(tǒng)計結(jié)果" For i = 1 To 10 p = i If i = 10 Then p = 0 '* 錯誤4 * Form1.Print "個位數(shù)
6、為" + Str(p) + "共" + Str(x(p) + "個" str(x(p)改成str(x(i) Next iEnd Sub3. 在字符串str1中查找"at"Public Sub Findat() '在字符串str1中查找"at" Dim str1 As String Dim length As Integer '字符串長度 Dim sum As Integer '查到的個數(shù) Dim i As Integer str1 = InputBox("請輸入一個字符串
7、") -1- length =len(str1) i = 1 sum = 0 Do While -2- i <=length If -3-Thenmid(str1,i,2) = "at" sum = sum + 1 End If i = i + 1 Loop If -4-Thensum=0 MsgBox "沒有找到!" Else MsgBox "找到了" & Str(sum) & "個" End IfEnd Sub4. -'該過程是猜數(shù)游戲,由計算機產(chǎn)生一個1,100的任意整
8、數(shù),'輸入猜數(shù)后計算機給出提示,如果5次后還沒有猜中就結(jié)束游戲并公布正確答案。Public Sub Guess() Dim R As Integer Dim X As Integer Dim times As Integer Randomize '* 錯誤1 * R = Rnd * 100 '產(chǎn)生一個1-100 的任意整數(shù) R=int(Rnd*100)+1 times = 1 Do X = Val(InputBox("輸入猜數(shù)X") Select Case X Case R Form1.Print "猜中了" Exit Do
9、39;* 錯誤2 * Case X > R case is>R Form1.Print "太大了,繼續(xù)猜!" Case Else Form1.Print "太小了,繼續(xù)猜!" End Select times = times + 1 '* 錯誤3 * Loop While times > 5 Loop Until time>5 If times > 5 Then Form1.Print "猜數(shù)失敗,游戲結(jié)束!" '* 錯誤4 * Form1.Print "正確答案為"
10、& Str(X) Str(R) End IfEnd Sub5. -'該過程是用于求出100-999之間所有的Armstrong數(shù),并輸出。 '所謂Armstrong數(shù)是指一個數(shù)等于它每位上數(shù)字的立方和。例如:371=33+73+13,那么371就是一個Armstrong數(shù)。Public Sub ArmstrongNumber() Dim armstrong As Integer Dim i As Integer Dim hundred As Integer '百位上的數(shù)字 Dim ten As Integer '十位上的數(shù)字 Dim one As Int
11、eger '個位上的數(shù)字 For i = 100 To 999 -1- hundred = i100 -2- ten = (I Mod 100)10 -3- one = I Mod 10 If -4- Then I=hundred3+ten3+one3 Form1.Print i; "is armstrong number" End If Next iEnd Sub6. -Public Sub CountTo60() '從一堆一分、二分、五分的硬幣中取出20枚,使其總值為60分 '輸出取法的數(shù)量及每一種取法的一分、二分、五分的個數(shù) Dim one A
12、s 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 = one + 1 To n For two = 1 To n-one five = n - one - two '* 錯誤2 * If one + two + five = 60 Then If one + two*2 + fiv
13、e*5 = 60 Then k = k + 1 Form1.Print "one=" one; "two=" two; "five=" five End If '* 錯誤3 * Next one Next two '* 錯誤4 * Next two Next one Form1.Print "k=" kEnd Sub7. -Private Const n = 10Private a(1 To n) As Integer'TJ過程是將一批數(shù)據(jù)中小于零的數(shù)及它們的積打印出來'數(shù)據(jù)由SCS
14、J過程產(chǎn)生,數(shù)據(jù)的取值范圍為-10 10 之間的隨機整數(shù)數(shù)Public Sub TJ() Dim i As Integer Dim t As Single - 1 - t=1 For i = 1 To 10 If - 2 - Then a(i)<0 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 '
15、;隨機產(chǎn)生0或1,為0時取負,為1時取正 j = Int(Rnd * 2) If - 3 - Then J = -1 j=0 a(i) = j * Int(Rnd * (n + 1) Form1.Print a(i); Next i Form1.PrintEnd Sub8. -餐廳發(fā)工資,總計要給7個人發(fā)工資統(tǒng)計100元、50元、10元、5元和1元的票面數(shù)量和總數(shù)量Dim salary(7) As IntegerPublic Sub Money() Dim hundred As Integer, totalhundred As Integer '100元票面數(shù)量、總數(shù)量 Dim fif
16、ty As Integer, totalfifty As Integer '50元票面數(shù)量、總數(shù)量 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 tota
17、lhundred = 0 totalfifty = 0 totalten = 0 totalfive = 0 totalone = 0 totalsalary = 0 For i = 1 To 7 -1- temp = salary (i) hundred = Int(temp / 100) -2- temp = salary (i) Mod 100 fifty = Int(temp / 50) temp = temp - fifty * 50 ten = Int(temp / 10) temp = temp - ten * 10 five = Int(temp / 5) temp = tem
18、p - five * 5 -3- one = temp totalhundred = totalhundred + hundred totalfifty = totalfifty + fifty totalten = totalten + ten totalfive = totalfive + five totalone = totalone + one -4- totalsalary = totalfifty + totalten+ totalfive+ totalone Next i Form1.Print "共需100元" & Str(totalhundred
19、) & "張" Form1.Print "共需50元" & Str(totalfifty) & "張" Form1.Print "共需10元" & Str(totalten) & "張" Form1.Print "共需5元" & Str(totalfive) & "張" Form1.Print "共需1元" & Str(totalone) & "張&quo
20、t; Form1.Print "合計" & Str(totalsalary) & "元"End Sub Public Sub SalaryData() salary(1) = 1398 salary(2) = 1765 salary(3) = 689 salary(4) = 1500 salary(5) = 832 salary(6) = 590 salary(7) = 1200End Sub9. -DataProduce過程用于產(chǎn)生5*4的數(shù)組MaxLine過程用于計算最大平均值所在行,并交換第一行與最大平均值所在行Avera
21、ge過程用于計算各行的平均值PrintArray過程用于打印5*4數(shù)組和每行的平均值Dim a(1 To 5, 1 To 4) As IntegerDim ave(1 To 5) As IntegerPublic Sub MaxLine() Dim i As Integer Dim j As Integer Dim temp As Integer Dim Line_no As Integer '最大平均值的行號 '找出最大平均值所在行 Line_no = 1 For i = 2 To 5 '* 錯誤1 * If ave(Line_no) >= ave(i) The
22、n ave(Line_no) < ave(i) '* 錯誤2 * Line_no = ave(i) Line_no = i End If Next i '交換第一行與最大平均值所在行 For j = 1 To 4 temp = a(1, j) '* 錯誤3 * a(1, j)= a (Line_no, j) a(Line_no, j) = a(1, j) a(Line_no, j) = temp Next j '交換對應行的平均值 temp = ave(1) ave(1) = ave(Line_no) ave(Line_no) = temp '打印
23、交換后的數(shù)據(jù) Form1.Print "交換后的數(shù)據(jù)和平均值" PrintArrayEnd SubPublic Sub DataProduce() Dim i As Integer Dim j As Integer '產(chǎn)生5*4數(shù)組 For i = 1 To 5 For j = 1 To 4 a(i, j) = Int(100 * Rnd) Next j Next iEnd SubPublic Sub Average() Dim i As Integer Dim j As Integer Dim sum As Integer '計算各行平均值 For i =
24、 1 To 5 sum = 0 For j = 1 To 4 '* 錯誤4 * sum = a(i, j) sum = sum +a(i, j) Next j ave(i) = sum / 4 Next i '將數(shù)組和平均值打印出來 Form1.Print "原始數(shù)據(jù)和平均值" PrintArrayEnd SubPublic Sub PrintArray() Dim i As Integer Dim j As Integer For i = 1 To 5 For j = 1 To 4 Form1.Print a(i, j); Spc(3); Next j F
25、orm1.Print "平均值=" ave(i) Next iEnd Sub10. -Public Sub Wrap()'該過程用于判斷一個字符串是否“回文”。'所謂“回文”是指字符串順讀與倒讀都是一樣的,如“潮起潮落,落潮起潮”。 Dim length As Integer Dim str1 As String Dim strleft As String Dim strright As String Dim k As Integer str1 = InputBox("請輸入任意的字符串") '輸入任意字符串 '*錯誤1*
26、 length = Val(str1) length = Len(str1) k = 1 Do '*錯誤2* strleft = Left(str1, k) '從左邊起逐個取出一個字符 strleft = Mid(str1, k,1) '*錯誤3* strright = Right(str1, k) '從右邊起逐個取出一個字符 strright = Mid(str1,length- k+1,1) '*錯誤4* If strleft = strright Then strleft<> strright Exit Do End If k = k
27、+ 1 Loop While k <= length / 2 If k > length / 2 Then Form1.Print str1 & "是回文" Else Form1.Print str1 & "不是回文" End IfEnd Sub11. -'BubbleSort過程是冒泡排序'Swap過程交換兩個變量數(shù)值'GenerateData過程產(chǎn)生10個1,20之間互不相同的隨機整數(shù)Private Const n = 10Private a(1 To n) As IntegerPublic Sub
28、 BubbleSort() Dim i As Integer, j As Integer i = 1 Do For j = i + 1 To n If a(j) > a(i) Then '* 1 * Swap (a(j), a(i) Call Swap (a(j), a(i) End If Next j i = i + 1 '* 2 * Loop While i = n I<= n Form1.Print "排序結(jié)果" For i = 1 To n Form1.Print a(i); Next iEnd SubPublic Sub Generat
29、eData() Dim i As Integer Dim j As Integer Dim b As Boolean For i = 1 To n b = False Do While Not b a(i) = Int(20 * Rnd + 1) b = True '* 3 * For j = 1 To I for j = 1 To I-1 If a(i) = a(j) Then b = False Exit For End If Next j Loop Form1.Print a(i) Next iEnd Sub'* 4 *Public Sub Swap(ByVal a As
30、 Integer, ByVal b As Integer) sub Swap(a As Integer, b As Integer) Dim temp As Integer temp = a a = b b = tempEnd Sub12. -十六進制數(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 = InputBox("輸入一個十六進制整數(shù)&qu
31、ot;) '* 錯誤1 * n = Val(Hex) n = Len(Hex) i = 0 Do '* 錯誤2 * temp = Mid(Hex, i, 1) temp = Mid(Hex, n-i, 1) '* 錯誤3 * Dec = Dec + number * 16 I Dec = Dec + number(temp) * 16 i i = i + 1 Loop While i < n '* 錯誤4 *Form1.Print str(Hex) & "轉(zhuǎn)換為十進制數(shù)為" & str(Dec) Hex & En
32、d SubPublic Function number(str As String) As Integer Select Case str Case "a", "A" number = 10 Case "b", "B" number = 11 Case "c", "C" number = 12 Case "d", "D" number = 13 Case "e", "E" number = 14
33、Case "f", "F" number = 15 Case Else number = Val(str) End SelectEnd Function13. -Public Sub SortData() '產(chǎn)生10個30,50的隨機整數(shù),并按從小到大的順序打印出來 Dim a(10) As Integer Dim i As Integer, j As Integer For i = 1 To 10 - 1 - a(i)= Int(Rnd*21)+30 Next i For i = 1 To 9 - 2 - For j=I+1 To 10 If
34、a(i) > a(j) Then - 3 - Swap a(i),a(j)或call swap (a(i),a(j) End If Next j Form1.Print a(i) Next i - 4 - Form1.print a(10)End Sub Public Sub Swap(a As Integer, b As Integer) Dim temp As Integer temp = a a = b b = tempEnd Sub14. -Public Sub PrintArray() '下面程序用于打印5行5列的數(shù)字方陣 '使兩對角線上元素均為1,其
35、余均為2 '要求打印的數(shù)字方陣兩列數(shù)字之間空3格,兩行之間空一行 Dim a(5, 5) As Integer Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5 '* 錯誤1 * If i <> j Or i <> 6 - j Then or 改成And a(i, j) = 2 Else a(i, j) = 1 End If '* 錯誤2 * Form1.Print a(i, j) + Space(3); Form1.Print a(i, j) ; Space(3); Nex
36、t j '* 錯誤3 * Form1.Print Form1.Print: Form1.Print Next iEnd Sub15. -Public Sub Combination() '該過程是用于計算在m個數(shù)據(jù)中取出n個數(shù)據(jù)的排列組合值計算公式為Cmn=m!/(n!*(m-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)") Loop Wh
37、ile m < n '必須保證輸入的兩個數(shù)m>=n '* 錯誤1 * Cmn = nFactor(m) / nFactor(n) * nFactor(m - n) 改成Cmn = nFactor(m) /( nFactor(n) * nFactor(m - n) Form1.Print "排列組合數(shù)為" CmnEnd SubPublic Function nFactor(ByVal n As Integer) As Double '該函數(shù)過程用于計算n!。 Dim i As Integer Dim temp As Double temp
38、= 1 For i = 1 To n temp = temp * i Next i '*錯誤 2 * nFactor(n) = temp nFactor= temp '* 錯誤3 * End Sub End Function16. -'該過程是用于查找一批數(shù)據(jù)中的最大數(shù),并輸出最大數(shù)的值及最大數(shù)在數(shù)組中的下標值。Dim a(30) As IntegerPublic Sub FindMax() Dim Position As Integer '最大數(shù)在數(shù)組中的下標 Dim max As Integer '最大數(shù) Dim i As Integer Gener
39、ateData max = -1- a(1) Position = -2- 1 For i = 2 To 30 If a(i) > max Then max = -3- a(i) Position = -4- I End If Next i Form1.Print "最大值=" & Str(max) Form1.Print "最大值的下標=" & Str(Position)End SubPublic Sub GenerateData() Dim i As Integer For i = 1 To 30 a(i) = Int(500
40、* Rnd + 1) Form1.Print a(i), If i Mod 5 = 0 Then Form1.Print Next iEnd Sub17. -Public Sub prime() '打印出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 - 1 - k=2 j = Int(Sqr(i) Do While k <= j And b If i Mod k = 0 Then - 2 - b=False End I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學期中班級的適應性調(diào)整計劃
- Unit 2 School things Lesson 5(教學設(shè)計)-2024-2025學年人教精通版英語三年級上冊
- 論語翻譯工作總結(jié)
- 2025年水分濕度傳感器項目合作計劃書
- 八年級語文下冊 十四像山那樣思考教學實錄設(shè)計 長春版
- 開店股權(quán)合作協(xié)議
- 新員工延期轉(zhuǎn)正評語
- 2025年高壓清洗車項目建議書
- 2025年貨運資格證題庫及答案大全
- 2025年農(nóng)村房屋轉(zhuǎn)讓協(xié)議書模板 雙方
- 廣東廣州歷年中考語文現(xiàn)代文閱讀之非連續(xù)性文本閱讀7篇(截至2024年)
- 做自己的英雄主題班會
- 《蘋果SWOT分析》課件
- 人生下半場-(美)鮑伯·班福德著楊曼如譯
- 2024至2030年中國ICU/CCU病房數(shù)據(jù)監(jiān)測研究報告
- 高中家長會 高二文科班下學期家長會課件
- (八省聯(lián)考)河南省2025年高考綜合改革適應性演練 思想政治試卷合集(含答案)
- 2025年安徽淮海實業(yè)集團招聘筆試參考題庫含答案解析
- 《餐巾折花圖示》課件
- 南京市、鹽城市2025屆高三年級第一次模擬考試(一模)英語試卷(含答案)+聽力音頻
- 頸椎病招商課件
評論
0/150
提交評論