C 语言练习题(所提供的源程序均采纳自定义函数方式解决,如不采纳函数方式,也可直接在 main 函数中借鉴该思想 编程,因时间有限,所有程序未能一一验证,仅供参考使用 ) 1、定义一个函数 int fun(int a,int b,int c),它的功能是:若 a,b,c 能构成等边三角形函数返回 3,若能构成等腰三角形函数返回 2,若能构成一般三角形函数返回 1,若不能构成三角形函数返回 0。#include 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中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。#include 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 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的所有因子(1和n除外)之和作为函数值返回。例如:n=120时,函数值为239。#include #include int fun(int n){int i,s=0; for (i=2;i