课件编号6033359

2020版高考信息技术一轮浙江专用版 第九单元 算法的程序实现(课件+习题,24份打包)

日期:2024-05-04 科目:信息技术 类型:高中课件 查看:75次 大小:4196668Byte 来源:二一课件通
预览图 0
2020版,程序,打包,24份,习题,课件
    第九单元 算法的程序实现 单元小结 知识系统构建 / 第九单元 算法的程序实现 单元检测题组 /时间:40分钟  /分值:50分 一、选择题(每题3分,共27分) 1.对包含100个元素递增排序的数组a,采用对分查找法找某关键字,若查找不成功,则关键字的比较次数最多是(  ) A.100 B.6 C.7 D.8 答案 C 本题考查对分查找的基本原理。n个元素中查找不成功的最多比较次数为[log2n]+1。 2.有如下某排序算法程序段: For i=1 To 3  k=i  For j=i+1 To 6   If a(j) > a(k) Then k=j  Next j  t=a(i):a(i)=a(k):a(k)=t Next i 数组元素a(1)到a(6)的值依次为“8,2,9,3,5,1”,经过该程序段“加工”后,数组元素a(1)到a(5)的值依次为(  ) A.8,2,9,3,5,1 B.9,2,8,3,5,1 C.9,8,5,2,3,1 D.9,8,5,3,2,1 答案 D 本题考查排序算法及其程序的实现。i=1时,代入循环体,计算得到数组元素的值依次为9,2,8,3,5,1。i=2时,代入循环体,计算得到数组元素的值依次为9,8,2,3,5,1。i=3时,代入循环体,计算得到数组元素的值依次为9,8,5,3,2,1。 3.某VB程序段如下: For i=1 To 6  j=7  Do While j > i   If a(j)>a(j-1) Then    a(j)=a(j)+a(j-1)    a(j-1)=a(j)-a(j–1)    a(j)=a(j)-a(j-1)   End If   j=j-1  Loop Next i For i=3 To 6  s=s+a(i) Next i Label1. Caption=Str(s) 已知数组元素a(l)到a(7)的值依次为“8, 2, 3, 7, 10, 6, 5”,则执行该程序段后,标签Label1中显示的是(  ) A.21 B.26 C.41 D.18 答案 A 首先理解 a(j)=a(j)+a(j-1),a(j-1)=a(j)-a(j-1),a(j)=a(j)-a(j-1)这三个语句实际上就是将a(j)与 a(j-1)两数据交换。两数交换的经典写法是:t=a,a=b,b=t。程序首先实现数组a中的数据降序,得到“10,8,7,6,5,3,2”,而后将 a(3),a(4),a(5),a(6)的值相加输出。 4.有如下程序段: Dim a(4) As Integer Private Sub Command1_Click()  Dim s As String a(1)=10:a(2)=30:a(3)=20:a(4)=40  s=doit(4)  Label1.Caption=s End Sub Function doit(k As Integer) As String  If k=1 Then   doit=Str(a(1))   Else   doit=doit(k-1) & Str(a(k))  End If End Function 程序运行后,标签Label1中显示的内容是(  ) A.10 20 30 40 B.10 30 20 40 C.40 30 20 10 D.40 20 30 10 答案 B 本题考查递归程序。递归调用过程如下: / 5.用以下对分查找算法:在一个包含有重复元素且从小到大排序(相等元素排在一起)的整数数组a中,查找某个重复出现的整数key,其中数组元素的总个数是n。 i=1: j=n Do While i <=j   m=(i+j) 2   If a(m) < key Then i=m+1   Else    j=m-1   End If Loop 那么执行该程序后,下列说法正确的是(  ) A.程序可以找到重复元素key最开始出现的位置,该位置信息由变量i指示 B.程序可以找到重复元素key最后出现的位置,该位置信息由变量i指示 C.程序可以找到重复元素key最开始出现的位置,该位置信息由变量j指示 D.程序可以找到重复元素key最后出现的位置,该位置信息由变量j指示 答案 A 本题考查对分查找算法的理解和应用。由程序可知,当i≤j时程序要循环,而循环时,当a(m)≥key时,变量j移动,这就表明当找到key时,指示变量j势必会跑到key所在位置的前面去,key所在位置由i来指示。由升序排序和j的移动方向可知,这是起始位置。 6.有以下VB程序段 i=1: j=10: flag=True: cs=0 Key=Int(Rnd()*10)+28 Do While i <=j And flag=True  m=(i+j) 2 : cs=cs+1  If a (m)=Key Then   flag=False  Else If a(m) < Key Then   i=m+1  Else   j=m-1  End If Loop 数组元素a(1)到a(10)依次是3 10 17 23 27 30 35 40 45 50,变量cs的值可能是(  ) A.1或2 B.2或3 C.3或4 D.4或5 答案 C 本题考查对分查找,key= ... ...

    ~~ 您好,已阅读到文档的结尾了 ~~