首页 > 试题广场 >

给定以下方法声明,调用执行mystery(1234)的输出结

[单选题]
给定以下方法声明,调用执行mystery(1234)的输出结果?
//precondition:  x >=0
public void mystery (int x)
{
System.out.print(x % 10);

if ((x / 10) != 0)
{
mystery(x / 10);
}
System.out.print(x % 10);
}
  • 1441
  • 43211234
  • 3443
  • 12344321
首先1234对10取余是4,第一个打印肯定有4,所以排除其他选项选B

编辑于 2019-08-28 15:20:51 回复(0)
这题又是出栈入栈的先后问题 1.执行函数mystery(1234),相当于这个函数入栈,打印出4,因为x符合if语句条件,执行if语句,即mystery(123),因为是int类型,所以自动转型。但是,务必要注意的是!!!划重点!!!if语句后面还有一句打印没有执行!! 2.这个时候一定是先执行if语句中的函数,所以执行mystery(123),即mystery(123)入栈,以此类推,一直执行到mystery(1)的时候,再利用入栈的顺序,对每个函数最后一句打印出栈。
发表于 2019-09-30 14:00:42 回复(0)
一开始1234取余为4,基本类型传入的是值的副本,所以第一个mystery(x/10)括号中的数字为123,取余为3,继续迭代,所以结果为43211234.
发表于 2019-09-02 21:55:30 回复(0)
排除法直接选B
发表于 2019-08-29 21:15:34 回复(0)
发表于 2019-08-23 11:11:33 回复(3)