问题 单项选择题

有以下程序
#include<stdio.h>
int f(int m)
static int n=0;
n+=m;
return n;

main()
int n=0;
printf("%d,",f(++n));
printf("%d\n",f(n++));

程序运行后的输出结果是( )。

A)1,2
B)1,1
C)2,3 D)3,3

答案

参考答案:A

解析: 由于在函数f中,变量n为静态局部变量,所以在主函数中第一次调用函数f后,变量n的值等于1,当第二调用函数f时,在函数f的内部静态局部变量n的值仍然保留等于1,所以返回函数值等于2。

单项选择题
判断题