下列给定程序中,函数fun()的功能是;计算函数 F(x, y ,z)=(x+ y)/(x-y)+(z+ y)/(z-y)的值。其中x和y不相等,z和y不等。例如,当x的值为9,y的值为11,2的值为15时,函数值为-3.50。 请改正程序中的错误,

admin2010-11-26  15

问题 下列给定程序中,函数fun()的功能是;计算函数 F(x, y ,z)=(x+ y)/(x-y)+(z+ y)/(z-y)的值。其中x和y不相等,z和y不等。例如,当x的值为9,y的值为11,2的值为15时,函数值为-3.50。
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构。
   试题程序:
   #include <stdio. h>
   #include <math. h>
   /**************found******************/
   #define FU(m, n)  (m/n)
   float fun(float a, float b, float c)
   { float value;
    value=FU(a+ b, a-b)+FU(c+ b, c-b);
   /*************found******************/
    return(Value);
   }
   main()
   { float x, y, z, sum;
    printf ("Input x y z:: ");
    scanf("%f%f%f", &x, &y, &z);
    printf("x=%f, y=%f, z=%f\n ",x, y, z);
    if (x==y||y==z) {printf ("Data error! \n ");
                       exit (0); }
    sum=fun (x, y, z);
    printf("The result is:%5. 2f\n ",sum);
   }

选项

答案(1)错误;#define FU(m, n) (m/n) 正确:#define FU(m,n) (m)/(n) (2)错误:return (Value); 正确:return (value);

解析 如果从数学思想来说,这是一道简单的小学数学题,当然,用C语言的别的办法实现的话,也用不了三两句的程序,但是,这道题的考查点在C语言的宏定义上(这样的问题比较隐蔽),它的格式为#define 标识符  字符串,中间要用空格分开,在该题中,标识符为FU (m, n),而字符串则是(m/n),由题干信息易知,应该是# define FU(m,n) (m)/(n)。
转载请注明原文地址:https://kaotiyun.com/show/lPID777K
0

最新回复(0)