充值活动已开启,快来参与吧 关闭充值活动
当前位置:手动组卷 /高中信息技术 /按章节
最新上传 最多使用
  • 1. (2024高二下·绍兴期中)  某英文逐词翻译软件,不区分大小写。为了加快翻译速度,在翻译的过程中,软件会将最近出现过的一些单词存入内存。若内存中有该单词则直接翻译,否则查外存词典并将该单词存入内存。内存中每个单元存储一个单词,存满时会清空最早进入内存的单词,腾出单元存放新单词。编程模拟软件的翻译过程,输入一个仅含英文、逗号或空格字符的英语句子,以句号结束,计算翻译软件需要去外存查找多少次词典,在翻译开始前,内存中没有任何单词。运行界面如图所示。

    1. (1) 若上图中的内存容量改为 7,则需要去外存查找次词典。
    2. (2) 实现上述功能的 Python 程序如下,请在划线处填入合适的代码。

      m = int(input("请输入内存容量:"))

      s = input("请输入英语句子:")

      dic = {}

      head = tail = 0

      word = ""

      for ch in s:

       if ch == " " or ch == "," or ch == ".":

       if word not in dic or dic[word] < head:

       if tail - head == m:

                      

       dic[word] = tail

       tail + = 1

       word = ""

       else:

       if :

       ch = chr(ord(ch) + 32)

       word += ch

      print("需要去外存查找",,"次词典")

  • 1. (2024高二下·绍兴期中)  某平台新上架影片推荐度的计算方式为:由5位专业评审与5位大众评审给影片评分,评分区间为[1,10],将专业评审均分的60%与大众评审均分的40%求和后取整数部分,根据得分确定等级(分值与等级的关系如图a所示)。评委打分情况放在“dc.txt”文件中,如图b所示,其中“A”表示专业评审,“B”表示大众评审,“A1-5”表示第1位专业评审给出5分。

    图 a

    图 b

    请回答下列问题:

    1. (1) 若专业评审均分为 5,大众评审均分为 6,则该影片等级为(填数字)颗星。
    2. (2) 实现上述功能的部分 Python 程序如下,请在划线处填入合适的代码。

      f=open(" ",encoding="utf-8")

      line=f.readline() #读取第一行,保存在字符串 line 中

      pro,pub=0,0

      while line:#当 line 非空

          x=

          t=int(line[3:])

          if x=="A":

              pro+=t

          elif x=="B":

             

              line=f.readline() # 继续读取一行

      score=int(pro/5*0.6+pub/5*0.4)

      grade=

      print("推荐度为:","★"*grade)

  • 1. (2024高二下·绍兴期中)  有如下Python程序段:

    s=input()

    t=0

    mw=''

    for i in range(len(s)):

        ch=s[i]

        if '0'<=ch<='9':

            t=t*10+int(ch)

        elif ch=='-':

            mw+=chr(t%26+ord('A'))

            t=0

        else:

            mw+=ch

    print(mw)

    执行该程序段输入“29-052-24!”(不包括双引号),则输出的结果是(   )

    A . DA! B . DA C . DAY D . DAY!
  • 1. (2024·) 在计算机的操作系统中,经常需要给应用程序“分配内存”和“释放内存”。若有大小为1024B的内存,如1图所示:

    使用列表["+",5]表示申请连续5B的内存,使用列表[2,2]表示回收位置2开始连续2B的内存。若指令集表示为:order=[["+",5],[2,2],["+",8],[8,3]]。随着指令集被执行,1024B连续的内存块会被分割成若干个占用内存空闲内存。为方便起见,“占用内存”用1表示,“空闲内存”用0表示,故执行上述指令集后,内存占用情况如2图所示:

    若将空闲块用链表组织起来,就可以快速查找空闲块和删除空闲块。把连续的空闲块定义为一个节点,每个节点由[空闲块起点, 空闲块长度, 下一个空闲块位置]三部分内容构成。根据2图内存占用情况,创建的空闲块链表如3图所示:

    1. (1) 根据2图所示的内存占用情况,执行指令[4,4]后(连续空闲块要合并),内存中“空闲块”的数量变为个。
    2. (2) 根据内存占用情况列表allot,创建空闲块链表代码如下:

      def linkList(allot): #linkList函数功能:根据内存占用0/1列表allot,创建空闲块链表link

       link = [ [-1,-1,-1] ] #链表包含一个空头节点

       head = tail = 0 ; n = len( allot ) ; i = 0

       while i < n :

       if allot[ i ] == 0 :

       j = i + 1

       while j<n and allot[ j ] == 0: 

       j = j + 1

       link.append( [ i , j – i , -1 ] )

       link[ tail ][ 2 ] =     ▲

       tail = len( link ) - 1

                  

       else:

       i += 1

      return head , link

      请在▲处填入合适的代码

      若将加框处的代码修改为i = j,是否影响程序的执行结果(选填:是/否)。

    3. (3) 模拟上述内存操作的Python程序如下,请在划线处填入合适的代码。

      #通过文件读入内存分配表allot和指令集order,其代码略。

      head , link = linkList ( allot )

      for i in range( len( order ) ):

       if order[ i ][ 0 ] == " + ": #必须分配连续的空闲块,且由第一个满足空间大小的节点分配

       p = head ; q = link[ head ][ 2 ]

       while 

       p = q ; q = link[ q ][ 2 ]

       if  q == -1:

       print( "内存不足!" )

       else:

       if link[q][1] == order[i][1]: 

                      

       else:

       link[ q ][ 0 ] = link[ q ][ 0 ] + order[ i ][ 1 ]

       link[ q ][ 1 ] = link[ q ][ 1 ] - order[ i ][ 1 ]

       else:

       p = head ;  q = link[ head ][ 2 ]

       while q != -1 and link[ q ][ 0 ]<order[ i ][ 0 ]:

       p = q ; q = link[ q ][ 2 ]

       if link[ p ][ 0 ] + link[ p ][ 1 ] == order[ i ][ 0 ]: #前面节点合并

       link[ p ][ 1 ] = link[ p ][ 1 ] + order[ i ][ 1 ]

       else:

       link.append([ order[ i ][ 0 ] , order[ i ][ 1 ] , q]) #添加节点

       link[ p ][ 2 ] = len( link ) - 1

                  p = link[ p ][ 2 ]

         if q != -1 and : #后面节点合并

       link[ p ][ 1 ] = link[ p ][ 1 ] + link[ q ][ 1 ]

       link[ p ][ 2 ] = link[ q ][ 2 ]

  • 1. (2024·) 某校为了支持学生的学习进步,特设补弱支持,每位学生可以根据自身学习情况,从语数英物化生政史地技这10门科目中,选择不超过两门科目作为自己的补弱科目,这些选择的数据已存储于"student.xlsx"文件中,部分数据如1图所示:

    1图

    2图

    1. (1) 首先,需要对数据进行整理,筛选出那些补弱科目数不符合学校规定(超出两门)的学生记录,以便通知他们重新选择补弱科目,Python程序如下:

      import pandas as pd

      import matplotlib.pyplot as plt

      plt.rcParams['font.sans-serif'] = ['KaiTi','SimHei','FangSong'] #设置中文字体

      df = pd.read_excel( "student.xlsx" )

      df_err = df[    ▲    ]

      请在▲处填入合适的代码

    2. (2) 数据整理并修正后,分析各班各科目的选择人数,以及各科目选择人数占总人数比例。

      km = ["语文","数学","英语","物理","化学","生物","政治","历史","地理","技术"]

      df1 = df . groupby( "班级" ) . 

      print( df1 ) #2图所示

      #删除“姓名”和“科目数”列

      df2 = df1 . drop(["姓名","科目数"] , axis = 1)

      g = df2 . sum() #g为Series对象

      #统计各科目的人数占总人数的比例

      for k in km:

       per = / len( df ) * 100

      print(k , "比例为:" , round(per,2) , "%") 

      x = 

      y = g . values

      plt.bar( x , y ) #3图所示

      plt.title("各科补弱比例对比") 

      plt.show()

  • 1. (2024·) 为支持公益事业,彩票中心设立了一个彩票项目。每张彩票上印有 7个各不相同的号码(号码范围从1到33)。每次开奖时,会随机生成一个由7个各不相同的号码构成的中奖号码。彩票的兑奖规则如下:“特等奖”彩票上的7个号码与中奖号码全部相同;“一等奖”有6个号码相同;“二等奖”有5个号码相同;“三等奖”有4个号码相同;“四等奖”有3个号码相同;“五等奖”有2个号码相同;“六等奖”有1个号码相同。兑奖时不考虑号码在彩票和中奖号码中出现的具体位置。例如,若中奖号码为23,31,1,14,19,17,18,而某张彩票的号码为12,8,9,23,1,16,7,则该彩票中得五等奖,因为其中有两个号码(23和1)与中奖号码相同。

    彩票中心编写一个程序,功能为:随机生成7个不重复的中奖号码,并读取文件“彩票记录.txt”(该文件存储所有已售出的彩票号码),最后根据兑奖规则输出开奖结果,运行界面示例如下:

    1. (1) 假设中奖号码为23,31,1,14,19,17,18,彩票为11,8,9,32,1,16,7,中奖结果为
    2. (2) 实现上述功能的Python程序如下,请在划线处填入合适的代码。

      import random #随机生成7个[1,33]范围内不重复的中奖号码

      flag= [ 0 ] * 34 ; data = [ 0 ] * 7

      i = 0

      while i < 7 :

       t = random.randint( 1 , 33 )

       if  not flag[ t ]:

              

       i = i + 1

      flag [ t ] = 1

      print("中奖号码:" , data)

      #读取"彩票记录.txt"文件,存储到数组sale=[[12,8,9,23,1,16,7],[11,7,10,21,2,9,31]…],代码略。

       #num[0]表示特等奖个数,num[i]表示i等奖个数

      for i in range( len ( sale ) ) :

          cnt = 0

       for j in range ( 7 ) :

       if  sale[ i ][ j ] in data:

       cnt += 1

          num[] += 1

      print("彩票开奖结果:")

      for i in range( 7 ):

       s="特等奖一等奖二等奖三等奖四等奖五等奖六等奖"

       print(s[] , "产生:" , num[ i ] , "个")

    3. (3) 上述加框处代码,能否修改为“num = [ 0 ] * 7”,(选填:是/否)。
  • 1. (2024·) 有如下Python程序段:

    import random

    a = [ 0 ] *5 ; i = 0 ; flag = True

    while i < 5 :

        a[ i ] = random.randint( 1 , 8 )

        if i % 2 == 1 :

            a[ i ] = a[ i ] + a[ i - 1 ]

            flag = not flag

        elif a[ i ] % 2 == 0 and flag == False:

            i -= 1

     i += 1

    执行该程序段后,列表a的值不可能的是(   )

    A . [5, 12, 1, 3, 2] B . [3, 11, 3, 10, 1] C . [4, 5, 5, 11, 7] D . [3, 4, 6, 7, 7]
  • 1. (2024·) 有如下Python程序段:

    s = "Li20An24K04ao" ;  i = 0

    while i < len( s ) :

        if  "A" <= s[ i ] <= "Z" :

            s = s[ : i ] + s[ i + 1 : ]

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

            s = s[ : i ] + str( ( int(s[ i ]) + 8 ) % 10 ) + s[ i + 1 : ]

        else :

            s = s[ : i ] + chr( ( ord( s[ i ] ) – 95 ) % 26 + 97 ) + s[ i + 1 : ]

        i = i + 1

    执行上述程序后,s的值为(   )

    A . k08p0202co B . i08n0202cq C . i08p0202cq D . h28w22g82o
  • 1. (2024·)  有如下Python程序段:

    a = [ 5 , 4 , 2 , 1 , 3 , 6 ] ; q = [ 0 ] * 6 ; head = tail = 0

    for i in range( len( a ) ):

        if a[ i ] % 2 == 1 :

            q[ tail ] = a[ i ] ; tail = tail + 1

        elif head < tail :

            head += 1

    print( tail – head )

    执行该程序段后,输出结果为(   )

    A . 0 B . 1 C . 2 D . 3
  • 1. (2024·浙江) 若字符串s的值为"abcde",执行如下程序段后,变量 res 的值不可能是(   )

    from random import randint

    res=" "

    i,j=0,len(s)-1

    while i<len(s) and j>=i:

        if randint(0,1) == 0:          #randint(0,1)随机生成 0 或 1

            res+=s[i]

            i+=1

        else:

            res+=s[j]

            j-=1

    A . "abced" B . "aecbd" C . "aedbc" D . "edcba"
上一页 1 2 3 4 5 下一页 共203页