日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

给字母保密的c语言,C语言练习题

發(fā)布時間:2024/9/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 给字母保密的c语言,C语言练习题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.保密電文:某電報局的電文保密規(guī)律是將每個英文字母變成其后的第4個字母,例如A變成E,a變成e。最后四個字母(W, X,Y,Z或w,x,y,z)變成前四個字母(A,B,C,D或a,b,c,d)。電文中的非字母字符不變。

要求:

輸入一行字符串,輸出改變的字符串。

程序分析:

本程序?qū)?6個小寫字母和26個大寫字母轉(zhuǎn)換為ASCll碼。

ASCll碼對照表:

圖片來源:http://tool.oschina.net/commons?type=4

由對照表得知英文字母的ASCll碼都在(65–90和97–122)之間,所以只需要判斷輸入的字母是否在這個順序之間,如果在此區(qū)間內(nèi),則對此數(shù)字的ascll碼加上4,例如:a的acsll碼為97,加4變?yōu)閑。

而對于W,X,Y,Z和w,x,y,z則需要另行判斷對其ascll碼減去22得到修改后的字母。

題目程序:

#include

int main()

{

char n[1000];

int i;

gets(n);

for(i=0;n[i]!='\0';i++)

{

//判斷字母否為26個英文字母

if(((65<=(int)n[i])&&((int)n[i]<=90))||((97<=(int)n[i])&&((int)n[i]<=122)))

{

//判斷是否為a--v或A--V

if(((65<=(int)n[i])&&((int)n[i]<87))||((97<=(int)n[i])&&((int)n[i]<119)))

{

n[i]=n[i]+4;

printf("%c",n[i]);

}

//判斷是w--z和W--Z

else

if(((87<=(int)n[i])&&((int)n[i]<=90))||((119<=(int)n[i])&&((int)n[i]<=122)))

{

n[i]=n[i]-22;

printf("%c",n[i]);

}

}

//非字母時原樣輸出

else

{

printf("%c",n[i]);

}

}

return 0;

}

程序截圖:

2.猴子吃桃問題。猴子第一天摘下若干個桃子,當即吃了二分之一,還不過癮,又多吃了一個。第二天在上又將剩下的桃子吃掉二分之一,又不過癮又多吃了一個。以后每天早上都吃了前一天剩下的二分之一零一個。到第N天早上再想吃時,見只剩下一個桃子了。求第一天共摘了多少個桃子。

要求:輸入N,輸出桃子總數(shù)

程序分析:

程序中需要的變量有:

天數(shù) int N,桃子總數(shù) int sum。

并且根據(jù)題意變量都是整型(int)。

求解思路:

根據(jù)總共的天數(shù)反向求解桃子的個數(shù),桃子每天減少公式為:2*(sum+1)。

題目程序:

#include

int main()

{

int sum=1,N,i;

printf("請輸入天數(shù)N\n");

scanf("%d",&N);

for(i=0;i

{

sum=2*(sum+1);

}

printf("桃子總數(shù)為:%d\n",sum);

return 0;

}

運行結(jié)果:

3.回文素數(shù)問題。輸入一個n,輸出n以內(nèi)的所有回文素數(shù),即即是素數(shù),又是回文數(shù)(數(shù)字從前往后,從后往前看一樣)例如:373,232。

要求:

輸入大于10的正整數(shù)n。

輸出n以內(nèi)的所有回文素數(shù)。

程序分析:

首先從數(shù)字1開始遍歷直到n,對每個數(shù)字進行判斷,是否為回文素數(shù),若符合要求則輸出。

題目程序:

#include

int sushu(int n) //判斷素數(shù)

{

int i;

int x;

for(i=2; i<=n/2; i++)

{

x=1;

if(n%i==0)

{

x=0;

}

}

if(x)

{

return n;

}

else

{

return 0;

}

}

int huiwenshu(int m) //判斷回文數(shù)

{

int i=0;

int j;

int num;

int a[5];

if(m>=10)

{

num=m;

while(m)

{

a[i++]=m%10;

m=m/10;

}

for(j=i-1; j>=0; j--)

{

if(a[j]!= num%10)

{

return 0;

}

num=num/10;

}

return 1;

}

else

{

return 0;

}

}

int main()

{

int i,n;

printf("請輸入大于10的數(shù)字:\n");

scanf("%d",&n);

for(i=2; i

{

if( sushu(i) && huiwenshu(sushu(i) ) )

{

printf("%d是回文素數(shù)\n", i);

}

}

return 0;

}

運行結(jié)果:

4.C語言實驗–整數(shù)的溢出:小明在做整數(shù)加法計算時,發(fā)現(xiàn)選擇不同的整數(shù)類型得到的計算結(jié)果不一樣,經(jīng)過研究她發(fā)現(xiàn)了一個簡單規(guī)律,可以根據(jù)計算結(jié)果推出程序用到的數(shù)據(jù)類型。請根據(jù)給出的測試數(shù)據(jù),推算出程序用到的整數(shù)類型,并用該類型編寫相應的假發(fā)程序。

例如:

輸入:32767 和 32767

輸出:-2

程序分析:

本題考驗程序的溢出問題,

首先解釋一下什么是溢出:數(shù)據(jù)類型超過了計算機字長的界限而出現(xiàn)的數(shù)據(jù)溢出,也就是計算機裝不下咱的數(shù)據(jù)然后把裝不下的數(shù)據(jù)扔了出來。

題目中輸入兩個32767進行加法運算,其結(jié)果為65534.

而short類型的數(shù)據(jù)范圍在-32768~32767之間。當你輸入的數(shù)據(jù)大于32767那么計算機就會對你的數(shù)據(jù)進行溢出表現(xiàn)為:

所以在編寫程序時要著重考慮變量的取值范圍。

題目程序:

#include

int main()

{

int a,b;

short sum;

scanf("%d %d",&a,&b);

sum=a+b;

printf("%d",sum);

return 0;

}

}

5.用數(shù)字造數(shù)字:輸入一個3位以上的整數(shù),求其中最大的兩個數(shù)字之和與最小的數(shù)字之和之間的差。

例如:輸入8729,輸出8,即(9+8)-(2+7)=8.

要求:

輸入一個三位以上的整數(shù)。

輸出最大的兩個數(shù)字之和與最小的數(shù)字之和之間的差。

題目程序:

#include

int main()

{

int n,m;

int a,b,c,d,e;

printf("請輸入一個三位以上的整數(shù):\n");

scanf("%d",&n);

a=n/1000;//千位

b=(n-a*1000)/100;//

c=(n-a*1000-b*100)/10;

d=(n-a*1000-b*100-c*10);

if(a

{

e=a;

a=b;

b=e;

}

if(a

{

e=a;

a=c;

c=e;

}

if(a

{

e=a;

a=d;

d=e;

}

if(b

{

e=b;

b=c;

c=e;

}

if(b

{

e=b;

b=d;

d=e;

}

if(c

{

e=c;

c=d;

d=e;

}

n=(a+b)-(c+d);

printf("%d",n);

return 0;

}

程序結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的给字母保密的c语言,C语言练习题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。