C语言问题

2024年11月15日 20:30
有6个网友回答
网友(1):

(1)2.5
解:a%3=7%3(7对3取余)=1;a%3*(int)(x+y)%2/4=1*(int)(2.5+4.7)%2/4=1*7%2/4=1*1/4=0;所以,x+a%3*(int)(x+y)%2/4
=2.5
(2)3.500000
解:float表示浮点型,即应保留六位小数。(float)(a+b)=(float)(2+3)/2=5.000000/2=2.500000;(int)x%(int)y=(int)(3.5)%(int)(2.5)=3%2=1;当float型与int型相加时,都应该转化为float型。故,(float)(a+b)/2+(int)x%(int)y=2.500000+1.000000=3.500000

网友(2):

(1)x+a%3*(int)(x+y)%2/4
涉及到运算符:优先级从高到低 (), (int), * % / , +

x+a%3*(int)(x+y)%2/4
=2.5+7%3*(int)(2.5+4.7)%2/4
=2.5+7%3*(int)(7.2)%2/4
=2.5+7%3*7%2/4
=2.5+1*7%2/4
=2.5+7%2/4
=2.5+1/4
=2.5+0
=2.5

(2)(float)(a+b)/2+(int)x%(int)y
涉及到运算符:优先级从高到低 (), (float) (int), % / , +

(float)(2+3)/2+(int)3.5%(int)2.5
=(float)(5)/2+(int)3.5%(int)2.5
=5.0/2+3%2
=2.5+1
=3.5

网友(3):

正解!!
1、x+a%3*(int)(x+y)%2/4
=2.5+7%3*(int)(2.5+4.7)%2/4
=2.5+7%3*(int)(7.2)%2/4
=2.5+7%3*7%2/4
=2.5+1*7%2/4
=2.5+7%2/4
=2.5+1/4
=2.5+0
=2.5

2、(float)(2+3)/2+(int)3.5%(int)2.5
=(float)(5)/2+(int)3.5%(int)2.5
=5.000000/2+3%2
=2.500000+1
=3.500000

做这样的题时只需要明白C++上变量的类型就行,再就是运算的优先等级!
圆方括号、箭头一句号,
自增自减非反负、针强地址长度,

乘除,加减,再移位,

小等大等、等等不等,

八位与,七位异,六位或,五与,四或,三疑,二赋,一真逗。

其中“,”号为一个等级分段。

网友(4):

2.75
3.5

网友(5):

第一题~#include
int main()
{ float x=2.5,y=4.7;
int a=7;
cout< return 0;
}
第二题
#include
int main()
{ int a=2,b=3;
float x=3.5,y=2.5;
cout<<(float)(a+b)/2+(int)x%(int)y< return 0;
}

网友(6):

2.5
3.500000