C语言经典例题

阅读: 评论:0

C语言经典例题

C语言经典例题

1.分别输入长方形的长和宽,计算周长和面积。

#include<stdio.h>
int main()
{int a,b,c,s;printf("请输入长方形的长和宽:");scanf("%d%d",&a,&b);c=2*(a+b);s=a*b;printf("长方形的周长为%dn面积为%dn",c,s);return 0;
}

2.根据从键盘输入的圆的半径,求圆的周长和面积。

#include<stdio.h>
#define PI 3.14
int main()
{float r,c,s;printf("请输入圆的半径:");scanf("%f",&r);c=2*PI*r;s=PI*r*r;printf("圆的周长为%5.2fn面积为%5.2fn",c,s);return 0;
}

3.假如我国国民生产总值的年增长率为7%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为p=(1+r)^n。(r为年增长率n为年数,p为与现在相比的倍数)。

#include<stdio.h>
int main()
{
float r,p;
r=0.07;
p=(1+r)*(1+r)*(1+r)*(1+r)*(1+r)*(1+r)*(1+r)*(1+r)*(1+r)*(1+r);
printf("p=%fn",p);
return 0;
}

4.存款利息的计算。有1000元,想存五年,可按以下五种办法存:

(1)一次存五年期;

(2)先存两年期到期后将本息再存三期;

(3)先存三年期,到期后将本息再存两年期;

(4)先存一年期,到期后将本息再存一年期,连续存五次;

(5)存活期存款。活期利息每一季度结算一次。

2017年的银行存款利息如下:

一年期定期存款利息为1.5%;

二年期定期存款利息为2.1%;

年羁定期存款利息为2.75%;

年期定期存款利息为3%;

活期存款款利息为0.35%(活期存款每一季度结算一次利息)

如果r年利率,n为存款年数,则计算本息和的公式如下

一年期本息和p=1000*(1+r);

n年期本息和p=1000*(1+n*r);

存n次1年期的本息和p=1000*(1+r)^n

活期存款本息和:p=1000*(1+r/4)^4n。

说明:1000*(1+r/4)是一个季度的本息和

#include<stdio.h>
int main()
{
float r1,r2,r3,r4,r5,p1,p2,p3,p4,p5;
r1=0.0035;
r2=0.015;
r3=0.021;
r4=0.0275;
r5=0.03;
p1=1000*(1+r5*5);
p2=1000*(1+r3*2)*(1+r4*3);
p3=1000*(1+r4*3)*(1+r3*2);
p4=1000*(1+r2)*(1+r2)*(1+r2)*(1+r2)*(1+r2);
p5=1000*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4)*(1+r1/4);
printf("p1=%fnp2=%fnp3=%fnp4=%fnp5=%fn",p1,p2,p3,p4,p5);
return 0;
}

5.从键盘上输入某学生5门课的成绩,计算出总成绩和平均成绩。

#include<stdio.h>
int main()
{int a,b,c,d,e,sum,gpa;       printf("请输入该学生五门课的成绩:n");scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);sum=a+b+c+d+e;gpa=(a+b+c+d+e)/5;printf("该学生的总成绩和平均成绩分别为:%d,%d",sum,gpa);return 0;
}

6.输入一个三位数(整数),分别输出这个数的个位、十位、百位数字。

#include<stdio.h>
int main()
{int a,b,c,d;printf("请输入一个三位整数:");scanf("%d",&a);b=a%10;c=a%100/10;d=a/100;printf("该整数的个位为%d,十位为%d,百位为%dn",b,c,d);return 0;
}

7.从键盘上输入一个小写字母,改用大写字母输出。

#include<stdio.h>
int main()
{char c1,c2;printf("请输入一个小写字母:");scanf("%c",&c1);c2=c1-32;printf("%cn",c2);return 0;
}

8.从键盘上输入两个整数分别放到A和B中,输出“A=”和“B=”的值,交换两个变量的值,并输出。

#include<stdio.h>int main(){int A,B,t=0;printf("请输入两个整数:n");scanf("%d%d",&A,&B);printf("%dn",A);printf("%dn",B);t=A;A=B;B=t;printf("A=%d,B=%dn",A,B);return 0;}

9.定义整型变量int  a=12,long b=2269978;请将a的值正常整数输出,6位宽度、6位左对齐、6位高位补零输出;将b按8位输出;将a按十进制、八进制、十六进制、无符号数输出。

#include <stdio.h> 
int main() 
{      int a=12,b=2269978; printf("%dn%6dn%-6dn%06dn",a,a,a,a);printf("%8dn",b);return 0;}

10.定义浮点数变量float  x=1234.567;double y=1234.5678;完成下列输出操作:(1)请将x和y按照正常浮点数输出;(2)将x按总长度8位小数位3位; y按总长度10位小数位3位;(3)将x以科学计数法输出。

#include<stdio.h> 
main() 
{float x=1234.567;double y=1234.5678;printf("x=%f,x=%8.3f,x=%en",x,x,x);printf("y=%lf,y=%10.3lfn",y,y);printf("n");}

11.输入任意三个整数给变量a、b、c,求三个数中的最大值。

#include<stdio.h>
int main()
{int a,b,c,max;printf("请输入三个整数:n");scanf("%d%d%d",&a,&b,&c);if(a>b)max=a;elsemax=b;if(a>c)max=a;elsemax=c;if(b>c)max=b;elsemax=c;printf("三个数中最大值为%d",max);return 0;
}

12.用if语句编程,输入一个数,输出这个数的绝对值。

#include<stdio.h>
int main()
{int a,;printf("请输入一个整数:n");scanf("%d",&a);if(a>=0)printf("%dn",a);if(a<0)printf("%dn",-a);return 0;
}

13.用户输入密码,如果密码是123,则输出“恭喜你,登录成功!”,否则输出“很抱歉,登录失败!”。

#include<stdio.h>
int main()
{char code;printf("请输入密码:");scanf("%d",&code);if(code==123)printf("恭喜你,登录成功",code);if(code!=123)printf("很抱歉,登录失败",code);return 0;
}

14.根据上网用户输入的年龄,决定弹出信息,如年龄小于18则弹出“你太小了,还不能进网吧”否则弹出“ok,没问题祝你玩的愉快”。

#include<stdio.h>
int main()
{char age;printf("请输入你的年龄:");scanf("%d",&age);if(age<18)printf("你太小了,还不能进网吧",age);if(age>=18)printf("OK,没问题祝你玩得愉快",age);return 0;
}

15.根据用户输入的数,判断:

(1)是否能3整除,如能,输出能被3整除,如不能被3整除,则输出:不能被3整除

(2) 是否能5整除,如能,输出能被5整除,如不能被5整除,则输出:不能被5整除

(3)判断用户输出的数能否被3和5同时整除,如能,输出能被3和5整除。

#include<stdio.h>
int main()
{int a;printf("请输入一个整数:");scanf("%d",&a);if(a%3==0)printf("能被3整除n",a);elseprintf("不能被3整除n",a);if(a%5==0)printf("能被5整除n",a);elseprintf("不能被5整除n",a);if(a%3==0&&a%5==0)printf("能被3和5整除n",a);return 0;
}

16.输入一个数,判断它是奇数还是偶数,如果是奇数则进一步判断它是否为5的倍数。

#include<stdio.h>
int main()
{int a;printf("请输入一个数:");scanf("%d",&a);if(a%2==0)printf("该数是偶数n",a);if(a%2!=0){printf("该数是奇数n",a);if(a%5==0)printf("该数是5的倍数n",a);elseprintf("该数不是5的倍数n",a);}return 0;
}

17.从键盘输入字符,判断输入的字符属于大写、小写、数字和其他字符中的哪一种。

#include<stdio.h>
int main()
{char ch;ch=getchar();putchar(ch);if(65<=ch&&ch<=88)printf("这是大写字母n");elseif(97<=ch&&ch<=121)printf("这是小写字母n");elseif(48<=ch&&ch<=57)printf("这是数字n");elseprintf("这是其他字符n");return 0;
}

18.某超市有3种产品促销:产品1,2.5元;产品2,12.8元,10件以上9折;产品3,4.6元,20件以上8折。编程:输入客户购买的品种和数量,计算应付金额.。

#include<stdio.h>
int main()
{int type,num,sum;f[oat sum;printf("请输入产品的类型:");scanf("%d,&type);switch(type){case 1: printf("请输入产品的数量:");scanf("%d",&num);sum=2.5*num;break;case 2: printf("请输入产品的数量:");scanf("%d",&num);if(num>=10)sum=12.8*num*0.9;elsesum=12.8*num;break;case 3: printf("请输入产品的数量:");scanf("%d",&num);if(num>=20)sum=4.6*num*0.8;elsesum=4.6*num;break;}default("输入的产品类型有误:n");}printf("产品的类型%d,产品的数量:%d,总价%fn",type,num,sum);return 0;
}

19.从键盘输入三个数,按照从大到小的顺序输出。

#include<stdio.h>
int main()
{float a,b,c,t;scanf("%f%f%f",&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=c;c=b;b=t;}printf("%5.2f,%5.2f,%5.2fn",a,b,c);return 0;
}

19.求s=1*2*…*n。

#include<stdio.h>
int main()
{int n,i=1,sum=1;printf("请输入一个数字:");scanf("%d",&n);while(i<=n){sum=sum*i;i=i+1;}printf("sum=%dn",sum);return 0;
}

20.求s=1+3+…+99。

#include<stdio.h>
int main()
{
int i=1,sum=0;
for(i=1;i<100;i++)   
sum=sum+i;
printf("sum=%dn",sum);
return 0;
}

21.统计输入的整数的个数(输入-1时结束,-1不计在内)。

#include<stdio.h>
int main()
{int i=1,s1=1,sum=0;while(i<=99){sum=sum+i;i=i+2;}printf("sum=%dn",sum);return 0;
}

22.编程求1!+2!+3!+……+10!的值。

#include<stdio.h>
int main()
{int s1=1,i=1,sum=0;while(i<=10){s1=s1*i;sum=sum+s1;i=i+1;}printf("sum=%dn",sum);return 0;
}

23.打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其中各位数字的立方和等于该数本身。如:153=13+53+33。

#include<stdio.h>
int main()
{int a=0,b=0,c=0,i=0;for(i=100;i<1000;i++){a=i/100;b=(i%100)/10;c=(i%100)%10;if(i==a*a*a+b*b*b+c*c*c){printf("水仙花数有:%dn",i); //水仙花数:daffodil number.}}return 0;
}

24.把100~200之间不能被3整除的数输出,每行输出10个数。

#include<stdio.h>
int main()
{int count=0;for(int i=100;i<=200;i++)if(i%3!=0){printf("%dt",i);count++;if(count%10==0)printf("n");}printf("n");return 0;
}

25.打印显示如下的10*10的数据阵列:

1   2   3   4   5   6   7   8   9   10

2   4   6   8   10  12  14  16  18  20

3   6   9   12  15  18  21  24  27  30

4   8   12  16  20  24  28  32  36  40

5   10  15  20  25  30  35  40  45  50

6   12  18  24  30  36  42  48  54  60

7   14  21  28  35  42  49  56  63  70

8   16  24  32  40  48  56  64  72  80

9   18  27  36  45  54  63  72  81  90

10  20  30  40  50  60  70  80  90  100

#include<stdio.h>
int main()
{int i,j,n=0;for(i=1;i<=10;i++)for(j=1;j<=10;j++,n++){if(n%10==0)printf("n");printf("%dt",i*j);}printf("n");return 0;
}

26.打印九九乘法表。

#include<stdio.h>
int main()
{int i,j,n;for(i=1;i<10;i++){for(j=1;j<10;j++){if(j<=i){n=i*j;printf("%d*%d=%dt",i,j,n);}}printf("n");}return 0;
}

27.打印三角形

     *

   * * *

  * * * * *

 * * * * * * *

* * * * * * * * *

#include<stdio.h>
int main()
{int k,i,j;for(i=1;i<9;i++){for(j=0;j<8-i;j++){printf(" ");}for(k=1;k<=2*i-1;k++){printf("*");}printf("n");}return 0;
}

28.用数组来处理求Fibonacci数列问题。

#include<stdio.h>
int main()
{int i;int f[20]={1,1};  //对最前面两个元素f[0]和f[1]赋初值1for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];  //先后求出f[2]~f[19]的值for(i=0;i<20;i++){if(i%5==0)      printf("n");     //控制每输出5个数后换行printf("%12d",f[i]);    //输出一个数}printf("n");return 0;
}

29.从键盘输入10个人的工资,统计出工资总和与平均,并打印输出每个人的工资(每行打印5个数)、工资总和、平均工资。

#include<stdio.h>
int main()
{int i;float a[10],sum=0,avg;for(i=0;i<=9;i++){printf("请输入第%d个人的薪水:",i+1);scanf("%f",&a[i]);sum=sum+a[i];avg=sum/10.0;}for(i=0;i<=9;i++){if(i%5==0)printf("n");printf("%10.2ft",a[i]);if(i==9)printf("n");}printf("%5.2ft",sum);printf("%5.2fn",avg);return 0;
}

30.从键盘输入5个数,找出其中最大数。

#include<stdio.h>
int main()
{int i,a[5],max;printf("input 5 numbers:");for(i=0;i<5;i++)scanf("%d",&a[i]);max=a[0];for(i=1;i<5;i++)if(a[i]>max)max=a[i];printf("max=%dn",max);return 0;
}

31.用冒泡法对输入的10个数进行降序排序。

#include<stdio.h>
int main() 
{int a[10],i,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=1;j<10;j++)for(i=0;i<10-j;i++){if(a[i]<a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}}for(i=0;i<10;i++)printf("%-3d",a[i]);}

32.用冒泡法对输入的10个数进行降序排序并存入数组中,然后输入一个数,查找该数是否在数组中存在。如果存在,则打印出该数在数组中对应的下标值。

#include <stdio.h>
int main()
{int f[10],i,j,t,a;printf("请任意输入10个整数n");for(i=0;i<10;i++)scanf("%d",&f[i]);for(j=0;j<10;j++){for(i=0;i<10-j;i++){if(f[i]>f[i+1]){t=f[i];f[i]=f[i+1];f[i+1]=t;}}}printf("顺序为:n");for(i=0;i<10;i++)printf("%5dn",f[i]);printf("请输入你想查找的数n");scanf("%d",&t);for(i=0;i<10;i++){if(t==f[i]){printf("该数存在数组中,下标值为:%dn",i);a=1;}}if(a!=1)printf("该数不存在数组中n");return 0;
}

33.改进冒泡排序(减少交换次数)。

#include<stdio.h>
main()
{int i,k,l,a[10];for(i=0;i<=9;i++){printf("请输入一个数:");scanf("%d",&a[i]);}for(i=1;i<=9;i++){for(k=1;k<=9-i;k++)if(a[0]<a[k]){l=a[k];a[k]=a[0];a[0]=l;}if(a[0]>a[10-i]){l=a[10-i];a[10-i]=a[0];a[0]=l;}}printf("nnn请输入一个任意数:");scanf("%d",&l);k=0;for(i=0;i<=9;i++){if(l==a[i]){printf("这个数是该数组的第%d个数n",i+1);k=1;}}if(k!=1)printf("这个数不存在于这个数组n");
}

34.从键盘输入10个数,按照从小到大排序,每行输出5个数。

#include<stdio.h>
int main()
{int a[10];int i,j,t;printf("input 10 numbers:n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("n");for(j=0;j<9;j++)   for(i=0;i<9-j;i++)  if(a[i]>a[i+1])     {t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("the sorted numbers:n");for(i=0;i<10;i++)printf(" %d",a[i]);printf("n");return 0;
}  

35.找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。

#include<stdio.h>
#define N 4
#define M 5
int main()
{int i,j,k,a[N][M],max,maxj,flag;printf("please input matrix:n");for(i=0;i<N;i++)for(j=0;j<M;j++)scanf("%d",&a[i][j]);for(i=0;i<N;i++){max=a[i][0];maxj=0;for(j=0;j<M;j++)if(a[i][j]>max){max=a[i][j];maxj=j;}flag=1;for(k=0;k<N;k++)if(max>a[k][maxj]){flag=0;continue;}if(flag){printf("a[%d][%d]=%dn",i,maxj,max);break;}}if(!flag)printf("It is not exist!n");return 0;
}

36.编一程序,将两个字符串连接起来,不要用strcat函数。

#include<stdio.h>
int main()
{char s1[80],s2[40];int i=0,j=0;printf("input string1:");scanf("%c",s1);printf("input string2:");scanf("%s",s2);while(s1[i]!='')i++;while(s2[j]!='')s1[i++]=s2[j++];s1[i]='';printf("nThe new string is:%sn",s1);return 0;
}

37.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。

#include<stdio.h>
int main()
{int hcf(int,int);int lcd(int,int,int);int u,v,h,l;scanf("%d%d",&u,&v);h=hcf(u,v);printf("H.C.F=%dn",h);l=lcd(u,v,h);printf("L.C.D=%dn",l);return 0;
}
int hcf(int u,int v)
{int t,r;if(v>u){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}return(v);
}
int lcd(int u,int v,int h)
{return(v*u/h);
}

38.求方程ax2+bx+c=0的根,用三个函数分别求当:b2-4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值。

#include<stdio.h>
#include<math.h>
float x1,x2,disc,p,q;
int main()
{void greater_than_zero(float,float);void equal_to_zero(float,float);void smaller_than_zero(float,float);float a,b,c;printf("input a,b,c:");scanf("%f%f%f",&a,&b,&c);printf("equation:%5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c);disc=b*b-4*a*c;printf("root:n");if(disc>0){greater_than_zero(a,b);printf("x1=%fttx2=%fn",x1,x2);}else if(disc==0){equal_to_zero(a,b);printf("x1=%fttx2=%fn",x1,x2);}else{smaller_than_zero(a,b);printf("x1=%f+%fitx2=%f-%fin",p,q,p,q);}return 0;
}
void greater_than_zero(float a,float b)
{x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(float a,float b)
{x1=x2=(-b)/(2*a);
}
void smaller_than_zero(float a,float b)
{p=-b/(2*a);q=sqrt(-disc)/(2*a);
}

39.写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。

#include<stdio.h>
int main()
{int prime(int);int n;printf("input an integer:");scanf("%d",&n);if(prime(n))printf("%d is a prime.n",n);elseprintf("%d is not a prime.n",n);return 0;
}
int prime(int n)
{int flag=1,i;for(i=2;i<n/2&&flag==1;i++)if(n%i==0)flag=0;return(flag);
}

40.输入两个整数,按从大到小的顺序输出(采用指针)。

#include<stdio.h>
int main()
{int *p1,*p2,*p,a,b;printf("please enter two integer numbers:");scanf("%d%d",&a,&b);p1=&a;p2=&b;if(a<b){p=p1;p1=p2;p2=p;}printf("a=%d,b=%dn",a,b);printf("max=%d,min=%dn",*p1,*p2);return 0;
}

41.输入三个整数a,b,c,按从大到小的顺序输出(采用指针)。

#include<stdio.h>
int main()
{void exchange(int *q1,int *q2,int *q3);int a,b,c,*p1,*p2,*p3;printf("please enter three numbers:");scanf("%d%d%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("The order is:%d,%d,%dn",a,b,c);return 0;
}
void exchange(int *q1,int *q2,int *q3)
{void swap(int *pt1,int *pt2);if(*q1<*q2)swap(q1,q2);if(*q1<*q3)swap(q1,q3);if(*q2<*q3)swap(q2,q3);
}
void swap(int *pt1,int *pt2)
{int temp;temp=*pt1;*pt1=*pt2;*pt2=temp;
}

42.有一个数组a,有10个元素,要求输出数组中的是个元素,分别使用下标法、数组名、指针法访问数组元组。

下表法:
#include<stdio.h>
int main()
{int a[10];int i;printf("please enter 10 integer numbers:");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%d",a[i]);printf("%n");return 0;
}
数组名:#include<stdio.h>
int main()
{int a[10];int i;printf("please enter 10 integer numbers:");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%d",*(a+i));printf("n");return 0;
}指针法:#include<stdio.h>
int main()
{int a[10];int *p,i;printf("please enter 10 integer numbers:");for(i=0;i<10;i++)scanf("%d",&a[i]);for(p=a;p<(a+10);p++)printf("%d",*p);printf("n");return 0;
}

43.使用指针,将字符串a复制到字符串b中,然后输出字符串b。

#include<stdio.h>
int main()
{char a[]="I am a student.",b[20];int i;for(i=0;*(a+i)!='';i++)*(b+i)=*(a+i);*(b+i)='';printf("string a is:%sn",a);printf("string b is:");for(i=0;b[i]!='';i++)printf("%c",b[i]);printf("n");return 0;
}

本文发布于:2024-02-02 12:50:03,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170684940543912.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:例题   语言   经典
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23