有以下程序 #include<stdio.h> intflintn); main( ){ inta=3,s; s=f(a); s=s+f(a); printf(’’%d\n’’,s);) intflintn){ staticinta=1; n+=a+

admin2014-06-18  18

问题 有以下程序
#include<stdio.h>
intflintn);
main(    ){
inta=3,s;
s=f(a);
s=s+f(a);
printf(’’%d\n’’,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。
转载请注明原文地址:https://kaotiyun.com/show/RYJp777K
0

最新回复(0)