第5章 数组和自定义类型
更新时间:2024-06-09 18:04:01 阅读量: 综合文库 文档下载
- 第5章 你叫什么名字推荐度:
- 相关推荐
第5章 数组和用户自定义类型
一. 例题与解析
(1)在窗体上画一个名称为Command1的命令按钮,然后编写如下代码: Option Base 1
Private Sub Command1_Click()
d = 0: c = 10
x = Array(10, 12, 21, 32, 24) For i = 1 To 5 If x(i) > c Then
d = d + x(i) c = x(i) Else
d = d - c End If Next i Print d End Sub
程序运行后,单击命令按钮,则窗体上的输出结果为 。
A)89 B)99 C)23 D)77 【答案】C
【解析】语句Option Base 1使得数组的下标从1开始,因此,语句x = Array(10, 12, 21, 32, 24)使得数组x各元素的值分别为:x(1)=10,x(2)=12,x(3)=21,x(4)=32,x(5)=24。当i为1时,x(i)>c的值为假,执行语句d=d-c,使得d的值为-10;i为2时,x(i)>c的值为真,执行语句d=d+x(i)和c=x(i),使得d和c的值分别为2和12;i为3时,x(i)>c的值为真,执行语句d=d+ x(i)和c=x(i),使得d和c的值分别为23和21; i为4时,x(i)>c的值为真,执行语句d=d+x(i)和c=x(i),使得d和c的值分别为55和32; i为5时,x(i)>c的值为假,执行语句d=d-c,使得d的值为55-32=23。
(2)在窗体画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click() Dim array1(10, 10) As Integer Dim i, j As Integer For i = 1 To 3 For j = 2 To 4 array1(i, j) = i + j Next j Next i
Text1.Text = array1(2, 3) + array1(3, 4) End Sub
程序运行后,单击命令按钮,在文本框中显示的值是 。
A)12 B)13 C)14 D)15 【答案】A
【解析】根据程序,i=1时,j的值分别为2、3、4,则array(1,2)=3,array(1,3)=4,array(1,4)=5;i=2时,j的值分别为2、3、4,则array(2,2)=4,array(2,3)=5,array(2,4)=6;i=3时,j的值分别为2、3、4,则array(3,2)=5,array(3,3)=6,array(3,4)=7。因此文本框内显示的值应该为12。
(3)设有如下程序:
Private Sub Command1_Click() Dim a
Dim i As Integer
a = Array(1, 2, 3, 4, 5, 6, 7, 8, 9) For i = 0 To 3 Print a(5 - i); Next End Sub
程序运行后,单击命令按钮,则在窗体上显示的是 。 A)4 3 2 1 B)5 4 3 2 C)6 5 4 3 D)7 6 5 4 【答案】C
【解析】数组a初始化后,数组各元素的值分别是: a(0)=1,a(1)=2,a(2)=3,a(3)=4,a(4)=5,a(5)=6,a(6)=7,a(7)=8,a(8)=9。 For循环内的Print语句在同一行输出元素a(5)、a(4)、a(3)、a(2)的值,即6、5、4、3。
(4)用下面语句定义的数组的元素个数是 。
Dim A(-3 To 5) As Integer A)6 B)7 C)8 D)9 【答案】D 【解析】在声明数组的同时指定数组下标下界(如本例的-3)和下标上界(如本例的5),则数组A的元素分别是A(-3)、A(-2)、A(-1)、A(0)、A(1)、A(2)、A(3)、A(4)、A(5),共9个元素。
(5)设有如下数组声明语句,则下列对数组元素的引用中错误的是 。 Dim A(5) A)A(0)=1.57 B)A(6)=12 C)A(5)=\ D)A(1)=True 【答案】B
【解析】在声明数组时,没有指定数组下标下界,系统默认的下界值是0,则数组A的元素应该是A(0)、A(1)、A(2)、A(3)、A(4)、A(5)。使用A(6)会产生数组下标越界的错误。 另外,在本题中声明数组A时省略了数据类型,则系统默认为Variant类型,即数组的每个元素可以存放不同类型的数据。 (6)运行下列程序,单击窗体,则运行结果是 。
Option Base 1
Private Sub Form_Click() Dim a(10) For i = 1 To 10
a(i) = 10 - i + i Mod 2 Next i
For i = 10 To 1 Step -2
Print a(i); Next i End Sub A) 0 2 4 6 8 B) 8 6 4 2 0
C) 1 3 5 7 9 D) 9 7 5 3 1
【答案】A 【解析】本题要注意两点:第一个For语句的循环体有一条a(i) = 10- i + i Mod 2 语句,完成数组元素的生成;另外,第二个For语句的参数是10 To 1 Step -2,逆向间隔输出。计算数组元素中Mod运算符优先,当i是奇数时,i Mod 2的值为1,当i是偶数时,i Mod 2的值为0,10-i在循环中得到9 8 7,6,5,4,3,2,1,0,当i是奇数时加1,因此a数组中的 数是10,8,8,6,6,4,4,2,2,0,最后逆向间隔输出,输出的结果是0,2,4,6,8。 (7)运行下列程序,单击窗体,则运行结果是 。
Option Base 1
Private Sub Form_Click() Dim a
a = Array(1, 5, \ For i = 1 To 3 Print a(i); Next i End Sub
A) 1 5 abcde B) 1 5 \C) 出错信息 D) 1
5
abcde 【答案】A 【解析】a是变体变量,使用Array函数进行数组初始化时,数组的各个元素类型可以不同;并且字符串输出是不带定界符(一对西文双引号)。
(2)设窗体上有一个列表框控件List1,且其中含有若干列表项。则以下能表示当前被选中的列表项内容的是 。 A) List1.List B) List1.ListIndex C) List1.Index D) List1.Text 【答案】D
【解析】列表框的Text属性的值是最后一次选中的列表项的文本;ListIndex属性的值是最后一次选中的列表项的Index值;List属性和Index属性均为数组。因而本题的正确答案是选项D。
(3)为了清除列表框中的所有内容,应使用的方法是 。 A)Cls B)Clear C)Remove D)RemoveItem 【答案】B
【解析】Cls和Remove不是列表框的方法;Clear方法用来删除列表框中的所有项目;RemoveItem方法从列表框删除指定项目。
(15)设置组合框的样式,可用的属性是 。
A)BackStyle B)BorderStyle C)Style D)Sorted
【答案】C 【解析】组合框没有BackStyle和BorderStyle属性。组合框的Sorted属性控制列表项是否按序排列,若设置为True按升序排列,否则按加入先后顺序排列。组合框的Style属性控制组合框的样式,0为下拉式组合框,1为简单组合框,2为下拉式列表(只能选择不能输入)。
二.练习题
1.单项选择题
(1)下面程序运行后,单击窗体,窗体输出为 。
Option Base 1
Private Sub Form_Click()
x = Array(10, 25, 15, 20, 25, 25, 50, 40, 50, 60) p = x(1)
For i = 2 To 10 If x(i) > p Then
p = x(i) s = s + p
End If Next i Print p; s End Sub
A) 10 10 B) 60 70 C) 60 135
D) 10 65
(2)在窗体上放一个命令按钮,并编写如下程序,运行后单击命令按钮,则输出结果
是 。
Private Sub Command1_Click( ) Dim A
A = Array(1, 2, 3, 4) S = 0
For I = 1 To 2 S = S + A(I) Print S; Next I End Sub A)2 5 B)1 3 C)5 D)4 (3)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序: Private Sub Command1_Click() Dim i, j As Integer
Dim a(10, 10) As Integer
For i = 1 To 3 For j = 1 To 3
a(i, j) = (i - 1) * 3 + j Print a(i, j); Next j Print Next i End Sub
程序运行后,单击命令按钮,窗体上显示的是 。 A) 1 2 3 B) 2 3 4 C) 1 4 7 D) 1 2 3 2 4 6 3 4 5 2 5 8 4 5 6 3 6 9 4 5 6 3 6 9 7 8 9
(4)设有如下程序
Private Sub Form_Click() Dim abc() As Integer n1 = Int(10 * Rnd())
n2 = Int(10 * Rnd() + 50) ReDim abc(n1 To n2)
Print LBound(abc); UBound(abc) End Sub
运行程序后,多次单击窗体,则输出结果范围最大的两个数是 A)10 60 B)10 59 C)0 59 D)0 60 (5)下面四个选项中,正确的用户定义类型是 。
A) Dec abc B) Dec abc xm As String xm As String * 4 nl As Integer nl As Integer xb As Boolean xb As Boolean End Dec End Dec C) Type abc D) Type abc xm As String xm As String * 4 nl As Integer nl As Integer xb As Boolean xb As Boolean End Type End Type (6)设有如下程序 Option Base 1
Private Sub Form_Click()
a = Array(\张\刘\郝\陈\王\ w = a(1)
For i = 1 To 4 a(i) = a(i + 1) Next i a(5) = w
For i = 5 To 1 Step -1 Print a(i); Next i
A) ab B) bd C) ac D) 出错
(28)窗体上有一个名称为Text1 的文本框,一个名称为Command1 的命令按钮。编写如下的代码:
Private Type x a As Integer b As Integer End Type
Private Sub Command1_Click Dim y As x
y.a =inputBox(\ If y.a\\2=y.a/2 Then y.b=y.a*y.a Else
y.b=Fix(y.a/2) End If
Text1.Text=y.b End Sub
对以上程序,下列叙述中错误的是 A) x是用户定义的类型
B) InputBox函数弹出的对话框中没有提示信息 C) 若输入的是偶数,y.b的值为该偶数的平方
D) Fix(y.a/2)把y.a/2的小数部分四舍五入,转换为整数返回
2.填空题
(1)用户可以用 语句定义自己的数据类型。
(2)组合框的Style属性决定了它的3种不同类型,其中使得组合框只能选择而不能输入数据的Style值为 。
(3)下列程序的功能是求sin(0.3125)的值。由台劳级数可知:
sinx=x-x3/3!+ x5/5!- x7/7!+??
用有限步取代sinx的无限步计算,请填空。
(注意:不得增行或删行, 也不得更改程序的结构!) Private Sub Form_Click() k = 2: n = 80 x = 0.3125 sin1 = 0
fn = 1: fx = x For i = 1 To n
sin1 = sin1 + fx / fn
fn = fx = k = k + 2 Next i
Print sin1 End Sub
(4)下列程序的功能是:计算并输出100以内的所有能被3整除且个位数是6的所有整数,请填空。(注意:不得增行或删行, 也不得更改程序的结构!) Private Sub Form_Click()
Dim i As Integer, j As Integer
For i = 0 To j = i * 10 + 6
If Then Print j End If Next i End Sub
(5)在窗体上有一个名称为Label1的标签和一个名称List1的列表框。程序运行后,在列表框中添加若干列表项。当双击列表框中的某个项目时,在标签Label1中显示所选中的项目,如图所示。请在空白处填入适当的内容,将程序补充完整。
Private Sub Form_load()
List1.AddItem \北京\ List1.AddItem \上海\ List1.AddItem \河北\ End Sub
Private Sub List1_DblClick() Label1.Caption= End Sub
(6)在窗体上有一个列表框,然后编写如下两个事件过程:
Private Sub Form_Click() List1.RemoveItem 1 List1.RemoveItem 2 List1.RemoveItem 3 End Sub
Private Sub Form_Load() List1.AddItem\List1.AddItem\ List1.AddItem\List1.AddItem\ List1.AddItem\ List1.AddItem\End Sub
运行上面的程序,然后单击窗体,列表框中显示的项目是 。
(7)下列程序功能是,产生10个0~100的随机数,输出其中的最大值。请将程序补充完整。
Private Sub Form_Click() Dim an(10) As Integer Dim max As Integer Randomize For i=1 To 10
an(i)= Next i
max=an(1) For i=2 to 10
if an(i)>max then max=an(i) End If Next Print max End Sub (8)下面程序的功能是产生10个小于100(不含100)的随机正整数,并统计其中能被5整除的数所占比例,但程序不完整,请补充完整。
Private Sub Form_Click() Randomize Dim a(10) For i=1 To 10
a(i)=Int( ) If Then k=k+1 Print a(i) Next i Print
Print k / 10 End Sub
一、单项选择题答案 1. C 11. B 21. B 2. A 12. A 22. B 3. D 13. B 23. C 4. C 14. A 24. D 5. D 15. C 25. B 6. A 16. C 26. B 7. A 17. C 27. B 8. C 18. C 28. D 9. A 19. A 10. C 20. A 二、填空题答案 1. Type 2. 2 3. 空1:fn*k*(k+1) 或 fn*(i*2)*(i*2+1) 空2:-fx*x^2 4. 空1:9 空2:j mod 3 =0 5. list1.text 6. ItemA ItemC ItemE 7. rnd*100 8. 空1:rnd*99+1 空2:a(i) mod 5=0
正在阅读:
第5章 数组和自定义类型06-09
中兴通讯股份有限公司财务报告分析05-20
新人教版初中语文初三(九年级)上册教案09-14
特殊教育试题-含答案05-19
物业前台接待工作计划(标准版)04-16
中国邮政快递的发展现状与对策研究06-06
自己破解需要证书的软件02-02
the details of the lead acid battery04-28
描写金雕的作文400字07-06
特殊教育概论作业04-25
- 必修一物理寒假作业
- 2019-201X年5月大学生入党积极分子思想汇报-word范文模板(3页)
- 药物分析习题五
- 重拾应用意识 体会数学价值(沈建军)
- 2017全国高校辅导员结构化面试题集及参考答案
- 广东徐闻县实验中学2014届高三第二次月测地理试题
- 今天你共鸣了么?
- 2018-2019正能量读后感1000字-推荐word版(6页)
- 2018年中国截切型盖板针布行业专题研究分析报告目录
- 中国移动业务处理流程大全
- 公文写作常用词汇和句子集锦2016
- ARM课程设计说明书
- 教师资格证教育学论文
- 中考试卷分析
- 环境监测试卷(五)
- 党风廉政建设广播稿1
- 快速制作香香宫煮麻辣烫教程
- 《国际金融学》习题
- 文明施工保障措施方案
- 春兰维修资料故障代码
- 数组
- 定义
- 类型
- 2017年电大2017年最新工商本科流通概论形性考册(全)
- 热力学第一定律及其应用
- 《图形的运动—旋转》说课稿
- 第五章作业
- 杭州电子科技大学测试技术及传感器实验报告
- 欧姆定律和安全用电 评课稿
- 中山大学化学学院本科有机化学期末考试答案
- 趣味运动会作文12篇
- 有机化学答案上册
- 《路,在贪欲中迷失》观后感
- 张氏家谱-正文
- 乘用车燃料消耗量限值
- 大学物理3习题湘潭大学
- 精益生产方式在企业中的应用研究 - 图文
- VB上位机程序编写
- 2013年高考语文古诗分类鉴赏辑录(咏物抒怀诗)学生 - - - -
- 2017年镇江会计继续教育判断和单选
- 2013年考研英语背诵万能句型模板 2
- 数字信号处理实验报告
- 2016-2017学年河北省石家庄市新华区七年级上学期数学期末试卷带