问题 单项选择题

有以下程序
#include<stdio.h>
int a=1:
int f(int c)
static int a=2;
c=c+1:
return(a++)+c;

main()
int i,k=0;
for(i=0;i<2;i++)(int a==3;k+=f(a);
k+=a;
printf("%d\n",k);

程序运行结果是( )。

A.14
B.15
C.16
D.17

答案

参考答案:A

解析: 在主函数中,k的初值为0,首先调用函数f(3),返回值为6,k的值变为6,而函数int fun(int c)中的局部静态变量a等于3。第二次调用函数f(3)时,返回值为7,所以k=6+7=13。退出循环语句,k再加上全局变量a的值1,其最终的值为14。

单项选择题
单项选择题