有以下程序  #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-04-01  20

问题 有以下程序
 #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,ph指向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的值加上7.5赋给b,b的值为15.5;fun()函数执行完毕后,输出a的值为1.5;本题答案为c。
转载请注明原文地址:https://kaotiyun.com/show/3nkp777K
0

最新回复(0)