一道C语言的编程题目,求高手帮忙

Refer to function one below when answering Questions 1

int
one(int m, int n)
{
int ans;

if (m < 10)
if (n < 10)
ans = m + n;
else
ans = one(m, n - 2) + n;
else
ans = one(m - 1, n) + m;

return (ans);
}
1.What is the value of one(11, 11)?

a. 18
b. 29
c. 39
d. 50
e. none of the above
我扣扣 二四七七六二五七,加我帮忙解释下~~3Q
因为某种原因不能打数字^o^

第1个回答  2010-05-12
答案选E
因为one(11,11)是你定义的一个函数
而你返回的是你在这个函数中定义的ans
而ans是一个局部变量,你说他把结果返回给谁呢?
如果选别的话,说明你这个程序没有给完!
第2个回答  2010-05-12
结果是18啊。我把m和n的变化过程给你就清楚了:
11,11
10,11
9,11
9,9
到这一步的时候,执行ans = m + n;
,所以结果是18
第3个回答  2010-05-12
答案选d
----------------------------------------------------------
if (m < 10) -----①
{
if (n < 10) -----②
ans = m + n;

else a -----③
ans = one(m, n - 2) + n;
}

else ------④
ans = one(m - 1, n) + m;
----------------------------------------------------
(1)m=10或11 :走④路
(2)m<10, n=10或11 : 由①进,走③路
(3)m<10, n<10 :由①进,走②路
第4个回答  2010-05-12
one(10, 11) + 11
one(9, 11) + 10 + 11
one(9, 9) + 11 + 10 + 11
18 + 11 + 10 + 11

50本回答被提问者采纳
第5个回答  2010-05-12
想要回答请加877523662 答案选d,
相似回答