充值活动已开启,快来参与吧 关闭充值活动
当前位置:手动组卷 /高中信息技术 /按知识点
选择知识点
最新上传 最多使用
  • 1. (2023高二下·宁波期中) 某二分查找算法的程序段如下:

    a = [11,13,14,25,26,28,39,48]

    key=int(input("key="))

    n=len(a)

    i=0;j=n-1

    flag=False

    while i<=j and not flag:

        m=(i+j+1)//2

        if a[m]==key:

            flag=True

        if a[m]>key:

            j=m-1

        else:

            i=m+1

    若key输入的值是 39, 则运行程序段后,以下变量的值不正确的是 (     )

    A . flag = True B . i = 6 C . j = 7 D . m = 6
  • 1. (2023高一下·海安期中) 某电子字典产品,假设内部采用二分算法来查找单词,每查找一个中间值并进行大小比较约需0.1秒,现有一个单词库,内有已索引好的2023个单词,在该词库中找到某个单词所需时间最多不超过(    )秒。
    A . 0.1 B . 1.4 C . 1.1 D . 1.2
  • 1. (2023高一下·海安期中) 运用二分查找算法可以提高查找的效率,前提是待查找序列必须是(    )排序的。
    A . 递增 B . 递减 C . 有序 D . 无序
  • 1. (2023高一下·海安期中) 在序列“7,14,18,21,23,29,31,35,38,42,46,49,52”中用二分查找法查找数字“42”,一共找了(    )就找到了。
    A . 2次 B . 3次 C . 4次 D . 5次
  • 1. (2023·杭州模拟) 有如下Python程序段:

    import random

    a = [2,3,5,8,10,10,10,17,19,20]

    key = random.randint(1,30)

    # 随机生成[1,30]之间的整数

    i,j = 0,9

    while i <= j:

        m = (i + j) // 2

        if a[m] > key:

            j = m - 1

        else:

            i = m + 1

    print(j)

    执行该程序段,下列说法正确的是(   )

    A . 若key的值为10,则输出的值为3 B . 若输出的值为8,则key的值一定为19 C . 对于任意key值,语句“m=(i+j)//2”最少执行1次 D . 对于任意key值,语句“m=(i+j)//2”最多执行3次
  • 1. (2023·嘉兴模拟) 有如 Python 程序段:

    import random

    def find(x, y):

        m = (x+y+1)//2

        if a[m] == key:

            return m

        if a[m] > key:

            y = m-1

        else:

            x = m + 1

        return find(x, y)

    a = [2, 4, 6, 8, 10, 12, 14, 16]

    key=random.choice(a)     #从序列的元素中随机挑选一个元素

    i = 0;j = len(a) - 1

    xb = find(i, j)

    print(xb, key)

    上述程序执行完后,函数find被调用的最多次数是(   )

    A . 3 B . 4 C . 5 D . 6
  • 1. (2023·模拟) 某二分查找算法的Python程序如下:

    import random

    key=random.randint(0,4)*2+5

    n=10;ans=0

    a=[4,5,5,8,9,11,11,13,15,17]

    i=0;j=n-1

    while i<=j:

        m=(i+j)//2

        if a[m]<=key:

            i=m+1

        else:

            j=m-1

        ans+=a[m]

    print(ans)

    程序运行后,输出ans的值不可能是(   )

    A . 19 B . 27 C . 37 D . 44
  • 1. (2023高二下·浙江期中) 有如下Python 程序段:

    s=input("输入字符串:")

    n=len(s)

    i,j=0,n- 1

    result=""

    while i<n//2 and j>=n//2:

        if s[i]>s[j]:

            result+=s[i]; j-=1

        elif s[i]<s[j]:

            result+=s[j]; i+=1

        else:

            i+=1;j-=1

    print(result)

    执行该程序段,分别输入下列选项中的字符串,输出结果不为“555”的是(   )

    A . "51234" B . "12535" C . "54321" D . "55123"
  • 1. (2023高一下·香格里拉月考) 某对分查找算法的VB程序段如下:

    i=1 : j=6 : k=0

    key = Val( Textl.Text)

    Do Whilei<= j

        k=k+ 1

        m= Int((i +j)/2+0.5)

        If key = a(m) Then Exit Do

        If key< a(m) Then j=m-1 Else i=m+ 1

    Loop

    文本框Text1中输入27,执行该程序段后,k的值为2,则a(1)到a(6)各元素可能的值是(   )

    A . 12,45,27,31,78,95 B . 15,27, 56, 61,73,89 C . 89,73, 61,56,35,27 D . 13,31, 47,56,73,80
  • 1. (2023高三下·浙江月考) 有如下Python程序段:

    a=[5,14,3,12,6,7,3,9,20,1]

    l=min(a);r=max(a)

    #min 取列表最小值,max 取列表最大值

    maxi=3

    while l<=r:

        mid=(l+r)//2

        cnt=0

        for i in a:

            if mid<i:

                cnt+=1

        if cnt<maxi:

            r=mid-1

        else:

            l=mid+1

    上述程序段执行结束,下列说法正确的是:(   )

    A . a列表中第3大的数r B . cnt的值为2 C . l的值为12 D . mid=(l+r)//2代码执行3次
上一页 1 2 3 4 5 下一页 共66页