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(\\
Input a,b,c: );
scanf(%d%d%d,&a,&b,&c); printf(\\
a=%d, b=%d, c=%d\\n,a,b,c); shape =fun(a,b,c); printf(\\
\\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
int i,s=0;
for (i=2;i void main() /*主函数*/ { void NONO(); printf(%d\\n,fun(120)); NONO(); } void NONO( ) {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ FILE *wf; wf = fopen(a30.out, w) ; fprintf(wf,%d\\n,fun(120)); fclose(wf) ; } 5、计算s,并输出 1 1 1 S = 1 + ── + ─── + …… + ────── 1+2 1+2+3 1+2+3+…+n n通过键盘输入,例如:若n的值为11时,则函数值为:1.833333 #include float s=1.0,h=1; for (i=2;i<=n;i++) { h=h+i; s=s+1.0/h; } return s; } void main() { int n;float s; printf(\\ Please enter N:);scanf(%d,&n); s=fun(n); printf( he result is:%f,s); } 6、将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在t中。高
C语言程序设计练习题含程序及参考答案



