问题 填空题

下列给定程序中,函数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); }

答案

参考答案:(A)错误;#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)。

选择题
单项选择题