单选题 若有以下程序:
#include <stdio.h>
void sp(int *a)
{int b=2;
*a=*a*2; printf("%d,",*a);
a=&b; *a=*a*2; printf("%d,",*a);
}
main( )
{int k=3;
sp(&k); printf("%d/n",k);
}
则程序的输出结果是______。
【正确答案】 C
【答案解析】[解析] 首先在主函数中给整型变量k赋值为3,调用sp函数,将变量k的地址作为实参传递给形参指针变量a;在sp函数中,*a=*a*2;即结果为6,由于指针变量a指向地址k,所以k值此时也变成6,通过printf()函数输出。整型变量b的地址赋给指针变量a,再执行*a=*a+2;语句,即结果为4,通过printf()函数输出。返回主函数,输出k的值6。因此C选项正确。