C语言 答案说选C 为什么?
8.24下面程序应能对两个整型变量的值进行交换。以下正确的说法是main(){inta=10,b=20;printf("(1)a=%d,b=%d\n",a,b);swap...
8.24 下面程序应能对两个整型变量的值进行交换。以下正确的说法是
main()
{ int a=10,b=20;
printf("(1)a=%d,b=%d\n",a,b);
swap(&a,&b);
printf("(2)a=%d,b=%d\n",a,b);
}
swap(int p,int q)
{ int t;
t=p;p=q;q=t;
}
A)该程序完全正确
B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
D)以上说法都不对 展开
main()
{ int a=10,b=20;
printf("(1)a=%d,b=%d\n",a,b);
swap(&a,&b);
printf("(2)a=%d,b=%d\n",a,b);
}
swap(int p,int q)
{ int t;
t=p;p=q;q=t;
}
A)该程序完全正确
B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
D)以上说法都不对 展开
1个回答
2016-07-10
展开全部
把p,q,t都改成指针,t=p;p=q;q=t;不变!!??这样不行的.
C答案也不对!
这个代码改法要么用指针,要么用引用.
(1)指针,改成
swap(int *p,int *q)
{int t;
t=*p;*p=*q;*q=t;
}
(2)引用,改成
swap(int &p,int &q),函数代码不变,
调用地方改成swap(a,b);
C答案也不对!
这个代码改法要么用指针,要么用引用.
(1)指针,改成
swap(int *p,int *q)
{int t;
t=*p;*p=*q;*q=t;
}
(2)引用,改成
swap(int &p,int &q),函数代码不变,
调用地方改成swap(a,b);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询