充值活动已开启,快来参与吧 关闭充值活动
当前位置:手动组卷 /高中信息技术 /按知识点
选择知识点
最新上传 最多使用
  • 1. (2023高二上·浙江期中) 有n个从小到大排列的整数依次存储在列表nums中,现要求将上述n个数的平方按从小到大的顺序依次存入列表ans中。如nums = [-4,-1,0,3,10],则ans = [0,1,9,16,100]。
    1. (1) 实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。

      # 输入n个数从小到大依次存储到列表nums中,代码略

      k = -1

      for i in range(n):

          if nums[i] < 0:

              k = i

          else:

              break

      ans = []

      i, j = k, k + 1

      while i >= 0 or j < n:

          if i < 0:

              ans.append()

              j += 1

          elif j==n:

              ans.append(nums[i] * nums[i])

             

          elif :

              ans.append(nums[i] * nums[i])

              i -= 1

          else:

              ans.append(nums[j] * nums[j])

              j += 1

      print(ans)

    2. (2) 若输入nums的数据为[-4,1,4],则输出ans的值为
  • 1. (2023高二上·绍兴期中) lst1和lst2都是升序排序的列表,执行如下Python程序段:

    result=[]

    i=0#用于遍历1st1

    j=0#用于遍历1st2

    while i<len(lst1) and j<len(lst2) :#①

        if lst1[i]<lst2[j]:

            result.append(lst1[i])

            i+=1

        else:

            result.append(lst2[j])

            j+=1

    while i<len(lst1):

        result.append(lst1[i])  #②

        i+=1

    while j<len(lst2):

        result.append(lst2[j]) #③

        j+=1

    下列说法不正确的是(   )

    A . 程序段①执行后,result可能与lst1相同 B . 程序段①执行后,result可能与lst2相同 C . 在一次程序运行中,②处代码和③处代码可能都被执行 D . 程序执行后,列表result中的元素升序排序
  • 1. (2023高二上·余姚月考) 有如下Python程序段:

    a=[27,5,25,36,78]

    f=[False]*5

    i=0

    while i<4 and not f[i]:

        for j in range(4, i, -1):

            if a[j]<a[j-1]:

                a[j], a[j-1]=a[j-1], a[j]

                f[i]=True

        i+=1

    执行该程序段后,数组f中值为True的元素个数是(   )

    A . 1 B . 2 C . 3 D . 4
  • 1. (2023高二上·余姚月考) 分组冒泡排序。分别对数组a的奇数和偶数位置的元素进行冒泡排序,即采用“跳跃式冒泡”的方法,每次跳跃的步长为2,将数组分成2个子序列,分别对这2个子序列进行排序。例如,对数组a=[6,3,5,4,1,2,8,7]进行分组跳跃式升序冒泡排序,排序后的数组a=[1,2,5,3,6,4,8,7]。
    1. (1) 对数组a=[4,5,2,9,6,7,10,3,8,1]进行分组跳跃式升序冒泡排序,则排序后的数组
    2. (2) 实现上述功能的Python程序如下,请在划线处填入合适的代码。

      import random

      n=8

      a=[random.randint(1 ,9) for i in range(n)]

      for i in range(0,n,)

          forj in range()

              if a[j]<a[j-2]:

                  a[j],a[j-2]=a[j-2],a[j]

    3. (3) 将分组跳跃式冒泡排序推广到每次跳跃的步长为m的情形,例如对数组a=[6,3,5,4,1,2,8,7]进行分组跳跃式升序冒泡排序,当m=3时,排序后的数组a=[4,1 ,26,3,5,6,7]。

      相关代码如下,请在划线处填入合适的代码。

      import random

      m=int(input(“请输入步长m:”))

      n=8

      a=[random.randint(1,9) for i in range(n)]

      print(“排序前”,a)

      for i in range()

          for j in range()

              if a[j]<a[j-m]:

                  a[j],a[j-m]=a[j-m],a[j]

  • 1. (2023高三上·浙江月考) 某工厂每天会收到多个订单,有 n 台机器对零件进行加工。为减少机器的损耗,需要在满足所有订单加工的情况下(订单即到即加工),机器开启数量尽量少。若开启 n 台机器不能满足订单即到即加工,则计算所有订单最少的平均等待时间。若给定某天内所有的订单信息,请计算需要开启的机器数量以及订单平均等待时间,代码运行效果图如图所示(注意:若上一个订单结束时间为 9:00,下一个订单开启时间最早为 9:00)。

    请回答下列问题:

    1. (1) 上图所示的例子中,若机器有 10 台,则只需要开启台机器。
    2. (2) 定义如下 data_sort(a)函数,参数 a 为列表,列表中每个元素包含三个数据项,依次分别对应订单批次、到达时间、加工时间(时间均转为分钟)。该函数实现将列表a 按照订单到达时间升序排序。

      def data_sort(a):

          for i in range(len(a)):

              for j in :

                  if   ①    :

                      a[j], a[j+1] = a[j+1], a[j]

      ①划线处填入的语句为,可实现上述功能。

      ②若将加框处语句写错为 range(i,len(a)-1),则下列 4 组数据中,若列表a 的值为(单选,填字母)不能测试出问题。

      A. [['A1',100,30],['A2',120,30],['A3',110,30],['A4',140,30],['A5',130,30]]

      B. [['A1',120,30],['A2',110,30],['A3',100,30],['A4',130,30],['A5',140,30]]

      C. [['A1',110,30],['A2',140,30],['A3',130,30],['A4',100,30],['A5',120,30]]

      D. [['A1',110,30],['A2',120,30],['A3',130,30],['A4',140,30],['A5',100,30]]

    3. (3) 实现计算开启机器数量的部分 Python 程序如下,请在划线处填入合适的代码。

      def huan(n):

          #将分钟转换为时间AA:BB 格式,返回值为字符串,代码略#读取文件中的信息,并存储在列表 order 中,代码略data_sort(order)

      n=int(input("机器数量:")) for i in range(len(order)):

          order[i].append(-1)#order[i]追加一个元素-1 mach = [-1] * n

      num, wait = 0, 0

      for i in range(len(order)):

          k = -1

          time = -1

          for j in:

              t1 = mach[j]

              if k == -1:

                  k = j

                  time = order[t1][1]+order[t1][2]

              else:

                  t2 = mach[k]

                  if order[t1][1]+order[t1][2]<order[t2][1]+order[t2][2]:

                      k = j

                      time = order[t1][1]+order[t1][2]

          if k == -1 or num < n and:

              mach[num] = i

              num += 1

          else:

              order[i][3] = mach[k]

              mach[k] = i

              if time > order[i][1]:

                  wait += time-order[i][1]

                  order[i][1] = time if num < n:

          print("只需开启"+str(num)+"台机器") else:

          print(str(n)+"台机器全部开启,订单平均等待"+str(round(wait/len(order),2))+"min") for i in range(num):

          print('第'+str(i+1)+'台机器:')

          p = mach[i]

          ans = ''

          while p!=-1:

              ans = order[p][0]+':'+huan(order[p][1])+'~'+huan(order[p][1]+order[p][2])+',' + ans

              p = 

          print(ans[:-1])

  • 1. (2023高三上·浙江月考) 有如下程序段:

    s = input()

    head = 0; tail = 0; ans = 0; tmp = '' q = ['']*100

    flag = True

    for i in range(len(s)):

        if s[i] == ',':

            while head!=tail:

                tmp += q[head]

                head += 1

                if flag and head < tail:

                    head += 1

                flag = not flag

            ans += int(tmp)

            tmp = ''; flag = True

        elif '0'<=s[i]<='9':

            q[tail] = s[i]

            tail += 1

     若输入 s 为“1-500,2023900-,”,执行该程序段,变量 ans 的值为 (   )

    A . 100 B . 22300 C . 22351 D . 22400
  • 1. (2023高三上·浙江月考) 某公路由于长期没有维修,路上出现了很多个坑。为了尽快填补好这些坑,交通管理部门决定对m处地段采取交通管制。将该公路看成一条直线,坑就是直线上的坐标点,坑所在的路段需要封控管制。例如某管制路段2~4,需封控2、3、4路段。交管部门为了减少管制路段的长度,希望将这n个坑分成m段(一段可以只有一个坑),使得这m段公路的总长度最小。请你根据n个坑的位置(位置已按照从小到大进行排序),计算管制路段最小的总长度。代码运行效果如图所示。

    请回答下列问题:

    1. (1) 上图所示的例子中,若将路段数量修改为5,则管制路段总长度为
    2. (2) 实现上述功能的Python 程序如下,请在划线处填入合适的代码。

      m = int(input("路段数量:"))

      s = input("坑的坐标依次为:").split(',')

      n = len(s)

      for i in range(n):

          s[i] = int(s[i])

      flag = [False] * (n-1)

      for i in range(1, m):

          k = -1

          for j in range(n-1):

              if:

                  if k == -1 or s[j+1]-s[j] > s[k+1]-s[k]:

                      k = j

          flag[k] = True

      print("维修管制的路段依次为:")

      dis, t = 0, 0

      for i in range(n-1):

          if flag[i]:

              print(s[t],"~",s[i])

              dis += s[i]-s[t]+1

              

      print(s[t],"~",s[n-1]) 

      dis =  

      print("管制 总长度为",dis)

  • 1. (2023高三上·滨城开学考) 关于对数据的排序,以下说法中正确的有(   )
    A . 在Word中可以插入表格,Word提供了对表格中数据进行排序的功能 B . 在PowerPoint中也可以插入表格,并且也提供了对表格中数据进行排序的功能 C . 利用Excel软件可以很方便地进行排序,并且Excel中还提供了自定义排序的功能 D . 用编程来解决排序问题也是一种常用的方法
  • 1. (2023高三上·滨城开学考) 有如下VB程序段:

    i = 0: j = 1

    Do While j <= 5

      If a(j) <> 0 Then i = i + 1: a(i) = a(j)

      j = j + 1

    Loop

    For j = i + 1 To 5

      a(j) = 0

    Next j

    数组元素a(1)到a(5)的值依次为“0,20,0,4,31”,执行该程序段后,a(1)~a(6)各元素的值依次为(  )

    A . 4,20,31,0,0 B . 31,20,4,0,0 C . 0,0,20,4,31 D . 20,4,31,0,0
  • 1. (2023高三上·浙江月考) 对一乱序英语词汇表,要对其进行升序排序,排序过程不考虑大小写。实现该功能Python代码如下:

    #读取词汇表,存入列表lis,代码略

    n = len(lis)

    b=-1

    for i in range(n):

        a=i

        _____①______

            lis[n-1],lis[a]=lis[a],lis[n-1]

            a+=1

        if a==n-1:

            b=i

            break

        for j in range(n-1,i,-1):

            _____②_____

                lis[j],lis[j-1]=lis[j-1],lis[j]

    if b!=-1:

        for i in range(b,n):

            c=lis[i]

            d=c.lower()

            j=0

            while lis[j].lower()<d and j!=b:

                j=j+1

            __________③____________

                lis[k]=lis[k-1]

            lis[j]=c

    #输出为txt文件,代码略

    1. (1) 若lis=['Slaves','get','your','ass','back','here'],则排序后lis的值为.
    2. (2) 补全代码

1 2 3 4 5 下一页 共79页