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

admin2022-04-01  30

问题 有以下程序
 #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 <回车>,则输出结果为(          )。

选项 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/5Bkp777K
0

最新回复(0)