有以下程序  #include<stdio.h>  void fun(double x,double *y,double *z)  {*y=*y-1.0;*z=*z+x;}  main()  { double a=2.5,b=9.0,*pa,*pb;  

admin2022-10-24  26

问题 有以下程序
 #include<stdio.h>
 void fun(double x,double *y,double *z)
 {*y=*y-1.0;*z=*z+x;}
 main()
 {  double a=2.5,b=9.0,*pa,*pb;
    pa=&a;pb=&b;
    fun(b-a,pa,pb);
    printf("%f\n",a);
 }
 程序运行后的输出结果是(          )。

选项 A、8.000000
B、9.000000
C、1.500000
D、10.500000

答案C

解析 main函数定义两个double类型的变量a、b,分别赋初值为2.5、9.0。另外定义两个double类型的指针变量pa、pb,其中pa指向a,pb指向b。然后将b-a、pa、pb传给函数fun,此时x的值为6.5,y指向a,z指向b。“*y=*y-1.0;”是将变量a的值减去1.0后赋给a,a的值为1.5;“*z=*z+x;”足将变量b的值加上6.5后赋给b,b的值为15.5。fun函数执行完毕后,输出a的值为1.5。故本题答案为C选项。
转载请注明原文地址:https://jikaoti.com/ti/7Sd0FFFM
0

最新回复(0)