77范文网 - 专业文章范例文档资料分享平台

VB程序设计题库

来源:网络收集 时间:2019-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

9、Visual Basic程序改错

1. 程序功能:求s=1+3+5+7+...直到s>2000为止。程序中有两行有错误。改正错误,使它能输出正确的结果。 (2025) 平方和

Private Sub Form_Click()

Dim i As Integer, s As Long s = 0 : i = 1

Do Until s < 2000 s = s + i i = i + 1 Loop Print s End Sub

答案:s>2000 ; i+2

2. 程序功能:计算s=2!+4!+8!。程序中有两行有错误。

改正错误,使它能输出正确的结果。 (40346) Private Sub Command1_Click()

Dim k As Integer, i As Integer Dim s As Long, t As Long s = 0 i = 1

Do While i <= 3 t = 1 k = 1

While k <= 2*i t = t * k k = k + 1 Wend s = s + t i = i + 1 wend Print s End Sub

答案:k<=2^i ; loop

3. 程序功能:计算s=2!+4!+6!+8!。程序中有错误。改正错误,使它能输出正确的结果。 (41066) Private Sub Command1_Click()

Dim k As Integer, i As Integer Dim s As Long, t As Long s = 0 : i = 1

Do While i <= 4 t = 1 k = 1

While k <= 2^i

t = t * k k = k + 1 Wend s = s + t i = i + 1 wend Print s End Sub

答案:k<=2*i ; loop

4. 程序功能:求200到400间,能被3整除但不能被7整除的数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。(57) Private Sub Command1_Click()

Dim count As Integer Dim x As Integer count = 0 x = 200

While x <= 400

If x Mod 3 = 0 or x Mod 7 <> 0 Then count = count + 1 End If Loop

x = x + 1

Print count End Sub

答案: and ; wend

5. 程序功能:求1到400间,同时能被3和7整除的数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。(19) Private Sub Form_Click()

Dim count As Integer Dim x As Integer For x = 1 To 400

if mod(x,3)=0 and mod(x,7)=0 then count = count + 1 end if Next count Print count End Sub

答案:x Mod 3 = 0 And x Mod 7= 0; x

6. 程序功能:求能被3整除且至少有一位数字为5的三位数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。(85) Private Sub Command1_Click()

Dim count As Integer

Dim a As Integer, b As Integer, c As Integer Dim x As Integer x = 100

do While x <= 999 If x Mod 3 = 0 Then a = Int(x / 100)

b = Int((x - a * 100) / 10) c = x - a * 100 - b * 10

If a = 5 and b = 5 and c = 5 Then count = count + 1 End If End If x = x + 1 wend Print count End Sub

答案:a = 5 or b = 5 or c = 5 ; loop

7. 程序功能:求三位偶数中,个位数字与十位数字之和除以10所得的余数是百位数字的数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。(45) 奇数都是45

Private Sub Command1_Click()

Dim count As Integer

Dim a As Integer, b As Integer, c As Integer Dim x As Integer count = 0 x = 100

While x <= 999

a = Int(x / 100)

b = Int(x / 10) - a * 10 c = x - a * 100 - b * 10

If Mod(x,2) = 0 or mod(b + c,10) = a Then count = count + 1 End If x = x + 1 loop

Print count End Sub

答案:x Mod 2 = 0 And (b + c) Mod 10 = a; wend 8. 程序功能:求平方和小于2000的最大自然数。程序中有两行有错误。改正错误,使它能输出正确的结果。(18)

Private Sub Form_Click() Dim x As Integer Dim s As Integer s = 0 x = 0

Do While s >= 2000 x = x + 2 s = s + x * x

1

loop Print x End Sub

答案:s<=2000 ; x = x + 1

9. 程序功能:解百马百瓦古题。大、小马和马驹共100匹,共驮100片瓦。大马一驮三,小马一驮二,马驹二驮一,一次驮完,三种马都驮,共有多少种组合? 程序中有三行有错误。改正错误,使它能输出正确的结果。( 6 )

Private Sub Form_Click()

Dim x As Integer, y As Integer, z As Integer Dim s As Integer s = 0

For x = 1 To 33 For y = 1 To 50 z = 100 - x - y

If 3 * x + 2 * y + z / 2 <>100 Then s = s + 1 End If Next x Next y Print s End Sub

答案:3 * x + 2 * y + z / 2 = 100; Next y; Next x

10. 程序功能:求100-200之间的所有素数个数,程序中有两行有错误。改正错误,使它能输出正确的结果。( 21)

Private Sub Command1_Click() Number = 0

For x = 101 To 199 Step 2 i = 2

k = Int(x/2) Do While i <= k

If x Mod i = 0 Then Exit for i = i + 1 Loop

If i < k Then

Number = Number + 1 End If Next x

Print Number End Sub

答案:exit do ;i>k

11. 程序功能:sum=d+dd+ddd+??+ddd..d(d为1-9的

数字)。例如:3+33+333+3333(此时d=3,n=4)。从键盘上输入d 的值为8,n的值为9,求sum的值。程序中有两行有错误。改正错误,使它能输出正确的结果。 987654312

Private Sub Form_Click()

Dim d As Integer, n As Integer, i As Integer Dim sum As Long sum = 0

d = Val(InputBox(\n = Val(InputBox(\For i = 1 To n

tn = tn + d sum = sun + tn Next i Print sum End Sub

答案:tn = tn * 10 + d;sum=sum+tn

12. 程序功能:输出水仙花的个数(所谓水仙花数是指一

个三位十进制数,该数的各位数字立方之和等于该数本身。例如153是一个水仙花数,因为

1^3+5^3+3^3=153)程序中有两行有错误。改正错误,使它能输出正确的结果。 4 Private Sub Form_Click() Dim number As Integer

Dim n As Integer, i As Integer, j As Integer, k As Integer

For n = 100 To 999 i = n / 100 ‘百位

j = Int(n / 10)-I*10 ‘十位 k = n Mod 10

If n = i * i * i + j * j * j + k * k * k Then number = numbre + 1 End If Next n

Print number End Sub

答案:j = Int((n - i * 100) / 10); number=number+1

13. 程序功能:求数列2/1,3/2,5/3,8/5,13/8,??

的前10项之和。程序中有两行有错误。改正错误,使它能输出正确的结果。 16.47991 Private Sub Form_Click()

Dim i As Integer, t As Integer, n As Integer Dim a As Integer, b As Integer Dim s As Single

a = 2: b = 1: n = 10: s = 0 For i = 1 To n s = s + a / b t =b a = a + b a = t Next i Print s End Sub

答案:t = a ; b = t 14. 程序功能:猴子第1天摘下若干桃子,当即吃掉一半,

又多吃一个,第二天将剩余的部分吃掉一半还多一个;以此类推,到第10天只剩余1个。问第1天共摘了多少桃子。程序中有两行有错误。改正错误,使它能输出正确的结果。 1534 Private Sub Form_Click()

Dim day As Integer, sum As Integer day = 10 ; sum = 1 Do While day > 1 sum = sum * 2 day = day - 1 Loop

Print sum End Sub

答案:day = 10 : sum = 1 ; sum = (sum + 1) * 2

15. 程序功能:求1~200之间的能被7整除的数的平方

和。程序有两处错误。改正错误,使它能输出正确的结果。 377986

Private Sub Command1_Click()

Dim x As Integer Dim sum As Integer x = 1 sum = 0

While x <= 200 If x Mod 7 = 0 sum = sum + x ^ 2 End If x = x + 1 Wend Print sum End Sub

答案:Dim sum As Double ; If x Mod 7 = 0 Then

16. 程序功能:求1~99的平方根的和并输出结果。(保

留小数点两位),程序中有两行有错误。改正错误,使它能输出正确的结果。 661.46 Private Sub Command1_Click()

Dim x As Integer Dim sum As integer x = 1

Do While x <= 99 sum = sum + Sqrt(x) x = x + 1 Loop

Print Round(sum, 2) End Sub

答案:Dim sum As Single; sum = sum + Sqr(x)

2

17. 程序功能:求[1,5000]内能被5整除的前若干个偶数

之和,直到和大于50000为止。程序中有两行有错误。改正错误,使它能输出正确的结果。 50500 Private Sub Command1_Click()

Dim x As Integer Dim s As Long x = 2

Do While x <= 5000 If x Mod 5 = 0 Then s = s + x

If s > 50000 Then Exit for End If End If x = x + 2 Loop Print s End Sub

答案:exit do (只有一处有错)

18. 程序功能:求3000以内能被17或23整除的正整数

的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。 299

Private Sub Command1_Click() Dim x As Integer

Dim count As Integer

For x = 1 To 3000 Step -1

If x Mod 17 = 0 and x Mod 23 = 0 Then count = count + 1 End If Next x

Print count End Sub

答案:1;or

19. 程序功能:已知一个数列的前3项为0,0,1,以后

每项为前3项的和,求此数列的第36项。程序中有两行有错误。改正错误,使它能输出正确的结果。 334745777

Private Sub Command1_Click()

Dim a As Long Dim b As Long Dim c As Long Dim d As Long Dim i As Integer a = 0: b = 0: c = 1 For i = 1 To 36 d = a a = b b = c

c = a + b + c Next i Print c End Sub

答案:33;c=a+b+d

20. 程序功能:求数列2,4,8,16,32,?前若干项之和。

当和大于9000时,终止求和并输出结果。程序中有两行有错误。改正错误,使它能输出正确的结果。 16382 Private Sub Command1_Click() Dim s As Integer Dim x As Integer x = 1 Do

x = x+ 2 s = s + x Until s > 9000 Print s End Sub

答案:x=x*2;loop until s>9000

21. 程序功能:已知24有8个正整数因子(即:

1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。问[100,300]之间有多少个这样的数。程序中有两行有错误。改正错误,使它能输出正确的结果。 19 Private Sub Command1_Click()

Dim n1 As Integer, n2 As Integer Dim x As Integer Dim i As Integer n2 = 0

For x = 100 To 300 n1 = 0 For i = 1 To 100 If x Mod i = 0 Then

n1 = n1 + 1 End If Next i

If x Mod n1 = 0 Then n2 = n2 + 1 End If Next x Print n2 End Sub

答:n1 = 0; x

22. 程序功能:我国今年的国民生产总值为45600亿元,

若今后每年以9%的增长率增长,计算多少年后能实现国民生产总值翻一番?程序中有两行有错误。改正错误,使它能输出正确的结果。 9 Private Sub Command1_Click() Dim p As Long, p1 As Long Dim n As Integer n = 0

p1 = 45600 p = p1 Do

p = p * (1 + 9) n = n + 1

Loop Until p < 2 * p1 Print n End Sub

答案:p = p * (1 + 0.09); >=

23. 程序功能:已知24有8个正整数因子

(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。求[100,300]之间能被其因子数目整除的数中最大的数。程序中有两行有错误。改正错误,使它能输出正确的结果。 296

Private Sub Command1_Click()

Dim N As Integer Dim s As Integer Dim i As Integer

For N = 300 To 100 Step -1 s = 0

For i = 1 To N

If N Mod i = 0 Then s = s + 1 End If Next i

If s Mod N = 0 Then Print N Exit For End If Next N End Sub

答案:N mod s=0(只有一处错误)

24. 程序功能:有一个三位数满 足下列条件: (1)三位数

字各不相同; (2)此数等于它的各位数字的立方和。求这种三位数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。 4 153 370 371 407 Private Sub Command1_Click()

Dim x As Integer,a As Integer,b As Integer Dim c As Integer,n As Integer n = 0 x = 100

Do While x >= 999 a = Int(x / 100)

b = Int(x / 10) - a * 10 c = x - a * 100 - b * 10

3

If a <> c And b <> c And a <> b And x = a ^ 3 + b ^ 3 + c ^ 3 Then

n = n + 1 End If x = x + 1 Loop Print n End Sub

答案:x <= 999;将or全部换成and

25. 程序功能:求[3,500]内所有素数之和。程序中有一

行错误,改正错误,使它能输出正确的结果。 21534 Private Sub Command1_Click() Sum = 0

For x = 3 To 500 flag = True

For i = 2 To x - 1 If x Mod i = 0 Then flag = False Exit For End If Next i

If not flag Then Sum = Sum + x End If Next x Print Sum End Sub 答案:flag

26. 程序功能:求[3-1000]之间最大的五个素数之和。程

序中有两行有错误。改正错误,使它能输出正确的结果。4919

Private Sub Command1_Click() n = 0:Sum = 0 x = 1000 Do

flag = True

For i = 2 To x - 1 If x Mod i = 0 Then flag = False Exit do End If Next i

If flag Then Sum = Sum + x n = n + 1

If n = 5 Then Exit Do End If x = x - 1

Loop While x <= 3 Print Sum End Sub

答案:exit for;x>=3

27. 程序功能:把一张一元钞票,换成一分、二分和五分

硬币,每种至少8枚,求方案数。程序中有两行有错误。改正错误,使它能输出正确的结果。 80 Private Sub Command1_Click()

n = 0

For x = 1 To 100 For y = 8 To 50 For z = 8 To 20

If x + y * 2 + z * 5 = 100 Then n = n + 1 Next z Next y Next x Print n End Sub

答案:8;x + y * 2 + z * 5 = 100

28. 程序功能:求区间[500,2500]中按递增顺序的第25

个素数。程序中有两行有错误。改正错误,使它能输出正确的结果。 659

Private Sub Command1_Click() n = 0

For x = 500 To 2500 flag = False

For i = 2 To x - 1 If x Mod i = 0 Then

flag = True Exit For End If Next i

If flag Then n = n + 1

If n = 25 Then Exit For End If Next x Print x End Sub

答案:not flag (只有一处错误) 29. 程序功能:设某四位数的千位数字与十位数字的和等

于百位数字与个位数字的积,例如,对于四位数:9512,9+1=5*2,求所有这样的四位数之和。程序中有一行有错误。改正错误,使它能输出正确的结果。 1078289 Private Sub Command1_Click() Sum = 0

For x = 1000 To 9999 a = Int(x / 1000)

b = Int(x / 100) - a * 10

c = Int(x / 10) - a * 100 - b * 10 d = x - a * 1000 - b * 100 - c * 10 If a + c = b * d Then

Sum = Sum + x End If Next x Print Sum End Sub

答案:b = Int(x / 100) - a * 10 这样的数:207 9992 30. 程序功能:求 [200,300]之间的有奇数个不同因子的

最大整数。程序中有两行有错误。改正错误,使它能输出正确的结果。 289

Private Sub Command1_Click()

For x = 300 To 200 Step -1 n = 0

For i = 1 To x

If x Mod i = 0 Then

n = n + 1 End If Next i

If n/2 <> 0 Then Print x Exit For End If Next x End Sub

答案:x = 300 To 200 Step –1; n Mod 2 <> 0 31. 程序功能:计算

y=1+2/3+3/5+4/7+?+n/(2*n-1)(n=50), 要求:按四舍五入的方式精确到小数点后第二位。程序中有两行有错误。改正错误,使它能输出正确的结果。 26.47 Private Sub Command1_Click() Dim s As Single Dim n As Integer s = 0

For n = 1 To 50

s = s + n /2 * n-1 Next n

Print round(s) End Sub

答案:s = s + n /(2 * n-1);round(s,2) 32. 程序功能:求当N=20时,

1/(1*2)+1/(2*3)+1/(3*4)+?.+1/(N*(N+1))的值。要求:按四舍五入的方式精确到小数点后第二位。程序中有一行有错误。改正错误,使它能输出正确的结果。 0.95

Private Sub Command1_Click()

4

s = 0: n = 1

Do While n <= 20

s = s + 1 / n * (n + 1) n = n + 1 Loop

Print Format(s, \End Sub

答案:s = s + 1 / (n * (n + 1)) 33. 程序功能:求m=50时,表达式

t=1-1/(2*2)-1/(3*3)-?-1/(m*m)的值。要求:按四舍五入的方式精确到小数点后第四位。程序中有两行有错误。改正错误,使它能输出正确的结果。 0.3749 Private Sub Command1_Click()

Dim t As Single Dim m As Integer m = 2 t = 1

Do While m <= 50 t = t - 1 / m * m m = m + 1 wend

Print Format(t, \End Sub

答案:(m * m);loop

34. 程序功能:求[10,1000]之间满足除以7余5、除以5

余3、除以3余1的所有整数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。 9 Private Sub Command1_Click()

Dim x As Integer Dim n As Integer n = 0

For x = 10 To 1000

If x Mod 7 = 5 or x Mod 5 = 3 or x Mod 3 = 1 Then n = n + 1 End If loop Print n End Sub

答案:将所有的or改成and; next x

35. 程序功能:求1到5000之间的能被5整除的前若干

个偶数之和,直到和大于500为止。程序中有两行错误。改正错误,使它能输出正确的结果。550 Private Sub Command1_Click()

n = 0 : s = 0

For x = 2 To 5000 step 2 If x mod 5 = 0 Then s = s + x End If

If s > 500 Then Exit For Next x Print s End Sub

36. 程序功能:百钱百鸡问题。用100钱买100只鸡,公

鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。程序中有一行有错误。改正错误,使它能输出正确的结果。 3 Private Sub Command1_Click() s = 0 cock = 1

Do While cock <= 100 / 5 hen = 1

Do While hen <= 100 / 3 - cock chick = 100 - cock - hen

If cock + hen + chick = 100 Then s = s + 1 End If

hen = hen + 1 Loop

cock = cock + 1 Loop Print s End Sub

答案:cock * 5 + hen * 3 + chick / 3 = 100(一处错) 37. 程序功能:求500以内最大的10个能被13或17整

除的自然数之和。程序中有两行有错误。改正错误,使它能输出正确的结果。 4622 Private Sub Command1_Click() s = 0: n = 0 x = 500

Do While x >= 1

If x Mod 13 = 0 and x Mod 17 = 0 Then s = s + x n = n + 1 End If

If n = 10 Then Exit Do x = x + 1 Loop Print s End Sub

答案:Or;x = x - 1

38. 程序功能:求 [10,1000]之间的所有完数之和。各

真因子之和(不包括自身)等于其本身的正整数称为完数。例如:6=1+2+3,6是完数。程序中有有错误。改正错误,使它能输出正确的结果。524 Private Sub Command1_Click() Dim sum As Integer

Dim x As Integer, k As Integer Dim i As Integer sum = 0

For x = 10 To 1000 k = x

For i = 1 To x-1 If x Mod i = 0 Then K = K - i End If Next i

If k = 0 Then sum = sum + x End If Next x Print sum End Sub

答案: x-1;k=k-i

39. 程序功能:求满足以下条件的(a,b,c)的组数:

(1) 1/(a^2)+1/(b^2)=1/(c^2) ;(2)a>b>c ;(3)a+b+c<100。程序有错误,改正错误,使程序能输出正确的结果。 (2)

Private Sub Command1_Click() s = 0

For c = 1 To 100 For b = 1 To 100 For a = 1 To 100

If a + b + c < 100 or 1 / (a ^ 2) + 1 / (b ^ 2) = 1 / (c ^ 2) Then s = s + 1

Next a Next b Next c Print s End Sub

答案:If a + b + c < 100 And 1 / (a ^ 2) + 1 / (b ^ 2) = 1 / (c ^ 2) And a > b And b > c Then s = s + 1

40. 程序功能:求四位奇数中,各位数字之积(积不为0)

是60的倍数的数之和。程序中有一行错误,改正错误,使程序能输出正确的结果。 3456254 Private Sub Command1_Click() num1 = 0

For x = 1001 To 9999 Step 2 a = Int(x / 1000)

b = Int(x / 100) - a * 10

c = Int(x / 10) - a * 100 - b * 10 d = x - a * 1000 - b * 100 - c * 10 If a * b * c * d Mod 60 = 0 Then num1 = num1 + x End If

5

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库VB程序设计题库在线全文阅读。

VB程序设计题库.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/608306.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: