湖南省計算機二級考試VB編程題目_第1頁
湖南省計算機二級考試VB編程題目_第2頁
湖南省計算機二級考試VB編程題目_第3頁
湖南省計算機二級考試VB編程題目_第4頁
湖南省計算機二級考試VB編程題目_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、L一個數如果剛好與它的因子之和相等,則稱完數。求5到100間的完數之和,結果:34Sum = 0For n = 5 To 100 s = 0 For i = 1 To n - 1 If n Mod i = 0 Then s = s + i Next i If s = n Then Sum = Sum + nNext nPrint SumLijk+kji=1333,其中i,j,k的范圍是0到9,求有幾組(i,j,k)滿足條件,結果:6c = 0For i = 0 To 9For j = 0 To 9For k = 0 To 9If i * 100 + j * 10 + k + k * 100 +

2、 j * 10 + i = 1333 Then c = c + 1Next k, j, iPrint cL宴會上共有1225次握手,每一位參加的人對其他的人都有同樣的禮節,那么與會人士有多少,結果:50人數握手數1 02 13 34 6n個人的握手數為:1+2+3+。+n-1=1225,解得n=50L司機開車時里程表讀數為一回文數12321公里,開了2小時后里程表又是一個最小回文數,求司機的開車速度。結果:50下一個最小回文數肯定是12421,(12421-12321)/2=50n = 12321Do n = n + 1 a = n 10000 b = n 1000 Mod 10 c = (n

3、 Mod 100) 10 d = n Mod 10Loop While a <> d Or b <> cPrint (n - 12321) / 2L好啊好+ 真的好- 真的好啊如果是數字,求該四位數。結果:1098For h = 1 To 9For a = 0 To 9For z = 1 To 9For d = 0 To 9If h * 100 + a * 10 + h + z * 100 + d * 10 + h = z * 1000 + d * 100 + h * 10 + a ThenPrint h; a; hPrint z; d; hPrint z; d; h;

4、 aEnd IfNext d, z, a, hL求500以內含500能被5或9整除的所有自然數的倒數之和?按四舍五入的方式精確到小數點后第二位1.48Private Sub Command1_Click()s = 0For i = 1 To 500If i Mod 5 = 0 Or i Mod 9 = 0 Then s = s + 1 / iNext iPrint Round(s, 2)End SubL求S=1/2+2/3+3/5+5/8的前30項的和(注:該級數從第二項開始,其分子是前一項的分母,'其分母是前一項的分子與分母的和)要求:按四舍五入的方式精確到小數后第二位結果:18.4

5、6Private Sub Command1_Click()fz = 1: fm = 2: s = fz / fmFor i = 2 To 30 t = fz: fz = fm: fm = t + fz: s = s + fz / fmNextPrint Round(s, 2)End SubL當m的值為50時,計算:t=1-1/(2*2)-1/(3*3)-1/(m*m) 四舍五入精確到小數點第四位 結果:0.3749Private Sub Command1_Click()t = 1For n = 2 To 50t = t - 1 / (n * n)NextPrint Round(t, 4)End

6、 SubL求1 . 50之間所有整數能構成直角三角形的三邊的組數。例如;3*3+4*4=5*5.它構成直角三角形,所以3、4、5為一組,但視4、3、5與3、4、5為同一組。結果:20Private Sub Command1_Click()n = 0For a = 1 To 50For b = 1 To 50For c = 1 To 50If a 2 + b 2 = c 2 And b > a And c > b Then n = n + 1: Print a, b, cNext c, b, aPrint nEnd SubL求100.900之間相差為12的素數對的對數,(難題),結果

7、:7Private Sub Command1_Click()Dim a(800)num = 0For i = 100 To 900If isp(i) Then a(num) = i: num = num + 1End IfNextFor i = 1 To num If a(i) - a(i - 1) = 12 Then n = n + 1NextPrint nEnd SubPublic Function isp(n)isp = TrueFor i = 2 To Sqr(n) If n Mod i = 0 Then isp = FalseNextEnd FunctionL求200,300之間的有

8、奇數個不同因子的最大整數,(在計算因子個數時,包括1和該數本身)結果:289Private Sub Command1_Click()For n = 300 To 200 Step -1 c = 0 For i = 1 To n If n Mod i = 0 Then c = c + 1 Next i If c Mod 2 = 1 Then Print nNext nEnd SubL求(200,300)有奇數個不同因子的最小整數。(在計算因子個數時,包括1和該數本身),結果:225 For n = 200 To 300 c = 0 For i = 1 To n If n Mod i = 0 Th

9、en c = c + 1 Next i If c Mod 2 = 1 Then Print nNext nL求1000,2000范圍內由小到大第100個索數,結果: 1721Private Sub Command1_Click()n = 0For i = 1000 To 2000 If isp(i) Then n = n + 1 If n = 100 Then Print i: Exit For End IfNext iEnd SubPublic Function isp(n)isp = TrueFor i = 2 To Sqr(n) If n Mod i = 0 Then isp = Fal

10、seNextEnd FunctionL求具有abcd=(ab+cd)2性質的四位數的個數。結果:3n = 0For i = 1000 To 9999 ab = i 100 cd = i Mod 100 If i = (ab + cd) 2 Then n = n + 1NextPrint nL求四位奇數中,各位數之積(積不為0)是60的倍數的數之和。結果:3456254Sum = 0For n = 1001 To 9999 Step 2 a = n 1000 b = n 100 Mod 10 c = n 10 Mod 10 d = n Mod 10 e = a * b * c * d If e

11、<> 0 And e Mod 60 = 0 Then Sum = Sum + nNext nPrint SumLS=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+n),當N的值為50時,求S得值,結果:1.96078Sum = 0s = 0For n = 1 To 50 s = s + n Sum = Sum + 1 / sNextPrint SumL300,800范圍內同時滿足以下兩個條件的十進制數,(1)其個位數與十位數字之和除以10所得的余數是百位數字;(2)該數是素數,求滿足上述條件的最大的三位十進制數。結果:761Private Sub Command1_Cl

12、ick()For n = 800 To 300 Step -1 b = n 100 s = n 10 Mod 10 g = n Mod 10 If (g + s) Mod 10 = b And isp(n) Then Print nNextEnd SubPublic Function isp(n)isp = TrueFor i = 2 To Sqr(n) If n Mod i = 0 Then isp = FalseNextEnd FunctionL斐波那契數列的前二項是1 、1 其后每一項都是前面兩項之和,求:10000000以內最大的斐波那契數?9227465a = 1: b = 1: c

13、 = a + bDoa = b: b = c: c = a + bLoop While c < 10000000Print b注意輸出的是B而不是CL一個數如果恰好等于它的所有真因子之和,這個數就稱為完數。求(1,100)之間的最大完數?結果:28,(100以內只有6和28兩個完數)For n = 100 To 1 Step -1 s = 0 For i = 1 To n - 1 If n Mod i = 0 Then s = s + i Next If s = n Then Print nNextL一個數如果恰好等于它的所有真因子之和,這個數就成為完數。例如:6的真因子為1 2 3 而

14、6=1+2+3 ,因此,6是“完數”。求(8100,8200)之間的完數?結果:8128For n = 8200 To 8100 Step -1 s = 0 For i = 1 To n - 1 If n Mod i = 0 Then s = s + i Next If s = n Then Print nNextL已知:f(0)=f(1)=1 f(2)=0 f(n)=f(n-1)-2f(n-2)+f(n-3),(n>2)求f(0)到f(50)的所有51個值中的最大值?程序設計題:結果:598325Dim f(50)f(0) = 1: f(1) = 1: f(2) = 0: Max =

15、f(0)For n = 3 To 50 f(n) = f(n - 1) - 2 * f(n - 2) + f(n - 3) If f(n) > Max Then Max = f(n)NextPrint MaxL已知:A1=1 A2=1/(1+A1) A3=1/(1+A2) A4=1/(1+A3).求A50(按四舍五入的方式精確到小數點后第三位)觀察:An=1/(1+An-1),結果:0.618Dim A(50) As DoubleA(1) = 1For n = 2 To 50 A(n) = 1 / (1 + A(n - 1)NextPrint A(50)L已知Fibonacci數列:1,

16、1,2,3,5,8.它可由下面公式表達:F(1)=1 if n=1 f(2)=1 if n=2 f(n)=f(n-1)+f(n-2) if n>2 試求f(45)值 提示:最好使用遞推法求解(用遞推法要用好長的時間還可能得不到解,下面是遞推法)結果:1134903170Private Sub Command1_Click()Print f(45)End SubPublic Function f(n)If n = 1 Or n = 2 Then f = 1Else f = f(n - 1) + f(n - 2)End IfEnd Function最好用下面方法:Dim x(45) As L

17、ongx(1) = 1: x(2) = 1For i = 3 To 45 x(i) = x(i - 1) + x(i - 2)NextPrint x(45),L有一個三位數滿足下列條件(1)此三位數的三位數字各不相同(2)此三位數等于它的各位數字的立方和。試求所有這樣的三位數之和(即水仙花數之和),結果:1301Sum = 0For b = 1 To 9 For s = 0 To 9 For g = 0 To 9 n = b * 100 + s * 10 + g If b <> s And s <> g And b <> g And n = b 3 + s

18、3 + g 3 Then Sum = Sum + n End IfNext g, s, bPrint SumL已知S1=2 S2=2+4 S3=2+4+6 S4=2+4+6+8 S5=2+4+6+8+10.求S=S1+S2+S3+S4+S5+.+S20的值,(仔細觀察得出:Sn=Sn-1+2*n),結果:3080Sum = 0s = 0For n= 1 To 20 s = s + 2 * n Sum = Sum + sNextPrint Sum 一L愛因斯坦上樓梯,一次跨2級剩1級,一次跨4級剩3級,一次跨5級剩正好(其腿也太長),求樓梯最少有多少級?同題:韓信點兵,2人一組剩1人,4人一組剩

19、3人,5人一組正好,求這隊士兵最少多少人?Private Sub Form_Click()s = 1Do While s Mod 2 <> 1 Or s Mod 4 <> 3 Or s Mod 5 <> 0 s = s + 1LoopPrint sEnd Sub二L當n=50時,求下列級數和:S=1/(1*2)+1/(2*3)+1/(n*(n+1)按四舍五入的方式精確到小數點后第四位。結果:0.9804Private Sub Form_Click()s = 0For n = 1 To 50 s = s + 1 / (n * (n + 1)Next nPrin

20、t Round(s, 4)End Sub三L計算y=1+2/3+3/5+4/7+n/(2*n-1)的值,n=50,要求:按四舍五入的方式精確到小數點后第二位。結果:26.47Private Sub Form_Click()y = 0For n = 1 To 50 y = y + n / (2 * n - 1)Next nPrint Round(y, 2)End Sub四L水仙花數和。結果是:1301Private Sub Form_Click()y = 0For b = 1 To 9 For s = 0 To 9 For g = 0 To 9 n = 100 * b + 10 * s + g

21、If n = b 3 + s 3 + g 3 Then y = y + nNext g, s, bPrint yEnd Sub五L把一張一元鈔票,換成一分、二分和五分硬幣,每種至少11枚,有多少種方案?結果:13(同題:百馬馱百瓦、百錢買百雞。)Private Sub Form_Click()s = 0For a = 11 To 100 For b = 11 To 50 For c = 11 To 20 If a + b * 2 + c * 5 = 100 Then s = s + 1Next c, b, aPrint sEnd SubVB期末范圍題總匯 1 求隨機10個整數的最大值、最小值、

22、平均值以及和; Dim a(1 To 10) Private Sub Command1_Click() Randomize Picture1.Print "產生的隨機數為:" For i = 1 To 10 a(i) = Int(Rnd * 99 + 1) Picture1.Print a(i); Next i Picture1.Print End Sub Private Sub Command2_Click() Dim max, min, ave max = a(1) min = a(1) ave = 0.1 * a(1) For i = 2 To 10 If a(i)

23、> max Then max = a(i) If a(i) < min Then min = a(i) ave = ave + 0.1 * a(i) Next i Picture1.Print "最大數為:" max Picture1.Print "最小數為:" min Picture1.Print "平均數為:" ave End Sub 2.求水仙花數 Private Sub Form_Click() Dim a, b, c As Integer 'a(個)b(十)c(百) For a = 0 To 9 For

24、b = 0 To 9 For c = 1 To 9 If a 3 + b 3 + c 3 = a + 10 * b + 100 * c Then MsgBox 100 * c + 10 * b + a End If Next c Next b Next a End Sub 3.百元買百雞問題; Option Explicit Const a = 5, b = 3, c = 1 Private Sub Form_Activate() Dim i As Integer, j As Integer, k As Integer, n As Integer For i = 1 To 100 For j

25、= 1 To 100 For k = 1 To 100 If i * a + j * b + k * c = 100 Then n = n + 1 List1.AddItem " 公雞:" & i & " 母雞:" & j & " 小雞:" & k End If Next: Next: Next MsgBox "共有組合:" & n End Sub 求1000以內的所有完數 一個按鈕里調用的過程 Private Sub Command1_Click() OutputW

26、anNumber 1000 End Sub 4.'求完數的過程 Private Sub Form_Click() Dim i, j As Integer For i = 4 To 100 temp = 1 For j = 2 To i / 2 If i Mod j = 0 Then temp = temp + j End If Next j If temp = i Then Print i End If Next i End Sub 5.求各位數字之和 input a:'輸入任意數 do b=a mod 10:'取a的末位數 sum=sum+b:'求和 a=a

27、10:'去掉末位數 loop until a=0 print "sum="sum:'輸出 end (dim n as string input n for i = 1 to len(n) sum=sum+val(mid(n,i,1) next i print sum) 6.求最小公倍數 Private Sub Form_Load() Form1.AutoRedraw = True Dim n1%, m1%, m%, n%, r% n1 = InputBox("輸入n1") m1 = InputBox("輸入m1") I

28、f m1 > n1 Then '為了求最小公倍數,增加m,n變量 m = m1: n = n1 Else m = n1: n = m1 End If Do r = m Mod n If r = 0 Then Exit Do m = n n = r Loop Print n1; "," m1; "的最大公約數為" n Print "最小公倍數=", m1 * n1 / n End Sub 7.求逆序數(感覺題目類型太多) 8. 級數有限項求和問題(題目類型太多) 9. 求質因子問題 Private Sub Command1

29、_Click() Dim N As Integer, I As Integer N = Val(InputBox("請輸入2的整數:") I = 2 Do If N Mod I = 0 Then Print I; N = N I Else I = I 1 End If Loop While N 1 End Sub 10. 字符統計 Option Base1 Option Explicit Private Sub Command1_Click() Dim i as integer,A(26) as integer,n as integer Dim S as string*1,

30、Strl as string Strl=Text1 n=Len(Strl) For i=1 To n S=Mid(Strl,i,1) If UCase(S)>=”A” And UCase(S)<=”Z” Then A(Asc(UCase(S)-64)+1 End If Next i For i=1 To 26 List1.Additem Chr(64+i) & “:” & A(i) Netx i End Sub Private Sub Command_Click() End End Sub 第二大題 1. 判定素數過程 Function isprime(Num As Long) As Boolean If Num < 2 Then isprime = False: Exit Function Dim i As Long For i = 2 To Sqr(Num) If (Num Mod i) = 0 Then isprime = False Exit Function End If Next i isprime = True End Function Private Sub Command1_Click() Dim i As Long For i = 1 To 1000 If isprime(i) Then Pri

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論