vb课后练习答案习题解答 (5)要点 联系客服

发布时间 : 星期日 文章vb课后练习答案习题解答 (5)要点更新完毕开始阅读51082eaaf605cc1755270722192e453611665b7f

b(i, j) = a(i * j)

If j <= i Then Print b(i, j), Next j Print Next i

End Sub

答案:

1 2 4 3 6 9

4. Private Sub Command1_Click()

Dim a(1 To 5, 1 To 5) As Integer, i%, j% For i = 1 To 5 For j = 1 To 5

If i <= j Then a(i, j) = 1 Else a(i, j) = i - j + 1 Next j Next i

For i = 1 To 5 For j = 1 To 5

Print a(i, j);

Next j Print Next i

End Sub

答案:

1 2 3 4 5

1 1 2 3 4 1 1 1 2 3 1 1 1 1 2 1 1 1 1 1

5.5编程题

2.编一程序,使用随机函数产生10个互不相同的两位整数存放到一维数组中,并输出该数组,然后求这组数中的最大值及最大值在数组中的位置。

解答:

(1)界面设计和属性设置

在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3.5.2所示。 表3.5.2 属性设置

控件名称 Form1 属性名 Caption 属性值 求两两不相同随机数最大值及其位置 Command1 Caption 开始 Command2 Caption 结束 (2)程序代码 Private Sub Command1_Click() Cls

Dim a(1 To 10), i%, j%, max%, p% Randomize For i = 1 To 10

l: a(i) = Int((90 * Rnd + 10)) For j = 1 To i - 1

If a(i) = a(j) Then GoTo l Next j Next i Print: Print

Print Tab(15); \产生的随机数为:\ Print

For i = 1 To 10

Print \ If i Mod 4 = 0 Then Print Next i

max = a(1): p = 1

For i = 2 To 10

If a(i) > max Then max = a(i): p = i Next i Print: Print

Print Tab(15); \最大值为:\

Print Tab(10), \最大值所在数组元素的下标为:\End Sub

Private Sub Command2_Click() End End Sub

(3)运行情况

运行程序后,屏幕出现用户界面。单击标题为“开始”的命令按钮,系统执行相应的

Click事件过程。执行结果如图3.5.2所示。单击标题为“结束”的命令按钮,结束程序的执行。

图3.5.2 执行结果

4.给定两组已按升序排列好的整型数据,编写一个程序把它们合并为一组仍按升序排列的数据。

解答:

(1)界面设计和属性设置

在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3.5.4所示。 表3.5.4 属性设置

控件名称 Form1 属性名 Caption 属性值 把两个升序数组合并为一个升序数组 Command1 Command2 Caption Caption 合并 结束 (2)程序代码 Dim a As Variant, b As Variant, c%(0 To 11) Private Sub Form_Activate() Dim i%

a = Array(1, 2, 7, 8) Print: Print: Print

Print Tab(5); \第一个升序数组:\ For i = 0 To 3 Print a(i); Next i Print: Print

b = Array(3, 4, 8, 8, 9, 10, 12, 12) Print Tab(5); \第二个升序数组:\

For i = 0 To 7 Print b(i); Next i End Sub

Private Sub Command1_Click() Dim i%, j%, k% i = 0: j = 0: k = 0 While i < 4 And j < 8 If a(i) > b(j) Then

c(k) = b(j): k = k + 1: j = j + 1 '比较a和b中的元素,把较大的元素移到 Else 'c中,直到其中一个数组搬空为止 c(k) = a(i): k = k + 1: i = i + 1 End If Wend While i < 4

c(k) = a(i): i = i + 1: k = k + 1 '把a中剩余的元素搬到c中 Wend While j < 8

c(k) = b(j): j = j + 1: k = k + 1 '把b中剩余的元素搬到c中 Wend

Print: Print

Print Tab(5); \合并后的升序数组:\ Print Tab(8); For i = 0 To 11 Print c(i); Next i End Sub

Private Sub Command2_Click() End End Sub

(3)运行情况

运行程序后,系统执行Form_Activate事件过程,屏幕出现用户界面,并显示两个升序数