单选题 下面程序应能对两个整型变量的值进行交换。以下正确的说法是( )。    #include<iostream.h>    void swap(int p,int q)    { int t;     t=p;     p=q;     q=t;}    void main( )    { int a=10,b=20;      cout<<a<<" "<<b;      swap(&a,&b);      cout<<a<<" "<<b;}
【正确答案】 D
【答案解析】本题应该把swap( )函数改成这样:swap(int * P,int * q){int t ; t= * p; * p=*q;*q=t;}执行程序时,先将a的地址传递给指针变量p,b的地址传递给指针变量q,然后将*p(a的值)的值传递给t,将*q(b的值)传递给 * p,将t的值传递给 * q,从而将a值和b值互换。