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

admin2019-04-24  25

问题 若有以下程序
#include
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/mhRp777K
0

最新回复(0)