
32
第一次调用:
p=4,k=1,t=2,
调用喊消结束后嫌肆k=2,t=3,返回值是4*2*3=24
第二次调用:
p=4,k=1,t=3,
调用结束后k=2,t=4,返回值是4*2*4=32
fun(int p)
{ int k=1
static t=2
k=k+1
t=t+1
return(p*k*t)
}
main( )
{ int x=4
fun(x)
printf(''%d\n'',fun(x))
}
这个程序的源程序和运行结果如图,但是这个程序有埋掘问题,
在n小于0时,返回的模行f没有赋值,是一个随机值,所以结果有错.
改弯码核正的程序见第2个源代码图和运行结果图.
改正后的程序和运行结果
因为x在for-j循环中加了两次(j等于0时,加一次,j等于2时加轮携一次),加上for-i循环中加的两腊旅伏次,
也就是说在for-i循环中,循环镇戚一次,x加了4次,for-i循环了2次,所以2乘以4等于8,x一共加了8次,所以答案是8
#include<stdio.h>int main()
{
int i,j,x=0
for(i=0i<2i++)
{
x++
for(j=0j<=3j++)
{
if(j%2) continue
x++
}
x++
}
printf("x=%d\n",x)
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)