问题 填空题

下列程序的运行结果是______。
#include <stdio.h>
func (a,b)
static int m=0,i=2;
i+=m+ 1;
m=i+a+b;
return(m);

main()
int k=5,m=3,p;
p= func (k, m);
printf("%d", p);
p= func (k, m);
printf("%d、n" ,p);

答案

参考答案:11 23

解析:在主函数中第一次调用func子函数时,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因为在子函数中将m和i定义成了static类型,所以在子函数中对m和i进行的改变在下一次调用子函数时能进行保存,所以第二次调用子函数时,m=11,i=3,则i=i+m+1=15, m=i+a+b=15+5+3=23。

判断题
判断题