VB程序设计练习题(二)

文章目录

文章目录

前言

内容

一、编写程序,点击相应的按钮在图片框中输出相对应的图形。

二、界面如图所示。编写程序实现图片框输出图形

三、界面如图所示。编写程序实现图片框输出图形

四、界面如图所示。编写程序实现图片框输出图形

五、(多项选择和多项删除)

六、有一个5*5的矩阵,各元素都是随机产生的两位整数,找出最大值、最小值以及它们的下标并求出平均值。如下图所示输出。

七、计算:n+nn+nnn+nnn......

八、单击窗体,生成0~10之间的随机整数矩阵,分别放在两个图画框内,求两个矩阵之和放入第三个图画框内。

九、编写一个程序,用随机函数产生4行5列的两位整数并输出。然后分别实现第1行和第三行数据交换和第2行和第4行交换,输出交换前和交换后的结果。(利用图片框)

十、在文本框输入大于10的偶数,找出最接近这个数的素数,输出在窗体上


前言

备考技能考时的一些练习题

题目难度较大

答案都是小编自己打出来的,也需会有错。


内容

一、编写程序,点击相应的按钮在图片框中输出相对应的图形。

 

答案:

Private Sub Command1_Click()

Dim i As Integer

P1.Cls

For i = 1 To 6

      P1.Print Space(10 - i); String(6, "*"); Space(2 * i - 2); String(6, "*")

Next

End Sub

Private Sub Command2_Click()

P1.Cls

For i = 1 To 6

      P1.Print Space(10 - i); String(6, CStr(Chr(64 + i))); Space(2 * i - 2); String(6, CStr(Chr(64 + i)))

Next         ‘转换为字符串就可以用string输出了。

End Sub


二、界面如图所示。编写程序实现图片框输出图形

 

答案:

Private Sub Command1_Click()

Dim i As Integer

P1.Cls

P1.Print

s = 0

b = 1

For i = 1 To 5

      If i = 2 Then

            s = s + 1

      End If

      If i >= 3 Then

            b = b + 2

      End If

      P1.Print Space(7 - i); "*"; Space(b); String(s, "*")

Next

For i = 1 To 3

      P1.Print Space(i + 2); "*"; Space(b - 2); String(1, "*")

      b = b - 2

Next

P1.Print Space(6); "*"

End Sub

Private Sub Command2_Click()

P1.Cls

Dim i As Integer

P1.Print

s = 0

b = 1

For i = 1 To 5

      If i = 2 Then

            s = s + 1

      End If

      If i >= 3 Then

            b = b + 2

      End If

      P1.Print Space(7 - i); String(1, CStr(Chr(64 + i))); Space(b); String(s, CStr(Chr(64 + i)))

Next

For i = 1 To 3

      P1.Print Space(i + 2); String(1, CStr(Chr(69 - i))); Space(b - 2); String(1, CStr(Chr(69 - i)))

      b = b - 2

Next

P1.Print Space(6); "A"

End Sub


三、界面如图所示。编写程序实现图片框输出图形

答案:

Private Sub Command1_Click()

Dim i, j As Integer

P1.Cls                                               ‘清除图片框内容

s = 0

For i = 1 To 6                                      ‘定义6行

      P1.Print Space(24 - (i * 3));                ‘定义前面的空格数

      s = I                                                    ‘定义变量s,用于输出靠后的降序数;

      For j = 1 To 2 * i – 1                            ‘定义每行的个数

            If j <= i Then                                       ‘当小于等于改行的i时,

                  P1.Print j;                                            ‘就升序输出1到i

            Else

                  s = s – 1                                              ‘否则,就s=s-1,s就会每一次循环就减一

                  P1.Print s;                                           ‘就能降序输出到1了

      End If

      Next

            s = 0                             ‘s记得到最后要重置为0

            P1.Print

Next

End Sub

Private Sub Command2_Click()

Dim i As Integer

Dim j As Integer

P1.Cls

For i = 1 To 6

      P1.Print Space(24 - i * 3);

      s = s + i

      For j = 1 To 2 * i - 1

            If j <= i Then

                  P1.Print Chr(64 + j) & "  ";

            Else

                  s = s - 1

                  P1.Print Chr(s) & "  ";

            End If

      Next

      s = 64

      P1.Print

Next

End Sub


四、界面如图所示。编写程序实现图片框输出图形

答案:

Private Sub Command1_Click()

Dim i, j As Integer

P1.Cls

For i = 1 To 6

      For j = i To 1 Step -1

            P1.Print j;

      Next

      P1.Print

Next

End Sub

Private Sub Command2_Click()

Dim i, j As Integer

P1.Cls

For i = 6 To 1 Step -1

      P1.Print Space(18 - i * 3);

      For j = 1 To i

            P1.Print j;

      Next

      P1.Print

Next

End Sub

Private Sub Command3_Click()

Dim i, j As Integer

P1.Cls

For i = 6 To 1 Step -1

      P1.Print Space(3 * (i - 1));

      For j = i To 6

            P1.Print j;

      Next

P1.Print

Next

End Sub

 

Private Sub Command4_Click()

Dim i, j As Integer

P1.Cls

For i = 6 To 1 Step -1

      For j = i To 1 Step -1

            P1.Print j;

      Next

      P1.Print

Next

End Sub


五、(多项选择和多项删除)

答案:(首先把列表框的sorted的属性改为true)按字母排列

答案:

Private Sub Command1_Click()

Dim i As Integer

s = 0

For i = (List1.ListCount - 1) To 0 Step -1      ‘从后往前就不会改变索引值了。

If List1.Selected(i) = True Then

      List2.AddItem List1.List(i)

      List1.RemoveItem i

End If

Next

End Sub

Private Sub Command2_Click()              

For i = (List1.ListCount - 1) To 0 Step -1           ‘先把所有的添加进list1

      List2.AddItem List1.List(i)

Next

For i = (List1.ListCount - 1) To 0 Step -1            ‘再删除所有

      List1.RemoveItem i

Next

End Sub

Private Sub Command3_Click()

Dim i As Integer

s = 0

For i = (List2.ListCount - 1) To 0 Step -1

      If List2.Selected(i) = True Then

            List1.AddItem List2.List(i)

            List2.RemoveItem i

      End If

Next

End Sub

答案(2

答案:

Private Sub Command5_Click()

For i = 0 To List1.ListCount – 1            ‘首先定义i循环从0到list1的最后一项的索引值。

      If List1.Selected(i) = True Then          ‘如果被选择就添加。(跟常规一样)

            List2.AddItem List1.List(i)

      End If

Next

For i = (List1.ListCount - 1) To 0 Step -1    ‘从最后一项的索引值到第一项的索引值,从后

      If List1.Selected(i) = True Then           ‘往前,这样就不会导致前面被删除导致索引值

            List1.RemoveItem I                     ‘改变。这样就可以删除了。

      End If

Next

End Sub

 


六、有一个5*5的矩阵,各元素都是随机产生的两位整数,找出最大值、最小值以及它们的下标并求出平均值。如下图所示输出。

答案:

Dim a(1 To 5, 1 To 5)

Private Sub Command1_Click()

Dim i, j As Integer

For i = 1 To 5

For j = 1 To 5

a(i, j) = Int(Rnd * (99 - 10 + 1) + 10)

P1.Print CStr(a(i, j)) & " ";

Next

P1.Print

Next

End Sub

Private Sub Command2_Click()

Dim i, j, s As Integer

s = 0

Min = a(1, 1)

For i = 1 To 5

For j = 1 To 5

If a(i, j) > Max Then

    Max = a(i, j)

End If

If a(i, j) < Min Then

    Min = a(i, j)

End If

s = s + a(i, j)

Next

Next

For i = 1 To 5

For j = 1 To 5

If a(i, j) = Max Then

    P2.Print "MAX=" & Max

    P2.Print " " & i & " " & " " & j

End If

Next

Next

For i = 1 To 5

For j = 1 To 5

If a(i, j) = Min Then

    P2.Print "MIN=" & Min

    P2.Print " " & i & " " & " " & j

End If

Next

Next

P2.Print "平均值= " & (Int((s / 25) * 10)) / 10

End Sub


七、计算:n+nn+nnn+nnn......

例:输入a=1,n=5,输出1+11+111+1111+11111=12345

答案:

Private Sub Command1_Click()

Dim s As Single

Dim b As String

Dim i, j As Integer

Sum = 0

a = Val(Text1.Text)

n = Val(Text2.Text)

For i = 1 To n

      For j = 1 To i

            b = b & CStr(a)

      Next

      c = c & b & "+"

      Sum = Sum + Val(b)

      If i = n Then

            Print Left(c, Len(c) - 1) & "=" & CStr(Sum)

      End If

      b = ""

Next

End Sub

 


八、单击窗体,生成0~10之间的随机整数矩阵,分别放在两个图画框内,求两个矩阵之和放入第三个图画框内。

答案:

Dim a(1 To 5, 1 To 4)

Dim b(1 To 5, 1 To 4)

Dim c(1 To 5, 1 To 4)

Private Sub Command1_Click()

For i = 1 To 5

    For j = 1 To 4

        c(i, j) = a(i, j) + b(i, j)

        P3.Print c(i, j);

    Next

    P3.Print

Next

End Sub

Private Sub Form_Click()

Dim i, j As Integer

Randomize

For i = 1 To 5

    For j = 1 To 4

    a(i, j) = Int(Rnd * (10 - 0 + 1) + 0)

    P1.Print a(i, j);

    Next

    P1.Print   

Next

For n = 1 To 5

    For m = 1 To 4

        b(n, m) = Int(Rnd * (10 - 0 + 1) + 0)

        P2.Print b(n, m);

    Next

    P2.Print

Next

End Sub


九、编写一个程序,用随机函数产生4行5列的两位整数并输出。然后分别实现第1行和第三行数据交换和第2行和第4行交换,输出交换前和交换后的结果。(利用图片框)

答案:

Private Sub Command1_Click()

For i = 1 To 4

    For j = 1 To 5

    If i = 1 Then

        t(j) = a(i, j)

        a(i, j) = a(3, j)

    End If

    If i = 3 Then

        a(i, j) = t(j)

    End If

    If i = 2 Then

        m(j) = a(i, j)

        a(i, j) = a(4, j)

    End If

    If i = 4 Then

        a(i, j) = m(j)

    End If

    Next

Next

For i = 1 To 4

    For j = 1 To 5

        P2.Print a(i, j);  

    Next

    P2.Print

Next

End Sub

Private Sub Form_Load()

Dim i, j As Integer

For i = 1 To 4

    For j = 1 To 5

        a(i, j) = Int(Rnd * (99 - 10 + 1) + 10)

        P1.Print a(i, j);

    Next

    P1.Print

Next

End Sub


十、在文本框输入大于10的偶数,找出最接近这个数的素数,输出在窗体上

        

答案:

Private Sub Command1_Click()

Dim a As Integer

Dim b As Integer

min = 10

b = 0

a = Val(Text1.Text)

If a > 10 And a Mod 2 = 0 Then

    For i = 2 To Val(a + 10)

        f = 0

        For j = 2 To i - 1

            If i Mod j = 0 Then

                f = 1

                Exit For

            Else

                f = 0

            End If

        Next

        If f = 0 Then

            If Abs(a - i) < min Then

                min = Abs(a - i)

                b = i

             End I

        End If

    Next

    Print b

 Else

  MsgBox "请输入大于10的偶数"

End If

End Sub


总结:这些题难度比较大,考试出的难度大概率比这个小。多练习多做题考试没问题。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

依然,顽强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值