0

我对我的一个测验答案有点困惑,我希望有人能给我一个解释。问题是:

您有两个名为 b 和 c 的数组。您调用一个静态方法,将一个数组的组件 k 中的值与另一个数组的组件 k 中的值交换。这种交换方法除了它的参数外,没有提到在方法之外声明的任何变量。以下哪个方法调用可能完成此操作?

答案:交换(c,b,k)

我很困惑为什么这是答案。任何帮助将不胜感激!

4

3 回答 3

0

它为 b 和 c 交换索引 k 处的元素。k-1 交换 k 之前的元素, 0 交换数组中的第一个元素

于 2013-04-29T21:08:30.550 回答
0

由于 swap() 不能引用自身之外的任何东西,所有必要的引用和信息都必须作为参数传入。

swap (c, b, k)的答案是正确的,因为它提供了对两个数组的引用以及要交换的索引。您只是无法完成传递较少参数的任务。

如果您只有swap ()swap (k)swap (c, b),那么该方法将需要自身外部的信息来完成任务。

于 2013-04-29T21:39:04.480 回答
0

很可能 swap 的声明有 c 和 b 通过引用传递。sizeof(c) >= k && sizeof(b) >= k这意味着该函数所要做的就是在进行实际交换之前检查两者以确保有足够的元素(或类似的东西)。

另外:b、c 和 k 在问题本身中定义。

于 2013-04-29T21:05:41.217 回答