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

下面程序的运行结果是____?,第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))

}

答: B、1234

int x=1234

do { printf("%2d",x--) }while(!x)

do 循环,第一次是无条件进入,这时 x=1234。

进打印语句,输出参数 x--, 是后缀自减1,在表达式中 x 不变,保持 1234,打印出1234,出了表达式再减1成 1233。所以循环语句可以看成:

do {

printf("%2d",x)

x=x-1

}while(!x)

x=1233 大于 0 即真 等于 1。 所以 !x 等于 0, while 循环结束。

(输出格式 %2d 是 输出整型数占2位。但 c/c++语言 另有规定,当给的占位数不够数据用时,按数的实际需要 占位 输出。)

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

程序运行的结果是:

32


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存