VB程序設(shè)計 習題及答案第5章 循環(huán)結(jié)構(gòu)程序設(shè)計
《VB程序設(shè)計 習題及答案第5章 循環(huán)結(jié)構(gòu)程序設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《VB程序設(shè)計 習題及答案第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(14頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第5章 循環(huán)結(jié)構(gòu)程序設(shè)計 ? 5.1 試編程序,打印出自然數(shù)1到20的立方數(shù)。 【參考答案】 程序代碼設(shè)計 Private Sub Form_Click() Form1.Print " x", " x^2" For x = 1 To 20 Form1.Print x, x ^ 2 Next x End Sub ? Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "打印自然數(shù)1到20的立方數(shù)" Form1.Print "單擊窗體開
2、始" End Sub 圖5-1 程序運行結(jié)果 程序運行結(jié)果如圖5-1所示: ? 5.2 試編程序,打印出1到500之間所有偶數(shù)的和。 【參考答案】 程序代碼設(shè)計 Private Sub Command1_Click() Sum = 0 For k = 1 To 500 If k Mod 2 = 0 Then Sum = Sum + k Next k Form1.Print "1到500的偶數(shù)和為:"; Sum End Sub ? Private Sub Form_Load() Form1.AutoRedraw = True
3、 Form1.Print Form1.Print "打印1到500之間所有偶數(shù)的和" Form1.Print 圖5-2 程序運行結(jié)果 End Sub 程序運行結(jié)果如圖5-2所示: ? 5.3 試編寫打印下面圖案的源程序。 * * * * * * * * * * * * * * * 【參考答案】 程序代碼設(shè)計 Private Sub Command1_Click() For i = 1 To 5 Form1.Print Tab(5 + i); For
4、 j = i To 5 Form1.Print "*"; Next j Form1.Print Next i End Sub 程序運行結(jié)果如圖5-3所示: ? 圖5-3 程序運行結(jié)果 ? 5.4 試編寫打印下面圖案的源程序。 * * * * * * * * * * * * * * * * * * * * * * * * * ? 【參考答案】 程序代碼設(shè)計 Private Sub Command1_Click()
5、 For i = 1 To 4 Form1.Print Tab(10 - i); For j = 1 To 2 * i - 1 Form1.Print "*"; Next j Form1.Print Next i For k = 3 To 1 Step -1 Form1.Print Tab(10 - k); For j = 1 To 2 * k - 1 Form1.Print "*"; Next j Form1.Print 圖5-4 程序運行結(jié)果 Next k
6、 End Sub 程序運行結(jié)果如圖5-4所示: ? 5.5 編寫程序,計算下面表達式的值 (1)1!+3!+5!+……+(2N+1)! 【參考答案】 程序代碼設(shè)計 Private Sub Command1_Click() n = Val(InputBox("請輸入N值")) Sum = 1 term = 1 For k = 3 To 2 * n + 1 Step 2 term = term * (k - 1) * k Sum = Sum + term Next k Form1.Print "1!+3!+5!+……+(2N+1
7、)!="; Sum 圖5-5(1)程序運行結(jié)果 End Sub ? Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "計算1!+3!+5!+……+(2N+1)!" End Sub 運行結(jié)果: 若n輸入的值為5,則程序運行結(jié)果如圖5-5(1)所示。 ? (2)1+X/2!+X2/4!+X3/6!+……+XN/(2N)! 【參考答案】 程序代碼設(shè)計 Private Sub Command1_Click() x = Val(InputBox("請輸入x值")) n = Val(
8、InputBox("請輸入N值")) Sum = 1 t1 = 1 t2 = 1 For k = 2 To 2 * n Step 2 t1 = t1 * x t2 = t2 * (k - 1) * k Sum = Sum + t1 / t2 Next k Form1.Print "1+X/2!+X^2/4!+……+X^N/(2N)!="; Sum End Sub ? Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "計算1+X/2!+X^2
9、/4!+……+X^N/(2N)!" End Sub 運行結(jié)果: 圖5-5(2)程序運行結(jié)果 若x輸入值為:1.5,n輸入值為:5,則程序運行結(jié)果如圖5-5(2)所示。 ? (3)1+1×3+1×3×5+……+1×3×……(2N+1) 【參考答案】 程序代碼設(shè)計 Private Sub Command1_Click() n = Val(InputBox("請輸入N值")) Sum = 1 term = 1 For k = 3 To 2 * n + 1 Step 2 term = term * k Sum = Sum + term
10、 Next k Form1.Print "1+1×3+1×3×5+……+1×3×……(2N+1)="; Sum End Sub ? Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "計算1+1×3+1×3×5+……+1×3×……(2N+1)" End Sub 運行結(jié)果: 若n輸入值為5,則程序運行結(jié)果如圖5-5(3)所示: ? ? ? ? 圖5-5(3)程序運行結(jié)果 ? ? (4)x-x3/3!+x5/5!-x7/7!+…… 【參考答案】 程序代碼設(shè)計 Priva
11、te Sub Command1_Click() x = Val(InputBox("請輸入x值")) Sum = x t1 = x t2 = 1 f = 1 k = 1 While (t1 / t2 > 0.0001) k = k + 2 t1 = t1 * x * x t2 = t2 * (k - 1) * k 圖5-5(4)程序運行結(jié)果 f = f * (-1) Sum = Sum + f * t1 / t2 Wend Form1.Print "x-x^3/3!+x^5/5!-x^
12、7/7!+……="; Sum End Sub ? Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "計算x-x^3/3!+x^5/5!-x^7/7!+……" End Sub 運行結(jié)果: 若x輸入值為:1.5, 則程序運行結(jié)果如圖5-5(4)所示: ? (5)1+1/2+1/3+……+1/N (1/N<10-4) 【參考答案】 程序代碼設(shè)計 Private Sub Form_Click() Sum = 0 k = 1 While (1 / k > 0.0001)
13、 Sum = Sum + 1 / k k = k + 1 Wend Form1.Print "1+1/2+1/3+……+1/N="; Sum End Sub ? Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "計算1+1/2+1/3+……+1/N" Form1.Print "單擊窗體開始" End Sub 程序運行結(jié)果如圖5-5(5)所示: 圖5-5(5)程序運行結(jié)果 ? ? 5.6 由隨機函數(shù)產(chǎn)生10道一位整數(shù)與兩位整數(shù)相加的加法題,產(chǎn)生的加法題依次
14、顯示在屏幕上,每產(chǎn)生一道題后,由用戶輸入答案,如果答案正確,記10分;如果答案錯誤,允許第二次輸入答案,第二次輸入答案正確,記5分,錯誤記0分。最后給出總得分。 【參考答案】 程序代碼設(shè)計 Private Sub Form_Click() s = 0 For i = 1 To 10 a = Int(10 * Rnd) b = Int(10 + 90 * Rnd) str1$ = "第" & i & "題 " & a & "+" & b c = Val(InputBox(str1$ & " 第一次回答")) If a + b =
15、 c Then s = s + 10 str2$ = str1$ & " 10分" Else c = Val(InputBox(str1$ & " 第二次回答")) If a + b = c Then s = s + 5 str2$ = str1$ & " 5分" Else str2$ = str1$ & " 0分" End If End If Form1.Print str2$ Next i Form1.Print
16、 "總分"; s End Sub ? Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "加法題,第一次回答正確10分," Form1.Print "第二次回答正確5分" Form1.Print "單擊窗體開始" End Sub 圖5-6 程序運行結(jié)果 程序運行結(jié)果如圖5-6所示: ? 5.7 編寫計算還貸款年限的程序,從貸款的第三年開始還貸,貸款年利按復利計算。貸款額10萬元,年利率7%,每年還款數(shù)3萬元,要求輸出經(jīng)過多少年才能還清貸款,以及最后一年的還款數(shù)。 【參考答案】
17、程序代碼設(shè)計 Private Sub Form_Click() Dim p As Single p = 10 r = 0.07 n = 0 While (p > 0) p = p * (1 + r) n = n + 1 If n >= 3 Then p = p - 3 Wend Form1.Print "還清貸款時間" & n; "年" Form1.Print "最后一年的還款數(shù)" & (3 + p) & "萬" End Sub ? Private Sub Form_Load() Form1.AutoR
18、edraw = True Form1.Print "貸款額10萬元,年利率7%" Form1.Print "計算還貸數(shù)據(jù)" Form1.Print "單擊窗體開始" End Sub 圖5-7 程序運行結(jié)果 程序運行結(jié)果如圖5-7所示: ? 5.8 輸入三角形的三條邊A、B、C,根據(jù)A、B、C的數(shù)值判斷三角形的性質(zhì),并給出如下信息:(1)等邊三角形;(2)等腰三角形;(3)任意三角形;(4)不能構(gòu)成三角形。 【參考答案】 (1)用戶界面設(shè)計 (2)控件屬性設(shè)置(略) (3)程序代碼設(shè)計 Private Sub Command1_Click() a
19、= Val(Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) If (a = b And b = c) Then str1 = "等邊三角形" ElseIf (a = b Or b = c Or c = a) Then str1 = "等腰三角形" ElseIf (a + b <= c Or b + c <= a Or c + a <= b) Then str1 = "不能構(gòu)成三角形" Else str1 = "任意三角形" End If Label2.
20、Caption = str1 End Sub 圖5-8程序運行結(jié)果 程序運行結(jié)果如圖5-8所示。 ? 5.9 一個球從10米的高處落下,它每次反彈的高度為前一次下落高度的2/3,編寫程序計算球第10次落地時運動的總路程。 【參考答案】 程序代碼設(shè)計 Private Sub Form_Click() h = 10 s = h For i = 1 To 9 h = h * 2 / 3 s = s + 2 * h Next i s = CInt(100 * s) / 100 Form1.Print "球第10次落地時的總路程
21、為"; s; "米" End Sub 圖5-9 程序運行結(jié)果 ? ? Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "計算球第10次落地時的總路程" Form1.Print "單擊窗體開始" End Sub 程序運行結(jié)果如圖5-9所示。 ? 5.10 編寫程序把一個分數(shù)化為最簡分數(shù)。對一個分數(shù)化簡,實際是要尋找分子N與分母M的最大公因子。 【參考答案】 程序代碼設(shè)計 Private Sub Command1_Click() Dim m As Integer, n As
22、Integer, u As Integer, v As Integer m = Val(Text1.Text) n = Val(Text2.Text) If m > n Then u = m: v = n Else v = m: u = n End If Do r = u Mod v u = v: v = r Loop Until r = 0 m = m / u: n = n / u Label2.Caption = "化簡后分子 " & m & " , 分母 " & n End Sub 程序運行
23、結(jié)果如圖5-10所示: 圖5-10 程序運行結(jié)果 ? ? 5.11 幼兒園的小朋友分吃一堆糖果。第一天吃了一半,又吃了一顆;第二天,同樣吃了剩下的一半,又多吃了一顆。到第十天一看,只剩一顆糖果。問原來共有多少顆糖果。 【參考答案】 程序代碼設(shè)計 Private Sub Form_Click() num = 1 For k = 9 To 1 Step -1 num = (num + 1) * 2 Next k Form1.Print "糖果數(shù)為"; num End Sub ? Private Sub Form_Load() Form
24、1.AutoRedraw = True Form1.Print "計算糖果數(shù)" Form1.Print "單擊窗體開始" End Sub 程序運行結(jié)果如圖5-11所示: ? 圖5-11 程序運行結(jié)果 ? 5.12 求解方程X3+Y3-Z3=3,其中X、Y、Z均為正整數(shù),且X、Y、Z均≥1,同時X、Y、Z均≤6。 【參考答案】 程序代碼設(shè)計 Private Sub Form_Click() For x = 1 To 6 For y = 1 To 6 For z = 1 To 6 If x ^ 3 + y ^ 3 -
25、 z ^ 3 = 3 Then Form1.Print x; y; z End If Next z Next y Next x End Sub 圖5-12程序運行結(jié)果 ? Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "解方程X^3+Y^3-Z^3=3" Form1.Print "單擊窗體開始" End Sub 程序運行結(jié)果如圖5-12所示: ? 5.13 36塊磚,36人搬,男搬4、女搬3、兩個小兒抬一磚,
26、要求一次全搬完,問男、女、小兒需若干? 方程:x+y+z=36 4*x+3+y+z/2=36 【參考答案】 程序代碼設(shè)計 Private Sub Form_Click() For x = 1 To 36 For y = 1 To 36 For z = 1 To 36 If x + y + z = 36 And 4 * x + 3 * y + z / 2 = 36 Then Form1.Print x; y; z End If Next z Next y Next
27、 x End Sub ? Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "男、女、小兒需若干" Form1.Print "單擊窗體開始" 圖5-13程序運行結(jié)果 End Sub 程序運行結(jié)果如圖5-13所示: ? 5.14 打印出3~100之間的所有素數(shù)(質(zhì)數(shù))。 【參考答案】 程序代碼設(shè)計 Private Sub Form_Click() k = 0 For n = 3 To 100 For i = 2 To n - 1 If n Mod
28、i = 0 Then Exit For Next i If i > n - 1 Then k = k + 1: Print Format(n, "@@@@@@"); If k = 5 Then k = 0: Print Next n End Sub ? 圖5-14程序運行結(jié)果 Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "打印出3-100之間的所有素數(shù)" Form1.Print "單擊窗體開始" End Sub 程序運行結(jié)果如圖5-14所示: ?
29、 5.15 驗證哥德巴赫猜想:“任何一個大于6的偶數(shù),均可以表示為兩個素數(shù)之和”,從鍵盤輸入一個大于6的偶數(shù)后,打印出所有的分解結(jié)果。 【參考答案】 程序代碼設(shè)計 Private Sub Form_Click() n = Val(InputBox("輸入一個大于6的偶數(shù)")) If n <= 6 Or n Mod 2 <> 0 Then Form1.Print "數(shù)據(jù)錯誤" Else For m1 = 2 To n / 2 m2 = n - m1 f = 0 For i = 2 To m1 - 1
30、 If m1 Mod i = 0 Then f = 1: Exit For Next i For i = 2 To m2 - 1 If m2 Mod i = 0 Or f = 1 Then f = 1: Exit For Next i If f = 0 Then Print m1; m2 Next m1 End If End Sub ? Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "打印兩個素數(shù)之和" Form1.Print "單擊窗體開始" End Sub 運行結(jié)果: 若輸入值為:100,則程序運行結(jié)果如圖5-15所示: 圖5-15程序運行結(jié)果 ?
- 溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習題含答案
- 2煤礦爆破工考試復習題含答案
- 1 各種煤礦安全考試試題含答案