1,阅读下列程序,写出运行结果。程序如下: Private Sub Swapl(ByVal x As Integer, ByVal y As Integer) Dim t As Integer t x x=y y=t End Sub Private Sub Swap2(x As Integer,y As Integer) Dim t As Integer t=x x=y y=t End Sub Private Sub Command2 Click() Dim a As Integer,b As Integer a=10 b=20 Print "Al=";a,"Bl=";b Swapl a,b Print "Al=";a,"Bl=";b a=10 b=20 Print "Al=";a,"Bl=";b Swap2 a,b Print "A2=";a,"B2=";b End Sub 程序运行后,单击Command2,窗体上显示的内容是? 2.阅读下列程序,写出运行结果。程序如下: Private Sub Command6 Click() For j=10 To 5 Step -2 k=j+1 If k 6 Then Exit For Next j Print k,j End Sub
1. 阅读下列程序,写出运行结果。程序如下: Private Sub Swap1(ByVal x As Integer, ByVal y As Integer) Dim t As Integer t = x x = y y = t End Sub Private Sub Swap2(x As Integer, y As Integer) Dim t As Integer t = x x = y y = t End Sub Private Sub Command2_Click() Dim a As Integer, b As Integer a = 10 b = 20 Print "A1="; a, "B1="; b Swap1 a, b Print "A1="; a, "B1="; b a = 10 b = 20 Print "A1="; a, "B1="; b Swap2 a, b Print "A2="; a, "B2="; b End Sub 程序运行后,单击 Command2,窗体上显示的内容是? 2. 阅读下列程序,写出运行结果。程序如下: Private Sub Command6_Click() For j = 10 To 5 Step -2 k = j + 1 If k < 6 Then Exit For Next j Print k, j End Sub
程序运行后,单击命令按钮Command6,窗体上输出结果是? 3.阅读下列程序,写出运行结果。程序如下: Private Sub Command7_Click() Dim a As Integer a=1:I=0 Select Case a *2 Case 1 a=a l Case 2 a=a+2 Case Else a=a+3 End Select Print "a=";a End Sub 程序运行后,单击命令按钮Command7,窗体上输出结果是? 4.阅读下列程序,写出运行结果。程序如下: Private Sub Command8 Click() Dim a As Integer Open "c:\abc.txt"For Output As #l n=8 For I 1 To n Print #1,I +1 Next I Close #1 Open "c:\abc.txt"For Input As #1 For I =1 To n Input #1,a If I Mod 5=0 Then Print a 1 Next I Close #1 End Sub 程序运行后,单击命令按钮Command8,窗体上输出结果是?
程序运行后,单击命令按钮 Command6,窗体上输出结果是? 3. 阅读下列程序,写出运行结果。程序如下: Private Sub Command7_Click() Dim a As Integer a = 1: I = 0 Select Case a * 2 Case 1 a = a + 1 Case 2 a = a + 2 Case Else a = a + 3 End Select Print "a="; a End Sub 程序运行后,单击命令按钮 Command7,窗体上输出结果是? 4. 阅读下列程序,写出运行结果。程序如下: Private Sub Command8_Click() Dim a As Integer Open "c:\abc.txt" For Output As #1 n = 8 For I = 1 To n Print #1, I + 1 Next I Close #1 Open "c:\abc.txt" For Input As #1 For I = 1 To n Input #1, a If I Mod 5 = 0 Then Print a + 1 Next I Close #1 End Sub 程序运行后,单击命令按钮 Command8,窗体上输出结果是?
答案: 1 A1=10B1=20 A1=10B1=20 A1=10B1=20 A2=20B2=10 2.74 3.a=3 4.7 五、程序改错 1.下列Command1的单击事件过程的功能是,从一堆一分、二分、五分的硬币中取出20 枚,使其总值为60分,要求输出取法的数量及每一种取法的一分、二分、五分的个数。程 序中有4处错误,请改正过来。 Private Sub Commandl Click() Dim one As Integer’一分硬币个数 Dim two As Integer'二分硬币个数 Dim five As Integer'五分硬币个数 Const n=20’总数20枚 Dim k As Integer'取法数量 k=0 For one 1 To n For two=one+1Ton’--错误1 five =n-one -two If one+two+five=60Then’---错误2 k=k+1 Print "one=";one;"two=";two;"five="; five End If Next one’---错误3 Next two0’---错误4 Print "k=";k End Sub
答案: 1. A1= 10 B1= 20 A1= 10 B1= 20 A1= 10 B1= 20 A2= 20 B2= 10 2. 7 4 3. a= 3 4. 7 五、程序改错 1. 下列 Command1 的单击事件过程的功能是,从一堆一分、二分、五分的硬币中取出 20 枚,使其总值为 60 分,要求输出取法的数量及每一种取法的一分、二分、五分的个数。程 序中有 4 处错误,请改正过来。 Private Sub Command1_Click() Dim one As Integer '一分硬币个数 Dim two As Integer '二分硬币个数 Dim five As Integer '五分硬币个数 Const n = 20 '总数 20 枚 Dim k As Integer '取法数量 k = 0 For one = 1 To n For two = one + 1 To n '-----错误 1 five = n - one - two If one + two + five = 60 Then '-----错误 2 k = k + 1 Print "one="; one; "two="; two; "five="; five End If Next one '-----错误 3 Next two '-----错误 4 Print "k="; k End Sub
2.下列Command1的单击事件过程用于查找一个5行4列的二维数组中行平均值最大的 行,并将该行所有数据调整到第一行的位置。程序中DataProduce过程用于产生原始数 据:Average过程用于计算各行的平均值:PrintArray过程用于打印二维数组和行平均值。 程序中有4处错误,请改正过来。 Dima(1To5,1To4)As Integer’在窗体 的通用部分定义 Dim ave(1To5)As Integer'在窗体的通用 部分定义 Private Sub Commandl Click() Dim i As Integer Dim j As Integer Dim temp As Integer Dim Line_no As Integer'最大平均值的行号 ’找出最大平均值所在行 Line no 1 DataProduce Average For i =2 To 5 If ave(Line no)>=ave(i)Then'--错误 Line no=ave(i)’---错误2 End If Next i ’交换第一行与最大平均值所在行 For j=1 To 4 temp a(1,j) a(Line no,j)=a(1,j)’--错误3 a(Line_no,j)=temp Next j ’交换对应行的平均值 temp ave(1) ave(1)=ave (Line no) ave(Line no)=temp ”打印交换后的数据 Print"交换后的数据和平均值” PrintArray End Sub
2. 下列 Command1 的单击事件过程用于查找一个 5 行 4 列的二维数组中行平均值最大的 行,并将该行所有数据调整到第一行的位置。程序中 DataProduce 过程用于产生原始数 据;Average 过程用于计算各行的平均值;PrintArray 过程用于打印二维数组和行平均值。 程序中有 4 处错误,请改正过来。 Dim a(1 To 5, 1 To 4) As Integer ’在窗体 的通用部分定义 Dim ave(1 To 5) As Integer’在窗体的通用 部分定义 Private Sub Command1_Click() Dim i As Integer Dim j As Integer Dim temp As Integer Dim Line_no As Integer '最大平均值的行号 '找出最大平均值所在行 Line_no = 1 DataProduce Average For i = 2 To 5 If ave(Line_no) >= ave(i) Then '-----错误 1 Line_no = ave(i) '-----错误 2 End If Next i '交换第一行与最大平均值所在行 For j = 1 To 4 temp = a(1, j) a(Line_no, j) = a(1, j) '-----错误 3 a(Line_no, j) = temp Next j '交换对应行的平均值 temp = ave(1) ave(1) = ave(Line_no) ave(Line_no) = temp '打印交换后的数据 Print "交换后的数据和平均值" PrintArray End Sub
Public Sub DataProduce() Dim i As Integer Dim j As Integer ”产生5*4数组 For i 1 To 5 For j=1 To 4 a(i,j)=Int(100 Rnd) Next j Next i End Sub Public Sub Average() Dim i As Integer Dim j As Integer Dim sum As Integer ’计算各行平均值 For i 1 To 5 sum =0 For j=1 To 4 sum=a(i,j)’---错误4 Next j ave(i)=sum /4 Next i '将数组和平均值打印出来 Print"原始数据和平均值” PrintArray End Sub Public Sub PrintArray( Dim i As Integer Dim j As Integer For i 1 To 5 For j=1 To 4 Print a(i,j);Spc(3); Next j Print"平均值=";ave(i) Next i End Sub
Public Sub DataProduce() Dim i As Integer Dim j As Integer '产生 5*4 数组 For i = 1 To 5 For j = 1 To 4 a(i, j) = Int(100 * Rnd) Next j Next i End Sub Public Sub Average() Dim i As Integer Dim j As Integer Dim sum As Integer '计算各行平均值 For i = 1 To 5 sum = 0 For j = 1 To 4 sum = a(i, j) '-----错误 4 Next j ave(i) = sum / 4 Next i '将数组和平均值打印出来 Print "原始数据和平均值" PrintArray End Sub Public Sub PrintArray() Dim i As Integer Dim j As Integer For i = 1 To 5 For j = 1 To 4 Print a(i, j); Spc(3); Next j Print "平均值="; ave(i) Next i End Sub