请帮我解答!谢谢!

fair22 2006-03-21 05:00:35
(1)

void fun(int *a,int i,int j)

{int t;

if(i<j)

{t=a[i];a[i]=a[j];a[j]=t;

fun(a,++i,--j);}

}

main( )

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

fun(a,0,5);

for(i=0;i<6;i++)

printf("%d",a[i]);

}

以上程序输出结果为?

答案:6 5 4 3 2 1

(2)

void swap(int *a,int *b)

{ int *t;

t=a;a=b;b=t;}

main( )

{int x=3,y=5,*p=&x,*q=&y;

swap(p,q);

printf("%d,%d",*p,*q);

}

以下程序输出结果?

答案:3,5

我问一下(1)(2)两题为什么得出那样的答案,两题比较一下,值传递时形参不能将结果传给实参,地址传递时形参能将结果传给实参,那么当实参为数组元素时,形参能将数据传给实参吗?



(3)

main( )

{ char s[ ]="9876",*p;

for (p=s;p<s+3;p++)

printf("%s\n",p);}

以上程序输出结果为?

答案:9876 876

(4)

#include <stdio.h>

#include <string.h>

main ( )

{ char b1[8]="abcdefg",b2[8],*p=b1+3;

while(--pb>=b1) strcpy(b2,pb);

printf("%d\n",strlen(b2));}

以上程序输出结果为?

答案:7

对比(3)(4)两题,数组名+数字 到底表示什么?

(5)

已知二树杈后序遍历序列是dabec,中序遍历为debac,则它的前序遍历为?

答案:cedba

这道题怎么做?

(6)

若串s="Program",则其子串的数目为?

答案:29

这体怎么做?
...全文
83 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilovevc709 2006-03-21
  • 打赏
  • 举报
回复
1)是传的地址,2)是传的值(指针的值).
3)4)中"数组名+ 数字"表示的是地址,具体就是数组名[数字]的地址.3)9876 876 76
5)看书(我正在看)
6)7+6+5+4+3+2+1+1 =29
这些看书就知道的了.
shine51151 2006-03-21
  • 打赏
  • 举报
回复
晕!

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧