A-A+

有以下程序 include<stdio.h> intflintn); main(){ int

2022-08-12 18:59:34 问答库 阅读 197 次

问题详情

有以下程序 include<stdio.h> intflintn); main(){ inta=3,s; s=f(a); s=s+f(a); printf(%dn,s);) intflintn){ staticinta=1; n+=a++: retumn;} 程序运行后的输出结果是
A.9
B.8
C.7
D.10

请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:A
在主函数中第一次调用f(a)时,得到变量s的值等于4,在第二次调用f(a)时,在子函数f中由于变量a是一个局部静态变量,所以这次其值等于2,因而在主函数中第二次调用f(a)后,其返回值等于5,最后变量s的值等于9。

考点:程序