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)以上说法都不对
展开
 我来答
匿名用户
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);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式