在下面:
样题二
一、(20分)
编译以下程序“b1.c”,然后回答问题。
swap(pt1,pt2)
int
*pt1,*pt2;
{int p;
p=*pt1;
*pt1=*pt2;
*pt2=p;
}
exchange(q1,q2,q3)
int
*q1,*q2,*q3;
{if(*q1<*q2)
swap(q1,q2);
if(*q1<*q3)
swap(q1,q3);
if(*q2<*q3)
swap(q2,q3);
}
main()
{int a,b,c,*p1,*p2,*p3;
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
exchange(p1,p2,p3);
printf("\n%d,%d,%d\n",a,b,c);
}
1、简述函数swap()的功能。
2、假设输入为“98,0,100”,则程序输出是什么?
二、完善程序或程序纠错(40分)
1、用递归方法求n!
1 (n=0,1)
n!=
n·(n-1)!
(n>1)
请填补程序“b2.c”的空缺,改正其中的错误,并编译执行之。将正确的程序存入b2.c。
|