有以下程序  #include<stdio.h>  void fun(int n)  { static int k=0;   if(n<0){printf("-");n=﹣n;}   k+=n%10;printf("%d,",k);   if

admin2022-10-24  24

问题 有以下程序
 #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函数定义静态变量k,静态变量只在声明时初始化一次。调用fun函数实参的数值是﹣12,if判断后输出负号,并将其重新赋值为12。计算k+=n%10,即k+=12%10=2,因此输出2。接着用n除以10,结果为1,递归调用.fun函数。第2次调用fun函数,此时n=l,k=2,计算k+=n%10,即k+=l%10,计算后k的值为3,输出3。最后输出结果为“﹣2,3,”。故本题答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/xnd0FFFM
0

相关试题推荐
最新回复(0)