3.求出以下程序的运行结果,并描述程序所完成的功能。
(结果:s=16。功能是:求x的n次幂即2的4次幂。)
#include <stdio.h>
main( )
{
int power(int x,int n);
int x=2,n=4;
printf("\ns=%d",power( x,n));
}
int power(int x,int n)
{
int i,p=1;
for(i=1;i<=n;i++)
p=p*x;
return(p);
}
4.上机调试下面计算两个整数之和的程序,记录系统给出的出错信息,指出出错原因并予以改正。
正确代码为:
#include <stdio.h>
int sum( int a,int b) //函数不能嵌套定义,所以将sun函数拉到main函数外,同
{ 时形参的每个参数前都必须要有类型
{
return (a+b);
}
main( )
{
int x,y;
scanf("%d,%d",&x,&y);
printf("%d\n",sum(x,y)); //形参与实参的个数要一致,所以将加号改成逗号。
}
5.上机调试下面判断n是否是素数的程序,函数fun中有逻辑错误,调试并改正。 正确代码为:
#include <stdio.h>
fun(int n)
{
int k,yes=1;
for(k=2;k<=n/2;k++)
if(n%k==0) {yes=0; break;} //反证法证明,找到一个就跳出,否则会被后面覆盖
else yes=1;
return yes;
}
main( )
{
int n;
scanf("%d",&n);
if(fun(n )) //将main函数中的函数调用fun()改成fun(n),因为实参的个数应与形参对应
printf("%d:yes!\n",n);
else
printf("%d:no!\n",n);