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

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

'交换第一行与最大平均值所在行 For j = 1 To 4 temp = a(1, j)

'****** 错误3 ****** a (Line_no, j) = a(1, j) a (Line_no, j) = temp Next j

'交换对应行的平均值 temp = ave(1) ave(1) = ave(Line_no) ave(Line_no) = temp '打印交换后的数据

Form1.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

'****** 错误4 ****** sum = a(i, j) Next j ave(i) = sum / 4 Next i

'将数组和平均值打印出来 Form1.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

Form1.Print a(i, j); Spc(3); Next j

Form1.Print \平均值=\ Next i End Sub

10.已有一模块文件Modify.Bas。该模块中的 Wrap 过程用于判断一个字符串是否“回文”。所谓“回文”是指字符串顺读与倒读都是一样的,如“潮起潮落,落潮起潮”。 程序如下: Public Sub Wrap() Dim length As Integer Dim str1 As String Dim strleft As String Dim strright As String Dim k As Integer

str1 = InputBox(\请输入任意的字符串\输入任意字符串 '****错误1***** length = Val(str1) k = 1 Do

'****错误2*****

strleft = Left(str1, k) '从左边起逐个取出一个字符 '****错误3*****

strright = Right(str1, k) '从右边起逐个取出一个字符 '****错误4**** If strleft = strright Then Exit Do End If k = k + 1

Loop While k <= length / 2 If k > length / 2 Then

Form1.Print str1 & \是回文\ Else

Form1.Print str1 & \不是回文\ End If End Sub

11.已有一模块文件Modify.Bas。该模块中的BubbleSort过程是冒泡排序法;GenerateData过程产

生10个[1,20]之间互不相同的随机整数;Swap过程交换两个变量的数值。 程序如下: Private Const n = 10 Private a(1 To n) As Integer 'BubbleSort过程是冒泡排序 'Swap过程交换两个变量数值

'GenerateData过程产生10个[1,20]之间互不相同的随机整数

Public Sub BubbleSort() Dim i As Integer, j As Integer i = 1 Do

For j = i + 1 To n If a(j) > a(i) Then '******* 1 ********* Swap (a(j), a(i)) End If Next j i = i + 1 '******* 2 ******* Loop While i = n Form1.Print \排序结果\ For i = 1 To n Form1.Print a(i); Next i End Sub

Public Sub GenerateData() Dim i As Integer Dim j As Integer Dim b As Boolean For i = 1 To n b = False Do While Not b

a(i) = Int(20 * Rnd + 1) b = True '****** 3 ****** For j = 1 To i If a(i) = a(j) Then b = False Exit For End If Next j Loop

Form1.Print a(i)

Next i End Sub

'******** 4 ********

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

12.已有一模块文件Modify.Bas。该模块中的 Transfer 过程用于将一个十六进制整数转换为十进制整数;number 函数过程用于将一个十六进制符号转换为数值。 程序如下: Public Sub Transfer()

Dim Hex As String '十六进制数 Dim Dec As Double '十进制数 Dim temp As String Dim i As Integer Dim n As Integer

Hex = InputBox(\输入一个十六进制整数\ '****** 错误1 ******* n = Val(Hex) i = 0 Do

'****** 错误2 ******* temp = Mid(Hex, i, 1) '****** 错误3 ******* Dec = Dec + number * 16 ^ i i = i + 1 Loop While i < n '****** 错误4 ******

Form1.Print str(Hex) & \转换为十进制数为\End Sub

Public Function number(str As String) As Integer Select Case str Case \ number = 10 Case \ number = 11 Case \ number = 12 Case \ number = 13