二级上机测试中VB程序设计及程序调试样题(4)

2019-01-19 18:33

totalten = totalten + ten totalfive = totalfive + five totalone = totalone + one totalsalary = ----4---- Next i

Form1.Print \共需100元\张\ Form1.Print \共需50元\张\ Form1.Print \共需10元\张\ Form1.Print \共需5元\张\ Form1.Print \共需1元\张\ Form1.Print \合计\元\End Sub

Public Sub SalaryData() salary(1) = 1398 salary(2) = 1765 salary(3) = 689 salary(4) = 1500 salary(5) = 832 salary(6) = 590 salary(7) = 1200 End Sub

9.已有一模块文件Modify.Bas。该模块中的 MaxLine 过程用于查找一个5行4列的二维数组中行平均值最大的行,并将该行所有数据调整到第一行的位置。

Modify.Bas模块中的DataProduce 过程用于产生原始数据;Average 过程用于计算各行的平均值;PrintArray过程用于打印二维数组和行平均值。 程序如下:

Dim a(1 To 5, 1 To 4) As Integer Dim ave(1 To 5) As Integer Public Sub MaxLine() Dim i As Integer Dim j As Integer Dim temp As Integer

Dim Line_no As Integer '最大平均值的行号 '找出最大平均值所在行 Line_no = 1 For i = 2 To 5

'****** 错误1 *******

If ave(Line_no) >= ave(i) Then

'****** 错误2 ******* Line_no = ave(i) End If Next i

'交换第一行与最大平均值所在行 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


二级上机测试中VB程序设计及程序调试样题(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《三字经》试卷(50题)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: