• 2022-07-28
    有一行电文,已按下面规律译成密码:A→Z   a→zB→Y   b→yC→X   c→x ...        ...即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。
  • 解:可以定义一个数组ch,在其中存放电文。如果字符ch[j]是大写字母,则它是26个字母中的第(ch[j]-64)个大写字母。例如,若ch[j]的值是大写字母'B',它的ASCII码为66,它应是字母表中第(66-64)个大写字母,即第2个字母。按密码规定应将它转换为第(26-i+1)个大写字母,即第(26-2+1)=25个大写字母。而26-i+1=26-(ch[j]-64)+1=26+64-ch[i]+1,即91-ch[j](如 ch[j]等于'B', 91-'B'=91-66=25,ch[j]应将它转换为第25个大写字母)。该字母的ASCII码为91-ch[j]+64,而91-ch[j]的值为25 ,因此91- ch[j]+64=25+64- 89,89是'Y'的ASCII码。表达式91- ch[j]+64可以直接表示为155- ch[j].小写字母情况与此相似,但由于小写字母'a'的ASCII码为97, 因此处理小写字母的公式应改为: 26+96- ch[j]+ 1+96 = 123 - ch[i]+96 =- 219- ch[j]。例如,若ch[j]的值为'b' ,则其交换对象为219- 'b'= 219-98= 121,它是'y'的ASCII码。由于此密码的规律是对称转换,即第1个字母转换为最后一个字母,最后一个字母转换为第1个字母,因此从原文译为密码和从密码泽为原文,都是用同一个公式。N-S图如图6.8所示。[img=221x244]17d835a958e0b0d.png[/img]程序如下:(1)用两个字符数组分别存放原文和密码# include int main( ){ int j,n;char ch[80],tran[80];printf("input cipher code:");gets(ch) ;printf("\ncipher code :%s" ,ch);j=0;while (ch[i]!='\0'){ if ((ch[i]>='A') && (ch[i]<='Z'))tran[j]= 155- ch[j];else if ((ch[i]>= 'a') && (chCj]<= 'z'))tran[i]=219- ch[j];elsetran[i]= ch[j];j++ ;}n=j;print("\noriginal text:");for (j=0;jint main( ){ int j,n;char ch[80];printf("input cipher code:\n");gets(ch) ; printf("\ncipher code: % s\n" ,ch);j=0; while (ch[j]!= '\o'){ if ((ch[j]>='A') && (ch[j]<='Z'))ch[j]= 155- ch[j];else if ((ch[j]>='a') && (ch[i]<='z'))ch[j]=219- ch[j];elsech[j]= ch[i];j++;}n=j;printf("original text:");for (j=0;j

    内容

    • 0

      请编程序将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。请编一程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为’C’,’h’,’i',’n’,’a’。分别用putchar函数和printf函数输出。

    • 1

      将26个英文字母按自然顺序a,b,c,...,x,y,z排成字母表,并且约定z后面又回到a。则凯撒密码就是将原文的每个字母加密成它后面第3个字母。如果文章比较长, 加密之后如下哪一个字母出现得最多?

    • 2

      凯撒密码的加密方法是将字母表的每个字母用它后面的第_个字母代替?() A: 1 B: 2 C: 3 D: 4

    • 3

      原文每三个字母分成一组,按以下规则进行替换,第一个字母替换成字母表中该字母后面的第3个字母,第二个字母替换成字母表中该字母后面的第7个字母,第三个字母替换成字母表中该字母后面的第10字母,原文为 THAT CIPHER IS 密文为

    • 4

      根据下面提示组成一个四字词组第一个字为树第二个字汉语拼音有两个字母组成,第二个字母为a第三个字拼音首字母为z第四个字拼音末字母为g这个成语是用来描述一个女人的