常见VB考试题型资料讲解

常见VB考试题型资料讲解
常见VB考试题型资料讲解

常见V B考试题型

1输入半径,求圆面积和球体积。

Private Sub Form_Load()

Dim r As Single, s As Single, v As Single

r = InputBox("请输入半径r:", "输入数据")

s = 3.14 * r ^ 2

v = 4 / 3 * r ^ 3 * 3.14

'Print "圆面积为:"; s

'Print "球体积为:"; v

MsgBox ("圆面积为:" & s & Space(2) & "球体积为:" & v)

End Sub

2输入两个数存放在x和y中,比较大小,保证大数放在x中,小的数放在Y 中。

Private Sub Command1_Click()

Print "比较前:"

X = InputBox("请输入X")

Y = InputBox("请输入Y")

Print "X="; X, "Y="; Y

If X < Y Then

Z = Y

Y = X

X = Z

End If

Print "比较后:"

Print "X="; X, "Y="; Y

End Sub

3 判断一个整数的奇偶性

Private Sub Form_Click()

x = Val(InputBox("请输入一个数;"))

If x Mod 2 = 0 Then

MsgBox (x & " 是偶数")

Else

MsgBox (x & " 是奇数")

End If

End Sub

4 帐号和密码

Private Sub Command1_Click()

If Text1.Text = "12345" Then

If Text2.Text = "12345" Then

MsgBox "登录成功", 64 + 1, "登录"

Else

MsgBox "密码错误,请重新输入", 16

End If

Else

MsgBox "用户不存在", 16 + 1, "登录"

End If

End Sub

5 判断一个数是整数还是小数,如果是整数再判断其奇偶性。

Private Sub Form_Click()

x = InputBox("请输入一个数;")

If InStr(1, x, ".") = 0 Then

If x Mod 2 = 0 Then

MsgBox (x & " 是整数,是偶数!")

Else

MsgBox (x & " 是整数,是奇数!")

End If

Else

MsgBox (x & " 是小数")

End If

End Sub

6 书店优惠售书

Private Sub Command1_Click()

Dim x As Single, y As Single

x = Val(Text1.Text)

Select Case x

Case Is <= 100

y = x * 0.8

Case Is <= 200

y = x * 0.7

Case Is <= 300

y = x * 0.5

Case Else

y = x * 0.3

End Select

Label3.Caption = y & "元"

End Sub

7 设计一个计程车收费程序

Private Sub Command1_Click()

X = Val(Text1.Text)

Select Case X

Case Is <= 3

Label3.Caption = 6

Case Is <= 30

Label3.Caption = 6 + (X - 3) * 1.5

Case Else

Label3.Caption = 6 + 27 * 1.5 + (X - 30) * 2 End Select

End Sub

8 输入10个数,输出累加之和。

Private Sub Command1_Click()

Dim S As Single, i As Integer, x As Single

S = 0

For i = 1 To 10

x = Val(InputBox("请输入第" & i & "个数")) Print "第" & i & "个数" & x

S = S + x

Next i

Print "十个数累加之和为" & S

End Sub

9 输入10个数,输出偶数之和。

Private Sub Command1_Click()

Dim S As Single, x As Single

Dim n As Integer, i As Integer

S = 0

For i = 1 To 10

x = Val(InputBox("请输入第" & i & "个数")) Print "第" & i & "个数" & x

If x Mod 2 = 0 Then

S = S + Val(x)

End If

Next i

Print "十个数中偶数累加之和为" & S

End Sub

10 求S=1+2+3+……+100

Private Sub Command1_Click()

Dim I As Integer, S As Long

S = 0

For I = 1 To 100

S = S + I

Next I

Print Tab(10); "S="; S

End Sub

11 9

s = 0

For i = 1 To 100 Step 2

s = s + i

Next i

Print "s="; s

End Sub

12S=1+22+32+……+102,计算并输出s

Private Sub Command1_Click()

s = 0

For i = 1 To 10

s = s + i ^ 2

Next i

Picture1.Print "s="; s

End Sub

13 S=1+22+32+……+n2,问n为多少时,s的值大于100000?Private Sub Command1_Click()

s = 0

n = 0

Do While s <= 100000

n = n + 1

s = s + n ^ 2

Loop

Print

Print

Print

Print

Print

Print Tab(15); "n="; n

End Sub

141)S=1/2+1/4+1/6+1/8+1/10+…+1/20,求s并输出s的值。

Dim s As Single, i As Integer

s = 0

For i = 2 To 20 Step 2

s = s + 1 / i

Next i

Print "s="; s

End Sub

15 s=1×2×3×……×10

求n !,n 为[1~10]之间的随机整数。

Private Sub Command1_Click()

Dim s As Long, i As Integer

s = 1

For i = 1 To 10

s = s * i

Next i

Print "10!="; s

End Sub

16 已知一数列的前两项均为1,从第3项开始,每一项的值为其前面两项之和,求数列的前20项的和。

Private Sub Command1_Click()

Dim s As Integer, f1 As Integer

Dim f2 As Integer, f3 As Integer

s = 0

f1 = 1

f2 = 1

s = f1 + f2

For i = 3 To 20

f3 = f1 + f2

s = s + f3

f1 = f2

f2 = f3

Next i

Print "s="; s

End Sub

17 项和。求其前208532??++++=S

Dim s As Single, f1 As Integer, f2 As Integer

Dim f3 As Integer, i As Integer

s = 0

f1 = 1

f2 = 2

For i = 1 To 20

s = s + f2 / f1

f3 = f2

f2 = f1 + f2

f1 = f3

Next i

Print "s="; s

End Sub

18 S=1!+2!+3!+ (10)

Private Sub Command1_Click()

Dim s As Long, s1 As Long, i As Integer, j As Integer s = 0

For i = 1 To 10

s1 = 1

For j = 1 To i

s1 = s1 * j

Next

s = s + s1

Next i

Print

Print "s="; s

End Sub

考虑另一种算法

见其他打印部分

19 s=1+(1+2)+(1+2+3)+...+(1+2+ (10)

Private Sub Command1_Click()

Dim s As Integer, s1 As Integer

Dim i As Integer, j As Integer

s = 0

For i = 1 To 10

s1 = 0

For j = 1 To i

s1 = s1 + j

Next j

s = s + s1

Next i

Print "s="; s

End Sub

20 s=1-1/3!+1/5!-1/7!+…直到某一项的绝对值小于10^(-5) Private Sub Command1_Click()

Dim S As Single, S1 As Single

Dim i As Integer, F As Integer, J As Integer

S = 0

S1 = 1

i = 1

F = 1 '正负符号标志

Do While 1 / S1 > 10 ^ (-5)

S1 = 1

J = 1

Do While J <= i

S1 = S1 * J

J = J + 1

Loop

S = S + 1 / S1 * F

i = i + 2

F = -F '换符号

Loop

Print

Print "S="; S - 1 / S1, "I="; i

'S = 0

'x = 1

'n = 1

'Do While 1 / x >= 10 ^ (-5)

'S = S + (1 / x) * (-1) ^ (n + 1)

'x = x * (n * 2) * (2 * n + 1)

'n = n + 1

'Loop

'Print "S="; S

End Sub

21 s=2+22+222+2222+22222+222222

Private Sub Command1_Click()

Dim s As Long, s1 As Long, i As Integer, j As Integer

s = 0

For i = 1 To 6

s1 = 0

For j = 1 To i

s1 = s1 + 2 * 10 ^ (j - 1)

Next

s = s + s1

Next

Print "s="; s

End Sub

22 S=a+aa+aaa+……+aaaa(N个a)其中a是一个[1,9]的随机整数,N是一个[5,10]的随机整数。

Private Sub Command1_Click()

Dim a As Integer, n As Integer

Dim s As Long, s1 As Long, i As Integer, j As Integer

Cls

Randomize

a = Int(9 * Rnd) + 1

n = Int(6 * Rnd) + 5

s = 0

For i = 1 To n

s1 = 0

For j = 1 To i

s1 = s1 + a * 10 ^ (j - 1)

Next j

s = s + s1

Next i

Print "当a="; a, "n="; n; "时"

Print

Print "s="; s

End Sub

23 S=1+12+123+1234+12345+123456

Private Sub Command1_Click()

Dim s As Long, s1 As Long, i As Integer, j As Integer s = 0

s1 = 0

For i = 1 To 6

s1 = s1 * 10 + i

Print s1

s = s + s1

Next i

Print "s="; s

's = 0

'For i = 1 To 6

' s1 = 0

' For j = 1 To i

' s1 = s1 + j * 10 ^ (i - j)

' Next j

' s = s + s1

'Next i

'Print "s=";s

End Sub

24 将一字符串逆序输出

Private Sub Command1_Click()

Dim n As Integer, s1 As String, s2 As String

s1 = Text1.Text

s2 = ""

n = Len(Trim(Text1.Text))

For i = n To 1 Step -1

s2 = s2 & Mid(s1, i, 1)

Next i

Text2.Text = s2

End Sub

25 判断任给一大于3的整数是否是素数。

Private Sub Command1_Click()

Dim N As Integer, I As Integer

N = InputBox("请输入一个大于3的整数")

For I = 2 To N - 1

If N Mod I = 0 Then

Exit For

End If

Next I

If N = I Then

MsgBox (N & " 是素数") Else

MsgBox (N & " 不是素数") End If

End Sub

26 输出3~100之间的素数

输出

Private Sub Command1_Click() Dim n As Integer, i As Integer For n = 3 To 100

For i = 2 To n - 1

If n Mod i = 0 Then

Exit For

End If

Next i

If i = n Then

Print n

End If

Next n

End Sub

换行输出

Private Sub Command2_Click() Dim n As Integer, i As Integer Dim m As Integer

m = 0

For n = 3 To 100

For i = 2 To n - 1

If n Mod i = 0 Then

Exit For

End If

Next i

If i = n Then

m = m + 1

If m Mod 5 = 0 Then

Print n

Else

Print n;

End If

End If

Next n

End Sub

'Private Sub Command2_Click() 'Dim n As Integer, i As Integer

'dim m as in

'm = 0

'For n = 3 To 100

' For i = 2 To n - 1

' If n Mod i = 0 Then

' Exit For

' End If

' Next i

' If i = n Then

' m = m + 1

' If m Mod 5 = 0 Then

' Print Tab(6 * m); n

' m = 0

' Else

' Print Tab(6 * m); n;

' End If

' End If

'Next n

'End Sub

27 输出100~999之间的水仙花数Private Sub Command1_Click() Dim I As Integer, A As Integer Dim B As Integer, C As Integer For I = 100 To 999

A = Int(I / 100)

B = Int(I / 10) - A * 10

C = I - A * 100 - B * 10

If A ^ 3 + B ^ 3 + C ^ 3 = I Then Picture1.Print I;

End If

Next I

End Sub

28陈婷的QQ密码是一个5位数。但因为有一段比较长的日子没上了,陈婷把这个密码给忘了。不过陈婷的生日是8月1日,她妈妈的生日是9月1日,她特别喜欢把同时是8l和9l的倍数用作密码。陈婷还记得这个密码的中间一位(百位数)是l。你能设计一个程序帮她找回这个密码吗?

Private Sub Command1_Click()

'陈婷密码:5位数,能被81,91整除,百位是1

Dim i As Long, x As Integer

For i = 10100 To 99199

x = i \ 100 Mod 10

If x = 1 Then

If i Mod 91 = 0 And i Mod 81 = 0 Then

MsgBox "密码是" & i

End If

End If

Next i

End Sub

29百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡(每种鸡至少一只),编程列出所有可能的购鸡方案

Option Explicit

Private Sub Command1_Click()

Dim X As Integer, Y As Integer

Dim z As Integer, I As Integer

I = 0

For X = 1 To 100

For Y = 1 To 50

For z = 1 To 33

If X + Y + z = 100 And 0.5 * X + 2 * Y + 3 * z = 100 Then

I = I + 1

Picture1.Print "方案" & I & " :小鸡" & X & "只," _

& " 公鸡 " & Y & "只," & " 母鸡" & z & "只。"

End If

Next z, Y, X

End Sub

30 鸡兔合笼共20只,脚46只问鸡几只?兔几只?

Private Sub Command1_Click()

Dim x As Integer, y As Integer

For x = 1 To 20

For y = 1 To 20 - x

If x + y = 20 And 2 * x + 4 * y = 46 Then

Print " 鸡" & x & "只 ", "兔" & y & "只"

End If

Next y

Next x

End Sub

31 找出100之内的自然数对。 (两数的和是某个自然数的平方,两数的差也是某数的平方)

Private Sub Command1_Click()

For i = 1 To 99

For j = i + 1 To 100

If Int(Sqr(j - i)) = Sqr(j - i) And Int(Sqr(j + i)) = Sqr(j + i) Then

Print i, j

End If

Next j

Next i

End Sub

32 找出1000-9999之间的玫瑰花数。

Private Sub Command1_Click()

Dim i As Integer

Dim a1 As Integer, a2 As Integer

Dim a3 As Integer, a4 As Integer

For i = 1000 To 9999

a1 = i \ 1000

a2 = i \ 100 Mod 10

a3 = i \ 10 Mod 10

a4 = i Mod 10

If a1 ^ 4 + a2 ^ 4 + a3 ^ 4 + a4 ^ 4 = i Then

Print i

End If

Next i

End Sub

33 猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天要吃时只剩下一个,问小猴共摘下了多少个桃子?

Option Explicit

Private Sub Command1_Click()

Dim X As Integer, I As Integer

X = 1

For I = 6 To 1 Step -1

X = (X + 1) * 2

Picture1.Print "第" & I; "天桃子数是:" & X & "个。"

Next I

End Sub

34瓜农有西瓜1020个,每天能卖掉前一天剩下的总数的一半还多两个,问多少天能卖完。

Option Explicit

Private Sub Command1_Click()

Dim X As Integer, I As Integer

X = 1020

I = 0

Do While X > 0

X = X / 2 - 2

I = I + 1

Loop

Label4.Caption = "第" & I & "天能卖完."

End Sub

35一球从10米高空落下,每次弹起高度为落下高度的40%,求第8次落下,小球经历的路程。

Private Sub Command1_Click()

Dim s As Single, h As Single, i As Integer

s = 10

h = 10

For i = 2 To 8

h = h * 0.4

s = s + h * 2

Next i

Picture1.Print "球第八次落下经历的路程是:"; s; "米"

End Sub

36 输入十个数,输出其中的最大数和最小数

Private Sub Command1_Click()

Dim x As Single, i As Integer

Dim max As Single, min As Single

x = Val(InputBox("请输入第1个数"))

Print x

max = x: min = x

For i = 2 To 10

x = Val(InputBox("请输入第" & i & "个数"))

Print x

If x > max Then

max = x

Else

If x < min Then

min = x

End If

End If

Next i

Print "max="; max, "min="; min

End Sub

37 7个裁判给选手打分,要求去掉最高分和最低分,求平均分。

Option Explicit

Private Sub Command1_Click()

Dim C(7), MAX, MIN, S, I

MAX = 0

MIN = 100

For I = 1 To 7

C(I) = Val(InputBox("请输入第" & I & "裁判的打分", "输入", , 7000, 1000)) Picture1.Print "第 " & I & "个裁判的打分:" & C(I)

S = S + C(I)

If C(I) > MAX Then

MAX = C(I)

Else

If C(I) < MIN Then

MIN = C(I)

End If

End If

Next I

S = (S - MAX - MIN) / 5

Picture1.Print "最后得分是:" & S

End Sub

38 求M,N的最大公约数和最小公倍数

Private Sub Command1_Click()

Dim m As Integer, n As Integer

Dim i As Integer, mas As Integer

Max = 1

m = Val(Text1.Text)

n = Val(Text2.Text)

If m >= n Then

x = n

Else

x = m

End If

For i = 1 To x

If m Mod i = 0 And n Mod i = 0 Then

Max = i

End If

Next i

Label3.Caption = "最大公约数是" & Max

End Sub

Private Sub Command2_Click()

Dim m As Integer, n As Integer

Dim i As Integer, mas As Integer

m = Val(Text1.Text)

n = Val(Text2.Text)

If m >= n Then

x = m

Else

x = n

End If

Max = x

For i = x To m * n

If x Mod i = 0 And x Mod i = 0 Then

Min = i

Exit For

End If

Next i

Label3.Caption = "最小公倍数是" & Min

End Sub

39 统计1~100之间能被3整除和能被7整除的数各有多少个?

Private Sub Command1_Click()

Dim i As Integer, m As Integer, n As Integer

m = 0: n = 0

For i = 1 To 100

If i Mod 3 = 0 Then

m = m + 1

End If

If i Mod 7 = 0 Then

n = n + 1

End If

Next i

Print "能被3整除的数有" & m & "个" & vbCrLf & "能被7整除的数有" & n & "个"

End Sub

40 统计字符串中字母“A”出现的次数(不区分大小写)

Option Explicit

Private Sub Command1_Click()

Dim N As Integer, I As Integer, x As String

N = 0

x = Text1.Text

For I = 1 To Len(x)

If Mid(x, I, 1) = "A" Or Mid(x, I, 1) = "a" Then

'If UCase(Mid(x, I, 1)) = "A" Then

N = N + 1

End If

Next I

Text2.Text = N

End Sub

41统计字符串中大写字母、小写字母、数字字符的个数分别是多少?Private Sub Command1_Click()

Dim N1, N2, N3, I

N1 = 0: N2 = 0: N3 = 0

For I = 1 To Len(Text1.Text)

X = Mid(Text1.Text, I, 1)

Select Case X

Case "A" To "Z"

N1 = N1 + 1

Case "a" To "z"

N2 = N2 + 1

Case 0 To 9

N3 = N3 + 1

End Select

Next

Picture1.Print "大写字母个数:"; N1

Picture1.Print "小写字母个数:"; N2

Picture1.Print "数字字符个数:"; N3

End Sub

42 简单图形输出

相关主题
相关文档
最新文档