【VB开源代码栏目提醒】:以下是网学会员为您推荐的VB开源代码-VB程序设计 习题及答案第6章 数组 - 计算机教材,希望本篇文章对您学习有所帮助。
第6章 数 组 61 试将下面的算术乘法九九表存入数组中并在窗口显示出来。
1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 【参考答案】 程序
代码设计 Private Sub Form_Click Dim a9 9 As Integer For i 1 To 9 For j 1 To 9 ai j i j Next j Next i For i 1 To 9 For j 1 To 9 Print Formatai j Next j Print Next i End Sub 程序运行结果如图6-1所示 62 编写程序输出上题乘法九九表对角线上的数。
两条对角线的数分两组输出。
【参考答案】 程序
代码设计 Private Sub Form_Click Dim a9 9 As Integer For i 1 To 9 For j 1 To 9 ai j i j Next j Next i For i 1 To 9 For j 1 To 9 图6-1程序运行结果 If i j Then Print Tab5 j ai j Next j Next i For i 1 To 9 For j 1 To 9 If i j 10 Then Print Tab5 j ai j Next j Next i End Sub 程序运行结果如图6-2所示 63 编写程序输出上题乘法九九表中任意一列和任意一行上的数。
【参考答案】 程序
代码设计 Private Sub Form_Click Dim a9 9 As Integer For i 1 To 9 For j 1 To 9 ai j i j Next j Next i n ValInputBox输入行号: m ValInputBox输入列号: For i 1 To 9 Print Tab5 i an i Next i Print For j 1 To 9 Print Tab5 m am j Next j End Sub 运行结果 如输入行号为5输入列号为5 图6-2程序运行结果 则程序运行结果如图6-3所示 64 编写程序交换上题乘法九九表中任意两列上对应的数。
【参考答案】 程序
代码设计 Private Sub Form_Click Dim a9 9 As Integer For i 1 To 9 For j 1 To 9 ai j i j Next j Next i n ValInputBox输入要交换的第一个列号: m ValInputBox输入要交换的第二个列号: For i 1 To 9 For j 1 To 9 If j n Then Print Tab5 j ai m ElseIf j m Then Print Tab5 j ai n Else Print Tab5 j ai j End If Next j Print Next i End Sub 运行结果 如将第1列与第5列交换则程序运行结果如图6-4所示 图6-3程序运行结果 图6-4程序运行结果 65 编写程序交换上题乘法九九表中任意两行上对应的数。
【参考答案】 程序
代码设计 Private Sub Form_Click Dim a9 9 As Integer For i 1 To 9 For j 1 To 9 ai j i j Next j Next i n ValInputBox输入要交换的第一个行号: m ValInputBox输入要交换的第二个行号: For i 1 To 9 For j 1 To 9 If i n Then Print Tab5 j am j ElseIf i m Then Print Tab5 j an j Else Print Tab5 j ai j End If Next j Print Next i End Sub 运行结果 如将第1行与第5行交换则程序运行结果如图6-5所示 66 矩阵转置即将矩阵的行、列互换如下所示 1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9 【参考答案】 程序
代码设计 Private Sub Form_Click Dim a3 3 As Integer b3 3 As Integer For i 1 To 3 For j 1 To 3 图6-5程序运行结果 ai j ValInputBox输入a数组: Next j Next i For i 1 To 3 For j 1 To 3 bj i ai j Next j Next i Print 输出a数组: For i 1 To 3 For j 1 To 3 Print Tab5 j ai j Next j Print Next i Print 输出b数组: For i 1 To 3 For j 1 To 3 Print Tab5 j bi j Next j Print Next i End Sub 程序运行结果如图6-6所示 67 利用一维数组统计一个班学生成绩059606970798089 9099和100各分数段的人数。
【参考答案】
程序代码设计 Private Sub Form_Click Dim a5 To 10 As Integer For i 1 To 30 s ValInputBox输入一个学生的成绩: If s 60 And s 0.5 Then Print Z z z 1 Else Print F f f 1 End If If z f Mod 40 0 Then Print i Int2 Rnd j Int2 Rnd ci j ci j 1 Next k Print 图6-7程序运行结果 Print 统计结果 Print 正面落地的次数为 z 概率为: z / n Print 反面落地的次数为 f 概率为: f / n Print 两个正面落地的次数为 c1 1 Print 两个反面落地的次数为 c0 0 Print 一正一反落地的次数为 c0 1 c1 0 End Sub 程序运行结果如图6-8所示 69 利用随机函数分别产生两个5行4列的矩阵实现矩阵减法运算。
【参考答案】 程序
代码设计 Private Sub Form_Click Randomize Timer Dim a1 To 5 1 To 4 As Integer b1 To 5 1 To 4 As Integer For i 1 To 5 For j 1 To 4 ai j IntRnd 9 1 bi j IntRnd 9 1 图6-8程序运行结果 图6-9程序运行结果 Next j Next i Print A矩阵为: For i 1 To 5 For j 1 To 4 Print ai j Next j Print Next i Print B矩阵为: For i 1 To 5 For j 1 To 4 Print bi j Next j Print Next i Print A矩阵-B矩阵结果为 For i 1 To 5 For j 1 To 4 Print ai j - bi j Next j Print Next i End Sub 程序运行结果如图6-9所示。
610 有学生成绩表如下所示 姓名 数学 物理 化学 英语 张 三 85 87 93 95 李 四 91 90 93 75 王 五 83 77 63 85 赵 六 75 80 73 74 孙 七 72 79 86 65 试编写程序将上述成绩输入数组并对学生成绩进行检索。
只要键入一个学生姓名就可以显示出他的成绩。
要求 1 使用动态数组输入的人数可以根据情况决定。
2 当要检索的学生名不在成绩表中时要能给出提示信息。
3 每次检索后询问是否继续检索并能根据输入信息决定是否结束程序运行。
【参考答案】 程序
代码设计 Dim nam As String a1 As Integer a2 As Integer Dim a3 As Integer a4 As Integer Private Sub Form_Click n ValInputBox输入学生人数: ReDim namn a1n a2n a3n a4n For i 1 To n nami InputBox输入学生姓名: a1i ValInputBox输入数学成绩: a2i ValInputBox输入物理成绩: a3i ValInputBox输入化学成绩: a4i ValInputBox输入英语成绩: Next i Print 姓名 数学 物理 化学 英语 Do na InputBox输入要查询学生的姓名: For i 1 To n If na nami Then Print nami Tab12 a1i a2i a3i a4i Exit For End If Next i If i n Then Print na 查无此人 con InputBox是否继续
查询Y/N Loop While con Y Or con y End Sub 运行结果 按题意输入查询成绩的学生姓名如输入的学生姓名在成绩表中则显示如输入的学生姓名不在成绩表中则显示“查无此人”程序运行结果如图6-10所示 611 某大学召开运动会有16个学生参加100米短跑成绩表如下 运动员号 成绩秒 运动员号 成绩秒 023 12.5 075 12.1 102 12.7 062 12.9 091 13.2 021 13.7 078 13.5 018 11.1 162 12.8 107 13.8 032 13.3 017 13.9 045 11.9 056 13.4 图6-10程序运行结果 038 11.8 123 12.3 试编写程序将上述成绩输入数组并按学生成绩排出名次 输出前5名运动员的名次 运动员号和成绩。
【参考答案】 程序
代码设计 Private Sub Form_Click Dim no1 To 16 As String a1 To 16 As Single For i 1 To 16 noi InputBox输入第 i 个运动员编号: ai ValInputBox输入第 i 个运动员成绩: Next i For i 1 To 15 l i For j i 1 To 16 If al aj Then l j Next j If i l Then t noi noi nol nol t t ai ai al al t End If Next i Print 名次 运动员编号 运动员成绩 For i 1 To 16 Print i noi ai Next i End Sub 程序运行结果如图6-11所示。
612 输入5个学生的学号姓名和4门课的成绩计算每个学生的总分和平均分并按平均成绩从高到低输出学生的成绩单。
要求不使用自定义数据类型 【参考答案】 图6-11程序运行结果 程序
代码设计 Private Sub Form_Click Dim no5 As Long nam5 As String a5 4 As Single Dim sum5 As Single aver5 As Single For i 1 To 5 noi ValInputBox输入第 i 个学生的Box输入第 i 个学生的姓名: For j 1 To 4 ai j ValInputBox输入第 i 个学生第 j 门课成绩: Next j Next i For i 1 To 5 sumi 0 For j 1 To 4 sumi sumi ai j Next j averi CIntsumi / 4 Next i For i 1 To 4 For j i 1 To 5 If averi averj Then t noi noi noj noj t t nami nami namj namj t t sumi sumi sumj sumj t t averi averi averj averj t For k 1 To 4 t ai k ai k aj k aj k t Next k End If Next j Next i Print 学号 姓名 a1 a2 a3 a4 总分 平均分 For i 1 To 5 Print noi nami Tab20 For j 1 To 4 Print ai j Next j Print sumi averi Next i End Sub 程序运行结果如图6-12所示。
613 打印如下所示杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 【参考答案】 程序
代码设计 Dim a As Integer Private Sub Form_Click n ValInputBox输入n值: ReDim an n As Integer For i 1 To n ai 1 1 ai i 1 Next i For i 2 To n For j 2 To i ai j ai - 1 j - 1 ai - 1 j Next j Next i Print 输出扬辉三角形 For i 1 To n For j 1 To i Print Formatai j Next j Print Next i End Sub 程序运行结果如图6-13所示 图6-12程序运行结果 图6-13程序运行结果