浙江省A9协作体2023-2024学年高二上学期信息技术期中联考试卷

试卷更新日期:2023-12-13 类型:期中考试

一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个符合题目要求)

  • 1. 下列关于数据的说法,不正确的是(   )
    A、数据的表现形式只能是数字 B、可以通过网络爬虫、传感器等方式自动采集数据 C、计算机数据的管理经历了人工管理、文件管理、数据库管理三个阶段 D、对数据进行加密可以提高数据的安全性
  • 2. 下列关于编码的说法,正确的是 (   )
    A、计算机中的汉字也是采用二进制进行编码的 B、模拟信号是以离散的、不连续的物理量形式存在的 C、将模拟声音数字化需要经过采样、量化、编码三个过程,该过程为数模转换 D、对某段声音进行数字化,量化值的范围是0-256,则量化位数最少是8 位
  • 3. 已知n是一个6位二进制数1■11■1,其中有两位数字模糊不清。下列数中,可能与它相等的是(   )
    A、49D B、64D C、2DH D、3CH
  • 4. 下列关于大数据的说法,正确的是(   )
    A、分析数据时更注重事物的因果关系 B、大数据要分析的是全体数据,而不是抽样数据 C、数据产生的速度快,但处理的速度慢 D、大数据蕴含的价值巨大,价值密度高
  • 5. 某算法的部分流程图如图所示,执行这部分后,下列说法不正确的是(   )

    A、a的值为9 B、b的值为17 C、循环条件b<=15?共判断4次 D、当第3次判断循环条件b<=15?时,b的值为9
  • 6. 在Python中,判断a不等于0且b不等于0的条件表达式是(   )
    A、not a == 0 or not b == 0 B、not (a == 0 or  b == 0) C、not(a == 0 and b == 0) D、a != 0 or b != 0
  • 7. 在Python中,下列能作为变量名的是(   )
    A、a/b B、2two C、a_b D、for  
  • 8. Python表达式7%2**3+abs(19//2-10)*len("123")的值是(   )
    A、2 B、4 C、8 D、10
  • 9. 有如下Python程序段:

    # 输入3个整数分别存储到变量a、b、c中,代码略

    if a > b and a > c:

        maxn = a

    elif b > a and b > c:

        maxn = b

    elif c > a and c > b:

        maxn = c

    print("a,b,c的最大值为:", maxn)

    执行该程序段,输入下列4组测试数据,无法正确输出a、b、c的最大值的是(   )

    A、10,20,30 B、20,30,10 C、30,10,10 D、10,10,10
  • 10. 下面python循环体执行的次数与其他不同的是 (   )
    A
     
    BCD
    i=0
    while i<=10:
        print(i)
        i=i+1
    i=10
    while i>0:
        print(i)
        i=i-1
    for i in range(10):
        print(i)
    for i in range(10,0,-1):
        print(i)
    A、A B、B C、C D、D
  • 11. 计算两数的最小公倍数算法如下:

    a = int(input("请输入第一个数:"))

    b = int(input("请输入第二个数:"))

    k = 2

    Lcd = 1

    while a != 1 or b != 1:

        if a % k == 0 or b % k == 0:

            if  

                a = a // k

            if

                b = b // k

           

        else:

           

    print("最小公倍数为:", Lcd)

    方框中的代码由以下四部分组成:

    ①Lcd = Lcd * k   ②k = k + 1   ③b % k == 0   ④a % k == 0

    则(1)(2)(3)(4)处代码顺序依次为(   )

    A、③④②① B、③④①② C、④③②① D、④③①②
  • 12. 有如下Python程序段:

    import random

    a=[0,0,0,0,0,0]

    for i in range(6):

        x = random.randint(1, 10)

        if i % 2 == 0:

            a[i] = 2 * x + 1

        elif x % 2 == 0:

            a[i] = x // 2

        else:

            a[i] = x - 1

    执行该程序段后,a[0]~a[5]各元素可能的值是(   )

    A、3,3,9,0,19,8 B、5,0,9,4,13,10 C、9,3,11,5,17,7 D、3,2,7,4,22,6

二、非选择题(本大题共3小题,8+10+8,共26分)

  • 13. 寻找素单词。素数是指大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。例如,2,3,5,7等是素数。本题输入一个单词,每个单词由小写字母组成。每个字母对应一个特定的值,字母a对应1,字母 b对应2,以此类推,字母z对应26。如果这个单词的字母值的总和是素数,则这个单词是素单词( prime word)。请编写程序,判定一个单词是否为素单词。

    (1)、实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。

    def isprime(n):   #判断n是不是素数

        for i in range():

            if n%i==0:

                 

        else:

            return True

    def strsum(word):  #统计单词的字母值总和

        dic={"a":1,"b":2,"c":3,"d":4,"e":5,"f":6,"g":7,"h":8,"i":9,"j":10,

             "k":11,"l":12,"m":13,"n":14,"o":15,"p":16,"q":17,"r":18,"s":19,

             "t":20,"u":21,"v":22,"w":23,"x":24,"y":25,"z":26}

        n=0

        for ch in word:

           

        return n

    word=input("请输入一个单词:")

    s=strsum(word)

    if flag:

        print("这是一个素单词")

    else:

        print("这不是一个素单词")

    (2)、下列选项中不可以填入加框处的代码是      (单选,填字母)。
    A、2,n B、2,n+1 C、2,int(n**0.5)+1 D、2,n//2+1
  • 14. 用1~26的二进制值对大写英文字母A~Z进行编码,编码如下表所示:

    A

    00001

    B

    00010

    C

    00011

    D

    00100

    E

    00101

    F

    00110

    G

    00111

    H

    01000

    I

    01001

    J

    01010

    K

    01011

    L

    01100

    M

    01101

    N

    01110

    O

    01111

    P

    10000

    Q

    10001

    R

    10010

    S

    10011

    T

    10100

    U

    10101

    V

    10110

    W

    10111

    X

    11000

    Y

    11001

    Z

    11010

        

    小明使用该编码对由大写字母组成的明文字符串进行加密,加密算法如下:

    l依次将明文中每个字符转换为其对应的二进制编码;

    l依次将密钥中每个字符转换为其对应的二进制编码;

    l依次取出密钥的每个二进制位与原文的二进制位进行异或运算(若密钥长度不够,则循环重复使用),得到的结果即为密文编码;

    l二进制位异或运算原则:11=0,00=0,10=1,01=1

    例如,明文:HELLO,密钥:ZHE,则按上述方式进行加密:

    明文字符

    H

    E

    L

    L

    O

    密钥字符

    Z

    H

    E

    Z

    H

    明文编码

    01000

    00101

    01100

    01100

    01111

    密钥编码

    11010

    01000

    00101

    11010

    01000

    密文编码

    10010

    01101

    01001

    10110

    00111

    (1)、若原文为“HUI”,密钥为“TZ”,则密文编码为
    (2)、实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。

    def ctob(c):            # 将一个字符转换为其对应的5位二进制编码

        n =

        ans = ""

        for i in range(5):

            r =

            n = n // 2

            ans = str(r) + ans

        return ans

    def xor(s1, s2):        # 将二进制数s1和s2进行异或运算

        ans = ""

        for i in range(len(s1)):

            if :

                ans += "0"

            else:

                ans += "1"

        return ans

    s = input("请输入明文(大写字母):")

    key = input("请输入密钥(大写字母):")

    ans = ""

    for i in range(len(s)):

        s1 = ctob(s[i])

        k =

        s2 = ctob(key[k])

        b = xor(s1, s2)

        ans = ans + b

    print("密文编码为:", ans)

  • 15. 有n个从小到大排列的整数依次存储在列表nums中,现要求将上述n个数的平方按从小到大的顺序依次存入列表ans中。如nums = [-4,-1,0,3,10],则ans = [0,1,9,16,100]。
    (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)、若输入nums的数据为[-4,1,4],则输出ans的值为