选择题
30.
有以下程序:
#include <stdio.h>
void sub(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;
sub(b-a, pa, pa); printf("%f<n",a);
}
程序的运行结果是______。
A、
9.000000
B、
1.500000
C、
8.000000
D、
10.500000
【正确答案】
C
【答案解析】
从函数参数来看,x=b-a=6.5;y=z是指向a的指针pa,也就是说*y=*z=2.5。由于指针作为参数,可以将函数中计算得到的对指针引用的*y,*x作为最后计算得到的a的值。从函数语句看,类似做这样的运算:a=a-1.0;a=a+x;。这里x=6.5,于是计算得到a=8;由于输出格式为浮点型,输出结果为8.00000000,因此,本题的正确答案为选项C。
提交答案
关闭