C语言练习题精选1

来源:百度文库 编辑:神马文学网 时间:2024/04/28 05:19:07
 

C语言练习题精选

1. 从键盘上输入两个整数,求出它们的和

#include "stdio.h"

void main()

{

  int x,y,s;

  scanf("%d",&x);

  scanf("%d",&y);

  s=x+y;

  printf("\\n s=%d",s);

}

2. 已知三角形的底和高,求出三角形的面积。

#include "stdio.h"

void main()

{

  int x,y;

  float s;

  x=4;

  y=5;

  s=x*y/2.0;

  printf("\\n s=%f",s);

}

3. 从键盘上输入三角形的底和高,求出三角形的面积。

#include "stdio.h"

void main()

{

  int x,y;

  float s;

  scanf("%d",&x);

  scanf("%d",&y);

  s=x*y/2.0;

  printf("\\n s=%f",s);

}

4. 已知三角形的三边长,求出三角形的面积。

#include "stdio.h"

#include "math.h"

 

void main()

{

  int a,b,c;

  float p,s;

  a=3;

  b=4;

  c=5;

  p=(a+b+c)/2.0;

  s=sqrt(p*(p-a) *(p-b) *(p-c));

  printf("\\n s=%f",s);

}

5. 已知二元一次方程的三个系数,求方程的一个根。

#include "stdio.h"

#include "math.h"

void main()

{

  int a,b,c;

  float root;

  a=3;

  b=4;

  c=5;

  root=(-b-sqrt(pow(b,2)-4*a*c))/(2.0*a);

  printf("\\n root=%f",root);

}

 

6. 编程实现符号函数。当x <0 ,则sgn(x)=-1, 当x >0 ,则sgn(x)=+1, 当x =0 ,则sgn(x)=0

#include "stdio.h"

void main()

{

  float x;

  int y;

  scanf("%f",&x);

  if (x>0);

    y=1;

  if (x==0);

    y=0;

  if (x<0);

    y=-1;

  printf("\\n x=%f ,sgn(x)=%d",x,y);

}

 

 

或者:

 

#include "stdio.h"

 

void main()

{

  float x;

  int y;

  scanf("%f",&x);

  if (x>0);

    y=1;

  else if (x==0);

       y=0;

     else;

       y=-1;

  printf("\\n x=%f ,sgn(x)=%d",x,y);

}

 

 

或者:

 

#include "stdio.h"

 

void main()

{

  float x;

  int y;

  scanf("%f",&x);

  y=(x>0) ? 1: (x==0) ? 0 : -1;

  printf("\\n x=%f ,sgn(x)=%d",x,y);

}

7. 从键盘上输入数字星期,在屏幕上显示英文星期。

 

#include "stdio.h"

 

void main()

{

  float x;

  scanf("%f",&x);

  switch( x )

   {

     case 0 :printf("Sunday.\\n");break;

     case 1 :printf("Monday.\\n");break;

     case 2 :printf("Tuesday.\\n");break;

     case 3 :printf("Wednesday.\\n");break;

     case 4 :printf("Thursday.\\n");break;

     case 5 :printf("Friday.\\n");break;

     case 6 :printf("Saturday.\\n");break;

     default :printf("不存在这个星期!\\n");

   }

}

8. 从键盘输入三角形的三边长,判断出这三边能否构成三角形

#include "stdio.h"

 

void main()

{

  int a,b,c;

  scanf("%d",&a);

  scanf("%d",&b);

  scanf("%d",&c);

  if ((a+b>c) && (a+c)>b) && (b+c)>a )

    printf("这三边能构成三角形!");

  else

    printf("这三边不能构成三角形!");

}

9. 从键盘输入三个整数,将这三个数按从大到小的顺序排列起来

#include "stdio.h"

void main()

{

  int a,b,c,temp;

  scanf("%d",&a);

  scanf("%d",&b);

  scanf("%d",&c);

  if ((a>b) && (a>c) && (b>c))

   printf("这三数从大到小的顺序为:%d,%d,%d",a,b,c);

  if ((a>b) && (a>c) && (b

   printf("这三数从大到小的顺序为:%d,%d,%d",a,c,b);

  if ((b>a) && (b>c) && (a>c))

   printf("这三数从大到小的顺序为:%d,%d,%d",b,a,c);

  if ((b>a) && (b>c) && (c>a))

   printf("这三数从大到小的顺序为:%d,%d,%d",b,c,a);

  if ((c>b) && (c>a) && (a>b))

   printf("这三数从大到小的顺序为:%d,%d,%d",c,a,b);

  if ((c>b) && (c>a) && (b>a))

   printf("这三数从大到小的顺序为:%d,%d,%d",c,b,a);

}

 

 

或者这样写:

#include "stdio.h"

void main()

{

  int a,b,c,temp;

  scanf("%d",&a);

  scanf("%d",&b);

  scanf("%d",&c);

  if (a

   {

     temp=a;

     a=b;

     b=temp;

   }

 

 

  if (a

   {

     temp=a;

     a=c;

     c=temp;

   }

  if (b

   {

     temp=b;

     b=c;

     c=temp;

   }

 printf("这三数从大到小的顺序为:%d,%d,%d",a,b,c);

}

10. 从键盘输入二个整数,求出最大值。

 

#include "stdio.h"

 

void main()

{

  int a,b,temp;

  scanf("%d",&a);

  scanf("%d",&b);

  if (a>b)

    temp=a;

  else

    temp=b;

  printf("这二个整数最大值为%d",temp);

}

 

 

11. 从键盘输入三个实数,求出最大值。

 

 

 

 

#include "stdio.h"

 

void main()

{

  float a,b,c,temp;

  scanf("%f",&a);

  scanf("%f",&b);

  scanf("%f",&c);

  if (a>b)

    temp=a;

  else

    temp=b;

  if (temp

    temp=c;

  printf("这三数最大值为%f",temp);

}

12. 从键盘输入三个整数,在一个程序中既要求出最大值,还要求出最小值。

 

 

 

 

 

#include "stdio.h"

 

void main()

{

  int a,b,c,max,min;

  scanf("%d",&a);

  scanf("%d",&b);

  scanf("%d",&c);

  if (a>b)

    {max=a; min=b;}

  else

    {max=b;min=a;}

  if (max

    max=c;

  if (min>c)

    min=c;

  printf("这三个整数最大值为:%d,最小值为:%d.",max,min);

}

 

 

13. 使用for循环编程求出1到100的和

 

 

 

 

#include "stdio.h"

void main()

{

  int i,s=0;

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

    s=s+i;

  printf("\\ns= %d",s);

}

 

 

14. 使用当循环编程求出1到100的和

 

 

 

 

#include "stdio.h"

void main()

{

  int i=1,s=0;

  while (i<=100)

    {

     s=s+i;

     i++;

    }

  printf("\\ns= %d",s);

}

 

 

 

15. 使用当循环编程求出1到100的和

 

 

 

 

#include "stdio.h"

void main()

{

  int i=1,s=0;

  do

    {

     s=s+i;

     i++;

    }

  while (i<=100);

  printf("\\ns= %d",s);

}

 

 

 

16. 从键盘输入10个实数,求出最大值

 

 

 

 

#include "stdio.h"

void main()

{

  int i;

  float x,max;

  scanf("%f",&x);

  max=x;

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

   {

    scanf("%f",&x);

    if (max

      max=x;

   }

  printf("这十数中的最大值为:%f",max);

}

 

 

 

15. 从键盘输入10个整数,求出最小值

 

 

 

 

#include "stdio.h"

 

void main()

{

  int i x,min;

  scanf("%d",&x);

  min=x;

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

   {

    scanf("%d",&x);

    if (min>x)

      min=x;

   }

  printf("这十整数中的最小值为:%d",min);

}

 

 

16. 从键盘输入10个整数,求出它们的平均值

 

 

 

 

#include "stdio.h"

 

void main()

{

  int i a[10],s=0;

  float aver=0.0;

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

  {

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

    s=s+i;

  }

  aver=s/10.0;

  printf("这十整数中的平均值为:%f",aver);

}

 

 

 

 

17. 编程在屏幕上输出具有7行的正三角形

 

 

 

 

       *

      ***

     *****

    *******

   *********

  ***********

 *************

#include "stdio.h"

void main()

{

  int  i , j;

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

  {

   for (j=0; j<6-i; j++)

     printf(" ");

   for (j=0; j<=2*i+1; j++)

     printf("*");

   printf("\\n");

  }

 

 

18. 求出8的阶乘。

 

 

 

 

 

 

#include "stdio.h"

void main()

{

  int  i ;

  long p=1;

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

   p=p*i;

  printf("\\n8的阶乘值为:%ld",p);

 

 

从键盘输入20个整数,求出不大于90所有数的和

 

 

 

 

 

 

#include "stdio.h"

 

void main()

{

  int  i ,s=0,x;

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

  {

    scanf("%d",&x);

    if (x<=90)

      s=s+x;

  }

  printf("\\n不大于90所有数的和:%d",s);

 

 

 

从键盘输入一个整数,判断这个数是否为素数

 

 

 

 

 

#include "stdio.h"

 

void main()

{

  int  i ,x,flag=1;

  scanf("%d",&x);

  for (i=2;i

  {

    if ( x % i ==0)

     { 

       flag=0;

       break;

     }

  }

  if (flag==1)

    printf("\\n该数是素数");

  else

    printf("\\n该数不是素数");

 

 

 

 

 

从键盘输入20个整数,求出它们的和

 

 

 

 

 

#include "stdio.h"

 

void main()

{

  int  i ,s=0,x[20];

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

  {

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

    s=s+x[i];

  }

  printf("\\n所有数的和:%d",s);

 

 

从键盘输入20个整数,求出它们的平均值及比平均值大的数

 

 

 

 

 

#include "stdio.h"

void main()

{

  int  i ,s=0,x[20];

  float aver=0.0;

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

  {

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

    s=s+x[i];

  }

  aver=s/20.0;

  printf("平均为:%f\\n",aver);

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

  {

   if (x[i]>aver)

     printf("比平均大的数为:[%d]=%d\\n",i,x[i]);

  }

 

 

 

 

已知五个整数3,-5,8,2,9,求出最大值

 

 

 

 

 

#include "stdio.h"

 

 

void main()

{

  int  i ,x[5]={ 3,-5,8,2,9},max;

  max=x[0];

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

   if (x[i]>max)

    max=x[i];

  printf("最大值为:%d\\n",max);

 

 

 

 

 

 

 

从键盘输入20个整数,求出它们的最小值,并求最小值所在位置

 

 

 

 

 

#include "stdio.h"

 

void main()

{

  int  i ,min,x[20],pos=0;

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

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

  min=x[0];

  pos=0;

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

  if (x[i]>min)

  {

    min=x[i];

    pos=i;

  }

  printf("最小值为:%d,最小值位置为:%d\\n",min,pos);

 

 

已知五个整数3,-5,8,2,9,按从大到小的顺序排列起来

 

 

 

 

 

 

#include "stdio.h"

void main()

{

  int   j ,k, t , b[5]={ 3,-5,8,2,9};

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

   for (k=j-1; k<5; k++)

    if (b[j]

     {

       t= b[j];

       b[j]= b[k];

       b[k]=t;

     }

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

   printf("\\n %d,",b[j]);

}

 

 

从键盘输入10个实数,按从大到小的顺序排列起来

 

 

 

 

 

 

#include "stdio.h"

void main()

{

  int  i, j ,k;

  float b[10],t;

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

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

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

   for (k=j-1; k<10; k++)

    if (b[j]

     {

       t= b[j];

       b[j]= b[k];

       b[k]=t;

     }

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

   printf("\\n %f,",b[j]);

}

 

 

 

 

 

某班有43名学生,某门考试结束后,请按10段统计出各分数段的人数

 

 

 

 

 

#include "stdio.h"

 

void main()

{

  int   j , x[43],fragment[12];

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

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

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

   fragment[x[j]/10]= fragment[x[j]/10]+1;

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

   printf("\\n各分数段人数为 %d", fragment[j]);

}

 

 

或者写成:

#include "stdio.h"

 

void main()

{

  int   j , x[43],t ,fragment[12];

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

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

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

   {

     t= x[j]/10;

     fragment[t]= fragment[t]+1;

   }

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

   printf("\\n各分数段人数为 %d", fragment[j]);

}

 

 

 

 

 

从键盘上输入两个字符串,并将它们交换后输出

 

 

 

 

 

#include "stdio.h"

#include "string.h"

 

void main()

{

  int   j ,k;

  char ch1[81],ch2[81],t[81];

  scanf("%s",ch1);

  scanf("%s",ch2);

  strcpy(t , ch1);

  strcpy(ch1 , ch2);

  strcpy( ch2 ,t);

  printf("\\n %s,%s\\n,",ch1,ch2);

}

 

 

 

 

 

已知五个字符串"China","American","Japan","France","Australia",编程将它们按从小到大的顺序排列起来

 

 

 

 

 

#include "stdio.h"

#include "string.h"

 

void main()

{

  int   j ,k;

  char t[81], b[5][81]= {"China","American","Japan","France","Australia"};

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

   for (k=j-1; k<5; k++)

    if ( strcmp(b[j]>b[k]) )

    {

     strcpy(t , b[j]);

     strcpy(b[j] , b[k]);

     strcpy( b[k] ,t);

    }

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

   printf("\\n %s,",b[j]);

}