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、1234int 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)