请帮我解答!谢谢!
(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
这体怎么做?