选择题 18.  若有以下程序:
    #include<stdio.h>
    void fun(float*a,float*b)
    {  float w;
    *a=*a+*a;w=*a;*a=*b;*b=w;
    }
    main()
    {  float x=2.0,y=3.0,*px=&x,*py=&y;
    fun(px,py);printf("%2.0f,%2.0f\n",x,y);
    }
    程序的运行结果是______。
【正确答案】 C
【答案解析】
   #include<stdio.h>
   void fun(float*a,float*b)  //a即指向px的指针,b即指向py的指针,则*a指向x,*b指向y
   {
   float w;
   *a=*a+*a;  //将x地址存放的数据自加,x变为4
   w=*a;
   *a=*b;
   *b=w;    //将x和y地址里面的数据互换,则x变为3,y变为4
   }
   main()
   {
   float x=2.0,y=3.0,*px=&x,*py=&y;  //px和py分别是指向x和y地址的指针
   fun(px,py);
   printf("%2.0f,%2.0f\n",x,y);  //%2.0f表示结果前面有2个空格,小数点后有0位,即保留到个位