浙江省A9协作体2023-2024学年高二上学期信息技术期中联考试卷
共 15 题 ; 17人浏览 ; 高二上学期
2024-01-23
一、选择题 (共12题,共24分)
二、非选择题 (共3题,共14分)
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)

综合题 未知 困难