




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章 数组与记录51 填空题1若要定义一个包含10个字符串元素,且下界为1的一维数组s,则数组说明语句为( )。答案:Dim s(1 To 10) As String2若要定义一个元素为整型数据的二维数组a,且第一维的下标从0到5,第二维下标从-3到6,则数组说明语句为( )。答案:Dim a(0 To 5,-3 To 6) As Integer3如果数组元素的下标值为实数,则VB系统会按( )进行处理。答案:四舍五入原则4数组元素个数可以改变的数组称为();数组元素可以存放不同类型数据的数组称为()。答案:可调数组、可变类型数组5数组刷新语句用于()。若被刷新的数组是数值数组,则把所有元素置( );若被刷新的数组为字符串数组,则把所有元素置()。答案:清除指定数组内容、空字符串10控件数组是由一组类型和()相同的控件组成,共享( )。答案:名字、同一个事件过程11控件数组中的每一个控件都有唯一的下标,下标值由( )属性指定。答案:Index12建立控件数组有两种方法:( )和( )。答案:在设计阶段通过相同Name属性值来建立、在程序代码中使用Load方法52 选择题1下列一维数组说明语句错误的是( )。a) Dim b(100) AS Doubleb) Dim b(-5 To 0) AS Bytec) Dim b(-10 To 20) AS Integerd) Dim b(5 To 5) AS String答案:c2若有数组说明语句为:Dim a(-3 To 8), 则数组a包含元素的个数是( )。a) 5 b) 8 c) 11 d) 12答案:d3设有数组说明语句:Dimc(1 To 10),则下面表示数组c的元素选项中()是错误的。a) c(i-1) b) c(5+0.5) c) c(0) d) c(10)答案:c4.下列数组说明语句中正确的是( )。a) Dim a(-1 To 5,8)AS Stringb) Dim a(n,n)AS Integerc) Dim a(0 To 8,5 To 1)AS Singled) Dim a(10,-10)AS Double答案:a5设有数组说明语句:Dimb(-To,-To),则数组b中元素的个数是( )。a) 12 b) 15 c) 16 d) 20答案:d6设有数组说明语句:Dimc(-To,To),则下列表示数组c的元素选项中( )是正确的。a) c(i+j) b) c(i)(j) c) c(i+1,j-1) d) c(1,0)答案:c7若有数组说明语句:Dim a()AS Integer,则a被定义为( )。a)定长数组 b)可调数组 c)静态数组 d)可变类型数组答案:b8若有数组说明语句:Dim t(1 To 10)AS Variant,则t被定义为( )。 a)数值数组 b)可调数组 c)字符串数组 d)可变类型数组答案:d9下面选项中,错误的是( )。a) Dim s As variant :s = Array(one , two , Three )b) Dim b :b=Array(1,2,3)c) Dim b As Integer :b=Array(1,2,3)d) Dim b As variant :b=Array(1,2,3) 答案:c10若有以下说明语句Type employeenum As Integersalary As SingleEnd TypeDim programmer As employee则下面表示记录变量programmer的 成员Salary正确的是()。a) programmersalary b) .salaryc) grammer d) programmer.salary 答案:d11已知有说明语句Type datyear As Integermonth As Integerday As IntegerEnd TypeType empno As Integername As String10sex As String*1birthday As datsalary As singleEnd TypeDim programmer As emp并假设变量programmer所表示职工的出生日期是“1978年10月1日”,则下列正确的赋值语句是( )。a) year=1978:month=10:day=1b) birthday.Year=1978:birthday.month=10: birthday.day=1c) programmer.year=1978:programmer.month=10 :programmer.day=1d)programmer.birthday.year=1978:programmer.birthday.month=10:programmer.birthday.day=1答案:d12假设有第11题的说明语句,则下列With语句正确的是( )。a) with progammerno=1000:name= 张勇 : sex= 男with birthdayyear=1978 :month=10 :day=1End withsalary=2800End withb) with programmer.no=1000:.name= 张勇 :.sex=男with .birthday.year=1978 :.month=10 :.day=1 End with.salary=2800End withc) with programmer.no=1000 :.name=张勇 :.sex=男.birthday.year=1978 :.birthday.month=10 :.birthday.day=1 .salary=2800End withd) with programmer,birthday .no=1000:.name=张勇 :.sex=男.year=1978 :month.=10 :day.=1.salary=2800End with答案:c53 解答题1使用关键字Dim,ReDim和Static定义的数组分别称为什么数组?它们各有什么特点? 答:使用关键字Dim说明的数组称为定长数组。说明定长数组时,应同时确定维数和下标范围。VB编译程序在编译时为定长数组分配相应的内存区域,并且在应用程序运行期间,定长数组都占有这块内存区域。使用关键字ReDim说明的数组称为可调数组或动态数组。若在程序运行前,不能确定数组的大小或在程序运行时需要改变数组的大小,则该数组应定义为可调数组。在应用程序运行期间,可调数组占用的内存区域可能会改变。使用Static说明的数组称为静态数组。在整个应用程序运行期间,系统分配固定内存区域。定义该数组的过程执行结束时,数组的值仍保留,该过程再次被调用时,数组的值为上次过程调用结束时的值。而定长数组和可调数组则不然,定义它们的过程执行结束时,它们的值不保留。54 阅读程序,并写出执行结果1Private Sub Command1_Click() Dim f(10) As Integer f(0) = 1: f(1) = 1 For i = 2 To 10 f(i) = f(i - 2) + f(i - 1) Next i For i = 0 To 10 If i Mod 4 = 0 Then Print Print f(i), Next iEnd Sub答案: 1 1 2 3 5 8 13 21 34 55 892Private Sub Command1_Click() Dim s(1 To 6) As Integer For i = 1 To 6s(i) = i Next i For i = 1 To 3 For j = 4 To 6 t = s(i) :s(i) = s(j) :s(j) = t Next j Next i For i = 1 To 6 Print s(i); Next iEnd Sub答案: 6 5 4 3 2 13. Private Sub Command1_Click() Dim a(1 To 9) As Integer Dim b(1 To 3, 1 To 3) As Integer Dim i%, j% For i = 1 To 9 a(i) = i Next i For i = 1 To 3 For j = 1 To 3 b(i, j) = a(i * j) If j = i Then Print b(i, j), Next j Print Next iEnd Sub答案: 12 43 6 94. Private Sub Command1_Click() Dim a(1 To 5, 1 To 5) As Integer, i%, j% For i = 1 To 5 For j = 1 To 5 If i max Then max = a(i): p = i Next i Print: Print Print Tab(15); 最大值为:; max Print Tab(10), 最大值所在数组元素的下标为:; pEnd SubPrivate Sub Command2_Click() EndEnd Sub(3)运行情况运行程序后,屏幕出现用户界面。单击标题为“开始”的命令按钮,系统执行相应的Click事件过程。执行结果如图3.5.2所示。单击标题为“结束”的命令按钮,结束程序的执行。 图3.5.2 执行结果4给定两组已按升序排列好的整型数据,编写一个程序把它们合并为一组仍按升序排列的数据。解答:(1)界面设计和属性设置在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3.5.4所示。 表3.5.4 属性设置 控件名称 属性名 属性值 Form1 Caption把两个升序数组合并为一个升序数组 Command1Caption 合并 Command2 Caption 结束(2)程序代码Dim a As Variant, b As Variant, c%(0 To 11)Private Sub Form_Activate() Dim i% a = Array(1, 2, 7, 8) Print: Print: Print Print Tab(5); 第一个升序数组:; For i = 0 To 3 Print a(i); Next i Print: Print b = Array(3, 4, 8, 8, 9, 10, 12, 12) Print Tab(5); 第二个升序数组:; For i = 0 To 7 Print b(i); Next iEnd SubPrivate Sub Command1_Click() Dim i%, j%, k% i = 0: j = 0: k = 0 While i 4 And j b(j) Then c(k) = b(j): k = k + 1: j = j + 1 比较a和b中的元素,把较大的元素移到 Else c中,直到其中一个数组搬空为止 c(k) = a(i): k = k + 1: i = i + 1 End If Wend While i 4 c(k) = a(i): i = i + 1: k = k + 1 把a中剩余的元素搬到c中 Wend While j 8 c(k) = b(j): j = j + 1: k = k + 1 把b中剩余的元素搬到c中 Wend Print: Print Print Tab(5); 合并后的升序数组: Print Tab(8); For i = 0 To 11 Print c(i); Next iEnd SubPrivate Sub Command2_Click() EndEnd Sub(3)运行情况运行程序后,系统执行Form_Activate事件过程,屏幕出现用户界面,并显示两个升序数组。单击标题为“合并”的命令按钮,系统执行相应的Click事件过程。执行结果如图3.5.4所示。单击标题为“结束”的命令按钮,结束程序的执行。 图3.5.4 执行结果5从键盘上输入一个正整数,判别它是否为回文数。所谓回文数是指正读和反读都一样的数。例如,123321是回文数。解答:(1)界面设计和属性设置在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3.5.5所示。 表3.5.5 属性设置 控件名称 属性名 属性值 Form1 Caption判别一个整数是否为回文数 Command1Caption 开始 Command2 Caption 结束(2)程序代码Private Sub Command1_Click() Cls Dim num As Long, n As Long, i%, k%, f%, b%(10) num = InputBox(请输入一个整数:) k = 0: n = num Do b(k) = n Mod 10 把num的各位数字存入数组b中 k = k + 1 n = n 10 Loop While n 0 f = 1 For i = 0 To (k - 1) / 2 If b(i) b(k - 1 - i) Then f = 0 num的第i位与第k-1-i位数字不相同时f置0 Next i 说明num不是回文数 Print: Print: Print: Print If f Then Print Tab(18); num; 是回文数! Else Print Tab(16); num; 不是回文数! End IfEnd SubPrivate Sub Command2_Click() EndEnd Sub(3)运行情况运行程序后,屏幕出现用户界面。单击标题为“开始”的命令按钮,系统执行相应的Click事件过程。在调用InputBox 函数出现对话框时,输入一个整数,例如,1234321。执行结果如图3.5.5所示。单击标题为“结束”的命令按钮,结束程序的执行。 图3.5.5 执行结果6. 编一程序,把一个m行n列矩阵中的元素存放到一个二维数组中,并求出该数组的平均值、最大值和最小值。解答:(1) 界面设计和属性设置在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-5-6所示。表3-5-6 第6题的属性设置 控件名称 属性名 属性值 Form1 Caption求矩阵的平均值、最小值和最大值 Command1Caption 开始 Command2 Caption 结束(2) 程序代码Private Sub Command1_Click() Dim i%, j%, m%, n%, sum!, ave!, max!, min! Dim a() As Single m = InputBox(请输入矩阵的行数:) n = InputBox(请输入矩阵的列数:) ReDim a(1 To m, 1 To n) Print Print Tab(2); 输入的矩阵为: For i = 1 To m Print Tab(15); For j = 1 To n a(i, j) = InputBox(输入第 & Str(i) & 行 & 第 & Str(j) & 列元素:) Print a(i, j); Next j Print Next i sum = 0 For i = 1 To m For j = 1 To n sum = sum + a(i, j) 求和 Next j Next i ave = sum / (m * n) 求平均值 max = a(1, 1) For i = 1 To m For j = 1 To n If a(i, j) max Then max = a(i, j) 求最大值 Next j Next i min = a(1, 1) For i = 1 To m For j = 1 To n If a(i, j) min Then min = a(i, j) 求最小值 Next j Next i Print Print Tab(2); 平均值为:; ave Print Tab(2); 最大值为:; max Print Tab(2); 最小值为:; minEnd SubPrivate Sub Command2_Click() EndEnd Sub(3)运行情况 运行程序后,需多次调用InputBox 函数。在调用InputBox 函数出现对话框时,输入矩阵的行数、矩阵的列数和数组元素的值。例如,输入矩阵的行数3、矩阵的列数3和数组元素的值1、2、3、4、5、6、7、8、9。执行结果如图3.5.6所示。7. 某城市三个百货公司某个季度销售电视机的情况和价格由如下表格表示,求各个百货公司的电视机营业额。 牌子公司康 佳TCL长 虹第一百货商店300250 150第二百货商店 200 240 200第三百货商店 280 210 180 牌 子 价 格 康 佳 3500 TCL 3300 长 虹 3800解答:(1)界面设计和属性设置在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3.5.7所示。 表3.5.7 属性设置 控件名称 属性名 属性值 Form1 Caption计算电视机销售额 Command1Caption 开始 Command2 Caption 结束(2)程序代码Option ExplicitPrivate Sub Command1_Click() Cls Dim i%, j%,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论