问题 单项选择题

有以下程序:
#include<stdio.h>
int f(int n):
main()
int a=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);

mt f(int n)
static int a=1;
n+=a++;
return n;

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

A) 7
B) 8
C) 9
D) 10

答案

参考答案:C

解析: 本题考查函数的调用。当执行s=f(a)时,进入fun函数,n=n+(a++),n的值为3,a的值为1,a++的意思是先用a的值,再将a加1为2,所以n的结果为4,也就是主函数中f(a)的结果为4;返回主函数,执行s=s+f(a),s为4,再次函数调用,此时n仍为3,a的值刚才已经自加为2,所以计算后n的值为5,a自加1为3。返回主函数,f(a)的结果为5,所以s=4+5=9。

问答题 简答题
单项选择题