ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:32.98KB ,
资源ID:25712478      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25712478.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高考浙江版高考信息技术 模拟演练 12.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高考浙江版高考信息技术 模拟演练 12.docx

1、高考浙江版高考信息技术 模拟演练 12第4节查找算法及程序实现模拟演练1.用对分查找从数列“1,5,9,13,16,20,33,40,61,77,89”中查找“5”,一共需要比较的次数为()A.2 B.3 C.4 D.5答案C本题主要考查对分查找。对分查找的基本思想:首先将查找键与有序数组内处于中间位置的元素进行比较,如果中间位置上的元素数值与查找键相同,表示找到,否则根据数组元素的有序性,就可确定应该在数组的前半部分还是后半部分继续进行查找。在新确定的范围内,继续按上述方法进行查找,直到获得最终结果。对分查找是一种效率很高的查找方法,但被查找的数据必须是有序的。若用一个数组d(1)到d(11

2、)来存放升序的元素序列1,5,9,13,16,20,33,40,61,77,89,查找键key为5。比较次数比较范围midkey与d(mid)的关系第一次d(1)d(11)6keyd(mid)第二次d(1)d(5)3keyd(mid)第四次d(2)2Key=d(mid)2.某数组的6个元素依次为“27,32,57,78,80,90”。若对该数组进行顺序查找,其平均查找次数为(1+2+3+4+5+6)/6=7/2;若对该数组进行对分查找,其平均查找次数为()A.7/2 B.7/3 C.5/2 D.2答案B本题考查对分查找算法。对该数组进行对分查找,其平均查找次数为(2+3+1+3+2+3)/6=

3、7/3。3.在数组d(1)到d(10)中存放了以下数据:10,12,17,20,22,27,40,45,50,80。指定关键字为50,对数组进行对分查找,依次所经过的元素为()A.22,27,50 B.27,45,50C.22,45,50 D.22,40,50答案C本题主要考查对分查找的思想方法。第一次找到d(5)=22(中间位置m=Fix(1+10)/2)=5),key=50,keyd(5),因此下一次查找的范围是后半部分,即d(6)到a(10)。第二次找到d(8)=45(中间位置m=Fix(6+10)/2)=8),keyd(8),因此下一次查找的范围是后半部分,即d(9)到d(10)。第三

4、次找到d(9)=50(中间位置m=Fix(9+10)/2)=9),key=d(9),找到了目标。4.有如下程序段:Dim i As Integer,j As Integer,Key As Integer,m As Integer,s As Stringi=1: j=7: s=“”:flag=FalseKey=Int(Rnd()* 50)Do While i =j And Not Flagm=(i+j)2If Key=a(m) ThenFlag=TrueElseIf Key a(m) Thenj=m-1Elsei=m+1End Ifs=s+Str(a(m)LoopText1.Text=s数组中a

5、(1)到a(7)的值依次为“23,33,45,56,68,77,89”,则Text1 中显示的内容不可能是()A.56 33 B.56 33 45 C.56 33 23 D.56 77 68 11答案D此题考查对分查找,因为Key 的值为小于50 的整数,第一次访问的值为56,因此Key56,所以第二次访问的值一定在前半段,可能是56 33 或56 33 45 或56 33 23,不可能在后半段,即不可能是56 77 68,因此本题答案为D。5.某对分査找算法的VB程序段如下:i=1: j=5: k=0: s=key=Int(Rnd*100)Do While i =j k=k+1 m=(i+j

6、) 2 s=s+Str(a(i) If key=a(m) ThenExit DoExit Do表示退出循环 ElseIf key a(m) Thenj=m-1 Elsei=m+1 End IfLoopText1.Text=s数组元素a(1)到a(5)的值依次为“6,18,25,37,49”。若该程序段执行后,k的值为3,则key的值不可能为()A.4 B.18 C.47 D.55答案A本题属于较难题,考查对分查找算法的思路。本题要点在于对分查找各种情况的判断,由程序可知,key为待查找数据,k表示访问数据的次数。若key=4,则依次访问的数据为“25,6”,k=2;若key=18,则依次访问的

7、数据为“25,6,18”,k=3;若key=47,则依次访问的数据为“25,37,49”,k=3;若key=55,则依次访问的数据为“25,37,49”,k=3。故选项A结果与要求不符。6.某对分查找算法的VB程序段如下:n=0:i=l:j=6key=Val(Text1.Text)Do While i d(m) Then j=m-1 Else i=m+1LoopIf ij,也即查找的 key不在数组中,但是又只找了1次(变量n是查找次数),这是不可能的情况,故推出应该是s=m-n=1。第一次m=3,n=1,不成立,继续第二次查找;第二次,m=1或m=5,n=2,不成立,继续第三次查找;第三次,

8、m=2或m=4或m=6,n=3。因此在m=4,n=3的时候,找到了key,此时满足m-n=1,所以答案选择C。7.对数组a中6个有序数据“11,22,33,44,55,66”,用下面的程序代码查找数据“23”,程序执行完毕后,下列各变量值正确的是()Dim a(1 To 6)As IntegerDim i As Integer,j As Integer,Key As Integer,m As Integera(1)=11:a(2)=22:a(3)=33: a(4)=44:a(5)=55:a(6)=66i=1:j=6:p=0:Key=23Do While i=jp=p+1m=(i+j)2If j

9、 Mod 2=0 Then m=m+1If a(m)=Key Then Exit DoIf Keya(m) Then j=m-1Else i=m+1LoopA.i=5 B.j=4 C.m=3 D.p=2答案C本题主要考查对分查找算法的变形算法。查找过程如下:一共有6个升序排列的数据,第一次查找,i=1,j=6,因此首先查找的是m=(i+j)2=3,而j mod 2=0,因此m=m+1=4,即查找到第4个数“44”。由于“2322”,因此第三次查找,i=m+1=3,j=3,则m=(i+j)2=3,即查找到第3个数“33”,而“23j,整个查找过程结束,只有选项C成立。8.有如下VB程序段:Dim

10、 a(1 To 10) As IntegerPrivate Sub Form_Load()a(1)=2:a(2)=3:a(3)=3:a(4)=3:a(5)=3a(6)=6:a(7)=7:a(8)=7:a(9)=8:a(10)=9End SubPrivate Sub Command1_Click()Dim key As Integer, i As Integer, j As IntegerDim m As Integer, p As Integerkey=Val(Text1.Text)i=1: j=10Do While i =jm=(i+j) 2If a(m)=key Thenp=mj=m-1E

11、lse If key a(m) Thenj=m-1Elsei=m+1End IfLoopText2.Text=Str(p)End Sub程序运行时,在文本框Text1中输入3,单击按钮,文本框Text2显示的内容是()A.2 B.3 C.4 D.5答案A本题考查程序阅读。本题的算法框架是对分查找,不同之处是,当If a(m)=key时,将j的值变为m-1,还要继续往左查找。最左边的3的位置是2,故本题选A。9.某对分查找算法的VB程序段如下:t=“”: i=0 : j=9 : key=62: f=FalseDo While i key Theni=m+1t=t+“”Elsej=m-1t=t+“

12、”End IfLoop数组元素a到a的值依次为“99, 94, 90, 87, 78,70, 63,56, 45,36”,执行该程序段,t的值是()A.“475” B.“4 7 5 6”C.“4756” D.“4 7 5”答案B本题考查对分查找,查找过程如表:i05567j99666m4756退出循环a(m)78567063t447475475610.循环升序数组指的是将一个升序数组循环右移动若干距离之后变成的数组。如5、7、9、26、41、100,循环右移3位得到26、41、100、5、7、9。对分查找算法适当优化后也适用于循环升序数组。程序段如下:l=1: r=6Key=Val(Text1

13、.Text)Do Whilel =a(l) Then (2)Elself a(m) a(l) Then(3)End IfLoop上述程序中方框处可选语句为:If a(m) =Key Then l=m+1 Else r=m-1Listl .AddItem “第”+Str(m)+“值是”+Str(a(m)If a(m) Key And a(l) =Key Then r=m-1 Else l=m+1则(1)、(2)、(3)处语句依次是()A. B.C. D.答案D分析循环升序数组的特点:一定有一个转折点,转折点两侧数组都是有序的,并且左侧数据全部比右侧数据大,也即a(n)=a(l),那么a(m)一定

14、在左侧升序段,可以肯定l,m这一段是严格递增的,此时如果a(m) Key And a(l) =Key,则能得到结论key一定在l,m这一段里,否则就是在a(m)的右边;a(m) a(l),那么a(m)一定在右侧升序段,可以肯定m,r这一段是严格递增的,此时如果a(m) =Key,则能得到结论key一定在m,r这一段里,否则就是在a(m)的左边。11.査找并删除重复数据的算法是对数组a中每个元素逐个作为关键字进行从后往前查找,如果有重复,删除该数据后继续查找。例如,第一次将a(1)作为关键字,从a(10)到a(1)进行逐个查找,如果和a(1)相等,则删除该数据,然后继续查找;如果是a(1)本身和

15、它相等,则代表无重复数据。编写VB程序,程序功能如下:运行程序时,在列表框List1中显示数组a中的原始数据;单击“去除重复”按钮(Command1),在列表框List2中输出去除重复后的数组a中的数据,同时在标签Label1中显示删除的数据总个数,运行效果如图所示。请回答下列问题:(1)当数组a中的值依次为1,2,3,7,8,1,6,6,8,7时,共删除数据(填写数值)个。(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。Const maxn=10Dim a(1 To maxn) As IntegerPrivate Sub Form_Load()maxn 个数据存储在数组a中,并在

16、列表框List1中显示代码略End SubPrivate Sub Command1_Click()Dim i As Integer, n As Integer 􀆳n用于存储当前査找的数组长度Dim j As Integer, key As Integer 􀆳key用于存储本次查找关键字的数据位置key=1: n=maxnDo While key =ni=nDo While a(i) a(key)LoopIf i=key Then 􀆳未找到,重新下一査找关键字key=key+1Else 􀆳找到重复数据,删除For j=i T

17、o n-1Next jn=n-1End IfLoopFor i=1 To nList2.AddItem Str(a(i)Next iLabel1.Caption=“共删除数据”+“个”End Sub答案(1)4(2)i=i-1a(j)=a(j+1)Str(maxn-n)解析(1)略。(2)从底部开始逐个与a(key)比较,例如key=1时,a(10),a(9),a(i),a(2)逐个与a(1)比较,即数组下标递减i=i-1,若a(i)=a(key),则找到相同,循环结束。上面a(i)=a(key)循环结束后,若i=key,则意味着没有重复元素。例如key=1时,只有a(1)=a(1),没有其他元素和a(1)相等,就没有重复元素。否则,意味着有重复元素,则需要去除重复元素。后面的元素依次往前移动,即a(j)=a(j+1)。由于maxn是总共的数据个数,而n是剩下的数字个数,因此删除的数据个数就是Str(maxn-n)。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1