版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、程序調試 (參考答案 )程序調試題的操作步驟是:(1)建立一標準EXE工程,將這一模塊程序添加到工程中。如果你是通過雙擊標準模塊程序Model1.BAS進入Visual Basic系統(tǒng)的,那么首先需要添加一個窗體模塊。(2) 將該標準模塊程序Model1.BAS中代碼的指定的錯誤修改正確或在指定的空位填上適當?shù)恼Z句,并在窗體模塊中編寫代碼(常常寫在窗體的Click()事件中)調用標準模塊中的Sub過程或用戶自定義函數(shù)(如果在標準模塊程序Model1.BAS有多個過程或函數(shù),要注意調用的先后順序,否那么得不到正確結果),調試運行程序,使其能輸出正確結果。(3)按試題要求保存工程。如果你的計算機中
2、沒有模塊程序Model1.BAS,你必需先自己新建一工程,再添加一個默認標準模塊,將題目所附的參考程序輸入(可復制粘貼),將其中用-n-(n為1,2,3,4,5)局部刪除后改為適宜的內容或將用*錯誤n *標示的下一語句中的錯誤改正,然后調試運行程序使其到達該題目的要求。1已有一模塊文件Modify.Bas。該模塊中的Summary過程是用于計算1!+2!+.+20!,并打印出計算結果,但不完整,請在橫線上填入必要的內容,使其完整。Modify.Bas模塊中的nFactor函數(shù)過程用于計算n!。程序如下:Public Function nFactor(ByVal n As Integer) As
3、 DoubleDim i As IntegerDim temp As Double temp=1For i = 1 To n temp = temp * iNext inFactor = temp End FunctionPublic Sub summary()Dim sum As DoubleDim i As IntegerDim n As Integer n = 20For i = 1 To nsum = sum + nFactor(i)Next iForm1.Print sum= & sumEnd Sub2已有一模塊文件Modify.Bas。該模塊中的Calculate過程是產生
4、100個0,99范圍內的隨機整數(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產生100個0,99范圍內的隨機整數(shù)每行10個打印出來For i = 1 To 100 *錯誤1 * a(i) =int( Rnd * 100)If a(i) 10 ThenForm1.Print Space(2); a(i);ElseForm1.Print Spac
5、e(1); a(i); End IfIf 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)計結果保存在數(shù)組x(1),x(2),.,x(10)中,將統(tǒng)計結果打印出來For i = 1 To 100、*p =Int(a(i)錯誤2mod*10) 求個位上的數(shù)字If p = 0 Then p = 10*錯誤3 *x(p) = x(p) + 1Next iForm1.Print 統(tǒng)計結果For i = 1 To 10p = iIf i = 10 Then p = 0*錯誤4 *Forml.Print個位數(shù)
6、為+ Str(p) + 共+ Str(x( i) +個個位數(shù)為0統(tǒng)計結果保存在x(10)中Next iEnd Sub3.已有一模塊文件Modify.Bas。 該模塊中的Findat過程是用于在一個字符串變量中查找找結果的報告:沒有找到或找到的個數(shù),但不完整,請在橫線上填入必要的內容,使其完整。程序如下:Public Sub Findat()at,并用消息框給出查在字符串str1中查找Dim str1 As StringDim length As Integer Dim sum As IntegerDim i As Integerat字符串長度查到的個數(shù)str1 = InputBox(請輸入一個
7、字符串)length = len(str1)i = 1sum = 0Do While i RForm1.Print 太大了,繼續(xù)猜!Case ElseForm1.Print 太小了,繼續(xù)猜!End Selecttimes = times + 1Loop While times 5 ThenForm1.Print 猜數(shù)失敗,游戲結束!Form1.Print 正確答案為 & Str( R)End IfEnd Sub5 .已有一模塊文件Modify.Bas。 該模塊中的ArmstrongNumber過程是用于求出1-999之間所有的Armstrong數(shù),并打印出來,但不完整,請在橫線上填入必
8、要的內容,使其完整。所謂Armstrong數(shù)是指一個數(shù)等于它每位上數(shù)字的立方和。例如:371=3人3+7人3+1人3,那么371就是一個Armstrong數(shù)。程序如下:Public Sub ArmstrongNumber()Dim armstrong As IntegerDim i As IntegerDim hundred As Integer 百位上的數(shù)字Dim ten As Integer 十位上的數(shù)字Dim one As Integer 個位上的數(shù)字For i = 1 To 999hundred = i 100ten = (i - hundred * 100) 10one = i mo
9、d 10If i = hundred + tenA3 +oneA3ThenForm1.Print i; is ar mstrong number End IfNext iEnd Sub6 .已有一模塊文件Modify.Bas。該模塊中的CountTo60過程是用于從一堆一分、二分、五分的硬幣中取出20枚,使其總值為60分,要求輸出取法的數(shù)量及每一種取法的一分、二分、五分的個數(shù)。程序如下:Public Sub CountTo60()從一堆一分、二分、五分的硬幣中取出20枚,使其總值為60分輸出取法的數(shù)量及每一種取法的一分、二分、五分的個數(shù)Dim one As Integer 一分硬幣個數(shù)Dim
10、two As Integer 二分硬幣個數(shù)Dim five As Integer 五分硬幣個數(shù)Const n = 20 總數(shù)20枚Dim k As Integer取法數(shù)量k = 0For one = 1 To n*錯誤1 *For two = 1 To n - onefive = n - one - twoIf one + two *2 + five *5 = 60 ThenForm1.Print one=; one; two=; two; five=; five End IfNext two,*錯誤3*,*錯誤4*、*錯誤2*、*錯誤3*Next oneForm1.Print k=; k E
11、nd Sub7 .已有一模塊文件Modify.Bas。 該模塊中的TJ過程是將一批數(shù)據(jù)中小于零的數(shù)及它們的積打印出來,但不完整,請在橫線上填入必要的內容, 使其完整。Modify.Bas模塊中的SCSJ過程是產生數(shù)據(jù), 數(shù)據(jù)的取值范圍為-10 10之間的隨機數(shù)。程序如下:Private Const n = 10Private a(1 To n) As IntegerTJ過程是將一批數(shù)據(jù)中小于零的數(shù)及它們的積打印出來數(shù)據(jù)由SCSJ過程產生,數(shù)據(jù)的取值范圍為-10 10之間的隨機整數(shù)Public Sub TJ()Dim i As IntegerDim t As Single t=1For i =
12、1 To 10If a(i)0 Thent = t * a(i)End IfNext iForm1.Print T=; tEnd SubPublic Sub SCSJ()RandomizeForm1.Print 原始數(shù)據(jù)Dim i As IntegerDim j As IntegerFor i = 1 To n隨機產生0或1,為0時取負,為1時取正j = Int(Rnd * 2)If j=0 Then j = -1a(i) = j * Int(Rnd * (n + 1)Form1.Print a(i);Next iForm1.PrintEnd Sub8 .已有一模塊文件Modify.Bas。
13、該模塊中的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ù)量Dim ten As
14、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 Integertotalhundred = 0totalfifty = 0totalten = 0totalfive = 0totalone = 0totalsalary = 0For i = 1 To
15、 7temp = salary ( i )hundred = Int(temp / 100)temp = temp hundred * 100fifty = Int(temp / 50)temp = temp - fifty * 50I*錯誤4*ten = Int(temp / 10)temp = temp - ten * 10five = Int(temp / 5)temp = temp - five * 5one = temptotalhundred = totalhundred + hundred totalfifty = totalfifty + fiftytotalten = tot
16、alten + tentotalfive = totalfive + fivetotalone = totalone + onetotalsalary = totalsalary + salary ( i )Next iForm1.Print 共需100元 & Str(totalhundred) & 張Form1.Print 共需50元 & Str(totalfifty) & 張Form1.Print 共需10元 & Str(totalten) & 張Form1.Print 共需5元 & Str(totalfive) & 張For
17、m1.Print 共需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) = 590salary(7) = 1200End Sub9 .已有一模塊文件Modify.Bas。 該模塊中的MaxLine過程用于查找一個5行4列的二維數(shù)組中行平均值最大的行,并
18、將該行所有數(shù)據(jù)調整到第一行的位置。Modify.Bas模塊中的DataProduce過程用于產生原始數(shù)據(jù);Average過程用于計算各行的平均值;PrintArray過程用于打印二維數(shù)組和行平均值。程序如下:Dim a(1 To 5, 1 To 4) As IntegerDim ave(1 To 5) As IntegerPublic Sub MaxLine()Dim i As IntegerDim j As IntegerDim temp As IntegerDim Line_no As Integer 最大平均值的行號找出最大平均值所在行Line_no = 1For i = 2 To 5I
19、f ave(Line_no) ave(i) ThenLine_no = iEnd IfNext i交換第一行與最大平均值所在行For j = 1 To 4 temp = a(1, j)a(1, j)= a (Line_no, j)a (Line_no, j) = temp Next j交換對應行的平均值temp = ave(1)ave(1) = ave(Line_no)ave(Line_no) = temp,*錯誤1 *、*錯誤2*,*錯誤3*打印交換后的數(shù)據(jù)Form1.Print 交換后的數(shù)據(jù)和平均值PrintArrayEnd SubPublic Sub DataProduce()Dim i
20、 As IntegerDim j As Integer產生5*4數(shù)組For i = 1 To 5For j = 1 To 4a(i, j) = Int(100 * Rnd)Next jNext iEnd SubPublic Sub Average() Dim i As Integer Dim j As Integer Dim sum As Integer 計算各行平均值For i = 1 To 5sum = 0For j = 1 To 4 sum = sum + a(i, j)Next jave(i) = sum / 4Next i將數(shù)組和平均值打印出來Form1.Print 原始數(shù)據(jù)和平均值
21、PrintArrayEnd SubPublic Sub PrintArray()Dim i As IntegerDim j As IntegerFor i = 1 To 5For j = 1 To 4Form1.Print a(i, j); Spc(3);Next jForm1.Print 平均值=; ave(i)Next iEnd Sub10已有一模塊文件Modify.Bas。該模塊中的Wrap過程用于判斷一個字符串是否“回文 。 所謂 “回文 是指字符串順讀與倒讀都是一樣的,如“潮起潮落,落潮起潮。程序如下:Public Sub Wrap()Dim length As IntegerDim
22、 str1 As StringDim strleft As StringDim strright As StringDim k As Integerstr1 = InputBox(請輸入任意的字符串) 輸入任意字符串,如 “潮起潮落,落潮起潮*錯誤1*length = len(str1)k = 1Do*錯誤2*strleft = mid(str1, k,1 ) 從左邊起逐個取出一個字符*錯誤3*、*錯誤4* 4 *strright = mid (strl, length +1 k ,1)從右邊起逐個取出一個字符If strleft strright ThenExit DoEnd IfLoop
23、While k length / 2 ThenForm1.Print str1 & 是回文ElseForm1.Print str1 & 不是回文End IfEnd Sub11 .已有一模塊文件Modify.Bas。 該模塊中的BubbleSort過程是冒泡排序法;GenerateData過程產生10個1,20之間互不相同的隨機整數(shù);Swap過程交換兩個變量的數(shù)值。程序如下:Private Const n = 10Private a(1 To n) As IntegerBubbleSort過程是冒泡排序Swap過程交換兩個變量數(shù)值GenerateData過程產生10個1,20之間
24、互不相同的隨機整數(shù)Public Sub BubbleSort()Dim i As Integer, j As Integer i = 1DoFor j = i + 1 To n If a(j) a(i) Then * 1 *Swap a(j), a(i) End IfNext j i = i + 1 * 2 *Loop While i n Form1.Print 排序結果For i = 1 To nForm1.Print a(i);Next iEnd SubPublic Sub GenerateData()Dim i As IntegerDim j As IntegerDim b As Boo
25、leanFor i = 1 To nb = FalseDo While Not ba(i) = Int(20 * Rnd + 1) b = True * 3 *Forj = 1 To i 1If a(i) = a(j) Then b = False Exit ForEnd IfNext jLoopForm1.Print a(i)Next iEnd Sub,*錯誤4*去掉括號,或改為call Swap (a(j), a(i)Public Sub Swap(a As Integer, b As Integer)Dim temp As Integertemp = aa = bb = tempEnd
26、Sub去掉ByVal,數(shù)組不能以ByVal傳遞12.已有一模塊文件Modify.Bas。該模塊中的函數(shù)過程用于將一個十六進制符號Transfer過程用于將一個十六進制整數(shù)轉換為十進制整數(shù);number程序如下:Public Sub Transfer()Dim Hex As String 十六進制數(shù)Dim Dec As Double 十進制數(shù)Dim temp As StringDim i As IntegerDim n As IntegerHex = InputBox(輸入一個十六進制整數(shù))*錯誤1 *n = len(Hex)i = 0Do,*錯誤2*temp = Mid(Hex, n - i
27、, 1)、*錯誤3*Dec = Dec + number (temp)*16Aii = i + 1Loop While i a(j) ThenSwap a(i),a(j)End IfNext jForm1.Print a(i)Next iForm1.print a(i) 或a(10)即最后一個End SubPublic Sub Swap(a As Integer, b As Integer)Dim temp As Integertemp = aa = bb = tempEnd Sub14.已有一模塊文件Modify.Bas。該模塊中的PrintArray過程是用于打印一個線上元素均為1,其余均
28、為2。要求打印的數(shù)字方陣兩列數(shù)字之間空3格,兩行之間空一行。程序如下:Public Sub PrintArray()下面程序用于打印5行5列的數(shù)字方陣使兩對角線上元素均為1,其余均為2要求打印的數(shù)字方陣兩列數(shù)字之間空3格,兩行之間空一行只要修改標出出錯位置的下面那一條語句Dim a(5, 5) As IntegerDim i As Integer, j As Integer5行5列的數(shù)字方陣,并使兩For j = 1 To 5*錯誤1 *If i j and i 6 - j Then a(i,j) = 2Elsea(i, j) = 1End If*錯誤2*Form1.Print a(i,j)
29、Next jSpace(3);數(shù)字與空字符串不能相加、*錯誤3 *Form1.Print : Form1.PrintNext iEnd Sub15.已有一模塊文件Modify.Bas。 該模塊中的Combination過程是用于計算在合值,計算公式為Cmn=m!/(n!*(m-n)!)。Modify.Bas模塊中的nFactor函數(shù)過程用于計算n!。m個數(shù)據(jù)中取出n個數(shù)據(jù)的排列組Public Sub Combination()Dim m As Integer Dimn As Integer Dim CmnAs Long Dom = Val(InputBox(請輸入一個整數(shù)m)n = Val(I
30、nputBox(請輸入一個整數(shù)n(n=m)*錯誤1 *Loop While m =nI*錯誤2*Public Function nFactor(ByVal n As Integer) As DoubleDim i As IntegerDim temp As Doubletemp = 1For i = 1 To ntemp = temp * iNext iEnd Sub16.已有一模塊文件Modify.Bas。 該模塊中的FindMax過程是用于查找一批數(shù)據(jù)中的最大數(shù),并打印出最大數(shù)的值及最大數(shù)在數(shù)組中的下標值,但不完整,請在橫線上填入必要的內容,使其完整。Modify.Bas模塊中的Gener
31、ateData過程用于產生30個1-500之間的隨機整數(shù)并5個一行打印出來。程序如下:Dim a(30) As IntegerPublic Sub FindMax()Dim Position As Integer 最大數(shù)在數(shù)組中的下標Dim max As Integer最大數(shù)Dim i As IntegerGenerateDatamax = a(1)Position = 1For i = 2 To 30If a(i) max Then max = a(i) Position = iEnd IfNext iForm1.Print 最大值= & Str(max)Form1.Print 最大
32、值的下標= & Str(Position)End SubPublic Sub GenerateData()Dim i As IntegerFor i = 1 To 30a(i) = Int(500 * Rnd() + 1)Form1.Print a(i),If i Mod 5 = 0 Then Form1.PrintNext iEnd Sub17.已有一模塊文件Modify.Bas。該模塊中的Prime過程是求出100到200之間所有的素數(shù),并打印出來,但不完整,請在橫線上填入必要的內容,使其完整。程序如下:Public Sub prime()打印出100到200之間所有的素數(shù),并統(tǒng)計素數(shù)的個數(shù)Dim i As IntegerDim j As IntegerDim k As IntegerDim t As Integer 統(tǒng)計素數(shù)的個數(shù)Dim b As BooleanFor i = 100 To 200b = Truek=2j = Int(Sqr(i)Do While k = j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能化廠房內墻抹灰及防水處理勞務分包合同4篇
- 2024蘇州租房合同模板:蘇州工業(yè)園區(qū)租賃市場規(guī)范化合同9篇
- 專業(yè)貨車駕駛員勞動協(xié)議格式版B版
- 2024裝飾合同補充協(xié)議范本
- 2025年廠房租賃與產業(yè)協(xié)同發(fā)展合同4篇
- 2025年度茶葉包裝設計及印刷合同書范本4篇
- 二零二五年度城市綜合體BIM施工協(xié)調與監(jiān)控合同3篇
- 專業(yè)工地食堂供應承包條款及合同(2024版)版B版
- 2025年度教育用品寄賣代理合同范本3篇
- 2025年度現(xiàn)代農業(yè)科技示范場承包合作協(xié)議4篇
- 臺資企業(yè)A股上市相關資料
- 電 梯 工 程 預 算 書
- 羅盤超高清圖
- 參會嘉賓簽到表
- 機械車間員工績效考核表
- 形式發(fā)票格式2 INVOICE
- 2.48低危胸痛患者后繼治療評估流程圖
- 人力資源管理之績效考核 一、什么是績效 所謂績效簡單的講就是對
- 山東省醫(yī)院目錄
- 云南地方本科高校部分基礎研究
- 廢品管理流程圖
評論
0/150
提交評論