程序设计if回答~

程序设计if回答~,第1张

这是个递归函数。n=5时返回值为8

答案选C

//n的变化

 //第一次

 return foo(4)+foo(3);

 //第二次

 return foo(3)+foo(2);

 //因为foo(3)大于2所以还要调用,但后面那个就foo(2)直接返回2,知道foo(2)就返回2

 //所以结果=2+2+2+2=8

1/程序:

public class TwoDimArray2 {

public static void main(String[] args){

int [][] arr = {{1,2,3},{4,5,6}};

int [] foo = arr[0];

Systemoutprintln("1 ");

for(int i=0 ;i<foolength;i++){

Systemoutprint(foo[i]+" ");

}

Systemoutprintln();

foo=arr[1];

Systemoutprintln("2 ");

for(int i=0;i<foolength;i++){

Systemoutprint(foo[i]+" ");

}

Systemoutprintln();

}

}

2/运行结果:

1 2 3 

4 5 6

3/问题:不理解int[] foo = arr[0] 和 foo = arr[1]为什么指向不同

int[] foo = arr[0] :实际是初始化foo数组,并给foo数组分配了内存空间,然后赋初值arr0;

foo = arr[1]:实际是因为已经开辟了foo的内存空间,并且初始化为数组类型格式,那么foo作为数组名就代表了这一片内存空间的地址,即将arr二维数组的第二个元素赋值给foo代表的那一块数组内存空间。

宏的替换是原样照搬, 它不会把参数运算后再替换,跟函数的参数不一样

Foo(b+2) 相当于 ( b+2 b+2 )

a=(b+2b+2);

a=3+6+2=11;

以上就是关于程序设计if回答~全部的内容,包括:程序设计if回答~、帮我看一下这个Java数组程序,我不理解int[] foo = arr[0] 和 foo = arr[1]为什么指向不同、这个程序是怎么执行的#define Foo(x) (x * x) 说出结果和原因等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10080339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存