C语言程序设计练习题(含程序及参考答案)Word版.docx
C语言程序设计练习题(含程序及参考答案)Word版 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=%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(&a,b); printf("%d %dn",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 (*p0) 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",&s); fun(s,&t); 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)&&(mc=i) return(i); void main() int n; printf("nPlease enter n:"); scanf("%d",&n); printf("%dn",fun(n); 10、判断两个整数m和n是否互质(即是否有公共的因子)(m1,n1)。方法是:用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 (m>n) t=n; for(k=2;k<=t;k+) if( m%k=0 && n%k=0 ) mk=0; break; return mk; void main( ) int m, n; printf( "nPlease enter 2 numbers:n" ); scanf("%d %d", &m, &n); if( IsThat( m, n ) ) printf( "Yesn" ); else printf( "Non" );