首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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-04-04
36
问题
给定程序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
#include
#include
/**********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("Inputx y x:");
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);
解析
(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),因为“/”的优先级高于“+”或“-”,所以要使用括号限定计算优先顺序。所以将“#define FU(m,n)(m/n)”改为“#define FU(m,n)((m)/(n))”。
(2)第二个标识下返回语句的关键字有误。所以,第二个标识下“Return(value);”应该改为“return(value);”,C语言中没有“Return”这个关键字。
转载请注明原文地址:https://kaotiyun.com/show/InRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
执行以下的程序段后,m的值是______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;P=&a[0][0];m=p[4];
以下程序运行后的输出结果是[]。main(){intx,a=1,b=2,c=3,d=4;x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;pri
下面程序的功能是两个整数进行交换,请填空。sub(int*x,int*y){【】z=*x;*x=*y;*y=z;return;}main(){intm,n,*t1,*t2;
有下列程序:#include<stdio.h>main(){charc;while((c=getchar())!=’,’)putchar(++C);}程序运行时,如果从键盘输入:A,B,<CR>,则输出结
下列程序的运行结果是()。#include<stdio.h>#include<string.h>main(){char*s1="ahDuj";char*s2="ABdUG":intt;t=strcmp(s1,s2);
下列程序的输出结果是______。intm=10;intfun(inta,intB){intm=2;return(a*b-m);}main(){intx=7,y=5;
有以下程序#include<stdio.h>main(){charc1=’1’,c2=’2’;c1=getchar();c2=getchar();putchar(c1);putchar(c2);}当运行
下述程序的输出结果是()。#includemain(){inti;for(i=1;i<=10;i++){if(i*i>=20)&&(i*i<=100))break;
若有下列定义(设int类型变量占2个字节):inti=8,j=9;则下列语句:printf("i=%u,j=%x\n",i,j);输出的结果是()。
随机试题
共同危险行为是指数人共同实施危及他人人身安全的行为并造成损害结果,而实际侵害行为人又无法确定的侵权行为。根据上述定义,下列行为属于共同危险行为的是()。
患儿,男,7岁。在学校的历次考试中均不及格,常受伙伴的嘲笑和家长的责骂,按照艾瑞克森学说,长此以往患儿将出现的负性社会心理发展结果是
有机磷农药生产过程中导致人体中毒的主要途径是
A、阿司匹林B、保泰松C、吲哚美辛D、扑热息痛E、双氯芬酸治疗类风湿关节炎的首选药物是
与肝关系密切的体是下列哪一项
流程银行的特征包括()。
根据《支付结算办法》及有关规定,下列各项中属于违反结算纪律的行为有()。
下列各罪名,属于汉律中有关危害君主专制罪的有
(1997年)计算曲线积分其中c是曲线从z轴正向往z轴负向看c的方向是顺时针方向.
LittledidIknow______(多少经验能够使我获益).
最新回复
(
0
)