1、vb课后习题答案第八章1、动态数组的定义Dim this() As String 在窗体层定义一个数组thisPrivate Sub Command1_Click() ReDim this(4) 动态数组的定义,注意数据类型要匹配 this(2) = microsoft 不能改变维数和类型 Print this(2) ReDim this(6) this(5) = visual basic Print this(5)End Sub2、数组元素的输出Dim stuname() As String 定义一个数组stuname,类型为字符串Private Sub Command2_Click() R
2、eDim stuname(4) As String 重新定义数组,维数为4,类型为字符串 For i = 1 To 4 temp$ = InputBox(enter name) 从一开始循环,输入一个名字赋一个值 stuname(i) = temp$ Print stuname(; i; )=; stuname(i) 在循环体中输出,i的左右加分号 Next i 输入四个名字End SubPrivate Sub Form_Load() FontSize = 50End Sub3、多位数组元素的输出Private Sub Command3_Click() Dim a(3, 5) As Integ
3、er 定义一个二维数组 For i = 1 To 3 控制第一维的循环变量放在最最外层循环 For j = 1 To 5 a(i, j) = i * j 下行中i、j必须用引号,注意是二维的 Print a(; i; , ; j; )=; a(i, j) print放在循环体中 Next j Next iEnd Sub4、数组元素的输出Option Base 1 下标从1开始Private Sub Command1_Click() Dim a(4, 4) As Integer For i = 1 To 4 For j = 1 To 4 a(i, j) = InputBox(enter data
4、) 放在循环体中 Print a(i, j); Next j Next iEnd Sub5、数组元素的复制Option Base 1Dim name1(), name2() 中间必须加逗号,定义空维数组,为万能类型Private Sub Command2_Click() ReDim name1(10), name2(10) 重新定义,是一维数组 For i = 1 To 10 msg$ = InputBox$(enter name) name1(i) = InputBox$(enter name) name1(i) = msg$ 跟上述语句是一样的效果,只是带换了一下 Print name1(
5、i); ; 放在循环体中 Next i Print 换行,不能放在循环体中 For i = 1 To 10 name2(i) = name1(i) 把数组一的值赋给数组二,必须用循环体复制 Print name2(i); ; 输出 Next iEnd SubPrivate Sub Form_Load() FontSize = 50 不能放在窗体层End Sub6、输出数组的上下界Private Sub Command1_Click() Dim a(1 To 10, 1 To 100, 1 To 1000) Print LBound(a, 1); UBound(a, 1) lbound and
6、ubound 分别表示定义的变量的下界和上界 Print LBound(a, 2); UBound(a, 2) Print LBound(a, 3); UBound(a, 3)End Sub7、定义默认数组Private Sub Command2_Click() Static a(5) a(1) = 100 a(2) = 123.23 a(3) = zhanghaie a(4) = 20 & Now a(5) = &HAAF For i = 1 To 5 Print a(; i; ) = ; a(i) Next iEnd Sub8、求数组的和Private Sub Command3_Click
7、() Dim a(2), b(2), c(2), i 定义为万能类型 a(1) = 1 b(1) = 1 a(2) = 1 b(2) = 1 For i = 0 To 1 c(i) = a(i) + b(i) Print c(; i; )=; c(i) Next iEnd Sub9、数组名在一个过程中不能重Private Sub Form_Click() Dim a(5) Dim b b = 8 在同一个过程中,数组名和其他变量名不能一样 a(2) = 10 Print b, a(2)End Sub10、erase语句的用法Static Sub Form_Click() FontSize =
8、20 Dim test(1 To 20) As Integer 用static定义一个静态数组 For i = 1 To 20 循环,给数组赋值并输出 test(i) = i Print test(i); Next i Erase test 清空数组,还原值为0,释放空间 Print 换行 Print Erase test() 输出字符串 Print now the test array is filled with zeros. 输出字符串 For i = 1 To 20 Print test(i); 输出清空后的数组 Next iEnd Sub11、冒泡排序法Private Sub Com
9、mand1_Click() FontSize = 50 Static number(1 To 10) As Integer msg$ = enter number for sort $表示字符串,用msg$,msgtitle$只是为了代换 msgtitle$ = sort demo For i% = 1 To 10 %表示为整形 number(i%) = InputBox(msg$,msgtitle$) 也可直接输字符串 Next i% For i% = 10 To 2 Step -1 For j% = 1 To i% - 1 If number(j%) number(j% + 1) Then
10、 t = number(j% + 1) number(j% + 1),number(j%)交换数值 number(j% + 1) = number(j%) number(j%) = t End If Next j% Next i% For i% = 1 To 10 Print number(i%) Next i%End Sub12统计人数Option Base 1Dim score() As SinglePrivate Sub Form_Click()n = InputBox(输入学生人数n)ReDim score(n)Dim count(11) As IntegerFor i = 1 To
11、n score(i) = InputBox(输入第 & i & 个学生成绩) Print score(i); k = Int(score(i) / 10) + 1 count(k) = count(k) + 1Next i PrintFor i = 1 To 10 Print (i - 1) * 10; to; (i - 1) * 10 + 9, count(i)Next iPrint 100; Spc(9); count(11)End SubPrivate Sub Form_Load()FontSize = 30End Sub13、作业题5Option Base 1Dim nam(), se
12、x(), age(), culture(), addr()Private Sub Form_Click()n = InputBox(enter people number:)ReDim nam(n)ReDim sex(n)ReDim age(n)ReDim culture(n)ReDim addr(n)For i = 1 To n nam(i) = InputBox(enter name:) Print nam(i), sex(i) = InputBox(enter sex:) Print sex(i), age(i) = InputBox(Enter age:) Print age(i),
13、culture(i) = InputBox(输入文化程度:) Print culture(i), addr(i) = InputBox(输入籍贯:) Print addr(i)Next100findName = InputBox(输入要查询的姓名:)flag = 0For i = 1 To n If findName = nam(i) Then Print nam(i), sex(i), age(i), culture(i), addr(i) flag = 1 End IfNextIf flag = 0 Then Print 您要查询的人不存在!End Ifmsg = MsgBox(您要继续查
14、找吗?, vbYesNo + vbDefaultButton1, 询问框) If msg = vbYes Then GoTo 100 Else End End IfEnd Sub14、作业题Private Sub Form_Click()FontSize = 16Dim i As IntegerDim j As IntegerDim arr(1 To 10, 1 To 10) As IntegerFor i = 1 To 10 For j = 1 To 10 If i = j Or i + j = 11 Then arr(i, j) = 1 Else arr(i, j) = 0 End If
15、NextNextFor i = 1 To 10For j = 1 To 10 Print arr(i, j);NextPrintNextEnd Sub15、作业题8Option ExplicitOption Base 1Dim a() As IntegerDim b() As IntegerPrivate Sub Form_Click()FontSize = 26Dim i As IntegerDim j As IntegerDim n As Integer, m As Integern = InputBox(请输入矩阵的行数:)m = InputBox(请输入矩阵的列数:)ReDim a(n
16、, m) As IntegerReDim b(m, n) As IntegerPrint 转置前的矩阵为:For i = 1 To n For j = 1 To m a(i, j) = InputBox(输入数组A的元素值:) Print a(i, j); Next PrintNextFor i = 1 To n For j = 1 To m b(j, i) = a(i, j) NextNextPrint 转置后的矩阵为:For i = 1 To m For j = 1 To n Print b(i, j); NextPrintNextEnd Sub16、作业题9Private Sub For
17、m_Click()FontSize = 24Dim i As IntegerDim j As IntegerDim arr(10, 10) As Integerarr(0, 0) = 1For i = 1 To 10 arr(i, 0) = 1 For j = 1 To i If i = j Then arr(i, j) = 1 Else arr(i, j) = arr(i - 1, j - 1) + arr(i - 1, j) End If NextNextFor i = 0 To 10 For j = 0 To i Print Tab(6 * j); arr(i, j); Next Pri
18、ntNextEnd Sub17、作业题1、2Option ExplicitOption Base 1Dim a(1 To 10) As SinglePrivate Sub Command1_Click()FontSize = 24Dim i As IntegerDim t As SinglePrint 对换前的数组值依次为:For i = 1 To 10 a(i) = InputBox(输入数值:) Print a(i);NextFor i = 1 To 5 t = a(i) a(i) = a(11 - i) a(11 - i) = tNextPrintPrint 对换后的数组值依次为:For
19、 i = 1 To 10 Print a(i);NextEnd SubPrivate Sub Command2_Click()Dim arrA As VariantDim arrBDim arrSum(8) As VariantDim i As IntegerClsarrA = Array(2, 8, 7, 6, 4, 28, 70, 25)arrB = Array(79, 27, 32, 41, 57, 66, 78, 80)For i = 1 To 8 Print arrA(i); ;NextPrintFor i = 1 To 8 Print arrB(i); ;NextPrintFor
20、i = 1 To 8 arrSum(i) = arrA(i) + arrB(i) Print arrSum(i); ;NextEnd SubPrivate Sub Command3_Click()FontSize = 24Dim i As IntegerDim t As SingleDim b(10) As IntegerPrint 对换前的数组值依次为:For i = 1 To 10 a(i) = InputBox(输入数值:) Print a(i);NextFor i = 1 To 10 b(i) = a(11 - i)NextPrintPrint 对换后的数组值依次为:For i = 1
21、 To 10 Print b(i);NextEnd Sub18、第3题Option ExplicitOption Base 1Dim arr() As IntegerDim n As IntegerDim m As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As IntegerDim max As IntegerDim row As Integer, col As Integern = InputBox(输入数组的行数:)m = InputBox(输入数组的列数:)ReDim arr(n, m)For i = 1 To n F
22、or j = 1 To m arr(i, j) = InputBox(输入数组的元素值:) Print arr(i, j); Next PrintNextmax = arr(1, 1)row = 1: col = 1For i = 1 To n For j = 1 To m If max score(j + 1) Then temp = score(j): score(j) = score(j + 1): score(j + 1) = temp tem = num(j): num(j) = num(j + 1): num(j + 1) = tem End If NextNextPrint 名次
23、, 运动员号, 成绩For i = 1 To 10 Print i, num(i), score(i)NextEnd Sub21、第十题Private Sub Form_Click() FontSize = 20 Print * For k = 1 To 4 Print Tab(k * 6); 3 * k; Next k For i = 15 To 18 Print Print i; For k = 1 To 4 Print Tab(k * 6); i * 3 * k; Next k Next iEnd Sub22、九九乘法表Private Sub Command1_Click() FontSize = 13 Print Tab(65); 九九乘法表 Print For i = 1 To 9 For j = 1 To i Print Tab(j * 15); j; *; i; =; i * j; Next j Print Next iEnd Sub 第七章1、求3和7的倍数的数Private Sub Com
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1