要详解‘以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是’:

2024-12-25 11:18:09
推荐回答(5个)
回答1:

答案选A
*和/的优先级相同,从左到右结合。
而括号优先级高于*、/。
A化简得:(x/y)*z
B化简得:x/(y*Z)
C化简得:x/(y*Z)
D化简得:x/(y*Z)
BCD相同,A不同,故选择A

程序验证下:
#include
void main()
{
float x=1,y=2,z=3;
printf("%f \n %f \n %f \n %f ",x/y*z,x*(1/(y*z)),x/y*1/z,x/y/z);
getchar();
}
结果:
1.500000
0.166667
0.166667
0.166667

回答2:

选A,观察其他三个(即BCD均为x/(yz))寻找不同来选。

回答3:

不知道楼主的题目是不是漏掉什么条件了 我只能按照我的理解来做答案啦
如果题目问的是这些表达式子是不是合法 那么可以通过编写下面的程序来验证:
#include
int main()
{
double x,y,z;
x = 1.1;
y = 1.2;
z = 1.3;
double a;
a = x/y*z;
printf("%f\n",a);
double b;
b = x*(1/(y*z));
printf("%f\n",b);
double c;
c = x/y*1/z;
printf("%f\n",c);
double d;
d = x/y/z;
printf("%f\n",c);
return 0;
}

发现输出的结果为
1.191667
0.705128
0.705128
0.705128
可见编译都是可以通过的 运行结果也提示我们 A的答案和 B C D不一样 而BCD答案是一样 的
其实bcd的表达式都是x/(yz)
式等于(xz)/y
也就是一楼讲的 呵呵

回答4:

A吧
其他三个式子都等于x/(yz)
A式等于(xz)/y

回答5:

yy