若有以下程序 #include <stdio.h> void f(int x) { if (x >= 10) { printf("%d-", x%10); f(x/10); }

admin2021-06-15  19

问题 若有以下程序
     #include <stdio.h>
     void f(int  x)
     {  if (x >= 10)
        {  printf("%d-", x%10);     f(x/10);   }
        else
          printf("%d", x);
     }
     main()
     {   int  z = 123456;
         f(z);
     }
则程序的输出结果是

选项 A、6-5-4-3-2-1-
B、6-5-4-3-2-1
C、1-2-3-4-5-6
D、1-2-3-4-5-6-

答案B

解析 本题重点考察函数的递归调用,程序首先初始化整型变量z为123456,调用函数f。f函数中首先通过if条件语句判断x是否大于等于10,如果条件成立,求x除以10的余数并输出,同时将变量x进行x/10运算,同时调用函数f。如果条件不成立,直接输出变量x。因此第1次调用函数,变量x为123456,条件成立,输出余数6;第2次调用函数,变量x为12345,条件成立,输出余数5;第3次调用函数,变量x为1234,条件成立,输出余数4;第4次调用函数,变量x为123,条件成立,输出余数3;第5次调用函数,变量x为12,条件成立,输出余数2;第6次调用函数,变量x为12345,条件不成立,输出1。因此B选项正确。
转载请注明原文地址:https://kaotiyun.com/show/Bwtp777K
0

最新回复(0)