2011.vb.考试
vb.net吧
全部回复
仅看楼主
level 1
vip香香菜 楼主
1.     编程在窗体上输出101~500之间的所有能被3或者7整除的奇数,按照一行5个的方式输出并最后符合要求的数的和。
解:代码为
Private Sub form_load()
Show
Dim n, sum As Integer
Print Spc(6); "101~500之间的所有能被3或者7整除的奇数,及各数的和"
i = 0
sum = 0
For n = 101 To 500 Step 2
If n Mod 3 = 0 Or n Mod 7 = 0 Then
   sum = sum + n
   i = i + 1
   Print Spc(6); n;
   If i Mod 5 = 0 Then
   Print
   End If
End If
Next n
Print Spc(7); "sum="; sum
End Sub
2.     在4个TextBox中输入4个大小不同的数,将它们从大到小排序后的结果用Msgbox函数输出。
解: 代码为
Private Sub Command1_Click()
Dim a!, b!, c!, d!
   a = Val(Text1.Text)
   b = Val(Text2.Text)
   c = Val(Text3.Text)
   d = Val(Text4.Text)
If a <> b And b <> c And c <> d And a <> c And a <> d And b <> d Then
    If a < b Then
      t = a: a = b: b = t
    End If
       If a < c Then
          t = a: a = c: c = t
       End If
            If b < c Then
              t = b: b = c: c = t
            End If
              If d > a Then
               t = d: d = a: a = t
              End If
                If d > b Then
                 t = d: d = b: b = t
                End If
                  If d > c Then
                   t = d: d = c: c = t
                  End If
                    MsgBox "从大到小排序:" & a & "," & b & "," & c & "," & d
                    Else
                    MsgBox "有相同的数"
                    End If

2011年06月20日 05点06分 1
level 1
vip香香菜 楼主
End Sub
Private Sub Command2_Click()
End
End Sub
3.     在TextBox任意输入x的值,将f(x)输出的结果用Msgbox函数输出。
解: 代码为
Private Sub Command1_Click()
Dim x As Double
x = Val(Text1.Text)
If x < 0 Then
    If x = -3 Then
    MsgBox "f(x)=" & x ^ 2 - x - 1
    Else: MsgBox "f(x)=" & x ^ 2 + x - 6
    End If
End If
If x >= 0 Then
    If x < 10 And x <> 2 And x <> 3 Then
      MsgBox "f(x)=" & x ^ 2 - 5 * x + 6
    Else: MsgBox "f(x)=" & x ^ 2 - x - 1
    End If
End If
End Sub
Private Sub Command2_Click()
End
End Sub
4.     找到10000到99999中的所有回文数,并按照一行10个的格式在窗体上输出,例如12321是回文数,个位与万位相同,十位与千位相同。
解:代码为
Private Sub Form_Load()
Show
Dim x, a, b, c, d, e As Integer
Print Spc(25); "所有的五位回文数:"
Print
i = 0
For x = 10000 To 99999
     a = x \ 10000
     b = (x - (a * 10000)) \ 1000
     c = (x - (a * 10000) - (b * 1000)) \ 100
     d = (x - (a * 10000) - (b * 1000) - (c * 100)) \ 10
     e = x - (a * 10000) - (b * 1000) - (c * 100) - (d * 10)
     If a = e And b = d And c <> a And c <> b And a <> b Then
         Print Spc(5); x;
         i = i + 1
         If i Mod 10 = 0 Then
         Print
         End If
     End If
Next
End Sub
5.     在窗体上输出所有的“水仙花数”,并按照一行5个的格式输出。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1*1*1+5*5*5+3*3*3。
解:代码为
Private Sub form_load() Show Dim a, b, c, i As Integer Print Spc(10); "水仙花数" For i = 100 To 999 a = i Mod 10 b = i \ 100 c = (i - b * 100) \ 10 If a ^ 3 + b ^ 3 + c ^ 3 = i Then Print i; Space(2);    If (i + 1) Mod 5 = 0 Then     Print     End If End If Next i End Sub
6. 编程找出满足下列条件的所有四位数并在窗体上按照一行10个的形式输出:该数第一、三位数字之和为10,第二、四位数字之积为12。
解:代码为
Private Sub Form_Load()
Dim i As Integer, a(1 To 4) As Integer, j As Integer
j = 0
Show
For i = 1000 To 9999
     a(1) = i Mod 10
     a(2) = ((i - a(1)) / 10) Mod 10
     a(3) = ((i - i Mod 100) / 100) Mod 10
     a(4) = ((i - i Mod 1000) / 1000) Mod 10
     If (a(4) + a(2) = 10 And a(1) * a(3) = 12) Then
         Print Tab((j Mod 10 + 1) * 7);

2011年06月20日 05点06分 2
level 1
vip香香菜 楼主
For m = 10 To 32
     a = x \ 100
     b = (x - (a * 100)) \ 10
     c = x - (a * 100) - (b * 10)
     If a = b Or b = c Or c = a Then
      If x = m * m Then
         Print Spc(5); x;
         i = i + 1
         If i Mod 5 = 0 Then
         Print
         End If
      End If
     End If
Next m
Next x
End Sub
11.求这样一个四位数并输出该数字,该四位数等于其每位数字的阶乘之和。即:
abcd = a! + b! + c! + d!,将结果用Msgbox函数输出。
解: 代码为
Private Sub Command1_Click()
Dim i As Integer, a(1 To 4) As Integer, j As Integer
j = 0
For i = 1000 To 9999
     a(1) = i Mod 10
     a(2) = ((i - a(1)) / 10) Mod 10
     a(3) = ((i - i Mod 100) / 100) Mod 10
     a(4) = ((i - i Mod 1000) / 1000) Mod 10
     If (i = fact(a(1)) + fact(a(2)) + fact(a(3)) + fact(a(4))) Then
         MsgBox ("其中一个四位数为:" & i)
         j = j + 1
     End If
Next
If   j = 0   Then   MsgBox ("无结果")
End   Sub
Private Function fact(n As Integer) As Long
Dim i As Integer
f = 1
For i = 1 To n
     f = f * i
Next
fact = f
End Function
12.输出所有大于1010的4位偶数,且该类偶数的各位数字两两不相同,在窗体上按照一行5个的格式输出。
解:代码为
Private Sub form_load()
Show
Dim a, b, c, d As Integer
Print Tab(20); "所有的四位数:"
i = 0
For x = 1010 To 9999 Step 2
     a = x \ 1000
     b = (x - (a * 1000)) \ 100
     c = (x - (a * 1000) - (b * 100)) \ 10
     d = x - (a * 1000) - (b * 100) - (c * 10)
     If a <> b And b <> c And c <> a And a <> d And b <> d And c <> d Then
         Print Spc(5); x;
         i = i + 1
         If i Mod 5 = 0 Then
         Print
         End If
     End If
Next
End Sub
13.求1-2!
+3
!-4!...序列,当最后的结果超过2000000停止计算,将该序列的最结果用Msgbox函数输出。
解: 代码为
Private Function m(n As Double) As Double
Dim i As Double
f = 1
For i = 1 To n
f = f * i
Next
m = f
End Function
Private Sub Command1_Click()
Dim i As Integer, b As Double, j As Double

2011年06月20日 05点06分 4
level 1
vip香香菜 楼主
                 MsgBox ("合格,符合征兵条件")
             Else
                 MsgBox ("不合格,不符合征兵条件")
             End If
         Else
              MsgBox ("不合格,不符合征兵条件")
         End If
     Case "女"
         If (k >= 16 And k <= 18) Then
             If (j > 160) Then
                 MsgBox ("合格,符合征兵条件")
             Else
                 MsgBox ("不合格,不符合征兵条件")
             End If
         Else
              MsgBox ("不合格,不符合征兵条件")
         End If
     Case Else
         MsgBox ("输入错误!")
End Select
End Sub
Private Sub Command2_Click()
End
End Sub
20.求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数,在窗体上按照一行5个的格式输出。
解:代码为
Private Sub Form_Load()
Show
Dim n As Integer
Print Spc(10); "1到1000之间能被5或13整除,但不能5和13同时整除的所有整数:"
i = 0
For n = 1 To 1000
    If n Mod 5 = 0 Or n Mod 13 = 0 Then
        If n Mod 65 <> 0 Then
        i = i + 1
        Print Spc(6); Format(n, "!@@@@");
        If i Mod 5 = 0 Then
         Print
        End If
        End If
     End If
Next
End Sub

2011年06月20日 05点06分 7
1