试卷征集
加入会员
操作视频
当前位置: 试卷中心 > 试卷详情

浙教版(2019)选修1《3.1 字符串》2022年同步练习卷(2)

发布:2024/4/20 14:35:0

一、选择题

  • 1.有如下 python 程序段:
    s=“1R2u3n_to45“;num=0
    for i in s:
    if“a“<=i<=“z“or“A“<=i<=“Z“:
    continue
    elif“0“<=i<=“9“:
    num=num*10+int(i)
    else:
    break
    该程序段运行后,num的值为(  )

    组卷:0引用:1难度:0.4

二、非选择题

  • 4.某明文字符串仅由大、小写英文字母组成,为实现加密,小朱依次对该明文中的每个字符进行如下操作:
    ①将明文中每个字符转换成其对应的十进制 ASCII 码值;
    ②明文的密钥由 0-7 这 8 个数字循环产生,如图 a 所示;

    ③加密过程中,先将每个明文字符的十进制 ASCII 码值转换成 8 位二进制数,再将每个字符对应的密钥转换为 4 位二进制数,最后,将由明文字符的十进制 ASCII 码值转换成的 8 位二进制数中的左边 4 位二进制数和右边 4 位二进制数,分别和由密钥数字转换成的 4 位二进制数逐位进行异或运算:1⊕1=0,1⊕0=1,0⊕1=1,0⊕0=0。
    例如:明文字符串“Programming”中字母“a”用二进制表示是 01100001,其对应的密钥是数字 5,用二进制表示是 0101,加密后结果是 00110100,如图b所示。

    ④将每个字符的加密结果按行输出,如图c所示。请回答下列问题:

    (1)输入字符串“China”,则字符“a”加密后的结果为
     

    (2)实现上述功能的 Python 代码段如下,请在①②横线处将代码补充完整。
    (3)加框处的代码有错误,请修改 ______。
    s=input(“输入待加密的原文:“)
    k=0;s1=“”;s2=“”
    print(“加密结果为:“)
    for i in range(0,len(s)):
    ch=①
     

    m=k
    for j in range(0,4):
    t1=str((ch%2+m%2)%2)
    t2=②
     

    s1=t1+s1;s2=t2+s2
    ch=ch//2;m=m//2
    print(s2+s1)
    s1=“”;s2=“”
    k=k%8+1

    组卷:3引用:2难度:0.4
  • 5.有一种 ASCII 字符加密的算法,其加密过程如下:
    ①将明码中每个字符的 ASCII 码转为八位二进制,依次连接
    ②位置加密:每 4 位一组进行移位,第 1 组左移一位,并将原第一位数码移至最后(如 0110 转化为1100),第 2 组右移一位,并将原最后一位数码移至头部(如 0001 转化为 1000),第 3 组左移...以此类推,实现位置加密,并将每组移动后的结果转换成十进制,按顺序连接
    ③值加密:随机产生一个密钥 key,在符号列表['+','*','//','%']中取出对应运算符号,将②中的十进制结果分别与密钥 key 进行运算,顺次连接求得该字符的密文,(如 key 为 3,取得运算符'%',则字符'a'的高位密文为 12%3=0,低位密文为 8%3=2,顺次连接后得'a'的密文为'02'
    ④将每个字符的密文顺序连接,得到最终字符串密文。
    用 Python 编写的程序运行结果如下图所示,请回答下列问题:

    (1)当 key=3 时,输入要加密的明文:“aA“则输出的密文为
     

    (2)请在横线处,填入适当的语句或语句表达式。
    import random
    def jzzh(x):
    s=''
    for i in range(8):
    r=x%2
    s=①
     

    x=x//2
    return s
    def jisuan(x):#进行 key 运算
    m=0
    if fh[key]=='+':
    m=x+key
    elif fh[key]=='*':
    m=x*key
    elif fh[key]=='//':
    m=x//key
    elif fh[key]=='%':
    m=x%key
    eturn m
    def yidong(x):
    jg=''
    n=len(x)//4
    for i in range(n):
    if i%2==0:
    f=②
     

    else:
    f=x[i*4+3]+x[i*4:i*4+3]
    s=0
    for j in f:#将 4 位二进制转成十进制
    s=s*2+int(j)
    jg+=③
     

    return jg
    mingw=input('请输入要加密的明文:')
    fh=['+','*','//','%']
    miw=''
    global key
    key=random.randint(0,3)
    for a in mingw:
    a=ord(a)
    L=jzzh(a)
    miw+=L
    jieguo=yidong(miw)
    print(“产生的随机密钥为:“,key,“\n 密文为:“,jieguo)

    组卷:3引用:1难度:0.3
深圳市菁优智慧教育股份有限公司
粤ICP备10006842号公网安备44030502001846号
©2010-2025 jyeoo.com 版权所有
APP开发者:深圳市菁优智慧教育股份有限公司| 应用名称:菁优网 | 应用版本:5.0.7 |隐私协议|第三方SDK|用户服务条款
广播电视节目制作经营许可证|出版物经营许可证|网站地图
本网部分资源来源于会员上传,除本网组织的资源外,版权归原作者所有,如有侵犯版权,请立刻和本网联系并提供证据,本网将在三个工作日内改正