A-A+
有以下程序 include<stdio.h> fun(inta intb){ intstat
问题详情
有以下程序 include<stdio.h> fun(inta,intb){ intstaticm=0,i=2; i=i+m+l: m=i+a+b; returnm;} main(){ intk=4,m=1,p; p=fun(k,m); printf(%d,,p); p=fun(k,m); printf(%dha7p);} 程序运行后的输出结果是
A.8,17
B.7,16
C.8,8
D.7,17
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A
本题考查了静态变量以及局部变量的同名问题。主函数中调用fun函数两次,第一次调用fun(4,1),形参a和b接收以后,i值为3,m的值为8,调用结束返回8存放到p中并且输出p的值为8,除了静态变量m和i,变量a,b撤销。第二次调用fun(4,1),接收实参值以后,i为3+8+1,而m为12+4+1,即输出函数值17。