网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

阅读以下说明和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个字符位置时,将原文中字符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));} ” 相关考题
考题 函数String(n,"str")的功能是( )。A.把数值型数据转换为字符串B.返回由n个字符组成的字符串C.从字符串中取出n个字符D.从字符串中第n个字符的位置开始取子字符串

考题 ( 9 )本程序实现文本加密。先给定序列: a1,a2, …… an, 它们的取值范围是 1~n ,且互不相同。加密算法是 : 把原文本中第 k 个字符放到加密后的文本的第 ak 个位置处 。 若原文本长度大于 n , 则只对前 n 个字符加密,后面的字符不变;若原文本长度小于 n ,则在后面补字符 “ * ” 使文本长度为 n 后再加密。例如:若给定序列 a1,a2, … a7 分别为 2 , 5 , 3 , 7 , 6 , 1 , 4当文本为 “ PROGRAM ” 时,加密后的文本为 “ APOMRRG ”当文本为 “ PROGRAMMING ” ,加密后的文本为 “ APOMRRGMING ”当文本为 “ THANK ” 时,加密后的文本为 “ TA*HKN ”下面的过程 code 实现这一算法。其中参数数组 a() 中存放给定序列(个数与数组 a 的元素个数相等)a1,a2,a3 … 的值,要加密的文本放在参数变量 mystr 中。过程执行完毕,加密后的文本仍放在变量 myst r中。请填空。Option Base 1Private Sub code(a () As Integer,mystr As String)Dim ch As string,cl As Stringn=Ubound(a)-Len(mystr)If n0 Thenmystr= mystr Strings(n, ” * ” )End IfCh=mystrFor k= 【 14 】 To Ubound(a)Cl=Mid(mystr,k,l)n= 【 15 】Mid$(ch,n)=clNext kMystr=chEnd Sub

考题 利用恺撒加密算法对字符串“attack”进行加密,如果密钥为3,那么生成的密文是A.DWWDFNB.EXXEGOC.CVVCEMD.DXXDEM

考题 函数String(n,字符串)的功能是( )。A.把数值型数据转换为字符串B.返回由n个字符组成的字符串C.从字符串中取出n个字符D.从字符串中第n个字符的位置开始取子字符串

考题 利用凯撒加密算法对字符串attack进行加密,如果密钥为1,那么生成的密文为A.DWWDFNB.EXXEGOC.BUUBDLD.DXXDEM

考题 置换密码是把()中各字符的位置次序重新排列来得到密文的一种密码体制。 A.密码算法B.密钥C.明文D.密文

考题 利用凯撒加密算法对字符串“attack”进行加密。如果密钥为3,那么生成的密文为_______。A.DWWDFNB.EXXEGOC.CVVCEMD.DXXDEM

考题 请教: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

考题 密码算法可以用C=F(M,Key)这一公式表示,其中C表示的是()。A、密码钥匙B、欲加密的字符C、加密后的字符D、加密算法

考题 常见密码系统包含的元素是()。A、明文、密文、信道、加密算法、解密算法B、明文、摘要、信道、加密算法、解密算法C、明文、密文、密钥、加密算法、解密算法D、消息、密文、信道、加密算法、解密算法

考题 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.一个给定的明文和一个给定的密钥将总是产生相同的密文。

考题 加密算法是一种数学函数,如果用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、由明文到密文的过程称为加密B、合法接受者从密文恢复出明文的过程称为解密C、对明文进行加密时采取的规则称为加密算法D、密码是不可破解的

考题 密码算法可以用C=F(M,Key)公式表示,其中M表示的是()。A、欲加密的字符B、加密后的字C、密码钥匙D、加密算法

考题 密码算法可以用C=F(M,Key)这一公式表示,其中M表示的是()。A、欲加密的字符B、加密后的字符C、密码钥匙D、加密算法

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

考题 函数String(n,"str")的功能是()。A、把数值型数据转换为字符串B、返回由n个字符组成的字符串C、从字符串中取出n个字符D、从字符串中第n个字符的位置开始取子字符串

考题 置换密码是把()中的各字符的位置次序重新排列得到密文的一种密码体制。A、明文B、密文C、明文空间D、密文空间

考题 代换密码是把明文中的各字符的()得到密文的一种密码体制。A、位置次序重新排列B、替换为其他字符C、增加其他字符D、减少其他字符

考题 单选题密码算法可以用C=F(M,Key)这一公式表示,其中C表示的是()。A 密码钥匙B 欲加密的字符C 加密后的字符D 加密算法

考题 单选题密码算法可以用C=F(M,Key)这一公式表示,其中M表示的是()。A 欲加密的字符B 加密后的字符C 密码钥匙D 加密算法

考题 单选题代换密码是把明文中的各字符的()得到密文的一种密码体制。A 位置次序重新排列B 替换为其他字符C 增加其他字符D 减少其他字符

考题 单选题加密算法是一种数学函数,如果用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 明文B 密文C 明文空间D 密文空间

考题 单选题以下有关密码技术的说法中错误的是。()。A 由明文到密文的过程称为加密B 合法接受者从密文恢复出明文的过程称为解密C 对明文进行加密时采取的规则称为加密算法D 密码是不可破解的

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

考题 单选题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.一个给定的明文和一个给定的密钥将总是产生相同的密文。