VB程序设计 习题及答案第6章 数组_第1页
VB程序设计 习题及答案第6章 数组_第2页
VB程序设计 习题及答案第6章 数组_第3页
VB程序设计 习题及答案第6章 数组_第4页
VB程序设计 习题及答案第6章 数组_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章 数 组61 试将下面的算术乘法九九表存入数组中,并在窗口显示出来。1 2 3 4 5 6 7 8 92 4 6 8 10 12 14 16 183 6 9 12 15 18 21 24 274 8 12 16 20 24 28 32 365 10 15 20 25 30 35 40 456 12 18 24 30 36 42 48 547 14 21 28 35 42 49 56 638 16 24 32 40 48 56 64 729 18 27 36 45 54 63 72 81【参考答案】程序代码设计Private Sub Form_Click() Dim a(9, 9) As

2、Integer For i = 1 To 9 For j = 1 To 9 a(i, j) = i * j Next j Next i For i = 1 To 9 For j = 1 To 9 Print Format(a(i, j), ); Next j Print Next iEnd Sub图6-1程序运行结果程序运行结果如图6-1所示:62 编写程序,输出上题乘法九九表对角线上的数。(两条对角线的数分两组输出)。【参考答案】程序代码设计Private Sub Form_Click() Dim a(9, 9) As Integer For i = 1 To 9 For j = 1 To

3、9 a(i, j) = i * j Next j Next i For i = 1 To 9 For j = 1 To 9 If i = j Then Print Tab(5 * j); a(i, j) Next j Next i For i = 1 To 9 For j = 1 To 9 If i + j = 10 Then Print Tab(5 * j); a(i, j) Next j Next i图6-2程序运行结果End Sub程序运行结果如图6-2所示:63 编写程序,输出上题乘法九九表中任意一列和任意一行上的数。【参考答案】程序代码设计Private Sub Form_Click

4、() Dim a(9, 9) As Integer For i = 1 To 9 For j = 1 To 9 a(i, j) = i * j Next j Next i n = Val(InputBox(输入行号:) m = Val(InputBox(输入列号:) For i = 1 To 9 Print Tab(5 * i); a(n, i); Next i Print For j = 1 To 9 Print Tab(5 * m); a(m, j) Next jEnd Sub运行结果:如输入行号为:5,输入列号为:5图6-3程序运行结果则程序运行结果如图6-3所示:64 编写程序,交换上

5、题乘法九九表中任意两列上对应的数。【参考答案】程序代码设计Private Sub Form_Click() Dim a(9, 9) As Integer For i = 1 To 9 For j = 1 To 9 a(i, j) = i * j Next j Next i n = Val(InputBox(输入要交换的第一个列号:) m = Val(InputBox(输入要交换的第二个列号:) For i = 1 To 9 For j = 1 To 9 If j = n Then Print Tab(5 * j); a(i, m); ElseIf j = m Then Print Tab(5

6、* j); a(i, n); Else Print Tab(5 * j); a(i, j); End If Next j Print Next iEnd Sub运行结果:图6-4程序运行结果如将第1列与第5列交换,则程序运行结果如图6-4所示:65 编写程序,交换上题乘法九九表中任意两行上对应的数。【参考答案】程序代码设计Private Sub Form_Click() Dim a(9, 9) As Integer For i = 1 To 9 For j = 1 To 9 a(i, j) = i * j Next j Next i n = Val(InputBox(输入要交换的第一个行号:)

7、 m = Val(InputBox(输入要交换的第二个行号:) For i = 1 To 9 For j = 1 To 9 If i = n Then Print Tab(5 * j); a(m, j); ElseIf i = m Then Print Tab(5 * j); a(n, j); Else Print Tab(5 * j); a(i, j); End If Next j Print Next iEnd Sub运行结果:如将第1行与第5行交换,则程序运行结果如图6-5所示:图6-5程序运行结果66 矩阵转置,即将矩阵的行、列互换,如下所示: 1 2 3 1 4 7 4 5 6 2

8、5 8 7 8 9 3 6 9 【参考答案】程序代码设计Private Sub Form_Click() Dim a(3, 3) As Integer, b(3, 3) As Integer For i = 1 To 3 For j = 1 To 3 a(i, j) = Val(InputBox(输入a数组:) Next j Next i For i = 1 To 3 For j = 1 To 3 b(j, i) = a(i, j) Next j Next i Print 输出a数组: For i = 1 To 3 For j = 1 To 3 Print Tab(5 * j); a(i, j

9、); Next j Print Next i Print 输出b数组: For i = 1 To 3 For j = 1 To 3 Print Tab(5 * j); b(i, j); Next j Print Next iEnd Sub图6-6程序运行结果程序运行结果如图6-6所示:67 利用一维数组,统计一个班学生成绩059,6069,7079,8089,9099和100各分数段的人数。 【参考答案】程序代码设计Private Sub Form_Click() Dim a(5 To 10) As Integer For i = 1 To 30 s = Val(InputBox(输入一个学生

10、的成绩:) 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 = Int(2 * Rnd) j = Int(2 * Rnd) c(i, j) = c(i, j) + 1 Next k Print Print 统计结果 Print 正面落地的次数为:; z, 概率为:; z / n Print 反面落地的次数为:; f, 概率为:; f / n Print 两个正面落地的次数为:, c(1, 1) Print 两个反面落地的次数

11、为:, c(0, 0) Print 一正一反落地的次数为:, c(0, 1) + c(1, 0)End Sub程序运行结果如图6-8所示:图6-8程序运行结果69 利用随机函数,分别产生两个5行4列的矩阵,实现矩阵减法运算。图6-9程序运行结果【参考答案】程序代码设计Private Sub Form_Click() Randomize Timer Dim a(1 To 5, 1 To 4) As Integer, b(1 To 5, 1 To 4) As Integer For i = 1 To 5 For j = 1 To 4 a(i, j) = Int(Rnd * 9 + 1) b(i,

12、j) = Int(Rnd * 9 + 1) Next j Next i Print A矩阵为: For i = 1 To 5 For j = 1 To 4 Print a(i, j); Next j Print Next iPrint B矩阵为: For i = 1 To 5 For j = 1 To 4 Print b(i, j); Next j Print Next i Print A矩阵-B矩阵结果为: For i = 1 To 5 For j = 1 To 4 Print a(i, j) - b(i, j); Next j Print Next iEnd Sub程序运行结果如图6-9所

13、示。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 In

14、teger, a2() As IntegerDim a3() As Integer, a4() As IntegerPrivate Sub Form_Click() n = Val(InputBox(输入学生人数:) ReDim nam(n), a1(n), a2(n), a3(n), a4(n) For i = 1 To n nam(i) = InputBox(输入学生姓名:) a1(i) = Val(InputBox(输入数学成绩:) a2(i) = Val(InputBox(输入物理成绩:) a3(i) = Val(InputBox(输入化学成绩:) a4(i) = Val(InputB

15、ox(输入英语成绩:) Next i Print 姓名 数学 物理 化学 英语 Do na$ = InputBox(输入要查询学生的姓名:) For i = 1 To n If na$ = nam(i) Then Print nam(i); ; Tab(12); a1(i); ; a2(i); ; a3(i); ; a4(i) Exit For End If Next i If i n Then Print na$; 查无此人! con$ = InputBox(是否继续查询?(Y/N) Loop While con$ = Y Or con$ = yEnd Sub运行结果:图6-10程序运行结果

16、按题意输入查询成绩的学生姓名,如输入的学生姓名在成绩表中,则显示;如输入的学生姓名不在成绩表中,则显示“查无此人!”,程序运行结果如图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-11程序运行结果038 11.8 123 12.3 试编写程序,将上述成绩输入数组,

17、并按学生成绩排出名次, 输出前5名运动员的名次, 运动员号和成绩。【参考答案】程序代码设计Private Sub Form_Click() Dim no(1 To 16) As String, a(1 To 16) As Single For i = 1 To 16 no(i) = InputBox(输入第 & i & 个运动员编号:) a(i) = Val(InputBox(输入第 & i & 个运动员成绩:) Next iFor i = 1 To 15 l = i For j = i + 1 To 16 If a(l) a(j) Then l = j Next j If i l Then

18、t = no(i) no(i) = no(l) no(l) = t t = a(i) a(i) = a(l) a(l) = t End If Next i Print 名次 运动员编号 运动员成绩 For i = 1 To 16 Print i, no(i), a(i) Next iEnd Sub程序运行结果如图6-11所示。612 输入5个学生的学号,姓名和4门课的成绩,计算每个学生的总分和平均分,并按平均成绩从高到低输出学生的成绩单。(要求:不使用自定义数据类型)【参考答案】程序代码设计Private Sub Form_Click() Dim no(5) As Long, nam(5) A

19、s String, a(5, 4) As Single Dim sum(5) As Single, aver(5) As Single For i = 1 To 5 no(i) = Val(InputBox(输入第 & i & 个学生的学号:) nam(i) = InputBox(输入第 & i & 个学生的姓名:) For j = 1 To 4 a(i, j) = Val(InputBox(输入第 & i & 个学生第 & j & 门课成绩:) Next j Next i For i = 1 To 5 sum(i) = 0 For j = 1 To 4 sum(i) = sum(i) + a(i, j) Next j aver(i) = CInt(sum(i) / 4) Next i For i = 1 To 4 For j = i + 1 To 5 If aver(i) aver(j) Then t = no(i) no(i) = no(j) no(j) = t t = nam(i) nam(i) = nam(j) nam(j) = t t = sum(i) sum(i) = sum(j) sum(j) = t t = aver(i) aver(i) = aver(j) aver(j) = t For k = 1 To

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论