有以下程序 int f(int m) main(){int n=0; {static int n=0; printf("%d,",f(++n)); n+=m;return n;} printf("%d\n",f(n++));} 程序运行后的输出结果是

admin2020-11-23  33

问题 有以下程序
int f(int m)  main(){int n=0;
{static int n=0;  printf("%d,",f(++n));
n+=m;return n;}  printf("%d\n",f(n++));}
程序运行后的输出结果是

选项 A、1,1
B、1,2
C、2,3
D、3,3

答案B

解析 由于在函数f中,变量n为静态局部变量,所以在主函数中第一次调用函数f后,变量n的值等于1,当第二调用函数f时,在函数f的内部静态局部变量n的值仍然保留等于1,所以返回函数值等于2。
转载请注明原文地址:https://kaotiyun.com/show/hf3p777K
0

最新回复(0)