浙江省杭州市浙江大学附属中学2025-2026学年高一上学期12月月考技术试题-高中信息技术

试卷更新日期:2026-01-04 类型:月考试卷

一、选择题(本大题16小题,每小题3分,共48分。在每小题给出的四个选项中,只有一个是符合题目要求,不选、多选、错选均不得分)

  • 1. 十进制数29转换为二进制数是(     )
    A、11011 B、11101 C、11110 D、10111
  • 2. 下列关于字符编码的描述,正确的是(     )
    A、字符"A"的ASCII码值比"a"的ASCI码值大32 B、根据GB2312编码,"浙大附中"这4个汉字共占8bit C、已知小写字母"i"的ASCI码是49H,则小写字母"j"的ASCII码是50H D、汉字的输入码有多种,常用的输入码有拼音码、五笔字形码等
  • 3. 下列关于数制的描述,正确的是(     )
    A、在16进制数4ADH中,4的权值是163 B、用5位二进制可以表示的最大十进制数是32 C、若二进制数1010110,去掉末位数0,则新数101011是原数的1/2 D、十进制数30转换为十六进制数是ID
  • 4. 班级选举班干部:如果候选人得票超过半数则当选,否则需要进行第二轮投票。这种根据条件选择不同执行路径的情境对应哪种程序结构(     )
    A、顺序结构 B、分支结构 C、循环结构 D、数据结构
  • 5. 浙大附中高一年级1班有48名同学,如果用二进制给1班的每位同学编号,至少需要几位二进制(     )
    A、4 B、5 C、6 D、7
  • 6. 下列Python变量名合法的是(     )
    A、_3cin B、cin&3 C、3cin D、cin-3
  • 7. 下列表达式中,值为True的是(     )
    A、not(3>2 and 4<5) B、"abc"<"ab2" C、2*3+len("0123")==100**0.5 D、18%8+3>22//4
  • 8. 已知字符串s="python_v3.9",则下面说法正确的是(     )
    A、len(s)的值为9 B、s[1:len(s):2]的值为"yhnv." C、s[-1:-5]的值为"9.3v" D、"on" in s[:5]
  • 9. 已知a=-2,b=15/4,则表达式round(b,1)+abs(a)的值是(     )
    A、5.75 B、175 C、5.7 D、5.8
  • 10. 将某次比赛最后得分用字典存储:dict={"第 1 名":50,"第 2 名":48,"第 3 名":47,"第 4 名":45,"第5名":44,"第6名":42 }。现需要查询第3名成绩,下列表达式正确的是 (    )
    A、dict{2} B、dict[2] C、dict{"第3名" } D、dict["第3名"]
  • 11. 某学校篮球馆的使用规则是:下午4:00-5:00对高一学生开放,5:00-6:00对高二学生开放,6:00后闭馆清洁。设t为当前时间(使用24小时制,如16.5表示下午4:30),下列Python代码中能正确描述这一情景的是(     )

    A.

    if t>=18:

           print("闭馆清洁")

    elif t>=17:

           print("高二学生使用")

    else:

           print("高一学生使用")

    B.

    if 16<=t<17:

           print("高一学生使用")

    elif 17<=t<18:

           print("高二学生使用")

    else:

           print("闭馆清洁")

    C.

    if t<17:

           print("高一学生使用")

    elif t<18:

           print("高二学生使用")

    else:

           print("闭馆清洁")

    D.

    if 16<=t<17:

           print("高一学生使用")

    elif 17<=t<18:

           print("高二学生使用")

    elif t>=18:

           print("闭馆清洁")

    A、A B、B C、C D、D
  • 12. 某算法的部分流程图如图所示。当输入x的值是10100时,该算法的输出结果是(       )

    A、5 B、12 C、13 D、20
  • 13. 某Python程序如下:

    n=int(input("请输入一个整数:"))

    sum=0

    while n != 0:

           sum=sum+n%10

           n=n//10

    print(sum)

    程序运行后,输入n的值为321,输出的结果是(     )

    A、3 B、5 C、6 D、9
  • 14. 有Python程序代码如下:

    listl=[7,3,2,9,8,1,4]

    m1=m2=list1[0]

    for i in range(1,len(list1)):

           if m1< list1[i]:

                 m1=list1[i];tl=i

           elif m2 > list1[i]:

                 m2=list1[i]; t2=i

    print(tl,t2)

    执行上面程序,变量t1、t2输出的结果是(     )

    A、9   1 B、1   9 C、3   5 D、5   3
  • 15. 有如下 Python 程序段:

    a=[9,11,2,0,-4,8,-3,5]

    f=[0]*8

    i=0

    while a[i]>0 and i<len(a):

        f[i]=1

    i+=1

    程序运行后, 列表 f 的值是(   )

    A、[1,1,1,0,0,0,0,0] B、[1,1,1,0,0,1,0,1] C、[1,1,1,1,0,1,0,1] D、[1,1,1,1,0,0,0,0]
  • 16. 某python程序如下:

    a=[1,0,2,4]

    s=k=0

    for i in range(4):

           a[i]+=k

           s+=a[i]

           k=s

    print(s)

    该程序运行后,s的值为(     )

    A、16 B、21 C、14 D、7

二、非选择题(本大题共6小题,第17题4分,18题4分,19题4分,20题4分,21题9分,22题12分,第23题15分,共52分)

  • 17. 运行如下程序,输出的结果是

    s=0

    for i in range(1,11,2):

           s=s+i

    print(s)

  • 18. 运行如下程序,输出的结果是

    s,i=1,1

    while i < 8:

           if i%3 != 0:

                 s*=i

           i+=1

    print(s)

  • 19. 运行如下程序,输出的结果是

    lst=[1,2,3,4,5]

    for i in range(len(lst)):

           lst[i]=lst[i]*2

    print(lst[4])

  • 20. 运行如下程序,输出的结果是

    s="beauty!"

    result=""

    for i in range(len(s)):

           if i % 2 == 0:

                 result=result+s[i]

           else:

                 result=s[i]+result

    print(result)

  • 21. 以下程序实现功能:从输入的字符串中,寻找ASCI码最小的字符,并输出该字符的内码(二进制)。

    s=input()

    minc=s[0]

    for i ins[l::]:

           if ①:

                 minc=i

    print("ASCII码值最小的字符是:"+minc)

    n= ②     #将该字符的ASCI码值赋值给n

    res="

    while n > 0:

           res=str(n%2)+res

           ③

    print("ASCII码值最小的字符"+minc+"的二进制内码是"+res)

  • 22. 下面的程序能提取字符串中的数字字符转换成整数(连续的数字字符串转换成一个整数),并将这些整数求和后输出,请填空。

    s="abl2cd34ef56"

    res=0

    ①

    while i < len(s):

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

                 num=0

                 while i < len(s) and '0' <= s[i] <= '9':

                        num= ②

                        i+=1

                 ③

           else:

                 ④

    print(res)

  • 23. 某校生物兴趣小组记录校园内一周(6天)的植物观察情况。每天用1个字母表示观察到的主要植物类型:

    'F':开花植物(基础分3分)

    'L':落叶植物(基础分2分)

    'G':常绿植物(基础分1分)

    'O':未观察或其它(基础分0分)

    一周6天的观察记录为一个6个字符的字符串,例如:"FFLGOF"。小组希望分析观察记录的质量。

    分析规则:

    基础分计算:根据每天的观察类型计算基础分。

    连续观察奖励:连续观察同类型植物有额外加分。从连续的第2天开始,每天额外加1分。

    观察多样性奖励:一周内,每出现一种不同的植物类型('F'、'L、'G'、'O'),奖励2分。

    请回答下列问题:

    (1)对于观察记录"FFLGOF",总分为分。

    (2)编写程序,输入一个长度为6的字符串(仅包含T'、'L'、'G'、'O'),计算并输出总分。

    请在划线处填入合适的代码。

    record=input("请输入6天观察记录(F/L/G/O):")

    #使用字典存储基础分

    base_score={'F':3,'L':2,'G':1,'O':0}

    score=0

    prev_char="       #前一天观察类型

    count=1       #当前连续天数

    types="       #记录出现过的植物类型

    for i in range(len(record)):

           ch=record[i]

           # 基础分

           score+=       #①

           # 连续奖励判断

           if ch == prev_char:

                 +=1       #②

                 if count > 1:

                               score+=1

           else:

                 count=       #③

                 prev_char=ch

           #记录植物类型

           found=False

           for j in range(len(types)):

                 if types[j] == ch:

                        found=True

                        break

           if not found:

                 types=types+ch

    #计算多样性奖励

    d_count=0

    for k in range(len(types)):

           d_count+=1

    disty=d_count*2

    score+=       #④

    # 输出结果

    print("总得分:",score)