有以下程序  #include<stdio.h>  void sub(double a,double *pb);  int main()  {   double x,y;   scanf("%lf%lf",&x,&y);   sub(x,&y)

admin2022-10-24  23

问题 有以下程序
 #include<stdio.h>
 void sub(double a,double *pb);
 int main()
 {
    double x,y;
    scanf("%lf%lf",&x,&y);
    sub(x,&y);
    printf("x=%f y=%f\n",x,y);
 }
 void sub(double a,double *pb)
 {
    a=a-*pb;
    *pb=*pb-a;
 }
 程序运行时输入:10.2 3.5<Enter>,则输出结果为(          )。

选项 A、x=10.200000 y=﹣3.200000
B、x=6.700000 y=﹣13.700000
C、x=7.000000 y=﹣3.500000
D、x=13.400000 y=﹣7.000000

答案A

解析 sub函数接收两个参数:double类型变量a,double指针变量pb。首先将a与pb指向的变量值相减,结果存放在a中;然后将pb指向的变量值与a的新值相减,结果存放在pb指向的内存空间中。sub函数不会修改实参x的值,但会修改实参y的值。当输入10.2 3.5时,实参x的值为10.2,y的值为3.5,执行sub函数后,x的值不变,y的值变成﹣3.2。故本题答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/OHkp777K
0

最新回复(0)