下面程序的运行结果是____?

下面程序的运行结果是____?,第1张

程序运行的结果是

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))

}

这个函数分析时,主要注意的是静态变量的处理,静态变量在一次调用结束以后,它的值能够保留到下一次调用,继续有效,不过在这里只调用一次也无所谓的。

程序运行的结果是:

32

其中有不少小的错误,作为程序它是不能运行的。

#include<stdio.h>

int main( )

{ int y=2,a=1

while(y--!=-1)

{ do{a *=y a++} while(y--) }

printf("%d,%d",a,y)

return 0

}

运行后的输出是:

1,-2

分析运行过程:

y=2,a=1

判断,为真,y变为1

进入do循环:

a=1*1=1a++变为2

内循环判断y--为真,y变为0;

再次内循环:

a=2*0=0a++变为1

内循环判断y--为假,y变为-1;

外循环判断为假,y变为-2;

所以,最后的输出是1,-2


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7755558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存