以下程序的输出结果是( )。 int d=1: fun(int p) {static int d=5; d+=P: printf(“%d”,d); return(d); } main( ) { int a=3; printf(“%d\n

admin2014-10-20  15

问题 以下程序的输出结果是(    )。
int d=1:
fun(int p)
{static int d=5;
d+=P:
printf(“%d”,d);
return(d);
}
main(    )
{
  int a=3;
  printf(“%d\n”,fun(a+fun(d)));
}

选项 A、6 9 9
B、6 6 9
C、6 15 15
D、6 6 15

答案C

解析 函数fun调用两次,第一次调用的实参是全局变量d的值1,在函数调用执行过程中,输出的是局部静态变量d;第二次调用的实参是第一次调用的返回值和变量a的和,输出的仍是局部静态变量d的值。注意静态变量的定义和初始化是在第一次使用时进行的,在以后的使用过程中,保留上一次的值,不再初始化。
转载请注明原文地址:https://kaotiyun.com/show/hwvR777K
0

最新回复(0)