练习1:密码翻译
【题目描述】
在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他非字母字符不变,则可得到一个简单的加密字符串。
【输入】
输入一行,包含一个字符串,长度小于80个字符。
【输出】
输出每行字符串的加密字符串。
【输入样例】
Hello! How are you!
【输出样例】
Ifmmp! Ipx bsf zpv!
#include <stdio.h>
#include <string.h>
int main()
{
char s[80];
int i,len;
gets(s);
len=strlen(s);
for(i=0;i<len;i++)
{
if(s[i]=='z'||s[i]=='Z')
{
printf("%c",s[i]-25);
}
else if((s[i]>='a'&&s[i]<'z')||(s[i]>='A'&&s[i]<'Z'))
{
printf("%c",s[i]+1);
}
else
{
printf("%c",s[i]);
}
}
return 0;
}
练习2:配对碱基链
【题目描述】
脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。
【输入】
一个字符串,表示一条碱基链。这个字符串只含有大写字母A、T、G、C,分别表示腺瞟呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。字符串长度不超过255。
【输出】
一个只含有大写字母A、T、G、C的字符串,为与输入的碱基链互补的碱基链。
【输入样例】
ATATGGATGGTGTTTGGCTCTG
【输出样例】
TATACCTACCACAAACCGAGAC
#include <stdio.h>
#include <string.h>
int main()
{
char str1[255],str2[255];
int i,len;
gets(str1);
len=strlen(str1);
for(i=0;i<len;i++)
{
if(str1[i]=='A')
{
printf("T");
}
if(str1[i]=='T')
{
printf("A");
}
if(str1[i]=='G')
{
printf("C");
}
if(str1[i]=='C')
{
printf("G");
}
}
printf("%s\n",str2);
return 0;
}