b){if(a>c)x=a;elsex=c;}else{if(b>c)x=b;elsex=c;}printf("%d",x);return0;}要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字" />

C语言经典例题 复习

C语言经典例题 复习
C语言经典例题 复习

C语言经典例题

编写一个程序,输入a、b、c三个值,输出其中最大值。

#include

int main(void)

{

int a, b,c;

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

int x;

if(a>b){

if(a>c) x=a;

else x=c;

}

else {

if(b>c) x=b;

else x=c;

}

printf("%d",x);

return 0;

}

要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,'C’、'h’、'i’、'n’、'a’,经过运算,输出变换后的密码。

#include

int main(void)

{

char c1,c2,c3,c4,c5;

c1='C';

c2='h';

c3='i';

c4='n';

c5='a';

c1+=4;

c2+=4;

c3+=4;

c4+=4;

c5+=4;

printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);

return 0;

}

设圆半径r,圆柱高h 求圆周长C1、圆面积Sa、圆球表面积Sb、圆球体积Va、圆柱体积Vb。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后一位数字。请编程序。PI=3.14

#include

int main(void)

{

double r,h,C1,Sa,Sb,Va,Vb,PI;

PI=3.14;

scanf("%lf%lf",&r,&h);

C1=2*PI*r;

Sa=PI*r*r;

Sb=4*PI*r*r;

Va=4*PI*r*r*r/3;

Vb=Sa*h;

printf("C1=%.1f\nSa=%.1f\nSb=%.1f\nVa=%.1f\nVb=%.1f\n",C1,Sa,Sb,Va,Vb);

return 0;

}

输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取2位小数。#include

int main(void)

{

double c,F;

scanf("%lf",&F);

c=5*(F-32)/9;

printf("c=%.2f\n",c);

return 0;

}

有一个函数

y={ x x<1

| 2x-1 1<=x<10

\ 3x-11 x>=10

写一段程序,输入x,输出y

#include

int main(void)

{

double x,y;

// printf(" Enterx:\n");

scanf("%lf",&x);

if(x<1){

y=x;

}

else{

if(x>=1&&x<10){

y=2*x-1;

}

else{

y=3*x-11;

}

}

printf("%.0f\n",y);

return 0;

}

给出一百分制成绩,要求输出成绩等级…A?、…B?、…C?、…D?、…E?。90分以上为A 80-89分为B 70-79分为C 60-69分为D 60分以下为E。必须使用switch语句

#include

int main(void)

{

int i,n;

scanf("%d",&i);

n=i/10;

switch(n)

{

case 9:case 10:

printf("A\n");break;

case 8:

printf("B\n");break;

case 7:

printf("C\n");break;

case 6:

printf("D\n");break;

default:

printf("E\n");break;

}

return 0;

}

给出一个不多于5位的整数,要求1、求出它是几位数2、分别输出每一位数字3、按逆序输出各位数字,例如原数为321,应输出123

#include

int main(void)

{

long i,a,b,c,d,e;

scanf("%ld",&i);

if(i>=1&&i<10)

printf("1\n%ld\n%ld\n",i,i);

if(10<=i&&i<100){

a=i/10;

b=i%10;

printf("2\n%ld %ld\n%ld%ld\n",a,b,b,a);

}

if(100<=i&&i<1000)

{

a=i/100;

b=i%100/10;

c=i%10;

printf("3\n%ld %ld %ld\n%ld%ld%ld\n",a,b,c,c,b,a);

}

if(1000<=i&&i<10000)

{

a=i/1000;

b=i%1000/100;

c=i%1000%100/10;

d=i%1000%100%10;

printf("4\n%ld %ld %ld %ld\n%ld%ld%ld%ld\n",a,b,c,d,d,c,b,a);

}

if(10000<=i&&i<100000)

{

a=i/10000;

b=i%10000/1000;

c=i%10000%1000/100;

d=i%10000%1000%100/10;

e=i%100000%10000%1000%100%10;

printf("5\n%ld %ld %ld %ld %ld\n%ld%ld%ld%ld%ld\n",a,b,c,d,e,e,d,c,b,a);

}

return 0;

}

输入两个正整数m和n,求其最大公约数和最小公倍数。

#include

int main(void)

{

int m,n;

int m_cup,n_cup,res;

// printf("Enter two integer:\n");

scanf("%d%d",&m,&n);

if(m>0&&n>0)

{

m_cup=m;

n_cup=n;

res=m_cup%n_cup;

while(res!=0)

{

m_cup=n_cup;

n_cup=res;

res=m_cup%n_cup;

}

printf("%d %d",n_cup,m*n/n_cup);

}

else printf("Error!\n");

return 0;

}

输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

#include

int main(void)

{

//输入一行字符,分别统计出英文字符,数字,空格和其他字符的个数。

char ch;

int char_num=0,int_num=0,space_num=0,other_num=0;

while((ch=getchar())!='\n')//回车键结束输入,并且回车符不计入

{

if(ch>='a'&&ch<='z'||ch<='Z'&&ch>='A')

{

char_num++;

}

else if(ch>='0'&&ch<='9')

{

int_num++;

}

else if(ch==' ')

{

space_num++;

}

else

{

other_num++;

}

}

printf("%d %d %d %d\n",char_num,int_num,space_num,other_num);

return 0;

}

求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。

#include

int main(void)

{

int i,n,j;

double s,t;

t=0;

//printf("enter n");

scanf("%d",&n);

for(i=1;i<=n;i++){

s=0;

for(j=1;j<=i;j++){

s=s*10+2;}

t=t+s;}

printf("%.f",t);

return 0;

}

求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。

#include

int main(void)

{

int a,b,c;

int i,j,k;

int s1=0,s2=0;

float s3=0,sum=0;

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

for(i=1;i<=a;i++)

{

s1=s1+i;

}

for(j=1;j<=b;j++)

{

s2=s2+j*j;

}

for(k=1;k<=c;k++)

{

s3=s3+1.000000/k;

}

sum=s1+s2+s3;

printf("%.2f\n",sum);

return 0;

}

打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3。Output:

#include

int main(void)

{

int a,b,c,i;

for(i=100;i<=999;i++)

{

a=i/100;

b=i%100/10;

c=i%100%10;//*求出水仙花数每位的数值*//

if((a*a*a+b*b*b+c*c*c)==i)

printf("%d%d%d\n",a,b,c);

}

return 0;

}

有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。

#include

main()

{ int m,i,j,a,n;

float sum=0;

scanf("%d",&n);

i=2;

j=1;

for(m=1;m<=n;m++)

{

sum+=(float)(i)/j;

a=i;

i=i+j;

j=a;

}

printf("%.2f\n",sum);

return 0;

}

一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。它在第N次落地时反弹多高?共经过多少米?保留两位小数

#include

int main(void)

{

int N,i;

double M,s,a;

scanf("%lf%d",&M,&N);

s=M;

a=M/2;

if(N!=1){

for(i=2;i<=N;i++){

s=s+2*a;

a=a/2;

}}

else s=M,a=M/2;

printf("%.2f %.2f",a,s);

return 0;

}

猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。

#include

int main(void)

{

int i,n,s;

s=1;

//printf("n");

scanf("%d",&n);

for(i=1;i

s=(s+1)*2;

}

printf("%d",s);

return 0;

}

用筛法求N(<=200)之内的素数。需要定义数组

#include

#include

int main(void)

{

int N,i,j,a[200];

scanf("%d",&N);

for (i=2;i<=N;i++)

a[i]=1;

for (i=2;i

if(a[i]) for(j=i+i;j<=N;j+=i)

a[j]=0;

for(i=2;i<=N;i++)

if(a[i])

printf("%d\n",i);

printf("\n");

return 0;

}

用选择法对10个整数从小到大排序。需要定义数组#include

int main(void)

{

int i,index,k,temp;

int a[10];

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(k=0;k<10-1;k++){

index=k;

for(i=k+1;i<10;i++)

if(a[i]

temp=a[index];

a[index]=a[k];

a[k]=temp;

}

for(i=0;i<10;i++)

printf("%d\n",a[i]);

printf("\n");

return 0;

}

求一个3×3矩阵对角线元素之和。需要定义数组

#include

int main(void)

{

int a[3][3];

int i,j,m,n;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

m=a[0][0]+a[1][1]+a[2][2];

n=a[0][2]+a[1][1]+a[2][0];

printf("%d %d",m,n);

return 0;

}

输入10个数字,然后逆序输出。需要定义数组

#include

int main(void)

{

int a[10];

int i=0;

for(i;i<10;i++)

scanf("%d",&a[i]);

for(i=9;i>=1;i--)

printf("%d ",a[i]);

printf("%d",a[0]);

return 0;

}

*所给字符串正序和反序连接,形成新串并输出

#include

#include

#include

int main()

{

char a[40],*p;

int i,len,num=0;

p=(char *)malloc(50);

scanf("%s",p);

len=strlen(p);

for(i=0;i

a[num++]=p[i];

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

a[num++]=p[i];

a[num]='\0';

printf("%s\n",a);

return 0;

}

*角谷猜想:

日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的

内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。

10/2=5

5*3+1=16

16/2=8

8/2=4

4/2=2

2/2=1

#include

int main(void)

{

int n;

scanf("%d",&n);

while(n!=1){

if(n%2==0){

n=n/2;

printf("%d/2=%d\n",2*n,n);}

else{

n=n*3+1;

printf("%d*3+1=%d\n",(n-1)/3,n);}

}

return 0;

}

输入一个正整数,输出它的所有质数的因子(如180的质数因子为2、2、3、3、5)#include #include int main(){ int num,i; scanf("%d",&num); if(num>0) for(i=2; i<=num; i++)

while(num%i==0) { num/=i;

printf("%d ",i); } return 0;}

编程,输入一个10进制正整数,然后输出它所对应的八进制数。

#include

#include

int main()

{

int a[100],i,j,k,b;

scanf("%d",&b);

for(i=0;i<100;i++)

if(b!=0)

{

j = b%8;

a[i] = j;

b = b/8;

}

else break;

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

printf("%d",a[k]);

}

输入n个整数,将其中的奇数和偶数分别显示出来(1 < n < 30)#include

int main(void)

{

int n,a[30],b[30],i,j=1,t=1,c[30];

scanf("%d",&n);

for(i=1;i<=n;i++)

scanf("%d",&c[i]);

for(i=1;i<=n;i++)

{

if(c[i]%2==0)

{

a[j]=c[i];

j++;

}

else

{

b[t]=c[i];

t++;

}

}

for(i=1;i

printf("%d",b[i]);

if(i

printf(" ");}

printf("\n");

for(i=1;i

printf("%d",a[i]);

if(i

printf(" ");}

return 0;

}

一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。编程序找出N之内的所有完数,并按下面格式输出其因子:

#includeint main(void){int

n,i,j,count;scanf("%d",&n);

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

",j);printf("\n");

相关主题
相关文档
最新文档