1、C 语言程序设计练习题及参考答案 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+bc 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: “); scan
2、f(“%d%d%d“, printf(“na=%d, b=%d, c=%dn“,a,b,c); shape =fun(a,b,c); printf(“nnThe shape : %dn“,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 %dn“,a,b); fun( printf(“%d %dn“,a,b
3、); 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 #include int fun(int n) int i,s=0; for (i=2;i #include float fun(int n) int i; float s=1.0,h=1; for (i=2;i void fun(long s,long *t) int d; long s
4、1=1; *t=0; while (s0) d=s%10; if(d%2!=0) *t=d*s1+*t; s1=s1*10; s/=10; main() long s,t; printf(“nPlease enter s:“); scanf(“%ld“, fun(s, printf(“The result is:%ldn“,t); 7、 计算并输出 k以内最大的 10个能被 13或 17整除的自然数之和。 k的值从键盘传入,若 k的值为 500,则输出 4622。 #include int fun(int k) int m=0,mc=0,j; while(k=1) int k; sum = 1
5、.0; if(n int fun(int m) int i,k; for (i=m+1;i+) for (k=2;k=i) return(i); void main() int n; printf(“nPlease enter n:“); scanf(“%d“, printf(“%dn“,fun(n); 10、判断两个整数 m和 n是否互质(即是否有公共的因子)( m 1, n 1)。方法是: 用 2到 t( t取 m和 n中较小的那个数)之间的数分别去除 m和 n,若 m和 n能同时被某个数除尽,则 m和 n不互质;否则它们互质。 例如,若输入 187和 85,则应输出 No(表示它们不互质,它们有公因子 17)。若输入 89和 187,则应输出 Yes(表示它们互质)。 #include int IsThat( int m, int n ) int k, t, mk=1; t=m; if (mn) t=n; for(k=2;k=t;k+) if( m%k=0 break; return mk; void main( ) int m, n; printf( “nPlease enter 2 numbers:n“ ); scanf(“%d %d“, if( IsThat( m, n ) ) printf( “Yesn“ ); else printf( “Non“ );