收藏 分享(赏)

2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc

上传人:高**** 文档编号:216866 上传时间:2024-05-26 格式:DOC 页数:17 大小:1.27MB
下载 相关 举报
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第1页
第1页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第2页
第2页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第3页
第3页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第4页
第4页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第5页
第5页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第6页
第6页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第7页
第7页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第8页
第8页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第9页
第9页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第10页
第10页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第11页
第11页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第12页
第12页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第13页
第13页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第14页
第14页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第15页
第15页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第16页
第16页 / 共17页
2018版选考总复习(浙江) 信息技术必修3练习:第2单元 算法与程序实现 WORD版含答案.doc_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
资源描述

1、1统计11000间个位数是4,且能被9整除的数共有多少个,可以采用的算法是()A查找算法 B枚举算法C解析算法 D排序算法解析枚举对象是11000内的所有整数,枚举范围为11000,枚举条件是:个位数是4且能被9整除的整数,符合枚举算法的基本思想。答案B2计算两个并联电阻总电阻值的算法如下:输入两电阻R1,R2的值计算总电阻R输出总电阻R上述算法属于()A枚举算法 B解析算法C排序算法 D查找算法解析由题可知,本题为解析算法。答案B3有一个8位数,前4位是4623,后4位数字的特点如下:(1)后4位数字中的前2位数字相同;(2)后4位数字中的后2位数字也相同;(3)后4位数字正好是一个完全平方

2、数。某同学编写了一个VB程序用于寻找这个8位数。程序运行时,单击“计算”按钮Command1,在标签Label2中显示这个8位数,程序运行界面如图所示。Private Sub Command1_Click()Dim i As Long,a As Integer,b As Integer,c As Integer,d As Integer,x As IntegerFor i32 To 99ni*ix_y_ax/10bx Mod 10cy10dy Mod 10If ab And cd Then _Next iEnd Sub为实现上述功能,请在程序划线处填入合适的语句。划线处应填入的语句为:_;划线

3、处应填入的语句为:_;划线处应填入的语句为: _。解析后4位数是一个完全平方数,因此只要枚举3299的平方即可;变量x和y分别表示这4位数的前两位数字和后两位数字,最后将结果显示在标签Label2上。答案xn Mod 100yn100Label2.CaptionStr(46230000n)4(20126月浙江会考)计算三角形面积的算法如下:输入三角形三边长a,b,c计算半周长p(abc)/2计算三角形面积sSqr(p*(pa)*(pb)*(pc)输出面积s上述算法属于()A排序算法 B解析算法C枚举算法 D查找算法解析本题中算法的基本思想是通过数学表达式的计算来解决问题,符合解析算法的基本思想

4、。答案B5兔子吃萝卜。兔子拔了一堆萝卜,第一天吃了一半,还嫌不过瘾,又吃了一个,第二天又将剩下的萝卜吃掉一半,又多吃了一个,以后每天如此。到第10天想再吃时,见只剩下一个萝卜了。求第一天共拔了多少萝卜。小明编写了一个VB程序,用于计算兔子第一天拔的萝卜总数。程序运行界面如图所示。Private Sub Command1_Click()Dim i As Integer,sum As Integersum1For i9 To 1 _Next iText1.TextStr(sum)End Sub回答下列问题:(1)该程序采用的算法是_(填:解析算法/枚举算法)(2)显示计算结果的控件属于_类,该控件

5、的名称是_。(3)划线处应填入的语句为_。划线处应填入的语句为_。解析根据题意可知,前一天的萝卜数是后一天的萝卜数加1后的2倍,因此可得到公式sum(sum1)*2;由于For循环是递减的,因此步长为1。答案(1)解析算法(2)文本框Text1(3)Step1sum(sum1)*26(20133月浙江高考)有如下程序段:s“”For i1 To 3For j7 To i1 Step1If a(j)a(j1) Thenka(j):a(j)a(j1):a(j1)kEnd IfNext jssStr(a(i)Next iText1.Texts数组元素a(1)到a(7)的数据依次为“3,9,1,5,8

6、,6,2”,经过该程序段“加工”后,文本框Text1中显示的内容是()A1 2 3 B9 8 6C3 9 1 D8 6 2解析冒泡排序的基本操作是比较相邻的两个数据,因此代码中会出现相邻的两个数组变量的比较,比如像题中If a(j)a(j1),一旦确定是冒泡排序,接着就可以用冒泡排序的思想方法来对数据进行排序。分析外循环语句可知总共做了三遍排序加工,输出结果是a(1)、a(2)、a(3),分析if语句可知数据是从小到大排序,因此三遍排序后a(1)1、a(2)2、a(3)3。答案A7(201510年浙江选考)已知单调函数f(x)在ks5u0,1区间存在一个x0,使f(x0)0。现用对分查找法搜索

7、x0的值,开始搜索区间为ks5u0,1,若经过10次对分查找后还需继续搜索,则第11次搜索区间的长度为()A1/2 B1/10 C1/102 D1/210解析本题考查对分查找。第一次搜索区间是1,第二次搜索区间是1/2,第三次搜索区间是,第四次搜索区间是,第n次搜索区间是,第11次搜索区间是,选项D正确。答案D8在数组元素a(1)到a(5)中查找键值为key的数,其查找算法的VB程序段如下:Dim a(1 To 5) As IntegerDim Key As IntegerPrivate Sub Command1_Click()t0For i1 To 5If _ ThentiExit ForE

8、nd IfNext iPrint tEnd SubPrivate Sub Form_Load()此过程用于对数组a和查找键Key进行赋初值,代码略End Sub(1)该程序段中所用的查找算法是_。(2)在程序划线处,填入适当的语句或表达式,把程序补充完整:程序中划线处应填入_。当数组元素a(1)到a(5)中存储的数据为(2,5,1,9,5),查找键Key为5时:(3)该程序运行结束,t的值是_。(4)如果将所标记的Exit For语句删除,该程序运行结束时,t的值是_。解析(1)在明确是查找算法的前提下,观察代码“For i1 To 5”发现,是逐个枚举循环的方式运行的,这是顺序查找的特点。同

9、时,允许输入的数据“2,5,1,9,5”可以为无序的,也佐证了是顺序查找算法。(2)顺序查找算法采用每个枚举的数据a(i)和Key值进行比较,当相等的时候则进行找到的处理。因此,此处熟记顺序查找算法的代码即可。这类题在非数字类型的数据时,还需要注意运用其他函数进行数据类型的统一和转换。(3)Exit For在这里用于当找到第一个Key值时跳出循环,因此第一个5在数组元素的第二个位置上。但如果将Exit For删除,则找到Key值也不会停止继续查找,如果一个数据序列中有多个Key值,则返回最后一个所在的位置。另外,如果是DO While语句来实现顺序查找算法,可以是Exit Do,或者在Do W

10、hile条件中增加找到与否的标记条件的方式,控制跳出Do while循环。答案(1)顺序查找(2)a(i)Key(3)2(4)59王敏的EMail邮箱密码忘记了,但她需要收一封很重要的来信,请你帮她尽可能找出密码。她零星记得自己的密码信息:密码是六位数字,前面两位为31;最后两位数字相同;能被16和46整除。程序界面如图所示,单击“帮助找回密码”按钮(Command1)后,可能的密码显示在列表框List1中。解决此问题的相应程序如下:Private Sub Command1_Click()Dim a As Integer,s As long,b As Integer,i As IntegerF

11、or i0 To 9 999 _s310 000iIf s Mod 460 Then_b(s Mod 100)100If ab ThenList1.Addltem Str(s)End IfEnd IfNext iEnd Sub(1)解决此问题的算法是_(选填:枚举算法或排序算法)在程序和画线处,填入适当的语句或表达式,把程序补充完整:(2)程序中画线处应填入_。(3)程序中画线处应填入_。解析(1)枚举算法的基本思想是一一列举所有可能的解,并验证该解是否是正确解。(2)根据for语句的语法结构,程序中画线处只能填for语句的步长,步长对循环语句的作用是每次循环结束时循环变量ii步长,根据题中流

12、程图所示,知步长是16。(3)条件语句If s Mod 460对应流程图中的第二个菱形框,条件成立时,执行的指令是判断“末两位数字是否相同”,因此需要先计算出末两位数字。a是个位数,b是十位数,个位数a的计算式为as mod 10。答案(1)枚举算法(2)step 16(3)as mod 1010在已排序的数组dks5u数组元素d(1)d(2)d(n)中查找键值为Key的数,其对分查找的VB程序段如下:i1:jnxb0Do While ijmFix(ij)/2)If d(m)Key ThenxbmExit DoEnd IfIf d(m)Key Then_Else_End IfLoop划线处的语

13、句为()Ajm1im1Bim1jm1Cjm1im1Dim1jm1解析对分查找中当中间位置的值不等于查找键值Key的时候,需要调整下次查找范围。此题特别要注意的是,该数据序列为降序,因此当条件d(m)Key时,说明下次查找范围在中间点的右边区域,则调整i的值为im1。反之情况,则在中间点左边区域,调整j的值为jm1。如果此题数组改为升序,那么答案就是C了。答案D11某市组织了一次我心目中最喜爱的球队的评比活动,6个球队网上投票数为201、287、501、189、397、295,若采用冒泡排序算法对其进行从大到小排序,则第三遍加工后的结果是()原始数据201287501189397295第一遍50

14、1201287397189295第二遍501397201287295189第三遍A.501 397 295 287 201 189B501 397 201 287 295 189C501 397 295 201 189 287D501 397 295 201 287 189解析冒泡排序的原理就是每遍排序都确定第1个位置的值,从大到小排序,第三遍加工后前三个位置一定是从大到小降序排列最大三个数的。其次,每遍排序过程,都是从最后一个元素开始,相邻元素比较,互逆则交换。所以从第二遍的状态开始交换,得到501 397 295 201 287 189的序列。答案D12某协会进行钓鱼比赛,最后有十人进入决

15、赛,录入员编制了如下Visual Basic程序,功能是根据成绩进行排序,程序中数组 a保存所有参赛者的成绩,数组b保存此成绩对应的姓名,第i位参赛者的成绩保存在a(i)中,姓名保存在b(i)中。程序界面如图所示,左边列表框List1中显示原始数据(成绩和相应的姓名),单击“排序”按钮(Command1),排序后的结果按成绩从高到低显示在列表框List2中。解决此问题的算法流程图如图所示,排序部分的程序段如下:Dim a (1 To 10) As SingleDim b (1 To 10) As StringPrivate Sub Command1_Click()Dim i As Intege

16、r,j As Integer,k As Integer,x As Single,y As StringFor i1 To 9kiFor ji1 To 10If _ Then kjNext jIf ki Thenxa(i):a(i)a(k):_yb(i):b(i)b(k):b(k)yEnd IfNext iFor ii To 10List2.AddItem Str(a(i)“”b(i)Next iEnd SubPrivate Sub Form_Load()此过程用于对数组a和数组b进行初始赋值,代码略End Sub(1)解决此问题的算法是_。(选填:冒泡排序或选择排序)在程序和画线处,填入适当的

17、语句或表达式,把程序补充完整:(2)程序中画线处应填入_。程序中画线处应填入_。解析(1)选择排序的算法特点是先找出最大值(从大到小排序),并根据需要交换位置,代码中变量k的作用是在寻找最大值的时候,记录最大值的位置。(2)程序中画线处是寻找最大值代码段中的条件表达式,根据流程图所示及选择排序的思想方法,变量k存储了当前所找到的最大元素的位置,则a(k)就是当前找到的最大元素,如果a(j)大于a(k),则kj,a(j)代替a(k)成为当前找到的最大的元素。因此条件是:a(k)a(j)。(3)程序中画线处是两数交换的第三句,x是a(i)与a(k)数据交换的临时变量,因此该空应该填:a(k)x(也

18、可以参考b(i)与b(k)的数据交换)。答案(1)选择排序(2)a(k)a(j)或a(j)a(k)a(k)x13一次运动会上,某组6位选手的百米成绩(单位:秒)分别是“14.1、12.3、11.2、14.8、13.9、11.0”,若使用选择排序法将该组的成绩按第一名、第二名、第三名的顺序排序,则第一次交换数据后的顺序是()A14.814.112.311.213.911.0B11.012.311.214.813.914.1C14.812.311.214.113.911.0D11.014.112.311.214.813.9解析选择排序算法,每次找出待排区域的最小数和待排区域的第一个数进行交换。因此

19、作为第一次数据交换,则选择数列中最小的数11.0和第一个位置上的数14.1进行交换,得到数列11.012.311.214.813.914.1,要注意此处是百米成绩,排序顺序为升序。答案B14(20159月浙江选考模拟)编写VB程序,实现如下功能:在文本框Text1中输入一个整数,单击“查找删除”按钮Command1,采用对分查找法在数组A(从小到大排列,并显示在标签Label1中)中查找该数。若找到,则从数组A中删除该数(该数后面的数组元素都前移一位),并在标签Label2中显示删除后的结果(运行效果如图所示);否则,在标签Label2中显示“该数没有找到”。实现上述功能的VB代码如下,但加框

20、处代码有错,请改正。Dim A(1 To 10) As Integer用于保存10个按从小到大顺序排列的整数Form_Load事件过程产生10个整数,按升序保存在数组A中,并在标签Label1中显示Private Sub Form_Load()代码略End SubPrivate Sub Command1_Click()Dim i As Integer,j As Integer,m As Integer,k As IntegerDim x As Integer,f As Boolean变量f用于标记是否在数组中找到xxVal(Text1.Text)i1:j10fFalseDo While(ij)

21、And (fFalse)mInt(ij)/2)If A(m)x Then fTrueIf Then im1 Else jm1(1)LoopIf fTrue ThenFor km To 9(2)Next kLabel2.Caption“”For k1 To 9Label2.CaptionLabel2.CaptionStr(A(k)“”Next kElseLabel2.Caption“该数没有找到”End IfEnd Sub解析本题考查VB对分查找算法及对分查找中数的前移一位。(1)根据题意,数组A的数是从小到大排列的,阅读程序发现m变量是中间位置,If条件成立时,im1,反之jm1,则找x需要在

22、整个数列的后半部分中找,表示x的值大于第m位置上的数,即数x满足A(m)x或xA(m)。(2)找到的数不保留,后面的数依次前移一位,即A(k)A(k1)。答案(1)A(m)xks5u或xA(m)(2)A(k)A(k1)15某次测验后,一位同学利用VB编写了一个查分系统。他首先把班级所有同学的学号、姓名、总分及名次数据存放在名为“student.accdb”的info表中。查分系统的功能如下:在文本框Text1中输入学号,单击“开始查找”按钮,若找到该学号,则在标签Label4中该学生的学号、姓名、总分及名次;若找不到该学号,则显示“查无此人”。按此要求编写程序如下,但加框处代码有错,请改正。D

23、im a (1 To 50) As String用来存放学号数据Dim b (1 To 50) As String用来存放姓名数据Dim c (1 To 50) As Single用来存放总分数据Dim d (1 To 50) As Integer 用来存放名次数据Private Sub Form_Load()Dim conn As New ADODB.ConnectionDim rs As New ADODB.Recordsetconn.ConnectionString“ProviderMicrosoft.ACE.OLEDB.12.0;DATA Soure”App.Path“/Student

24、.accdb”conn.OpenSet rs.ActiveConnectionconnrs.Open “SELECT*FROM info”n0Do While Not rs.EOFnn1a(n)rs.Fields(“学号”)b(n)rs.Fields(“姓名”)c(n)rs.Fields(“总分”)d(n)rs.Fields(“名次”)rs.Move NextLooprs.Closeconn.CloseSet rsNothingSet connNothingEnd SubPrivate Sub Command1_click()Dim key As String,i As IntegerDim

25、find As BooleankeyText1.Texti1findTrueDo While And findIf keya(i) ThenfindFalseElseEnd IfLoopIf findFalse ThenLabel4.Caption“学号为”key“的名字为”b(i)“总分为”c(i)“名次为”d(i)ElseLabel4.Caption“查无此人”End IfEnd Sub程序中加框处改为:_。程序中加框处改为:_。解析本题重点考查顺序查找算法的实现。该算法的基本思想是:从第一个数据开始,按数据的顺序逐个将数据与给定的数据进行比较,若某个数据和给定数据相等,则查找成功,反之,

26、查找失败。本题是给定一个数据key,然后在数组a中逐一查找,当找到指定key时,findFalse,否则转向下一个元素查找,即ii1,直到查到最后一个元素c(n),故in,ii1。答案inii116(201510月浙江选考)n个数据的冒泡排序需要经过n1遍加工,每一遍加工自下而上比较相邻两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前数据,单击“排序”按钮Command1,在列表框List2中显示这些数据按升序排序后的结果,在标签Label

27、3中显示排序过程的加工遍数。运行效果如图所示。实现上述功能的VB代码如下,但加框处代码有错,请改正。Dim a(1 To 8) As IntegerDim n As IntegerPrivate Sub Form_Load()n8,排序前数据存储在数组a中,并在列表框List1中显示代码略End SubPrivate Sub Command1_Click()Dim flag As Booleanflag值为True表示一遍加工中发生过交换i1flagTrueDo While (1)flagFalseFor jn To i1 Step1If a(j)a(j1) Thenka(j):a(j)a(j

28、1):a(j1)kflagTrueEnd IfNext jii1LoopLabel3.Caption“排序过程的加工遍数为”(2)For i1 To nList2.Addltem Str(a(i)Next iEnd Sub解析本题考查冒泡算法。(1)冒泡算法需要经过n1遍加工,即条件1(in1);并且小刘用flag变量的值是否为True来表示某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工,即条件2(flagTrue);这两个条件其中之一若不成立,循环即终止,故条件为(in1 And flagTrue)。(2)冒泡算法需要经过n1遍加工,第1遍加工时,i1,冒泡结束,i2,数组变量a(1)中存放最小值4;第2遍加工时,i2,冒泡结束,i3,数组变量a(2)中存放第二小值37第4遍加工时,i4,冒泡结束,i5,冒泡结束,i6,数组变量a(5)中存放第五小值45,因没有数据交换,即FlagFalse;条件(in1 And flagTrue)不成立,Do While循环即终止。此时i值为6,实际排序过程的加工遍数为i1,故输出Str(i1)的值。答案(1)in1 And flagTrue(2)Str(i1)版权所有:高考资源网()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿园

网站客服QQ:123456
免费在线备课命题出卷组卷网版权所有
经营许可证编号:京ICP备12026657号-3