若有以下程序 #include voidf(intx) {if(x>=10) {printf("%d-",x%10);f(x/10);} else printf("%d",x); } main() {intz=123456; f(z); } 则程序的输出结

admin2015-07-31  25

问题 若有以下程序
#include
voidf(intx)
{if(x>=10)
{printf("%d-",x%10);f(x/10);}
else
printf("%d",x);
}
main()
{intz=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/NBDp777K
0

最新回复(0)