二级上机测试中VB程序设计及程序调试样题 联系客服

发布时间 : 星期五 文章二级上机测试中VB程序设计及程序调试样题更新完毕开始阅读63662a868762caaedd33d4ea

Case \ number = 14 Case \ number = 15 Case Else

number = Val(str) End Select End Function

13.已有一模块文件Modify.Bas。该模块中的SortData 过程是把10个[30,50)的随机整数并按照从小到大的顺序打印出来,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的Swap过程用于交换两个变量的值。 程序如下: Public Sub SortData()

'产生10个[30,50]的随机整数,并按从小到大的顺序打印出来 Dim a(10) As Integer Dim i As Integer, j As Integer For i = 1 To 10

a(i)= -------- 1 --------- Next i For i = 1 To 9 -------- 2 --------- If a(i) > a(j) Then --------- 3 ---------- End If Next j

Form1.Print a(i) Next i

Form1.print --------- 4 -------- End Sub

Public Sub Swap(a As Integer, b As Integer) Dim temp As Integer temp = a a = b b = temp End Sub

14.已有一模块文件Modify.Bas。该模块中的PrintArray过程是用于打印一个5行5列的数字方阵,并使两对角线上元素均为1,其余均为2。要求打印的数字方阵两列数字之间空3格,两行之间空一行。 程序如下: Public Sub PrintArray()

'下面程序用于打印5行5列的数字方阵

'使两对角线上元素均为1,其余均为2

'要求打印的数字方阵两列数字之间空3格,两行之间空一行 '只要修改标出出错位置的下面那一条语句 Dim a(5, 5) As Integer Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5

'******** 错误1 ********* If i <> j Or i <> 6 - j Then a(i, j) = 2 Else

a(i, j) = 1 End If

'******** 错误2 ********* Form1.Print a(i, j) + Space(3); Next j

'******* 错误3 ******* Form1.Print Next i End Sub

15.已有一模块文件Modify.Bas。该模块中的Combination过程是用于计算在m个数据中取出n个数据的排列组合值,计算公式为Cmn=m!/(n!*(m-n)!)。 Modify.Bas模块中的nFactor函数过程用于计算n!。 程序如下: Public Sub Combination() Dim m As Integer Dim n As Integer Dim Cmn As Long Do

m = Val(InputBox(\请输入一个整数m\ n = Val(InputBox(\请输入一个整数n(n<=m)\ '****** 错误1 ******

Loop While m >= n '必须保证输入的两个数m>=n '****** 错误2 ******

Cmn = nFactor(m) / nFactor(n) * nFactor(m - n) Form1.Print \排列组合数为\End Sub

Public Function nFactor(ByVal n As Integer) As Double Dim i As Integer Dim temp As Double temp = 1 For i = 1 To n

temp = temp * i Next i

'******错误 3 ****** nFactor(n) = temp '****** 错误4 ****** End Sub

16.已有一模块文件Modify.Bas。该模块中的FindMax过程是用于查找一批数据中的最大数,并打印出最大数的值及最大数在数组中的下标值,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的GenerateData过程用于产生30个[1-500]之间的随机整数并5个一行打印出来。 程序如下: Dim a(30) As Integer Public Sub FindMax()

Dim Position As Integer '最大数在数组中的下标 Dim max As Integer '最大数 Dim i As Integer GenerateData max = ----1---- Position = ----2---- For i = 2 To 30 If a(i) > max Then max = ----3---- Position = ----4---- End If Next i

Form1.Print \最大值=\

Form1.Print \最大值的下标=\End Sub

Public Sub GenerateData() Dim i As Integer For i = 1 To 30

a(i) = Int(500 * Rnd() + 1) Form1.Print a(i),

If i Mod 5 = 0 Then Form1.Print Next i End Sub

17.已有一模块文件Modify.Bas。该模块中的 Prime 过程是求出100到200之间所有的素数,并打印出来,但不完整,请在横线上填入必要的内容,使其完整。 程序如下: Public Sub prime()

'打印出100到200之间所有的素数,并统计素数的个数

Dim i As Integer Dim j As Integer Dim k As Integer

Dim t As Integer '统计素数的个数 Dim b As Boolean For i = 100 To 200 b = True ------ 1 ------- j = Int(Sqr(i)) Do While k <= j And b If i Mod k = 0 Then ------ 2 ------ End If ------ 3 ------ Loop

if ------ 4 ------- then t = t + 1 Form1.Print i End If Next i

Form1.Print \End Sub

18.已有一模块文件Modify.Bas。该模块中的Transpose过程用于产生一个转置矩阵(所谓转置是指将二维数组中所有行和对应列的元素进行交换),但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的Swap过程用于交换两个变量的值。 程序如下:

Public Sub Transpose()

'产生一个6×6的转置矩阵,将二维数组中所有行和对应列的元素进行交换 Dim a(1 To 6, 1 To 6) As Integer Dim i As Integer, j As Integer Form1.Print \原始数据\ For i = 1 To 6 For j = 1 To 6

a(i, j) = Int(Rnd * 10) Form1.Print a(i, j); Next j Form1.Print Next i

For i = 2 To 6

For j = 1 To ----- 1 ----- ------ 2 ----- Next j Next i

Form1.Print \转置后数据\

For i = 1 To 6 For j = 1 To 6 ----- 3 ----- Next j Form1.Print Next i End Sub

Public Sub Swap(a As Integer, b As Integer) Dim temp As Integer temp = a a = b b = temp End Sub

19.已有一模块文件Modify.Bas。该模块中的JiSuan过程是用于计算1-(1/2)+(1/3)-...+(1/99)-(1/100)的值并打印出来。 程序如下: Public Sub JiSuan()

'计算1-(1/2)+(1/3)-...+(1/99)-(1/100)的值并打印出来 Dim i As Integer '****** 错误1 ******* Dim k As Integer Dim s As Single s = 0

'******* 错误2 ******* For i = 1 To 100 k = 1 / i s = s + k

'******* 错误3 ******* k = 1 / i + 1 s = s + k Next i

Form1.Print \