C语言练习题
(所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参考使用)
1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0
#include <stdio.h>
int  fun(int  a,int  b,int  c)
{
if(a+b>c && b+c>a && a+c>b)
{
      if(a==b && b==c )
return 3;
else if(a==b||b==c||a==c)
        return  2;
else return 1;
  }
  else  return  0;
}
void main()
int  a,b,c,shape;
  printf("\nInput a,b,c:  "); 
scanf("%d%d%d",&a,&b,&c);
  printf("\na=%d,  b=%d,  c=%d\n",a,b,c);
  shape =fun(a,b,c);
  printf("\n\nThe shape  :  %d\n",shape);
}

2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3b中的值原为8,程序运行后 a 中的值为8b中的值为3
#include <stdio.h>
void fun(int *x,int *y)
{
    int t;
t=*x;*x=*y;*y=t
}
void main()
{
    int a=3,b=8;
    printf("%d  %d\n",a,b);
    fun(&a,b);
    printf("%d  %d\n",a,b);
}

3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。
  例如,输入的数为:55  12  34
输出结果应当是:a=55.0,b=34.0,c=12.0
#include <stdio.h>
void fun(float *p,float *q,float *s)
{
float k;
    if (*p<*q)
{   k=*p;*p=*q;*q=k;}
if (*q<*s)
    {  k=*s;*s=*p;*p=k;}
if (*p<*q)
    {  k=*p;*p=*q;*q=k;}
}
void main()
{  float a,b,c;
    printf("Input a b c:  "); scanf("%f%f%f",&a,&b,&c);
    printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);
    fun(&a,&b,&c);
    printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);
}

4、编写函数fun(int n),它的功能是:计算正整数n的所有因子(1n除外)之和作为函数值返回。例如:n=120时,函数值为239
#include <stdio.h>
#include <stdlib.h>
int fun(int n)
{
int i,s=0;
  for (i=2;i<n;i++)
    if (n%i==0) s=s+i;
  return s;
}
void main()  /*主函数*/
  void NONO();
printf("%d\n",fun(120));
NONO();
}
void NONO( )
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
    输出数据,关闭文件。 */
  FILE  *wf;c语言数组最大值最小值
  wf = fopen("a30.out", "w") ;
  fprintf(wf,"%d\n",fun(120));
  fclose(wf) ;
}

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