【正确答案】
B
【答案解析】fun()函数中定义两个静态局部变量m、i,其中m初值为0,i初值为2,由于是静态局部变量,m、i只在第一次调用fun()函数时初始化,后续调用fun()函数时,m、i的值沿用上一次调用后的值。main()函数中j、m、k都是局部变量,作用域都只限在main()函数中,所以main()函数中的m与fun()函数中的m属于不同的变量。由源程序可知main()函数连续两次调用fun(1,1),第一次调用fun(1,1),fun()函数中x值为1,y值为1,m值为0,i值为2,所以执行i+=m+1后i的值为3。执行m=i+x+y后,m的值为5,函数返回值为5;第二次调用fun(1,1),fun()函数中x值为1,y值为1,m值为5,i值为3。所以执行i+=m+1后i的值为9。执行m=i+x+y后,m的值为11,函数返回值为11。故本题答案为B选项。