-
UID:2
-
- 注册时间2005-10-16
- 最后登录2012-01-01
- 在线时间3141小时
-
- 发帖5692
- 搜Ta的帖子
- 精华
4
- 铜板103378
- 人品值1520
- 贡献值26
- 交易币0
- 好评度5373
- 信誉值0
- 金币0
-
访问TA的空间加好友用道具
- 发帖
- 5692
- 铜板
- 103378
- 人品值
- 1520
- 贡献值
- 26
- 交易币
- 0
- 好评度
- 5373
- 信誉值
- 0
- 金币
- 0
- 所在楼道
|
有以下程序1 QlU8uI[dk e6$W Qd`O ;[OH(! - void f(int a[], int i, int j)
- { int t;
- if(i<j)
- { t=a[i]; a[i]=a[j]; a[j]=t;
- f(a,i+1,j-1);
- }
- }
- main()
- { int i, aa[5]={1,2,3,4,5};
- f(aa,0,4);
- for(i=0; i<5; i++) printf("%d,",aa[i]);printf("\n");
- }
I,vJbvvl! `b7t4d* $uVHSH5l U$z-e/ A$0fKko 执行后输出结果是 +',S]Edx A)5,4,3,2,1, B)5,2,3,4,1, C)1,2,3,4,5, D)1,5,4,3,2, FWgpnI\X|{ .}~_a76 RMu~l@ 答案:A 'I6i,+D/q 1\2no{Vh w_K1]<Q* 解析:f(aa,0,4)调用是地址双向传递.i=0,j=4,交换aa=[0]、aa[4]的值使 >!1-lfa8 aa[5]={5,4,3,2,1};接着递归调用f(a,i+1,j-1)即f(a,1,3),交换aa[1]、aa=[3]的值使aa[5]={5,4,3,2,1};接着递归调用f(a,i+1,j-1)即f(a,2,2),由于i=j=2,退出函数调用,依次输出aa[5]的数组元素为"5,4,3,2,1," r52gn(, A#iV=76_ Y&Z.2 |