选择题
有以下程序:
#include<stdio.h>
void fun(int n)
{ static int k=0;
if(n<0) {printf('-');n=-n;}
k+=n%10;printf('%d,',k);
if(n/10)fun(n/10);
}
main()
{ int x=-12;
fun(x);printf('\n');
}
程序运行后的输出结果是
A、
-2,3,
B、
-1,-2,
C、
-2,-3,
D、
-2,1
【正确答案】
A
【答案解析】
fun函数使用了静态变量,静态变量只在声明时初始化一次。首先,实参的数值是-12,if判断后输出负号,并将n=12,计算k+=n%10得k=2,因此输出2,,后将数值除以10,结果为1,递归调用fun函数。第二次调用fun,此时n=1,k=2,计算k+=n%10得k=3,因此打印3,,故最后打印结果为-2,3,。故答案为选项A。
提交答案
关闭