練習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)由兩條互補的堿基鏈以雙螺旋的方式結(jié)合而成。而構成DNA的堿基共有4種,分別為腺瞟呤(A)、鳥嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。我們知道,在兩條互補堿基鏈的對應位置上,腺瞟呤總是和胸腺嘧啶配對,鳥嘌呤總是和胞嘧啶配對。你的任務就是根據(jù)一條單鏈上的堿基序列,給出對應的互補鏈上的堿基序列。
【輸入】
一個字符串,表示一條堿基鏈。這個字符串只含有大寫字母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;
}