有以下程序: #include void fun(int*a,int*b) {int*c; c=a;a=b;b=13; } main( ) {int x=3,y=5,*p=dzx,*q=&y;

admin2021-04-28  13

问题 有以下程序:
    #include
    void fun(int*a,int*b)
    {int*c;
    c=a;a=b;b=13;
    }
    main( )
    {int x=3,y=5,*p=dzx,*q=&y;
    fun(p,q);printf("%d,%d,",*p,*q);
    fun(&x,&y);printf("%d,%d\n",*P,*q);
    }
    程序运行后的输出结果是(    )。

选项 A、3,5,3,5
B、3,5,5,3
C、5,3,3,5
D、5,3,5,3

答案A

解析 fun函数的功能是交换形式参数的值,即交换指针变量a和b的值。但是fun函数并不能够交换实参的值,因此fun(p,q)不能交换p和q的值,所以第一个pfintf语句的输出为3,5。第二个fun函数对x和y的地址进行了操作,同样不能交换x和y的值,但并不影响p和q指针指向的数据,因此第二个printf语句的输出也是3,5。因此A选项正确。
转载请注明原文地址:https://kaotiyun.com/show/eXtp777K
0

最新回复(0)