单选题 下列程序段的输出结果是( )。
void fun(int *x,int *y)
{ printf("%d%d",*x,*y);*x=3;*y=4; }
main()
{
int x=2,y=1;
fun(&y,&x);
printf("%d%d",X,y);
}
  • A. 1243
  • B. 1212
  • C. 1234
  • D. 2112
【正确答案】 A
【答案解析】[解析] 本题主函数中首先定义了两个变量x和y,并初始化为2和1,然后将y和x的地址值,传入函数fun(),函数fun()中的形参x和y分别指向主函数中的变量y和x,所以fun()函数输出的值为1和2,fun()函数在结束之前把形参x所指内容赋为3,把形参y所指内容赋为4,所以返回主函数后,主函数中的x和y已被改写为4和3。故程序输出结果为1243。选项A正确。