【精品解析】浙江省诸暨市2020届高三上学期信息技术诊断性考试试卷

资源下载
  1. 二一教育资源

【精品解析】浙江省诸暨市2020届高三上学期信息技术诊断性考试试卷

资源简介

浙江省诸暨市2020届高三上学期信息技术诊断性考试试卷
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1.(2020高三上·诸暨月考)下列有关信息与信息技术的说法,正确的是(  )
A.书籍、广播、电视是常见的信息表达方式
B.文本、图像、声音、动画、视频均可以作为信息的载体
C.不联网的计算机没有信息安全隐患,故不需要对数据进行备份
D.安装并及时更新杀毒软件的计算机可以防御所有计算机病毒
2.(2020高三上·诸暨月考)下列有关网页和电子邮件的说法,正确的是(  )
A.HTTP协议用于浏览器与Web服务器之间的信息传输
B.执行“添加到收藏夹”,实际是保存了当前网页的内容
C.发送电子邮件时,邮件主题和正文内容缺失将导致邮件发送失败
D.通过网页收发电子邮件不需要使用SMTP和POP3协议
3.(2020高三上·诸暨月考)下列关于Access数据库和数据表的说法,正确的是(  )
A.在数据表视图下,不能修改字段名称和数据类型
B.新建“自动编号”类型的字段后,原有记录的“自动编号”字段值缺失
C.数据表中某字段数据类型为“是/否”,可以输入“是”作为有效字段值
D.Access数据表的数据导出到Excel后,Excel中显示的字段值可能发生变化
4.(2020高三上·诸暨月考)使用UltraEdit软件观察字符“字母a~z”内码,部分界面如图所示.
下列说法正确的是(  )
A.图中共有3个ASCII码字符
B.字符“j”的十六进制编码值为70
C.字符“z”内码值的十进制表示为122
D.字符“母”内码值的二进制表示为“1100010010101000”
5.(2020高三上·诸暨月考)使用photoshop软件制作作品,部分界面如图所示。
下列说法正确的是(  )
A.可以直接使用油漆桶工具修改“放飞梦想”图层中的文字颜色
B.使用移动工具移动“飞机”图层中飞机图像位置,文字“放飞梦想”不受影响
C.“风车”图层被锁定,故不能移动“风车”图层至“飞机”图层上方
D.隐藏“背景”图层,该作品呈现效果不会变化
6.(2020高三上·诸暨月考)一段1024×768像素、24位色、NTSC制式(30帧/秒)的无声AVI格式视频文件,经压缩比为10:1的技术压缩后其容量为675MB,时长约为(  )
A.10秒 B.50秒 C.100秒 D.150秒
7.(2020高三上·诸暨月考)某算法的部分流程图如图所示。
执行这部分流程,输出s的值是(  )
A.-10 B.10 C.190 D.210
8.(2020高三上·诸暨月考)下列VB表达式的值等于35的是(  )
A.Abs(Int(-34.3)) B.Val(Str(30)+"5")
C.Len("xue")+5 D.Int(sqr(50))*11\2
9.(2020高三上·诸暨月考)有如下VB程序段:
Private Sub Command1_Click()
Dim d(1 To 8) As Integer
Dim i As Integer, s As Integer
d(1)=1
For i=2 To 10
d(i)=d(i-1)*i
Next i
For i=1 To 5
s=s+d(i)
Next i
Text1.Text = Str(s)
End Sub
程序运行时,单击命令按钮Command1后,将会出现的提示信息是(  )
A.溢出 B.下标越界
C.要求对象 D.无效的过程调用或参数
10.(2020高三上·诸暨月考)有如下VB程序段:
Dim a(1 To 10) As Integer
a(1)=2: a(2)=18: a(3)=10: a(4)=34: a(5)=16
a(6)=7: a(7)=37: a(8)=6: a(9)=15: a(10)=15
c=0: x=0: t= 1
For i=1 To 10
a(i)=a(i)*t
c=c+a(i)
If c>0 Then x=x+1
t=-t
Next i
Text1.Text=Str(x)
则程序运行后Text1中显示(  )
A.1 B.3 C.5 D.10
11.(2020高三上·诸暨月考)有如下VB程序段:
For i=1 To 8
d(i)= In(Rnd*10)
Next i
For i= 2 To 8
If i Mod 2=0 And d(i)> d(i-1)Then
d(i)=d(i-1)+1
ElseIf i Mod 2= 1 Then
If d(i)>d(i-2) Then
t=d(i): d(i)=d(i-2): d(i-2)=t
End If
Next i(  )
A.8 8 7 1 3 5 0 1 B.9 0 8 3 5 6 0 1
C.6 2 5 4 7 8 2 3 D.9 10 6 7 5 3 2 2
12.(2020高三上·诸暨月考)以下VB程序段用以实现10个数组元素升序排序。
Dim a(1 To 10) As Integer
Dim flag As Boolean
Dim i As Integer, j As Integer, tmp As Integer
随机生成10个不重复的数据存入数组A中,代码略
For i=2To 10
tmp= a(i)
j=i
flag=False
Do While ① And Not flag
a(j)=a(j-1)
j=j-1

Loop
a(j)=tmp
Next i
要实现上述功能,方框①②中的语句分别是(  )
A.①tmpB.①tmp>a(j-1) ②If j=1 Then flag=True
C.①tmpD.①tmp>a(j) ②If j=0 Then flag=True
二、非选择题(本大题共5小题,4+8+7+7,共26分)
13.(2020高三上·诸暨月考)小段收集了2018年浙江省各地区农业总产值相关数据,并使用Excel软件进行数据处理,如第图a所示,其他单元格中均无数据。
(1)区域G3:G14的数据是通过公式计算得到的:先在G3单元格中输入公式,再利用自动填充功能完成区域G4:G14的计算。G3单元格中的公式可能是 (多选,填字母)。
A.=F3/F14*100
B.=F3/$F$14*100
C.=F3/F$14*100
D.=F3/$F14*100
E.=F3/SUM($F$3:$F$13)*100
(2)根据第图a中的相关数据制作了图表,如图b所示,创建该图表的数据区域是   。
(3)将区域A2:F13的数据复制到新工作表,在新工作表中对数据进行筛选操作,筛选设置如图第图c所示,则按此设置筛选出的地区有   个。
14.(2020高三上·诸暨月考)小段使用Flash软件创作主题为“旋转的风车”的多媒体作品,部分界面如图a所示。
图 a
请回答下列问题:
(1)编写脚本是设计多媒体作品的重头戏,脚本编写的一般步骤有:①编写脚本大纲②媒体元素分解③编写文字脚本④编写制作脚本,则正确的脚本编写顺序为   (单选,填字母:A .①②④③ B .②①③④ C .①④③② D .①③④②)。
(2)图中“文字”图层第1帧到第36帧实现了文字“放飞梦想”渐变为“超越自我”的动画,则第36帧中的“超越自我”为   (填文字:形状/实例)。
(3)如图所示,在不影响其他动画效果的前提下,为使“音乐”图层中的声音从本场景第1帧开始播放,正确的操作是   。
(4)图中“风车”图层应用了影片剪辑元件“风车”,修改“风车”元件的帧频为6fps,则当前场景的播放速度   (填文字:变快/变慢/不变)。
(5)“播放”按钮的编辑界面如图b所示,该按钮   (填文字:能/不能)正常响应鼠标事件。
图 b
(6)测试影片时,单击“播放”按钮,停止所有声音的播放,并使影片跳转到“scene2”场景的第1帧并继续播放,则“播放”按钮的动作脚本为   。
15.(2020高三上·诸暨月考)数组元素a(1)~a(100)用以存储某班级50位学生的信息技术和通用技术成绩,奇数位置存储信息技术成绩,偶数位置存储对应学生的通用技术成绩。该数组已经按照两科总成绩升序排序。依据对分查找思想,设计一个在数组a中查找总成绩为key的程序,统计输出两科总成绩大于等于key的人数。部分运行界面如图所示:
实现该功能的VB程序如下:
Private Sub Command1_Click()
Dim a(1 To 100) As Integer
Dim sum As Intcger
Const t= 50
‘将50个学生的信息技术和通用技术成绩依次存储在数组a(1)~a(100),代码略
Key = Val(Text2.Text)
i= 1
j= 100
m=(i+j)\2
Do While ① And m>1
If m Mod 2=1 Then m= m- 1
sum = a(m)+ a(m- 1)
If ② Then
j=m-2
Else
End If
m=(i+j)\2
Loop
Label2.Caption "大于等于"& Key & "分的人数为: "+ Str(t-j\2)
End Sub
(1)代码"Private Sub Command1_Click()"中的Command1_Click()是   (单选,填字母:A .对象名/B .属性名/C .事件名/D .事件处理过程明)。
(2)请在①②划线处填入合适代码。
①   ②   
(3)加框出代码有错,请改正。
16.(2020高三上·诸暨月考)二叉树是每个结点最多有两个子树的树结构,如值为9的结点有两个子树6和8,值为6的结点有两个子树5和3。若设二叉树的深度为h,则除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。现要构造大根堆,堆是一棵顺序存储的完全二叉树,大根堆又是一种特殊的堆,它的特征是每个双亲结点的值都不小于其孩子结点的值。如下图所示,值为9的结点是6和8的双亲结点,而6和8分别是9的左孩子和右孩子;同理,6是5和3的双亲结点,而5和3分别是6的左孩子和右孩子……
假如我们用数组表示上述大根堆:
a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8) a(9)
9 6 8 5 3 4 7 2 1
现有一算法把一个无序数组改造成大根堆。例如:我们在上图的大根堆中再增加一个值为8的新元素,如下图所示。
数组存储为:
a(2) a(3) a(4) a(5) a(6) a(7) a(8) a(9) a(10)
6 8 5 3 4 7 2 1 8
具体操作方法如下:
第一步:因为a(10)大于它的双亲结点a(5),故需交换a(10)和a(5)的值;
数组存储为:
第二步:因为a(5)大于它的双亲结点a(2),故需交换a(5)和a(2)(t)值;
数组存储为:
a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8) a(9) a(10)
9 8 8 5 6 4 7 2 1 3
第3步:因为a(2)不大于它的双亲结点a(1),故无需做交换操作。此时新元素已经放到了正确的位置,新的大根堆构造完成,上移行动结束。
(1)若在图中增加值为4的新元素,则元素4将被存储在数组元素   中。
(2)小段为此编制一VB程序:在文本框Tcxt1中输入结点个数n,单击命令按钮Command1,随机产生n个[1,99]的整数作为结点值,并由此构造大根堆,结果显示在列表框List1中,程序运行界面如图所示。
实现上述功能的程序代码如下请在划线处填入合适的代码。
Dim a(1 To 100) As Integer
‘该函数功能为实现数据的对齐输出
Function pout(x As Integer, y As Integer) As String
代码略
End Function
Private Sub Command1_Click()
Dim tmp As Integer, Dim m As Integer
Dim n As Integer, Dim s As String
n = Val(Text1.Text)
For i=1 To n
a(i) = Int(Rnd()*99)+ 1
Next i
For i= 2 To n
p=i
f=p\2
Do While ①
tmp = a(p): a(p)= a(f): a(f) = tmp
p=f
f=p\2
If f= 0 Then Exit Do
Loop
Next i
k= n
Do While k >=1
m=m+1

Loop
k= 1
For i=0 To m- 1
s=""
For j= 1 To ③
If k> n Then Exit For
s=s+ pout(a(k), (2^(m-1)-2^i)/2^i)
k=k+ 1
Next j
List1.AddItem s
Next i
①   ②   ③   
答案解析部分
1.【答案】B
【知识点】信息及其特征;信息技术的概念与关键技术;信息技术的影响及合理使用
【解析】【解答】选项A: 书籍、广播、电视是常见的信息表达手段(技术)而不是信息表达方式,本项错。选项B:文本、图像、声音、动画、视频都是承载信息的载体,本项对。选项C: 不联网的计算机也可以通过软盘、U盘等移动设置感染病毒,也可能数据被其他人盗取或删除,所以数据也需要备份,本项错。选项D:杀毒软件是落后于病毒开发的,先有病毒再有针对该病毒的杀毒软件,所以 安装并及时更新杀毒软件的计算机并不能防御所有计算机病毒 ,本项错。故答案选B。
【分析】本题考查的是信息表达方式和表达技术、信息的载体及信息安全知识。同一种信息内容可以采用不同的表达方式,以满足信息接收者的实际需要.最常用的信息表达方式有:文字、语言、图形、图像、声音和形体动作等。常用的信息表达技术有:广播电视、报刊书籍、多媒体技术和网络技术等。载体是指能够运送其他物体或传递信息和能量的物体。信息必须依附于某种载体,载体不是信息,同一信息可以依附于不同的载体。常用的信息安全防护方法有:1、禁用不必要的服务;2、按照补丁程序;3、安装安全防护产品;4、提高安全意识;5、养成良好的习惯;6、及时备份数据。
2.【答案】A
【知识点】电子邮件,电子公告板等信息交流方式;网页、网站的概念与联系
【解析】【解答】选项A:HTTP协议又叫超文本传输协议,是用于在用户的计算机和Web服务器上相互传输网页文件的协议,本项对。选项B: 执行“添加到收藏夹”,实际是保存了当前网页的网址而不是网页内容,本项错。选项C:发送电子邮件时对方的电子邮件地址是必须的,邮件主题和正文不是必须的,本项错。选项D:发送电子邮件使用SMTP协议,接收电子邮件使用POP3协议,本项错。故答案选A。
【分析】本题考查的是传输网页文件和发送、接收电子邮件使用的协议以及“添加收藏夹”操作。HTTP协议又叫超文本传输协议是用于传输网页文件的协议,而“添加收藏夹”是将该网页的网址收藏到收藏夹中,SMTP协议又称为简单邮件传输协议。POP3协议又称为邮局协议,发送电子邮件使用SMTP协议,接收电子邮件使用POP3协议。
3.【答案】D
【知识点】数据表、字段、记录的概念;数据表、字段、记录的编辑
【解析】【解答】选项A:在Access 2007后在数据表视图下可以修改字段的名称的数据类型,本项错。选项B:可以给一个表建立多个“自动编号”字段且两个字段不互相影响,本项错。选项C:如果字段类型为“是/否”则只能组字段值打对勾或去掉对勾不能输入“是”或“否”,本项错。选项D:Access和Excel可以相互转换,在导出到Excel时,“是/否”字段值自动变为“true”或“false”,本项对。故答案选D。
【分析】本题考查的是Access的视图方式、“自动编号”字段类型、“是/否”字段类型及Access的导出。数据表的视图方式共有四种:设计视图、数据表视图、数据透视表视图和数据透视图视图。在设计视图中可以对表格的结构进行设置,比如有哪些字段,每个字段的类型等。在数据表视图中可能浏览、修改、增减每条记录的内容, 是最常见也是系统默认的视图。数据透视表视图和数据透视图视图中,我们可以根据数据字段,设置交叉统计表格的行字段、列字段等,将数据以分类的方式显示成表格或统计图。设置为自动编号时每次向表格添加新记录时,Access会自动插入唯一顺序或者随机编号,即在自动编号字段中指定某一数值。是/否字段是针对于某一字段中只包含两个不同的可选值而设立的字段,通过是/否数据类型的格式特性,用户可以对是/否字段进行选择。Access和Excel可以相互转换,在导出到Excel时,“是/否”字段值自动变为“true”或“false”。
4.【答案】C
【知识点】信息的编码
【解析】【解答】选项A:由图可知,图中共有“a”和“z”两个ASCII码字符,本项错。选项B:由图中“a”的内码“61”知“j”的内码为“6A”而不是“70”,本项错。选项C:由图知字符“z”的内码为“7A”转为十进制为:7*16+10=112+10=122,本项对。选项D:由图知,字符“母”的内码为“C4 B8”转为二进制为“1100 0010 1011 1000”,本项错。故答案选C。
【分析】本题考查的是中英文字符的内码表示、由已知字母的内码和字母表来推断未知字母的内码、十六进制转为十进制的方法及十六进制转为二进制的方法。一个中文字符或标点在内存中占二个字节、十六个二进制数或4位十六进制数,一个英文字符或英文符号在内存中占用一个字节、8位二进制数及2个十六进进制,可由已知字母的内码和字母表来推断未知字母的内码,在使用内码推断时注意是十时制还是十六进制,十六进制数转为十进制数时使用公式法,十六进制数转为二进制数时一位十六进制转为四位二进制数。
5.【答案】D
【知识点】图片加工常用工具的使用;图层及图层的基本操作
【解析】【解答】选项A:由图可知,“放飞梦想”图层为文字图层不能使用油漆桶工具,本项错。选项B:由图可知“放飞梦想”在上层,“飞机”图层在下层,但“放飞梦想”图层与“飞机”是连接图层,移动“飞机”图层中的图像“放飞梦想”图层也会受到影响。本项错。选项C:“风车”图层被锁定只是不能修改图层中图像的位置而对图层顺序无影响,本项错。选项D:“背景”图层是空白的,所以隐藏“背景”图层,该作品呈现效果不会变化,本项对。故答案选D。
【分析】本题考查的是文字图层、背景图层、锁定图层的特点。通过文字工具创建。文字层不可以进行滤镜,可以使用图层样式等的操作,不能使用油漆桶工具等进行填充。背景图层不可以调节图层顺序,永远在最下边,不可以调节不透明度和加图层样式,以及蒙版。可以使用画笔,渐变,滤镜,图章和修饰工具。为了有效的保护图层中的信息不被破坏,可以对图层进行锁定。锁定后的图层不能进行剪切、填充、移动等很多操作。但可以对图层进行复制图层、调整图层顺序、删除图层等操作。
6.【答案】C
【知识点】声音、图像、视频编码
【解析】【解答】24位色点用的字节数为:24/8=3B,未经压缩之前的播放时长为:675*1024*1024*10/(1024*768*3*30)=675*1024*10/(768*30*3)=6912000/69120=100(秒)。故答案选C
【分析】本题考查的是视频文件的存储容量计算公式。视频文件存储容量=(水平像素×垂直像素×每个像素所需位数/8)*帧频*时长(字节),在本题已经知道视频文件的存储容量、水平像素、垂直像素、每个像素所需位数,帧频,只有时长未知,可使用该公式计算出来。
7.【答案】A
【知识点】算法的常用表示方法
【解析】【解答】由流程图可知本题求将20内的奇数相加减去20内的偶数,s的数学公式为s=1-2+3-4+5-6+7-8+9-10+11-12+13-14+15-16+17-18+19-20=(1-2)*10=-10。故答案选A。
【分析】本题考查的是看流程图分析算法。由图可知,先将t、s、i的值分别赋为1、0、1,然后判断i值是否小于等于20,如果小于等于20则执行循环体,否则输出s值,第一次循环,i值为1,小于20,执行循环体,在循环体中将i*t的值累加到变量s中,即s=s+i*t=0+1*1=1,然后将t取其相反数赋给t,将i值增1重新赋给i值。执行完循环体后再次判断i值是否小于等20,此时i=2小于等于20仍成立,故执行循环体:s=s+i*t=1+2*(-1)=-1,再将t值取反赋给和值,将i值增1,再去判断i值是否小于等于20,如果条件成立继续执行循环体直到i值超过20为止。
8.【答案】A
【知识点】运算符、基本运算与表达式
【解析】【解答】选项A:abs(int(-34.3))=abs(-35)=35。选项B: Val(Str(30)+"5") =val("30"+"5")=val("305")=305,选项C: Len("xue")+5 =3+5=8。选项D: Int(sqr(50))*11\2 =int(7.071)*11\2=7*11\2=38。故答案选A。
【分析】本题考查的是VB常用函数的功能。在本题中用到的函数有:abs()函数,该函数的功能是求参数的绝对值。int()函数,该函数的功能是求不大于参数的整数。val()函数的功能是将字符型数据转为数值型数据。str()函数的功能是将数值型数据转为文本型。len()函数是求字符串的长度。sqr()函数是求参数的算术平方根。
9.【答案】A
【知识点】程序的调试及运行
【解析】【解答】本程序分析如下:
Private Sub Command1_Click() ‘命令按钮1单击事件过程
Dim d(1 To 8) As Integer ‘定义整型数组d,d共有8个元素
Dim i As Integer, s As Integer ‘定义整型变量i和s
d(1)=1 ‘将d的第一个元素赋值为1
For i=2 To 10 ‘使用i来控制循环,i的初值为2,终值为10,步长为1,该循环用于为数组d的第2个元素到第10个元素进行赋值,但d只有8个元素
d(i)=d(i-1)*i ‘给数组d的第二个元素到第10个元素进行赋值,d的元素从第二个开始是前一个元素的i倍
Next i ‘结束循环
For i=1 To 5 ‘使用i来控制循环,i的初值为1,终值为5,步长为1,该循环用于累加数组d的前5个元素的值到变量s中
s=s+d(i) ‘累加数组d的前5个元素的值到变量s中
Next i ‘结束循环
Text1.Text = Str(s) ‘在文本框中输出变量s的值
End Sub ‘结束事件过程
由以上知,d的每一个元素从第二个元素开始为前一个元素的i倍,故d(1)=1,d(2)=1*2=2,d(3)=2*3=6,d(4)=6*4=24,d(5)=24*5=120,d(6)=120*6=720,d(7)=720*7=5040,d(8)=40320,而数组d定义的为整型数组,其数据范围为-32768到32767,故对第8个元素(为合法元素)赋值时其值超出定义范围,报”溢出“错误而停止运行,由于没有对第9个元素赋值故不会报下标越界错误。故答案选A。
【分析】本题考查的是VB的常见错误信息。”下标越界“是使用的数组元素的下标超过了定义的数组元素的下标(大于了上限或小于了下限)。”溢出“是使用的数值型变量的值超过了其类型表示的数的范围。”类型不匹配“给变量赋值的类型不是其定义的数据类型或标准函数的参数使用的类型不是其要求的类型。在本题中有两处错误哪个先执行先报哪个错误。
10.【答案】B
【知识点】算法的控制结构;常见数据类型、数组
【解析】【解答】本题程序分析如下:
Dim a(1 To 10) As Integer ‘定义整型数组a,该元素共有10个元素
a(1)=2: a(2)=18: a(3)=10: a(4)=34: a(5)=16
a(6)=7: a(7)=37: a(8)=6: a(9)=15: a(10)=15 ‘给数组a的10个元素分别进行赋值
c=0: x=0: t= 1 ‘初始化变量c的值为0,x的值为0,t的值为1
For i=1 To 10 ‘使用i来控制循环,i的初值为1,终值为10,步长为1,该循环用于处理数组a的各个元素,故i代表了数组a的下标值
a(i)=a(i)*t ‘将数组i的值乘以t值后仍赋给数组元素,而t实际代表了正负号
c=c+a(i) ‘将数组a的每个元素累加到变量c中
If c>0 Then x=x+1 ‘如果c值大于0时,将x值增1,x为计数器
t=-t ‘将t值取反
Next i ‘结束循环
Text1.Text=Str(x) ‘使用文本框1输出x的值
由以上程序分析知,c=2-18+10-34+16-7+37-6+15-15,在计算过程中c值如果有大于0的情况就将x值增1,故本一步一步运算c值:c=2,c=2-18=-16,c=-16+10=-6,c=-6-34=-40,c=-40+16=-24,c=-24-7=-31,c=-31+37=6,c=6-6=0,c=0+15=15,c=15-15=0,由以上可以看出c=2,c=6和c=15时将x值增1,x=1+1+1=3。故答案选B。
【分析】本题考查的是使用循环变量来处理数组的元素以及累加器、计数器的使用。数组由于元素较多,可以使用循环变量来代表数组的下标值从而简化数组的运算,累加器是将某个变量或表达式的值通过循环累加到某个变量中,本题的累加器为:C=C+a(i)是将数组a的每个元素值累加到变量c中。计数器用于统计某个符合条件的数据个数,常与条件语句配合使用,本题计数器语句为: If c>0 Then x=x+1 ,即使用x统计c值大于0的次数。
11.【答案】B
【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值
【解析】【解答】本程序分析如下:
For i=1 To 8 ‘使用i来控制循环,i的初值为1,终值为8,步长为1,该循环用于给数组d的每个元素进行赋值,数组d共有8个元素
d(i)= In(Rnd*10) ‘给数组d的每个元素进行赋值,数组d的元素值范围为0-9
Next i ‘结束循环
For i= 2 To 8 ‘使用i来控制循环,i的初值为2,终值为8,步长为1,该循环用于调整数组元素d(2)到d(8)的值,i代表数组的下标
If i Mod 2=0 And d(i)> d(i-1)Then ‘如查i值为偶数时且数组元素大于前一个元素值时进行如下处理
d(i)=d(i-1)+1 ‘将该数组元素的值调整为前一个元素值多1
ElseIf i Mod 2= 1 Then ‘否则如果i为奇数时进行如下处理
If d(i)>d(i-2) Then ‘如果数值元素值比前两个的元素值大时进行如下处理
t=d(i): d(i)=d(i-2): d(i-2)=t ‘借助第三变量t交换前后两个奇数元素的值
End If ‘结束条件判断,通过该循环执行了一次冒泡算法,保证了奇数位元素的最左边元素(d(1))的值在奇数位上最大
Next i ‘结束循环
选项A:第六个元素5其值比第五个元素值大,此时d(6)的值应为d(5)+1=3+1=4,故选项A不可能。选项B:第一个元素值最大,偶数位比前面奇数位元素大时,只比前面奇数位元素多1,符合要求。选项C:第一个元素不是奇数位最大的值,错。选项D:数组元素值超过了范围。故答案选B。
【分析】本题考查的是生成指定范围的随机整数公式及使用循环来处理数组元素的方法。由于数组元素较多,一个一个处理较麻烦可以使用循环变量来代替数组的下标从而简化数组元素的处理。产生指定范围内的随机数公式为:int((上限-下限+1)*rnd)+下限。
12.【答案】A
【知识点】排序算法及程序实现
【解析】【解答】本程序分析如下:
Dim a(1 To 10) As Integer ‘定义整型数组a,a共有10个元素
Dim flag As Boolean ‘定义布尔型变量flag
Dim i As Integer, j As Integer, tmp As Integer ‘定义整型变量i、j和tem
随机生成10个不重复的数据存入数组A中,代码略
For i=2To 10 ‘使用i来控制循环,i的初值为2,终值为10,步长为1,i代表数组a的下标
tmp= a(i) ‘将数组在本轮最右侧的元素值赋给变量tmp
j=i ‘将本轮最右侧的数组元素的下标赋给变量i,即给j赋初值i
flag=False ‘设置标记变量flag的值为false
Do While ① And Not flag ‘如果tmp的值小于数组元素a(j-1)的值且标记变量值为false时执行循环,故本处答案应填写:tmpa(j)=a(j-1) ‘将数组元素的值赋为前面的元素的值
j=j-1 ‘将j值减少1
② ‘如果j的值为1,即j为最数组的第一个元素时不用再向前比较,将标记变量值设为true,终止内层循环,故本处答案填写:if j=1 then flag=true
Loop ‘结束内层循环,该内层循环的目的是由后向前查找本轮最右侧的元素应放的位置
a(j)=tmp ‘将本轮最右侧的值放于a(j)处
Next i ‘结束外层循环
由以上程序分析知, ①处为如果tmp的值小于数组元素a(j-1)的值且标记变量值为false时执行循环,故本处答案应填写:tmp②处为如果j的值为1,即j为最数组的第一个元素时不用再向前比较,将标记变量值设为true,终止内层循环,故本处答案填写:if j=1 then flag=true。故答案选A。
【分析】本题考查的是插入排序算法。插入排序算法的原理在一个有序数组中插入一个数使用原有序数组成为一新的有序数组。在本题中从第二个元素开始将其与前面的元素一个一个比较从而找到其位置并插入到该位置使从第1个元素到第i个元素成为有序数组,当i为最左边一个元素时则整个数组成为一个有序数组。
13.【答案】(1)B;C;E
(2)A2:E2,A8:E9
(3)2
【知识点】表格数据的基本操作;数据分析
【解析】【解答】(1)由G2的字段名知该列字段为农林牧渔占各地区合计的百分比,而每个城市的农林渔牧合计数在F列对应的单元格中,而总的合计数在F14中,在求各城市的占比时F14不变应为绝对引用($F$14)或混合引用(F$14),而各城市的农林牧渔数要随单元格的变化而变化应使用相对引用。选项A中F14没有使用绝对引用或混合引用错误,选项B、选项C使用了绝对引用和混合引用正确,而选项D混合引用使用了绝对列相对行,由于公式在同一列中变化故列号在复制时不会改变,而行号没有使用绝对引用,本项错。选项E:尽管没有使用F14中的合计数但使用F3到F13之和(sum函数)也是可以的,本项对。故本小题答案选BCE。
(2)由图知图表簇状柱形图,图表为绍兴市和金华市的农、林、牧、渔业的对比数据,x轴为农、林、牧、渔的名称为字段名在第二行的A列到E列,纵轴为绍兴市、金华市的农、林、牧、渔业数据在 A8:E9 区域中。故本题答案填写: A2:E2,A8:E9 。
(3)由于是自动筛选所以两个筛选的关系为”且“的关系,即筛选出地区包含”州“字且农业产值大于150(不含150)的城市,由第一个包含州的城市可筛选出”杭州、温州、湖州、衢州、台州“共五条数据,再从五个城市 中选出农业产值大于150的,可选出”杭州、台州“两个城市。故本题答案填写:2。
【分析】本题考查的是公式的填充及公式中单元格地址引用方式、图表数据区域选择及自动筛选操作。填写公式时要根据题义使用正确函数或运算符,而公式中的地址引用有相对地址引用和绝对地址引用及混合地址引用3种方式,相对地址引用就是单元格地址前不加任何东西,单元格地址会随单元格的变化而变化,绝对单元格地址引用就是在单元格地址前加$号,不会随单元格的变化而变化。混合引用是在行号或列标前加$号,另一个不加,在复制公式时加$号的不变,不加$号的变化。图表数据区域的选择是看其横轴和纵轴的数据,筛选可以根据条件进行手工选择,自动筛选如果为多字段则字段之间为”且“的关系。
14.【答案】(1)D
(2)形状
(3)“音乐”图层第1帧清楚关键帧或“音乐”图层第13帧移动到第1帧或其他等价答案
(4)变慢
(5)能
(6)on(press){stopAllSounds():goto AndPlay("scene2, 1");}或on(release){stopAllSounds():goto AndPlay("scene2, 1");}
【知识点】多媒体作品的规划和设计;动画的类型;时间轴、帧、图层、库的概念及基本操作;常用影片控制函数的应用
【解析】【解答】(1)脚本编写包括:制定脚本大纲、编写文字脚本、编写制作脚本、媒体元素分解等四步骤,且四个步骤是按制作的顺序的。故答案选D。
(2)由图中的 “文字”图层第1帧到第36帧知该图层由一绿色底纹加上一个黑色箭头且实现了文字的变化,故其动画补间为形状补间,而实现形状补间的第36帧的图形只能为形状而不能为实例(将文字打散变为了形状,而实例为一体的不能打散),故本小题答案选填:形状。
(3)由图可知“音乐”图层的第1帧为空白关键帧,而第一个关键帧在第13帧,若想音乐从头开始播放需将第13帧移动到第1帧,故本小题答案填写: “音乐”图层第1帧清楚关键帧或“音乐”图层第13帧移动到第1帧或其他等价答案 。
(4)由图a知该动画的帧频为12fps,即每秒播放12帧,现在修改 “风车”元件的帧频为6fps ,而元件的帧步与场景的帧频是相同的,故动画帧频变为了6fps,即每秒播放6帧,故本小题答案选填:变慢。
(5)“播放”按钮能正常响应鼠标事件,故本小题答案选填:能。
(6)由题义知,当按下或释放“播放”按钮时 停止所有声音的播放,并使影片跳转到“scene2”场景的第1帧并继续播放 ,故本小题答案应填写: on(press){stopAllSounds():goto AndPlay("scene2, 1");}或on(release){stopAllSounds():goto AndPlay("scene2, 1");} 。
【分析】本题考查的是脚本编写步骤、形状补间、清除关键帧、帧频、点击帧的作用及动作脚本。多媒体分析与策划包括应用需求分析和创作需求及脚本编写三部分,脚本编写包括:制定脚本大纲、编写文字脚本、编写制作脚本、媒体元素分解等四步骤。形状补间是由一个物体到另一个物体间的变化过程,像由三角形变成四方形等。时间轴上形状补间是淡绿色底加一个黑色箭头组成的,对于文字实现形状补间需要将文字打散。帧频就是每秒播放动画的帧数,代表了动画的播放速率。点击帧表示按钮响应鼠标事件的范围或称区域面积,此状态的画面内容、颜色在动画播放时不可见。多媒体作品加入动作脚本可以增加人机交互功能。
15.【答案】(1)D
(2)i<=j;sum>=key
(3)i=m+2
【知识点】类、对象、属性、方法、事件和事件处理的概念及应用;查找算法及程序实现
【解析】【解答】(1)在代码 "Private Sub Command1_Click()"中 ,Private为事件过程的类型,sub为子程序或过程的关键字,command1为对象名,click为事件名, Command1_Click() 为事件过程名。故本小题答案选填:D。
(2)本题程序分析如下:
Private Sub Command1_Click() ‘命令按钮1单击事件过程开始
Dim a(1 To 100) As Integer ‘定义整型数组a,a为100个元素
Dim sum As Intcger ‘定义整型变量sum
Const t= 50 ‘定义符号常t,并将t赋值为50
‘将50个学生的信息技术和通用技术成绩依次存储在数组a(1)~a(100),代码略
Key = Val(Text2.Text) ‘交从文本框中输入要查找的数key转为数值型并赋给变量key
i= 1 ‘初始化变量i的值为1,i代表要查找数组元素的下标下限
j= 100 ‘初始化变量j的值为100,j代表要查找数组元素的下标上限
m=(i+j)\2 ‘计算中值元素的下标值并赋给变量m
Do While ① And m>1 ‘在要查找数组元素的下标下限小于等于上限且中值下标m的值大于1时进行循环,故本处答案应填写:i<=j
If m Mod 2=1 Then m= m- 1 ‘如果m的值不为偶数则将m值减少1
sum = a(m)+ a(m- 1) ‘计算中值数组元素代表的学生的信息技术和通用技术成绩总分
If ② Then ‘如果总分sum大于等于要查找的分数key时进行如下处理,故本处答案应填写: sum>=key
j=m-2 ‘因为中值大于等于要查找的分数应在前半个数组中继续查找,故将要查找数组元素的下标的上限设为中值少2
Else ‘否则即要查找的分数比中值大时进行如下处理
‘因为中值小于要查找的分数应在后半个数组中继续查找,故将要查找数组元素的下标的下限设为中值多2,故本处应将i=m-2改为:i=m+2
End If ‘结束条件判断
m=(i+j)\2 ‘继续求中值
Loop ‘结束循环
Label2.Caption "大于等于"& Key & "分的人数为: "+ Str(t-j\2) ‘使用标签2将大于要查找分数的人数输出
End Sub ‘结束事件过程
由以上程序分析知, ①处为在要查找数组元素的下标下限小于等于上限且中值下标m的值大于1时进行循环,故本处答案应填写:i<=j。
②处为如果总分sum大于等于要查找的分数key时进行如下处理,故本处答案应填写:sum>=key。
(3)由加框处代码知,因为中值小于要查找的分数应在后半个数组中继续查找,故将要查找数组元素的下标的下限设为中值多2,故本处应将i=m-2改为:i=m+2。
【分析】本题考查的是对分法查找数据的方法,对分法查找过程是先将一个数列放于一个有序数组中,然后比较中间数组元素的值与要查找的值,或中间数组的值比要查找的值大,则在前半个数组中查找,若中间数组的值比要查找的值小则在后半个数组中查找。查找方法仍是比较中间数组元素的值和要查找的值。以此类推直到查到或下限大于了上限(没查找)为止。
16.【答案】(1)a(5)
(2)a(p)>a(f);k=int(k/2)或k=k\2;2^i
【知识点】过程与自定义函数;排序算法及程序实现
【解析】【解答】(1)由题给出的算法知,先将新加入的元素放于最低层的尽可能的左侧,即将a(10)的值赋为4,其双亲为数组元素a(5),其值为3,由于4大于3交换子结点和双新结点的值,即a(5)的值为4,a(10)的值为3,此时a(5)的值4小于其双亲结点a(2)的值6,新的大根堆构造完成,故本小题答案填写:a(5)。
(2)本程序分析如下:
Dim a(1 To 100) As Integer
‘该函数功能为实现数据的对齐输出
Function pout(x As Integer, y As Integer) As String
代码略
End Function ‘自定义函数pout结束
Private Sub Command1_Click() ‘命令按钮1单击事件过程开始
Dim tmp As Integer, Dim m As Integer ‘定义整型变量tmp和m
Dim n As Integer, Dim s As String ‘定义整型变量n和字符串变量s
n = Val(Text1.Text) ‘将从文本框1中输入的数转为数值型并赋给变量n,n为大堆根的结点个数
For i=1 To n ‘使用i来控制循环,i的初值为1,终值为n,步长为1,该循环用于产生n个随机数并存储在数组a中
a(i) = Int(Rnd()*99)+ 1 ‘产生一个【1,99】之间的随机整数并存储在数组a的第i个元素中
Next i ‘结束循环
For i= 2 To n ‘使用变量i来控制循环,i的初值为2,终值为n,i代表数组A的下标,i每增加一个值代表处理完一个元素,即将该元素放置在大堆根中
p=i ‘将i值赋给变量p,p代表子结点元素的下标
f=p\2 ‘将p值除整除以2赋给变量f,f为数组p的双亲结点所在的元素的下标
Do While ① ‘在子结点元素值大于双亲结点元素值时进行循环,故本处答案应填写: a(p)>a(f)
tmp = a(p): a(p)= a(f): a(f) = tmp ‘借助第三变量t交换双亲结点和子结点元素的值
p=f ‘将原双亲结点的元素的下标f赋给代表子结点的元素下标p
f=p\2 ‘计算其双亲结束元素的下标并赋给变量f
If f= 0 Then Exit Do ‘如果f的值为0时则证明其上级无结点则提前退出内层循环
Loop ‘结束内层循环
Next i ‘结束外层循环
k= n ‘将n值赋给变量k
Do While k >=1 ‘在k值大于等于1时进行循环,本循环用于计算输出的次数,即大堆根的层数
m=m+1 ‘将m值增1,m值用于统计大堆根的层数
② ‘将k值的一半赋给k,故本处答案应填写: k=int(k/2)或k=k\2
Loop ‘结束循环
k= 1 ‘将k值设为1
For i=0 To m- 1 ‘使用i来控制循环,i的初值为0,终值为m-1,i代表输出大堆根的层数(从第0层到第m-1层,输出次数仍为m)
s="" ‘初始化字符串变量s的值为空字符串,s代表本层输出的结点
For j= 1 To ③ ‘ 使用j来控制循环,j的初值为1,终值为2的i次方,步长为1,j代表输出本层的数据个数,故本处答案应填写: 2^i
If k> n Then Exit For ‘如果k值大于n值时提前退出内层循环
s=s+ pout(a(k), (2^(m-1)-2^i)/2^i) 将该层的元素值转为字符串并合并到字符串s的右侧
k=k+ 1 ‘将k值增1,代表处理了一个元素
Next j ‘结束内层循环
List1.AddItem s ‘在列表框1中输出一行数据
Next i ‘结束外层循环
由以上程序分析知: ①处为在子结点元素值大于双亲结点元素值时进行循环,故本处答案应填写: a(p)>a(f)。
②处为将k值的一半赋给k,故本处答案应填写:k=int(k/2)或k=k\2。
③处为使用j来控制循环,j的初值为1,终值为2的i次方,步长为1,j代表输出本层的数据个数,故本处答案应填写: 2^i。
【分析】本题的算法为插入排序算法。插入排序法是选择排序法的一种特例它是在一个有序数列的基础上,通过要插入的数与数列中的数相比较,找到其位置,然后由后向前将数组元素向后移一位然后在适当位置插入这个数从而仍形成一个有序数列。在本题中比较的元素不是相邻的元素而是子结点和双亲结点,能过在一个大堆根数组中插入一个元素形成另一个大堆根数组,将要插入的元素处理过完则大推根就形成了。
1 / 1浙江省诸暨市2020届高三上学期信息技术诊断性考试试卷
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1.(2020高三上·诸暨月考)下列有关信息与信息技术的说法,正确的是(  )
A.书籍、广播、电视是常见的信息表达方式
B.文本、图像、声音、动画、视频均可以作为信息的载体
C.不联网的计算机没有信息安全隐患,故不需要对数据进行备份
D.安装并及时更新杀毒软件的计算机可以防御所有计算机病毒
【答案】B
【知识点】信息及其特征;信息技术的概念与关键技术;信息技术的影响及合理使用
【解析】【解答】选项A: 书籍、广播、电视是常见的信息表达手段(技术)而不是信息表达方式,本项错。选项B:文本、图像、声音、动画、视频都是承载信息的载体,本项对。选项C: 不联网的计算机也可以通过软盘、U盘等移动设置感染病毒,也可能数据被其他人盗取或删除,所以数据也需要备份,本项错。选项D:杀毒软件是落后于病毒开发的,先有病毒再有针对该病毒的杀毒软件,所以 安装并及时更新杀毒软件的计算机并不能防御所有计算机病毒 ,本项错。故答案选B。
【分析】本题考查的是信息表达方式和表达技术、信息的载体及信息安全知识。同一种信息内容可以采用不同的表达方式,以满足信息接收者的实际需要.最常用的信息表达方式有:文字、语言、图形、图像、声音和形体动作等。常用的信息表达技术有:广播电视、报刊书籍、多媒体技术和网络技术等。载体是指能够运送其他物体或传递信息和能量的物体。信息必须依附于某种载体,载体不是信息,同一信息可以依附于不同的载体。常用的信息安全防护方法有:1、禁用不必要的服务;2、按照补丁程序;3、安装安全防护产品;4、提高安全意识;5、养成良好的习惯;6、及时备份数据。
2.(2020高三上·诸暨月考)下列有关网页和电子邮件的说法,正确的是(  )
A.HTTP协议用于浏览器与Web服务器之间的信息传输
B.执行“添加到收藏夹”,实际是保存了当前网页的内容
C.发送电子邮件时,邮件主题和正文内容缺失将导致邮件发送失败
D.通过网页收发电子邮件不需要使用SMTP和POP3协议
【答案】A
【知识点】电子邮件,电子公告板等信息交流方式;网页、网站的概念与联系
【解析】【解答】选项A:HTTP协议又叫超文本传输协议,是用于在用户的计算机和Web服务器上相互传输网页文件的协议,本项对。选项B: 执行“添加到收藏夹”,实际是保存了当前网页的网址而不是网页内容,本项错。选项C:发送电子邮件时对方的电子邮件地址是必须的,邮件主题和正文不是必须的,本项错。选项D:发送电子邮件使用SMTP协议,接收电子邮件使用POP3协议,本项错。故答案选A。
【分析】本题考查的是传输网页文件和发送、接收电子邮件使用的协议以及“添加收藏夹”操作。HTTP协议又叫超文本传输协议是用于传输网页文件的协议,而“添加收藏夹”是将该网页的网址收藏到收藏夹中,SMTP协议又称为简单邮件传输协议。POP3协议又称为邮局协议,发送电子邮件使用SMTP协议,接收电子邮件使用POP3协议。
3.(2020高三上·诸暨月考)下列关于Access数据库和数据表的说法,正确的是(  )
A.在数据表视图下,不能修改字段名称和数据类型
B.新建“自动编号”类型的字段后,原有记录的“自动编号”字段值缺失
C.数据表中某字段数据类型为“是/否”,可以输入“是”作为有效字段值
D.Access数据表的数据导出到Excel后,Excel中显示的字段值可能发生变化
【答案】D
【知识点】数据表、字段、记录的概念;数据表、字段、记录的编辑
【解析】【解答】选项A:在Access 2007后在数据表视图下可以修改字段的名称的数据类型,本项错。选项B:可以给一个表建立多个“自动编号”字段且两个字段不互相影响,本项错。选项C:如果字段类型为“是/否”则只能组字段值打对勾或去掉对勾不能输入“是”或“否”,本项错。选项D:Access和Excel可以相互转换,在导出到Excel时,“是/否”字段值自动变为“true”或“false”,本项对。故答案选D。
【分析】本题考查的是Access的视图方式、“自动编号”字段类型、“是/否”字段类型及Access的导出。数据表的视图方式共有四种:设计视图、数据表视图、数据透视表视图和数据透视图视图。在设计视图中可以对表格的结构进行设置,比如有哪些字段,每个字段的类型等。在数据表视图中可能浏览、修改、增减每条记录的内容, 是最常见也是系统默认的视图。数据透视表视图和数据透视图视图中,我们可以根据数据字段,设置交叉统计表格的行字段、列字段等,将数据以分类的方式显示成表格或统计图。设置为自动编号时每次向表格添加新记录时,Access会自动插入唯一顺序或者随机编号,即在自动编号字段中指定某一数值。是/否字段是针对于某一字段中只包含两个不同的可选值而设立的字段,通过是/否数据类型的格式特性,用户可以对是/否字段进行选择。Access和Excel可以相互转换,在导出到Excel时,“是/否”字段值自动变为“true”或“false”。
4.(2020高三上·诸暨月考)使用UltraEdit软件观察字符“字母a~z”内码,部分界面如图所示.
下列说法正确的是(  )
A.图中共有3个ASCII码字符
B.字符“j”的十六进制编码值为70
C.字符“z”内码值的十进制表示为122
D.字符“母”内码值的二进制表示为“1100010010101000”
【答案】C
【知识点】信息的编码
【解析】【解答】选项A:由图可知,图中共有“a”和“z”两个ASCII码字符,本项错。选项B:由图中“a”的内码“61”知“j”的内码为“6A”而不是“70”,本项错。选项C:由图知字符“z”的内码为“7A”转为十进制为:7*16+10=112+10=122,本项对。选项D:由图知,字符“母”的内码为“C4 B8”转为二进制为“1100 0010 1011 1000”,本项错。故答案选C。
【分析】本题考查的是中英文字符的内码表示、由已知字母的内码和字母表来推断未知字母的内码、十六进制转为十进制的方法及十六进制转为二进制的方法。一个中文字符或标点在内存中占二个字节、十六个二进制数或4位十六进制数,一个英文字符或英文符号在内存中占用一个字节、8位二进制数及2个十六进进制,可由已知字母的内码和字母表来推断未知字母的内码,在使用内码推断时注意是十时制还是十六进制,十六进制数转为十进制数时使用公式法,十六进制数转为二进制数时一位十六进制转为四位二进制数。
5.(2020高三上·诸暨月考)使用photoshop软件制作作品,部分界面如图所示。
下列说法正确的是(  )
A.可以直接使用油漆桶工具修改“放飞梦想”图层中的文字颜色
B.使用移动工具移动“飞机”图层中飞机图像位置,文字“放飞梦想”不受影响
C.“风车”图层被锁定,故不能移动“风车”图层至“飞机”图层上方
D.隐藏“背景”图层,该作品呈现效果不会变化
【答案】D
【知识点】图片加工常用工具的使用;图层及图层的基本操作
【解析】【解答】选项A:由图可知,“放飞梦想”图层为文字图层不能使用油漆桶工具,本项错。选项B:由图可知“放飞梦想”在上层,“飞机”图层在下层,但“放飞梦想”图层与“飞机”是连接图层,移动“飞机”图层中的图像“放飞梦想”图层也会受到影响。本项错。选项C:“风车”图层被锁定只是不能修改图层中图像的位置而对图层顺序无影响,本项错。选项D:“背景”图层是空白的,所以隐藏“背景”图层,该作品呈现效果不会变化,本项对。故答案选D。
【分析】本题考查的是文字图层、背景图层、锁定图层的特点。通过文字工具创建。文字层不可以进行滤镜,可以使用图层样式等的操作,不能使用油漆桶工具等进行填充。背景图层不可以调节图层顺序,永远在最下边,不可以调节不透明度和加图层样式,以及蒙版。可以使用画笔,渐变,滤镜,图章和修饰工具。为了有效的保护图层中的信息不被破坏,可以对图层进行锁定。锁定后的图层不能进行剪切、填充、移动等很多操作。但可以对图层进行复制图层、调整图层顺序、删除图层等操作。
6.(2020高三上·诸暨月考)一段1024×768像素、24位色、NTSC制式(30帧/秒)的无声AVI格式视频文件,经压缩比为10:1的技术压缩后其容量为675MB,时长约为(  )
A.10秒 B.50秒 C.100秒 D.150秒
【答案】C
【知识点】声音、图像、视频编码
【解析】【解答】24位色点用的字节数为:24/8=3B,未经压缩之前的播放时长为:675*1024*1024*10/(1024*768*3*30)=675*1024*10/(768*30*3)=6912000/69120=100(秒)。故答案选C
【分析】本题考查的是视频文件的存储容量计算公式。视频文件存储容量=(水平像素×垂直像素×每个像素所需位数/8)*帧频*时长(字节),在本题已经知道视频文件的存储容量、水平像素、垂直像素、每个像素所需位数,帧频,只有时长未知,可使用该公式计算出来。
7.(2020高三上·诸暨月考)某算法的部分流程图如图所示。
执行这部分流程,输出s的值是(  )
A.-10 B.10 C.190 D.210
【答案】A
【知识点】算法的常用表示方法
【解析】【解答】由流程图可知本题求将20内的奇数相加减去20内的偶数,s的数学公式为s=1-2+3-4+5-6+7-8+9-10+11-12+13-14+15-16+17-18+19-20=(1-2)*10=-10。故答案选A。
【分析】本题考查的是看流程图分析算法。由图可知,先将t、s、i的值分别赋为1、0、1,然后判断i值是否小于等于20,如果小于等于20则执行循环体,否则输出s值,第一次循环,i值为1,小于20,执行循环体,在循环体中将i*t的值累加到变量s中,即s=s+i*t=0+1*1=1,然后将t取其相反数赋给t,将i值增1重新赋给i值。执行完循环体后再次判断i值是否小于等20,此时i=2小于等于20仍成立,故执行循环体:s=s+i*t=1+2*(-1)=-1,再将t值取反赋给和值,将i值增1,再去判断i值是否小于等于20,如果条件成立继续执行循环体直到i值超过20为止。
8.(2020高三上·诸暨月考)下列VB表达式的值等于35的是(  )
A.Abs(Int(-34.3)) B.Val(Str(30)+"5")
C.Len("xue")+5 D.Int(sqr(50))*11\2
【答案】A
【知识点】运算符、基本运算与表达式
【解析】【解答】选项A:abs(int(-34.3))=abs(-35)=35。选项B: Val(Str(30)+"5") =val("30"+"5")=val("305")=305,选项C: Len("xue")+5 =3+5=8。选项D: Int(sqr(50))*11\2 =int(7.071)*11\2=7*11\2=38。故答案选A。
【分析】本题考查的是VB常用函数的功能。在本题中用到的函数有:abs()函数,该函数的功能是求参数的绝对值。int()函数,该函数的功能是求不大于参数的整数。val()函数的功能是将字符型数据转为数值型数据。str()函数的功能是将数值型数据转为文本型。len()函数是求字符串的长度。sqr()函数是求参数的算术平方根。
9.(2020高三上·诸暨月考)有如下VB程序段:
Private Sub Command1_Click()
Dim d(1 To 8) As Integer
Dim i As Integer, s As Integer
d(1)=1
For i=2 To 10
d(i)=d(i-1)*i
Next i
For i=1 To 5
s=s+d(i)
Next i
Text1.Text = Str(s)
End Sub
程序运行时,单击命令按钮Command1后,将会出现的提示信息是(  )
A.溢出 B.下标越界
C.要求对象 D.无效的过程调用或参数
【答案】A
【知识点】程序的调试及运行
【解析】【解答】本程序分析如下:
Private Sub Command1_Click() ‘命令按钮1单击事件过程
Dim d(1 To 8) As Integer ‘定义整型数组d,d共有8个元素
Dim i As Integer, s As Integer ‘定义整型变量i和s
d(1)=1 ‘将d的第一个元素赋值为1
For i=2 To 10 ‘使用i来控制循环,i的初值为2,终值为10,步长为1,该循环用于为数组d的第2个元素到第10个元素进行赋值,但d只有8个元素
d(i)=d(i-1)*i ‘给数组d的第二个元素到第10个元素进行赋值,d的元素从第二个开始是前一个元素的i倍
Next i ‘结束循环
For i=1 To 5 ‘使用i来控制循环,i的初值为1,终值为5,步长为1,该循环用于累加数组d的前5个元素的值到变量s中
s=s+d(i) ‘累加数组d的前5个元素的值到变量s中
Next i ‘结束循环
Text1.Text = Str(s) ‘在文本框中输出变量s的值
End Sub ‘结束事件过程
由以上知,d的每一个元素从第二个元素开始为前一个元素的i倍,故d(1)=1,d(2)=1*2=2,d(3)=2*3=6,d(4)=6*4=24,d(5)=24*5=120,d(6)=120*6=720,d(7)=720*7=5040,d(8)=40320,而数组d定义的为整型数组,其数据范围为-32768到32767,故对第8个元素(为合法元素)赋值时其值超出定义范围,报”溢出“错误而停止运行,由于没有对第9个元素赋值故不会报下标越界错误。故答案选A。
【分析】本题考查的是VB的常见错误信息。”下标越界“是使用的数组元素的下标超过了定义的数组元素的下标(大于了上限或小于了下限)。”溢出“是使用的数值型变量的值超过了其类型表示的数的范围。”类型不匹配“给变量赋值的类型不是其定义的数据类型或标准函数的参数使用的类型不是其要求的类型。在本题中有两处错误哪个先执行先报哪个错误。
10.(2020高三上·诸暨月考)有如下VB程序段:
Dim a(1 To 10) As Integer
a(1)=2: a(2)=18: a(3)=10: a(4)=34: a(5)=16
a(6)=7: a(7)=37: a(8)=6: a(9)=15: a(10)=15
c=0: x=0: t= 1
For i=1 To 10
a(i)=a(i)*t
c=c+a(i)
If c>0 Then x=x+1
t=-t
Next i
Text1.Text=Str(x)
则程序运行后Text1中显示(  )
A.1 B.3 C.5 D.10
【答案】B
【知识点】算法的控制结构;常见数据类型、数组
【解析】【解答】本题程序分析如下:
Dim a(1 To 10) As Integer ‘定义整型数组a,该元素共有10个元素
a(1)=2: a(2)=18: a(3)=10: a(4)=34: a(5)=16
a(6)=7: a(7)=37: a(8)=6: a(9)=15: a(10)=15 ‘给数组a的10个元素分别进行赋值
c=0: x=0: t= 1 ‘初始化变量c的值为0,x的值为0,t的值为1
For i=1 To 10 ‘使用i来控制循环,i的初值为1,终值为10,步长为1,该循环用于处理数组a的各个元素,故i代表了数组a的下标值
a(i)=a(i)*t ‘将数组i的值乘以t值后仍赋给数组元素,而t实际代表了正负号
c=c+a(i) ‘将数组a的每个元素累加到变量c中
If c>0 Then x=x+1 ‘如果c值大于0时,将x值增1,x为计数器
t=-t ‘将t值取反
Next i ‘结束循环
Text1.Text=Str(x) ‘使用文本框1输出x的值
由以上程序分析知,c=2-18+10-34+16-7+37-6+15-15,在计算过程中c值如果有大于0的情况就将x值增1,故本一步一步运算c值:c=2,c=2-18=-16,c=-16+10=-6,c=-6-34=-40,c=-40+16=-24,c=-24-7=-31,c=-31+37=6,c=6-6=0,c=0+15=15,c=15-15=0,由以上可以看出c=2,c=6和c=15时将x值增1,x=1+1+1=3。故答案选B。
【分析】本题考查的是使用循环变量来处理数组的元素以及累加器、计数器的使用。数组由于元素较多,可以使用循环变量来代表数组的下标值从而简化数组的运算,累加器是将某个变量或表达式的值通过循环累加到某个变量中,本题的累加器为:C=C+a(i)是将数组a的每个元素值累加到变量c中。计数器用于统计某个符合条件的数据个数,常与条件语句配合使用,本题计数器语句为: If c>0 Then x=x+1 ,即使用x统计c值大于0的次数。
11.(2020高三上·诸暨月考)有如下VB程序段:
For i=1 To 8
d(i)= In(Rnd*10)
Next i
For i= 2 To 8
If i Mod 2=0 And d(i)> d(i-1)Then
d(i)=d(i-1)+1
ElseIf i Mod 2= 1 Then
If d(i)>d(i-2) Then
t=d(i): d(i)=d(i-2): d(i-2)=t
End If
Next i(  )
A.8 8 7 1 3 5 0 1 B.9 0 8 3 5 6 0 1
C.6 2 5 4 7 8 2 3 D.9 10 6 7 5 3 2 2
【答案】B
【知识点】运算符、基本运算与表达式;常量、变量及变量的赋值
【解析】【解答】本程序分析如下:
For i=1 To 8 ‘使用i来控制循环,i的初值为1,终值为8,步长为1,该循环用于给数组d的每个元素进行赋值,数组d共有8个元素
d(i)= In(Rnd*10) ‘给数组d的每个元素进行赋值,数组d的元素值范围为0-9
Next i ‘结束循环
For i= 2 To 8 ‘使用i来控制循环,i的初值为2,终值为8,步长为1,该循环用于调整数组元素d(2)到d(8)的值,i代表数组的下标
If i Mod 2=0 And d(i)> d(i-1)Then ‘如查i值为偶数时且数组元素大于前一个元素值时进行如下处理
d(i)=d(i-1)+1 ‘将该数组元素的值调整为前一个元素值多1
ElseIf i Mod 2= 1 Then ‘否则如果i为奇数时进行如下处理
If d(i)>d(i-2) Then ‘如果数值元素值比前两个的元素值大时进行如下处理
t=d(i): d(i)=d(i-2): d(i-2)=t ‘借助第三变量t交换前后两个奇数元素的值
End If ‘结束条件判断,通过该循环执行了一次冒泡算法,保证了奇数位元素的最左边元素(d(1))的值在奇数位上最大
Next i ‘结束循环
选项A:第六个元素5其值比第五个元素值大,此时d(6)的值应为d(5)+1=3+1=4,故选项A不可能。选项B:第一个元素值最大,偶数位比前面奇数位元素大时,只比前面奇数位元素多1,符合要求。选项C:第一个元素不是奇数位最大的值,错。选项D:数组元素值超过了范围。故答案选B。
【分析】本题考查的是生成指定范围的随机整数公式及使用循环来处理数组元素的方法。由于数组元素较多,一个一个处理较麻烦可以使用循环变量来代替数组的下标从而简化数组元素的处理。产生指定范围内的随机数公式为:int((上限-下限+1)*rnd)+下限。
12.(2020高三上·诸暨月考)以下VB程序段用以实现10个数组元素升序排序。
Dim a(1 To 10) As Integer
Dim flag As Boolean
Dim i As Integer, j As Integer, tmp As Integer
随机生成10个不重复的数据存入数组A中,代码略
For i=2To 10
tmp= a(i)
j=i
flag=False
Do While ① And Not flag
a(j)=a(j-1)
j=j-1

Loop
a(j)=tmp
Next i
要实现上述功能,方框①②中的语句分别是(  )
A.①tmpB.①tmp>a(j-1) ②If j=1 Then flag=True
C.①tmpD.①tmp>a(j) ②If j=0 Then flag=True
【答案】A
【知识点】排序算法及程序实现
【解析】【解答】本程序分析如下:
Dim a(1 To 10) As Integer ‘定义整型数组a,a共有10个元素
Dim flag As Boolean ‘定义布尔型变量flag
Dim i As Integer, j As Integer, tmp As Integer ‘定义整型变量i、j和tem
随机生成10个不重复的数据存入数组A中,代码略
For i=2To 10 ‘使用i来控制循环,i的初值为2,终值为10,步长为1,i代表数组a的下标
tmp= a(i) ‘将数组在本轮最右侧的元素值赋给变量tmp
j=i ‘将本轮最右侧的数组元素的下标赋给变量i,即给j赋初值i
flag=False ‘设置标记变量flag的值为false
Do While ① And Not flag ‘如果tmp的值小于数组元素a(j-1)的值且标记变量值为false时执行循环,故本处答案应填写:tmpa(j)=a(j-1) ‘将数组元素的值赋为前面的元素的值
j=j-1 ‘将j值减少1
② ‘如果j的值为1,即j为最数组的第一个元素时不用再向前比较,将标记变量值设为true,终止内层循环,故本处答案填写:if j=1 then flag=true
Loop ‘结束内层循环,该内层循环的目的是由后向前查找本轮最右侧的元素应放的位置
a(j)=tmp ‘将本轮最右侧的值放于a(j)处
Next i ‘结束外层循环
由以上程序分析知, ①处为如果tmp的值小于数组元素a(j-1)的值且标记变量值为false时执行循环,故本处答案应填写:tmp②处为如果j的值为1,即j为最数组的第一个元素时不用再向前比较,将标记变量值设为true,终止内层循环,故本处答案填写:if j=1 then flag=true。故答案选A。
【分析】本题考查的是插入排序算法。插入排序算法的原理在一个有序数组中插入一个数使用原有序数组成为一新的有序数组。在本题中从第二个元素开始将其与前面的元素一个一个比较从而找到其位置并插入到该位置使从第1个元素到第i个元素成为有序数组,当i为最左边一个元素时则整个数组成为一个有序数组。
二、非选择题(本大题共5小题,4+8+7+7,共26分)
13.(2020高三上·诸暨月考)小段收集了2018年浙江省各地区农业总产值相关数据,并使用Excel软件进行数据处理,如第图a所示,其他单元格中均无数据。
(1)区域G3:G14的数据是通过公式计算得到的:先在G3单元格中输入公式,再利用自动填充功能完成区域G4:G14的计算。G3单元格中的公式可能是 (多选,填字母)。
A.=F3/F14*100
B.=F3/$F$14*100
C.=F3/F$14*100
D.=F3/$F14*100
E.=F3/SUM($F$3:$F$13)*100
(2)根据第图a中的相关数据制作了图表,如图b所示,创建该图表的数据区域是   。
(3)将区域A2:F13的数据复制到新工作表,在新工作表中对数据进行筛选操作,筛选设置如图第图c所示,则按此设置筛选出的地区有   个。
【答案】(1)B;C;E
(2)A2:E2,A8:E9
(3)2
【知识点】表格数据的基本操作;数据分析
【解析】【解答】(1)由G2的字段名知该列字段为农林牧渔占各地区合计的百分比,而每个城市的农林渔牧合计数在F列对应的单元格中,而总的合计数在F14中,在求各城市的占比时F14不变应为绝对引用($F$14)或混合引用(F$14),而各城市的农林牧渔数要随单元格的变化而变化应使用相对引用。选项A中F14没有使用绝对引用或混合引用错误,选项B、选项C使用了绝对引用和混合引用正确,而选项D混合引用使用了绝对列相对行,由于公式在同一列中变化故列号在复制时不会改变,而行号没有使用绝对引用,本项错。选项E:尽管没有使用F14中的合计数但使用F3到F13之和(sum函数)也是可以的,本项对。故本小题答案选BCE。
(2)由图知图表簇状柱形图,图表为绍兴市和金华市的农、林、牧、渔业的对比数据,x轴为农、林、牧、渔的名称为字段名在第二行的A列到E列,纵轴为绍兴市、金华市的农、林、牧、渔业数据在 A8:E9 区域中。故本题答案填写: A2:E2,A8:E9 。
(3)由于是自动筛选所以两个筛选的关系为”且“的关系,即筛选出地区包含”州“字且农业产值大于150(不含150)的城市,由第一个包含州的城市可筛选出”杭州、温州、湖州、衢州、台州“共五条数据,再从五个城市 中选出农业产值大于150的,可选出”杭州、台州“两个城市。故本题答案填写:2。
【分析】本题考查的是公式的填充及公式中单元格地址引用方式、图表数据区域选择及自动筛选操作。填写公式时要根据题义使用正确函数或运算符,而公式中的地址引用有相对地址引用和绝对地址引用及混合地址引用3种方式,相对地址引用就是单元格地址前不加任何东西,单元格地址会随单元格的变化而变化,绝对单元格地址引用就是在单元格地址前加$号,不会随单元格的变化而变化。混合引用是在行号或列标前加$号,另一个不加,在复制公式时加$号的不变,不加$号的变化。图表数据区域的选择是看其横轴和纵轴的数据,筛选可以根据条件进行手工选择,自动筛选如果为多字段则字段之间为”且“的关系。
14.(2020高三上·诸暨月考)小段使用Flash软件创作主题为“旋转的风车”的多媒体作品,部分界面如图a所示。
图 a
请回答下列问题:
(1)编写脚本是设计多媒体作品的重头戏,脚本编写的一般步骤有:①编写脚本大纲②媒体元素分解③编写文字脚本④编写制作脚本,则正确的脚本编写顺序为   (单选,填字母:A .①②④③ B .②①③④ C .①④③② D .①③④②)。
(2)图中“文字”图层第1帧到第36帧实现了文字“放飞梦想”渐变为“超越自我”的动画,则第36帧中的“超越自我”为   (填文字:形状/实例)。
(3)如图所示,在不影响其他动画效果的前提下,为使“音乐”图层中的声音从本场景第1帧开始播放,正确的操作是   。
(4)图中“风车”图层应用了影片剪辑元件“风车”,修改“风车”元件的帧频为6fps,则当前场景的播放速度   (填文字:变快/变慢/不变)。
(5)“播放”按钮的编辑界面如图b所示,该按钮   (填文字:能/不能)正常响应鼠标事件。
图 b
(6)测试影片时,单击“播放”按钮,停止所有声音的播放,并使影片跳转到“scene2”场景的第1帧并继续播放,则“播放”按钮的动作脚本为   。
【答案】(1)D
(2)形状
(3)“音乐”图层第1帧清楚关键帧或“音乐”图层第13帧移动到第1帧或其他等价答案
(4)变慢
(5)能
(6)on(press){stopAllSounds():goto AndPlay("scene2, 1");}或on(release){stopAllSounds():goto AndPlay("scene2, 1");}
【知识点】多媒体作品的规划和设计;动画的类型;时间轴、帧、图层、库的概念及基本操作;常用影片控制函数的应用
【解析】【解答】(1)脚本编写包括:制定脚本大纲、编写文字脚本、编写制作脚本、媒体元素分解等四步骤,且四个步骤是按制作的顺序的。故答案选D。
(2)由图中的 “文字”图层第1帧到第36帧知该图层由一绿色底纹加上一个黑色箭头且实现了文字的变化,故其动画补间为形状补间,而实现形状补间的第36帧的图形只能为形状而不能为实例(将文字打散变为了形状,而实例为一体的不能打散),故本小题答案选填:形状。
(3)由图可知“音乐”图层的第1帧为空白关键帧,而第一个关键帧在第13帧,若想音乐从头开始播放需将第13帧移动到第1帧,故本小题答案填写: “音乐”图层第1帧清楚关键帧或“音乐”图层第13帧移动到第1帧或其他等价答案 。
(4)由图a知该动画的帧频为12fps,即每秒播放12帧,现在修改 “风车”元件的帧频为6fps ,而元件的帧步与场景的帧频是相同的,故动画帧频变为了6fps,即每秒播放6帧,故本小题答案选填:变慢。
(5)“播放”按钮能正常响应鼠标事件,故本小题答案选填:能。
(6)由题义知,当按下或释放“播放”按钮时 停止所有声音的播放,并使影片跳转到“scene2”场景的第1帧并继续播放 ,故本小题答案应填写: on(press){stopAllSounds():goto AndPlay("scene2, 1");}或on(release){stopAllSounds():goto AndPlay("scene2, 1");} 。
【分析】本题考查的是脚本编写步骤、形状补间、清除关键帧、帧频、点击帧的作用及动作脚本。多媒体分析与策划包括应用需求分析和创作需求及脚本编写三部分,脚本编写包括:制定脚本大纲、编写文字脚本、编写制作脚本、媒体元素分解等四步骤。形状补间是由一个物体到另一个物体间的变化过程,像由三角形变成四方形等。时间轴上形状补间是淡绿色底加一个黑色箭头组成的,对于文字实现形状补间需要将文字打散。帧频就是每秒播放动画的帧数,代表了动画的播放速率。点击帧表示按钮响应鼠标事件的范围或称区域面积,此状态的画面内容、颜色在动画播放时不可见。多媒体作品加入动作脚本可以增加人机交互功能。
15.(2020高三上·诸暨月考)数组元素a(1)~a(100)用以存储某班级50位学生的信息技术和通用技术成绩,奇数位置存储信息技术成绩,偶数位置存储对应学生的通用技术成绩。该数组已经按照两科总成绩升序排序。依据对分查找思想,设计一个在数组a中查找总成绩为key的程序,统计输出两科总成绩大于等于key的人数。部分运行界面如图所示:
实现该功能的VB程序如下:
Private Sub Command1_Click()
Dim a(1 To 100) As Integer
Dim sum As Intcger
Const t= 50
‘将50个学生的信息技术和通用技术成绩依次存储在数组a(1)~a(100),代码略
Key = Val(Text2.Text)
i= 1
j= 100
m=(i+j)\2
Do While ① And m>1
If m Mod 2=1 Then m= m- 1
sum = a(m)+ a(m- 1)
If ② Then
j=m-2
Else
End If
m=(i+j)\2
Loop
Label2.Caption "大于等于"& Key & "分的人数为: "+ Str(t-j\2)
End Sub
(1)代码"Private Sub Command1_Click()"中的Command1_Click()是   (单选,填字母:A .对象名/B .属性名/C .事件名/D .事件处理过程明)。
(2)请在①②划线处填入合适代码。
①   ②   
(3)加框出代码有错,请改正。
【答案】(1)D
(2)i<=j;sum>=key
(3)i=m+2
【知识点】类、对象、属性、方法、事件和事件处理的概念及应用;查找算法及程序实现
【解析】【解答】(1)在代码 "Private Sub Command1_Click()"中 ,Private为事件过程的类型,sub为子程序或过程的关键字,command1为对象名,click为事件名, Command1_Click() 为事件过程名。故本小题答案选填:D。
(2)本题程序分析如下:
Private Sub Command1_Click() ‘命令按钮1单击事件过程开始
Dim a(1 To 100) As Integer ‘定义整型数组a,a为100个元素
Dim sum As Intcger ‘定义整型变量sum
Const t= 50 ‘定义符号常t,并将t赋值为50
‘将50个学生的信息技术和通用技术成绩依次存储在数组a(1)~a(100),代码略
Key = Val(Text2.Text) ‘交从文本框中输入要查找的数key转为数值型并赋给变量key
i= 1 ‘初始化变量i的值为1,i代表要查找数组元素的下标下限
j= 100 ‘初始化变量j的值为100,j代表要查找数组元素的下标上限
m=(i+j)\2 ‘计算中值元素的下标值并赋给变量m
Do While ① And m>1 ‘在要查找数组元素的下标下限小于等于上限且中值下标m的值大于1时进行循环,故本处答案应填写:i<=j
If m Mod 2=1 Then m= m- 1 ‘如果m的值不为偶数则将m值减少1
sum = a(m)+ a(m- 1) ‘计算中值数组元素代表的学生的信息技术和通用技术成绩总分
If ② Then ‘如果总分sum大于等于要查找的分数key时进行如下处理,故本处答案应填写: sum>=key
j=m-2 ‘因为中值大于等于要查找的分数应在前半个数组中继续查找,故将要查找数组元素的下标的上限设为中值少2
Else ‘否则即要查找的分数比中值大时进行如下处理
‘因为中值小于要查找的分数应在后半个数组中继续查找,故将要查找数组元素的下标的下限设为中值多2,故本处应将i=m-2改为:i=m+2
End If ‘结束条件判断
m=(i+j)\2 ‘继续求中值
Loop ‘结束循环
Label2.Caption "大于等于"& Key & "分的人数为: "+ Str(t-j\2) ‘使用标签2将大于要查找分数的人数输出
End Sub ‘结束事件过程
由以上程序分析知, ①处为在要查找数组元素的下标下限小于等于上限且中值下标m的值大于1时进行循环,故本处答案应填写:i<=j。
②处为如果总分sum大于等于要查找的分数key时进行如下处理,故本处答案应填写:sum>=key。
(3)由加框处代码知,因为中值小于要查找的分数应在后半个数组中继续查找,故将要查找数组元素的下标的下限设为中值多2,故本处应将i=m-2改为:i=m+2。
【分析】本题考查的是对分法查找数据的方法,对分法查找过程是先将一个数列放于一个有序数组中,然后比较中间数组元素的值与要查找的值,或中间数组的值比要查找的值大,则在前半个数组中查找,若中间数组的值比要查找的值小则在后半个数组中查找。查找方法仍是比较中间数组元素的值和要查找的值。以此类推直到查到或下限大于了上限(没查找)为止。
16.(2020高三上·诸暨月考)二叉树是每个结点最多有两个子树的树结构,如值为9的结点有两个子树6和8,值为6的结点有两个子树5和3。若设二叉树的深度为h,则除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。现要构造大根堆,堆是一棵顺序存储的完全二叉树,大根堆又是一种特殊的堆,它的特征是每个双亲结点的值都不小于其孩子结点的值。如下图所示,值为9的结点是6和8的双亲结点,而6和8分别是9的左孩子和右孩子;同理,6是5和3的双亲结点,而5和3分别是6的左孩子和右孩子……
假如我们用数组表示上述大根堆:
a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8) a(9)
9 6 8 5 3 4 7 2 1
现有一算法把一个无序数组改造成大根堆。例如:我们在上图的大根堆中再增加一个值为8的新元素,如下图所示。
数组存储为:
a(2) a(3) a(4) a(5) a(6) a(7) a(8) a(9) a(10)
6 8 5 3 4 7 2 1 8
具体操作方法如下:
第一步:因为a(10)大于它的双亲结点a(5),故需交换a(10)和a(5)的值;
数组存储为:
第二步:因为a(5)大于它的双亲结点a(2),故需交换a(5)和a(2)(t)值;
数组存储为:
a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8) a(9) a(10)
9 8 8 5 6 4 7 2 1 3
第3步:因为a(2)不大于它的双亲结点a(1),故无需做交换操作。此时新元素已经放到了正确的位置,新的大根堆构造完成,上移行动结束。
(1)若在图中增加值为4的新元素,则元素4将被存储在数组元素   中。
(2)小段为此编制一VB程序:在文本框Tcxt1中输入结点个数n,单击命令按钮Command1,随机产生n个[1,99]的整数作为结点值,并由此构造大根堆,结果显示在列表框List1中,程序运行界面如图所示。
实现上述功能的程序代码如下请在划线处填入合适的代码。
Dim a(1 To 100) As Integer
‘该函数功能为实现数据的对齐输出
Function pout(x As Integer, y As Integer) As String
代码略
End Function
Private Sub Command1_Click()
Dim tmp As Integer, Dim m As Integer
Dim n As Integer, Dim s As String
n = Val(Text1.Text)
For i=1 To n
a(i) = Int(Rnd()*99)+ 1
Next i
For i= 2 To n
p=i
f=p\2
Do While ①
tmp = a(p): a(p)= a(f): a(f) = tmp
p=f
f=p\2
If f= 0 Then Exit Do
Loop
Next i
k= n
Do While k >=1
m=m+1

Loop
k= 1
For i=0 To m- 1
s=""
For j= 1 To ③
If k> n Then Exit For
s=s+ pout(a(k), (2^(m-1)-2^i)/2^i)
k=k+ 1
Next j
List1.AddItem s
Next i
①   ②   ③   
【答案】(1)a(5)
(2)a(p)>a(f);k=int(k/2)或k=k\2;2^i
【知识点】过程与自定义函数;排序算法及程序实现
【解析】【解答】(1)由题给出的算法知,先将新加入的元素放于最低层的尽可能的左侧,即将a(10)的值赋为4,其双亲为数组元素a(5),其值为3,由于4大于3交换子结点和双新结点的值,即a(5)的值为4,a(10)的值为3,此时a(5)的值4小于其双亲结点a(2)的值6,新的大根堆构造完成,故本小题答案填写:a(5)。
(2)本程序分析如下:
Dim a(1 To 100) As Integer
‘该函数功能为实现数据的对齐输出
Function pout(x As Integer, y As Integer) As String
代码略
End Function ‘自定义函数pout结束
Private Sub Command1_Click() ‘命令按钮1单击事件过程开始
Dim tmp As Integer, Dim m As Integer ‘定义整型变量tmp和m
Dim n As Integer, Dim s As String ‘定义整型变量n和字符串变量s
n = Val(Text1.Text) ‘将从文本框1中输入的数转为数值型并赋给变量n,n为大堆根的结点个数
For i=1 To n ‘使用i来控制循环,i的初值为1,终值为n,步长为1,该循环用于产生n个随机数并存储在数组a中
a(i) = Int(Rnd()*99)+ 1 ‘产生一个【1,99】之间的随机整数并存储在数组a的第i个元素中
Next i ‘结束循环
For i= 2 To n ‘使用变量i来控制循环,i的初值为2,终值为n,i代表数组A的下标,i每增加一个值代表处理完一个元素,即将该元素放置在大堆根中
p=i ‘将i值赋给变量p,p代表子结点元素的下标
f=p\2 ‘将p值除整除以2赋给变量f,f为数组p的双亲结点所在的元素的下标
Do While ① ‘在子结点元素值大于双亲结点元素值时进行循环,故本处答案应填写: a(p)>a(f)
tmp = a(p): a(p)= a(f): a(f) = tmp ‘借助第三变量t交换双亲结点和子结点元素的值
p=f ‘将原双亲结点的元素的下标f赋给代表子结点的元素下标p
f=p\2 ‘计算其双亲结束元素的下标并赋给变量f
If f= 0 Then Exit Do ‘如果f的值为0时则证明其上级无结点则提前退出内层循环
Loop ‘结束内层循环
Next i ‘结束外层循环
k= n ‘将n值赋给变量k
Do While k >=1 ‘在k值大于等于1时进行循环,本循环用于计算输出的次数,即大堆根的层数
m=m+1 ‘将m值增1,m值用于统计大堆根的层数
② ‘将k值的一半赋给k,故本处答案应填写: k=int(k/2)或k=k\2
Loop ‘结束循环
k= 1 ‘将k值设为1
For i=0 To m- 1 ‘使用i来控制循环,i的初值为0,终值为m-1,i代表输出大堆根的层数(从第0层到第m-1层,输出次数仍为m)
s="" ‘初始化字符串变量s的值为空字符串,s代表本层输出的结点
For j= 1 To ③ ‘ 使用j来控制循环,j的初值为1,终值为2的i次方,步长为1,j代表输出本层的数据个数,故本处答案应填写: 2^i
If k> n Then Exit For ‘如果k值大于n值时提前退出内层循环
s=s+ pout(a(k), (2^(m-1)-2^i)/2^i) 将该层的元素值转为字符串并合并到字符串s的右侧
k=k+ 1 ‘将k值增1,代表处理了一个元素
Next j ‘结束内层循环
List1.AddItem s ‘在列表框1中输出一行数据
Next i ‘结束外层循环
由以上程序分析知: ①处为在子结点元素值大于双亲结点元素值时进行循环,故本处答案应填写: a(p)>a(f)。
②处为将k值的一半赋给k,故本处答案应填写:k=int(k/2)或k=k\2。
③处为使用j来控制循环,j的初值为1,终值为2的i次方,步长为1,j代表输出本层的数据个数,故本处答案应填写: 2^i。
【分析】本题的算法为插入排序算法。插入排序法是选择排序法的一种特例它是在一个有序数列的基础上,通过要插入的数与数列中的数相比较,找到其位置,然后由后向前将数组元素向后移一位然后在适当位置插入这个数从而仍形成一个有序数列。在本题中比较的元素不是相邻的元素而是子结点和双亲结点,能过在一个大堆根数组中插入一个元素形成另一个大堆根数组,将要插入的元素处理过完则大推根就形成了。
1 / 1

展开更多......

收起↑

资源列表