有以下程序 #include int f(int n); main(){int a=3,s; int f(int n){static int a=1; s=f(a); n+=a

admin2018-01-11  49

问题 有以下程序
    #include
    int f(int n);
    main(){int a=3,s;    int f(int n){static int a=1;
    s=f(a);                      n+=a++;
    s=s+16(a);                 return n;
    printf("%d\n",s);}       }
    程序运行后的输出结果是

选项 A、9
B、8
C、7
D、10

答案A

解析 在主函数中第一次调用f(a)时,得到变量s的值等于4,在第二次调用f(a)时,在子函数f中由于变量a是一个局部静态变量,所以这次其值等于2,因而在主函数中第二次调用f(a)后,其返回值等于5,最后变量s的值等于9。
转载请注明原文地址:https://jikaoti.com/ti/tOa0FFFM
0

最新回复(0)