您好,欢迎来到九壹网。
搜索
您的当前位置:首页VB改错与填空

VB改错与填空

来源:九壹网


改错题

计算1000以内,既能被6整除又能被8整除的数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。

Private Sub Command1_Click()

Dim n As Integer

Dim x As Integer

x = 1

n = 0

Do While x <= 1000

If x Mod 6 = 0 Or x Mod 8 = 0 Then

n = n + 1

End case

x = x + 1

Loop

Print n

End Sub

改错:(1)将If语句中的Or改为And;(2) 将End Case语句改为End If

正确结果:41

求[1,5000]内能被5整除的前若干个偶数之和,直到和大于50000为止。程序中有两行有错误。改正错误,使它能输出正确的结果。

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 + 1

Loop

Print s

End Sub

改错:(1)将Exit For语句改为Exit Do;(2) 将x = x + 1语句改为x = x + 2

正确结果:50500

求数列2,4,8,16,32,…前若干项之和。当和大于9000时,终止求和并输出结果。程序中有两行有错误。改正错误,使它能输出正确的结果。

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

改错:(1)将x = x + 2语句改为x = x * 2;(2) 将Until s > 9000语句改为Loop Until s > 9000

正确结果:16382

求数列2/1,3/2,5/3,13/8,……的前10项之和。程序中有错误。改正错误,使它能输出正确的结果。

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

For i = 1 To n

s = s + a / b

t = b

a = a + b

a = t

Next i

Print s

End Sub

改错:(1)将t = b语句改为t = a;(2) 将a = t语句改为b = t

正确结果:16.47991

求[200,300]之间的有奇数个不同因子的最大整数。程序中有两行有错误。改正错误,使它能输出正确的结果。

Private Sub Command1_Click()

For x = 300 To 200

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

改错:(1)在For x = 300 To 200语句后面增加Step -1;(2) 将If n \\ 2 <> 0 Then语句改为If n Mod 2 <> 0 Then

正确结果:2

求这样的一个三位数,其个位数不大于2。若将个位数移动到百位之前(如:321移成132),新三位数大于原三位数的两倍。程序中有两行错误,改正错误,使程序能输出正确的结果。

Private Sub Command1_Click()

For i = 0 To 9

For j = 0 To 9

For k = 0 To 9

n = 100 * i + 10 * j + k

m = 100 * k + 10 * i + j

If m > 2 * n Then Print n

Next k

Next j

Next i

End Sub

改错:(1)将For i = 0 To 9语句改为For i = 1 To 9;(2) 将For k = 0 To 9语句改为For k = 0 To 2

正确结果:102

求满足以下条件的(a,b,c)的组数: (1) 1/(a^2)+1/(b^2)=1/(c^2) ;(2)a>b>c ;(3)a+b+c<100。 程序有错误,改正错误,使程序能输出正确的结果。

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语句改为If a > b And b > c And a + b + c < 100 And 1 / (a ^ 2) + 1 / (b ^ 2) = 1 / (c ^ 2) Then s = s + 1

正确结果:2

求[444,666]之间最大的素数是多少?程序中有错误。改正错误,使它能输出正确的结果。

Private Sub Command1_Click()

Dim x As Integer

Dim i As Integer

For x = 666 To 444

k = Int(Sqr(x))

For i = 2 To k

If x Mod i = 0 Then

Exit Do

End If

Next i

If i > k Then

Print x

Exit For

End If

Next x

End Sub

改错:(1)在For x = 666 To 444语句后面增加Step -1;(2) 将Exit Do语句改为Exit For

正确结果:661

填空题(二级题,一级学生也可参考)

算年龄。用爷爷的年龄的5倍加6得的和,再乘以20,再加上奶奶的年龄,再减去365,得数为6924,又知爷爷比奶奶大2岁。求爷爷、奶奶的年龄的和。

Private Sub Form_Click()

For a = 1 To 200

For b = 1 To 200

If ________________________________ Then

Print a + b

End If

Next b

Next a

End Sub

填空:将下划线换成a = b + 2 And 20 * (5 * a + 6) + b - 365 = 6924

正确结果:140

求方程5X-4Y=2,在|X|<=100,|Y|<=50内的整数解中|X|+|Y|最大值?

Private Sub Form_click()

Max = 0

For x = -100 To 100

For y = -50 To 50

If 5 * x - 4 * y = 2 Then

s = Abs(x) + Abs(y)

________________________________

End If

Next y

Next x

Print Max

End Sub

填空:将下划线换成If Max < s Then Max = s

正确结果:86

一辆以固定速度行驶的汽车,司机看到里程表上从左到右的读数和从右到左的读数是相同的,这个数是12321(公里),2小时后,里程表上再次出现一个新的对称数。问车的速度是多少公里/小时?

Private Sub Form_Click()

Dim m As Long

Dim n As Long

Dim a(0 To 4) As Byte

m = 12321

n = m

Do

n = n + 1

For i = 0 To 4

a(i) = n \\ 10 ^ i Mod 10

Next i

_______________

Print (n - m) / 2

End Sub

填空:将下划线换成Loop Until a(0) = a(4) And a(1) = a(3)

正确结果:50

找出1-1000之间的全部同构数的个数。同构数是指一个数,它出现在它的平方数的右端。例如,5的平方是25,5是25中右端的数,5就是一个同构数。同理,25也是一个同构数。

Private Sub Form_click()

For i = 1 To 999

j = i * i

Select Case j

Case Is < 99

k = j Mod 10

Case Is < 999

k = j Mod 100

Case Else

k = j Mod 1000

End Select

If ________________Then s = s + 1

Next i

Print s

End Sub

填空:将下划线换成i = k

正确结果:6

求杨辉三角形中,第20行第10列的数为多少? 杨辉三角形:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

…………………………

Private Sub Form_click()

Dim a() As Long

n = 20

ReDim a(n, n)

For i = 1 To n

a(i, i) = 1

a(i, 1) = 1

Next i

For i = 3 To n

For j = 2 To i - 1

________________________________

Next j

Next i

Print a(20, 10);

End Sub

填空:将下划线换成a(i, j) = a(i - 1, j - 1) + a(i - 1, j)

正确结果:92378

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务