首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中函数fun的功能是:计算函数(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等,z和y的值不等。例如,当x的值为9、y的值为11、z的值为15时,函数值为-3.50。 请改正程序中的错误,使它能得
给定程序MODI1.C中函数fun的功能是:计算函数(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等,z和y的值不等。例如,当x的值为9、y的值为11、z的值为15时,函数值为-3.50。 请改正程序中的错误,使它能得
admin
2019-09-02
30
问题
给定程序MODI1.C中函数fun的功能是:计算函数(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等,z和y的值不等。例如,当x的值为9、y的值为11、z的值为15时,函数值为-3.50。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
#include<math.h>
{}include<stdlib.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)) (2)return (value);
解析
本题中函数的功能是计算题干中给出的公式值。本题的解题过程是利用了定义的宏FU,实现了函数中给出的公式的求值。
(1)函数fun两次调用宏FU来计算“value=FU(a+b,a-b)+FU(c+b,c-b);”。检查宏的定义是否正确,可以用实参代入宏进行展开:(a+b/a-b),由此看到,“FU(a+b,a-b)”进行的计算不是“(a+b)/(a-b)”,而是“(a+b/a-b)”,因为“/”的优先级高于“+”或“-”,所以,要使用括号限定计算优先顺序。所以将“#defineFU(m,n)(m/n)”改为“#define FU(m,n)((m)/(n))”。
(2)第二个标识下返回语句的关键字有误。所以,第二个标识下“Return (value);”应该改为“return(value);”,C语言中没有“Return”这个关键字。
转载请注明原文地址:https://kaotiyun.com/show/ddRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数:4630324061745154
给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。请在程序的下划线处填入正确的内容并把下划线删
函数fun的功能是:计算直到=le-6);returnf;}main(){doublex,y;x=2.5;y=fun(x);printf("inTheresultis:in"
给定程序MODI1.C中函数fun的功能是:判断ch中的字符是否与s仃所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。请改正程序中的错误,使它能进行正确的操作。注意:不要改动main函数,不得增行或删行,也不得更
针对简单程序设计,以下叙述的实施步骤顺序正确的是
有以下程序main(){unsignedchara=8,c;C=a>>3;printf("%d\n",c);}程序运行后的输出结果是
有以下程序main(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",y);}程序运行后的输出结果是
s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是
有下列程序:#includevoidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+1;j<n;j++)if(a[
下列选项中不属于软件生命周期开发阶段任务的是
随机试题
长期大量使用糖皮质激素的患者突然停药会引起()。
A.环境污染B.微量元素缺乏C.先天性气道发育异常D.鼻窦炎E.原发免疫缺陷病2岁患儿,长期偏食,消瘦,近1年来反复上感,每2~3个月1次。反复感染的原因是
手工Hct不影响血浆剩余量的是
采用井壁注浆堵水井筒在流砂层部位时,注浆孔深度必须()。
根据《施工现场临时用电安全技术规范》(JGJ46—2005)规定,临时用电工程应定期检查。其中施工现场应()检查一次。
履行出资人职责的机构有法定行为的,对直接负责的主管人员和其他直接责任人员依法给予处分。下列属于该行为的有()。
福勒和布朗根据教师的需要和不同时期所关注的焦点问题,把教师的成长划分为()。
1.01,1.02,2.03,3.05,5.08,()。
设f(x)=x3-3x+k只有一个零点,则k的范围是().
HowSafeIsYourCellPhone?[A]IttakesalittleextraworktogetintouchwithAndreaBoland.TheMainestaterepre-sentative
最新回复
(
0
)