A. C语言问题:要将"China"译成密码,密码规律是:用原来的字母后面的第4个字母代替原来的字母。
原题的意思是进行一个轮换,w->a,x->b,y->,z->d,所以是:
#include"stdio.h"
void
main()
{
char
name[5];
int
i;
for(i=0;i<5;i++)
{
printf("请输入第%d个字母",i+1);
scanf("
%c",&name[i]);
if(name[i]=='v')
name[i]='z';
else
if(name[i]=='V')
name[i]='Z';
else
name[i]=(name[i]+4)%26;
}
for(i=0;i<5;i++)
printf("%c",name[i]);
printf(" ");
}
#include <stdio.h>
int main(){
printf("Hello, World! ");
return 0;
}
程序的第一行#include <stdio.h>是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。
下一行int main()是主函数,程序从这里开始执行。
下一行printf(...)是 C 中另一个可用的函数,会在屏幕上显示消息 "Hello, World!"。
下一行return 0;终止 main() 函数,并返回值 0。
B. (1)用C/C++语言实现仿射变换加/解密算法(2)用C/C++语言实现统计26个英文字母出现的频率的程序
第二题:只统计小写字母,如果是大写或者混合的话原理也是一样
#include<stdio.h>
#include<string.h>
intmain()
{
charstr[99];
inti,j,a[26]={0};
gets(str);
for(i=0;i<strlen(str);i++)
{
for(j=0;j<26;j++)
if(str[i]==97+j)a[j]++;
}
for(j=0;j<26;j++)
if(a[j]!=0)printf("%c%d ",97+j,a[j]);
printf(" ");
return0;
}
第三题
解密:m=Da,b(c)=a-1(c-d)(mod26)//d是什么你没给出,只做了加密部分
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
unsigneda,b,i;
charstr[99]="asdfABC";
srand(time(0));
b=rand()%26;
loop:
a=rand()%26;
if(a%2==0||a==13)gotoloop;
printf("密匙为:%d,%d ",a,b);
for(i=0;i<strlen(str);i++)
{
if(str[i]>='a'&&str[i]<='z')
str[i]=(str[i]*a+b)%26+97;
if(str[i]>='A'&&str[i]<='Z')
str[i]=(str[i]*a+b)%26+65;
printf("%c",str[i]);
}
printf(" ");
return0;
}
C. C语言的凯撒密码问题我想求教这个算法是怎么推出来的呢 加密算法:(a[i]-a+k)%26-a
它的原理是字母与字母之间的替换。例如26个字母都向后移动K位。若K等于2,则A用C代替,B用D代替,以此类推
k是移动的位数,例如移动两位,当前字母是c,那么c-a=2,再加2,4%26=4(保证变换后的在26个字母的范围内),然后a+4即为e
D. C语言题编程实现对键盘输入的大写英文字母进行加密。字母
#include<stdio.h>
#include<ctype.h>
intmain()
{inti;
chars[200];
gets(s);
for(i=0;s[i];i++)
if(isalpha(s[i]))
{s[i]+=3;
if(s[i]%0x20>26)s[i]-=26;
}
puts(s);
return0;
}
E. 加密处理程序,从键盘输入一段英文文字,将其中每个字母用其后的第四个字母代替,最后的字母循环到前面的
有3个大问题:1. main里调用的那两个函数不应该在写成声明的句子.
2. str[i]=str[i]+'4';和+'22'还有减的那两句,应该是数字不应该是带引号的字符
3. 在那两个函数里的循环里应该加上结束符判断,打印字符的参数不应该是str[100]
还有scanf("%s",&str[100]);改成scanf("%s",str);
F. vb问题!将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D
Private Sub Form_Click()
Dim i As Integer, c As Integer, k As Integer
k = 4
Label1.Caption = ""
For i = 1 To Len(Text1.Text)
c = Asc(Mid(Text1.Text, i, 1)) + k
If c > Asc("z") Or c > Asc("Z") And c < Asc("a") + k Then c = c - 26
Label1.Caption = Label1.Caption & Chr(c)
Next
End Sub
以上代码用Text1放需要加密的字符串,Label1放加密后的字符串。点击窗体执行。