单项选择题

下面程序应能对两个整型变量的值进行交换。以下正确的说法是( )。    #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;}

A. 该程序完全正确
B. 该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C. 该程序有错,只要将swap( )函数中的形参p和q以及t均定义为指针(执行语句不变)即可
D. 以上说法都不对