VB程序設(shè)計 習(xí)題及答案第5章 循環(huán)結(jié)構(gòu)程序設(shè)計.doc
《VB程序設(shè)計 習(xí)題及答案第5章 循環(huán)結(jié)構(gòu)程序設(shè)計.doc》由會員分享,可在線閱讀,更多相關(guān)《VB程序設(shè)計 習(xí)題及答案第5章 循環(huán)結(jié)構(gòu)程序設(shè)計.doc(14頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第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 "單擊窗體開始" 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 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 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() 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 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)!="; 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(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/4!+……+X^N/(2N)!" End Sub 運行結(jié)果: 圖5-5(2)程序運行結(jié)果 若x輸入值為:1.5,n輸入值為:5,則程序運行結(jié)果如圖5-5(2)所示。 (3)1+13+135+……+13……(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 Next k Form1.Print "1+13+135+……+13……(2N+1)="; Sum End Sub Private Sub Form_Load() Form1.AutoRedraw = True Form1.Print "計算1+13+135+……+13……(2N+1)" End Sub 運行結(jié)果: 若n輸入值為5,則程序運行結(jié)果如圖5-5(3)所示: 圖5-5(3)程序運行結(jié)果 (4)x-x3/3!+x5/5!-x7/7!+…… 【參考答案】 程序代碼設(shè)計 Private 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^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) 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)生的加法題依次顯示在屏幕上,每產(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 = 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 "總分"; 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 編寫計算還貸款年限的程序,從貸款的第三年開始還貸,貸款年利按復(fù)利計算。貸款額10萬元,年利率7%,每年還款數(shù)3萬元,要求輸出經(jīng)過多少年才能還清貸款,以及最后一年的還款數(shù)。 【參考答案】 程序代碼設(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.AutoRedraw = 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 = 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.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次落地時的總路程為"; 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 編寫程序把一個分?jǐn)?shù)化為最簡分?jǐn)?shù)。對一個分?jǐn)?shù)化簡,實際是要尋找分子N與分母M的最大公因子。 【參考答案】 程序代碼設(shè)計 Private Sub Command1_Click() Dim m As Integer, n As 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 程序運行結(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() Form1.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 - 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、兩個小兒抬一磚,要求一次全搬完,問男、女、小兒需若干? 方程: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 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 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所示: 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 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.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- VB程序設(shè)計 習(xí)題及答案第5章 循環(huán)結(jié)構(gòu)程序設(shè)計 VB 程序設(shè)計 習(xí)題 答案 循環(huán) 結(jié)構(gòu)
鏈接地址:http://m.zhongcaozhi.com.cn/p-7835548.html