阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】本程序对某电码文(原文)进行加密形成密码文,其加密算法如下:假定原文为C1,C2,C3,…,Cn加密后形成的密文为S1,S2,S3,…,Sn,首先读入正整数 key(key>1)作为加密钥匙,并将密文字符位置按顺时针方向连成一个环,如下图所示:加密时从S1位置起顺时针计数,当数到第key个字符位置时,将原文中的字符放入该密文字符位置中,同时从环中除去该字符位置;接着从环中下一个字符位置起继续计数,当再次数到第key个字符位置时,将原文中

题目

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。

【说明】

本程序对某电码文(原文)进行加密形成密码文,其加密算法如下:

假定原文为C1,C2,C3,…,Cn加密后形成的密文为S1,S2,S3,…,Sn,首先读入正整数 key(key>1)作为加密钥匙,并将密文字符位置按顺时针方向连成一个环,如下图所示:

加密时从S1位置起顺时针计数,当数到第key个字符位置时,将原文中的字符放入该密文字符位置中,同时从环中除去该字符位置;接着从环中下一个字符位置起继续计数,当再次数到第key个字符位置时,将原文中字符C2放入其中,并从环中除去该字符位置:依次类推,直至n个原文字符全部放入密文环中。由此产生的 S1S2…Sn即为原文的密文。

例如,当Key=3时,原文this is a decoding system的密文为:

aotgnhedi ys d imietsnc ss

当Key=4时,该原文的密文为:

ssdtyd htegiasiscnm e ion

本程序将电码的原文存放在字符数组old中,加密钥匙存放在整数key中。函数decode用于将原文old加密并返回密文字符数组的首指针。其中函数采用一个双向循环链表CODE来表示密文环:函数strlen用于计算一个字符串中的字符个数(不包括字符串结尾符'\O')。为了简单起见,程序中假设内存容量足以满足动态存储单元分配的要求。

include <stdio.h>

include <stdlib.h>

typedef struct node

{ char ch;

struct node *forward;/* Link to next node. */

struct node *backward;/* Link to previous node.*/

} CODE;

int strlen(char *s)

{ int len=0;

while (*s++!='\0')

len++;

return(len);

}

char *decode(char *otd,int key)

{ char *New; int length,count,i;

CODE *loop,*p;

length=strlen(old);

loop=(CODE *) malloc(length*sizeof(CODE));

for (i=1;i<length-1;i++)

{ loop[i],forward=&loop[i+1];

(1)

}

loop[0].backward=&loop[length-1];

loop[0],forward=&loop[1];

loop[length-1].forward=loop;

(2)

for (p=loop,i=0;i<length;i++)

{ for (count=1 ;count<key;count++

p=p->forward;

(3)

p->backward->forward=p->forward;

p->forward->backward=p->backward;

(4)

}

New=(char *)malloc((length+1) *sizeef(char));

for (i=0;i<length;i++)

(5)

New[length]='\0';

return (New);

}

void main()

{ char old[256];

int key, num=0;

printf("\nPlease input the telegraph: \n");

while (num<255 && (old[num++]=getchar())!='\n');

old [(num==255)?num:num-1]='\0';

do

{ printf("\nPlease input Key (Key>1):");

scanf("%d",&key);

} while (key<=1);

printf( "\nThe decode of telegraph:'%s'is:\n'%s'\n",old,decode(old,key));

}


相似考题
更多“阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】本程序对某电码文(原文)进行加密形成密码文,其加密算法如下:假定原文为C1,C2,C3,…,Cn加密后形成的密文为S1,S2,S3,…,Sn,首先读入正整数 key(key>1)作为加密钥匙,并将密文字符位置按顺时针方向连成一个环,如下图所示:加密时从S1位置起顺时针计数,当数到第key个字符位置时,将原文中的字符放入该密文字符位置中,同时从环中除去该字符位置;接着从环中下一个字符位置起继续计数,当再次数到第key个字符位置时,将原文中”相关问题
  • 第1题:

    利用凯撒加密算法对字符串attack进行加密,如果密钥为1,那么生成的密文为

    A.DWWDFN

    B.EXXEGO

    C.BUUBDL

    D.DXXDEM


    正确答案:C
    解析:恺撒密码是最古老的一种置换密码,这种密码算法对于原始消息(明文)中的每一个字母都用该字母后的第n个字母来替换,其中n就是密钥。题设中n =1,所以a对应密文为a后面第1个字母,即D;依次类推可以得到密文为BUUBDL。

  • 第2题:

    利用凯撒加密算法对字符串“attack”进行加密。如果密钥为3,那么生成的密文为_______。

    A.DWWDFN

    B.EXXEGO

    C.CVVCEM

    D.DXXDEM


    正确答案:A
    解析:凯撒加密算法对于原始消息(明文)中的每一个字母都用该字母后的第n个字母来替换,其中n就是密钥。这样明文“attack”如果使用密钥为3加密后形成的密文就是“DWWDFN”。

  • 第3题:

    密码算法可以用C=F(M,Key)这一公式表示,其中C表示的是()。

    • A、密码钥匙
    • B、欲加密的字符
    • C、加密后的字符
    • D、加密算法

    正确答案:C

  • 第4题:

    What is a characteristic of using the Electronic Code Book mode of DES encryption?以下哪一项特征是使用DES中电子密码本?()

    • A、Repetitive encryption obscures any repeated patterns that may have been present in the plaintext.反复加密以掩盖任何可能在明文出现的重复模式
    • B、The previous DES output is used as input.之前的DES加密输出被用来作为输入
    • C、Individual characters are encoded by combining output from earlier encryption routines with plaintext.单个字符从之前明文加密程序的结合输出来进行编码
    • D、A given block of plaintext and a given key will always produce the same ciphertext.一个给定的明文和一个给定的密钥将总是产生相同的密文。

    正确答案:D

  • 第5题:

    以下有关密码技术的说法中错误的是。()。

    • A、由明文到密文的过程称为加密
    • B、合法接受者从密文恢复出明文的过程称为解密
    • C、对明文进行加密时采取的规则称为加密算法
    • D、密码是不可破解的

    正确答案:D

  • 第6题:

    密码算法可以用C=F(M,Key)这一公式表示,其中M表示的是()。

    • A、欲加密的字符
    • B、加密后的字符
    • C、密码钥匙
    • D、加密算法

    正确答案:A

  • 第7题:

    函数String(n,"str")的功能是()。

    • A、把数值型数据转换为字符串
    • B、返回由n个字符组成的字符串
    • C、从字符串中取出n个字符
    • D、从字符串中第n个字符的位置开始取子字符串

    正确答案:B

  • 第8题:

    代换密码是把明文中的各字符的()得到密文的一种密码体制。

    • A、位置次序重新排列
    • B、替换为其他字符
    • C、增加其他字符
    • D、减少其他字符

    正确答案:B

  • 第9题:

    单选题
    密码算法可以用C=F(M,Key)这一公式表示,其中M表示的是()。
    A

    欲加密的字符

    B

    加密后的字符

    C

    密码钥匙

    D

    加密算法


    正确答案: B
    解析: 暂无解析

  • 第10题:

    单选题
    加密算法是一种数学函数,如果用C表示加密后的密文,M是欲加密的明文,Key表示密钥,F表示加密算法,以下正确表示加密算法原理的数学式是()。
    A

    M=F(C,Key)

    B

    C=F(M,Key)

    C

    Key=F(C,M)

    D

    F=(C,M,Key)


    正确答案: A
    解析: 暂无解析

  • 第11题:

    单选题
    以下有关密码技术的说法中错误的是。()。
    A

    由明文到密文的过程称为加密

    B

    合法接受者从密文恢复出明文的过程称为解密

    C

    对明文进行加密时采取的规则称为加密算法

    D

    密码是不可破解的


    正确答案: D
    解析: 暂无解析

  • 第12题:

    单选题
    What is a characteristic of using the Electronic Code Book mode of DES encryption?以下哪一项特征是使用DES中电子密码本?()
    A

    Repetitive encryption obscures any repeated patterns that may have been present in the plaintext.反复加密以掩盖任何可能在明文出现的重复模式

    B

    The previous DES output is used as input.之前的DES加密输出被用来作为输入

    C

    Individual characters are encoded by combining output from earlier encryption routines with plaintext.单个字符从之前明文加密程序的结合输出来进行编码

    D

    A given block of plaintext and a given key will always produce the same ciphertext.一个给定的明文和一个给定的密钥将总是产生相同的密文。


    正确答案: A
    解析: 暂无解析

  • 第13题:

    置换密码是把()中各字符的位置次序重新排列来得到密文的一种密码体制。

    A.密码算法

    B.密钥

    C.明文

    D.密文


    正确答案:C

  • 第14题:

    请教:2010年广州市中考数学试题第1大题第10小题如何解答?

    【题目描述】

    第 10 题为确保信息安全,信息需加密传输,发送方由明文→密文(加密),接收方由密文→明文(解密),已知有一种密码,将英文26个小写字母a,b,c,…,z依次对应0,1,2,…,25这26个自然数(见表格),当明文中的字母对应的序号为β时,将β+10除以26后所得的余数作为密文中的字母对应的序号,例如明文s对应密文c。

    按上述规定,将明文“maths”译成密文后是(    )。

    A.wkdrc

    B.wkhtc

    C.eqdjc

    D.eqhjc

     


    正确答案:A

    答案分析:

    m对应的数字是12,12+10=22,除以26的余数仍然是22,因此对应的字母是w;a对应的数字是0,0+10=10,除以26的余数仍然是10,因此对应的字母是k;t对应的数字是19,19+10=29,除以26的余数仍然是3,因此对应的字母是d;…,所以本题译成密文后是wkdrc。  

  • 第15题:

    常见密码系统包含的元素是()。

    • A、明文、密文、信道、加密算法、解密算法
    • B、明文、摘要、信道、加密算法、解密算法
    • C、明文、密文、密钥、加密算法、解密算法
    • D、消息、密文、信道、加密算法、解密算法

    正确答案:C

  • 第16题:

    加密算法是一种数学函数,如果用C表示加密后的密文,M是欲加密的明文,Key表示密钥,F表示加密算法,以下正确表示加密算法原理的数学式是()。

    • A、M=F(C,Key)
    • B、C=F(M,Key)
    • C、Key=F(C,M)
    • D、F=(C,M,Key)

    正确答案:B

  • 第17题:

    密码算法可以用C=F(M,Key)公式表示,其中M表示的是()。

    • A、欲加密的字符
    • B、加密后的字
    • C、密码钥匙
    • D、加密算法

    正确答案:A

  • 第18题:

    charAt(int index)表示从字符串中取得一个字符,该字符的位置是index


    正确答案:正确

  • 第19题:

    置换密码是把()中的各字符的位置次序重新排列得到密文的一种密码体制。

    • A、明文
    • B、密文
    • C、明文空间
    • D、密文空间

    正确答案:A

  • 第20题:

    单选题
    密码算法可以用C=F(M,Key)这一公式表示,其中C表示的是()。
    A

    密码钥匙

    B

    欲加密的字符

    C

    加密后的字符

    D

    加密算法


    正确答案: D
    解析: 暂无解析

  • 第21题:

    单选题
    代换密码是把明文中的各字符的()得到密文的一种密码体制。
    A

    位置次序重新排列

    B

    替换为其他字符

    C

    增加其他字符

    D

    减少其他字符


    正确答案: A
    解析: 暂无解析

  • 第22题:

    单选题
    置换密码是把()中的各字符的位置次序重新排列得到密文的一种密码体制。
    A

    明文

    B

    密文

    C

    明文空间

    D

    密文空间


    正确答案: A
    解析: 暂无解析

  • 第23题:

    单选题
    利用凯撒加密算法对字符串“attack”进行加密。如果密钥为3,那么生成的密文为_________。
    A

    DWWDFN

    B

    EXXEGO

    C

    CVVCEM

    D

    DXXDEM


    正确答案: A
    解析: