5.表达式x a%3*int(x y)%2 4的运算结果为.
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/22 21:20:35
是先算优先级高的乘法的比较高所以先算5.0/2=2.5然后y=x+2.5y=3+2.5=5.5没有仔细看呵呵确实是5因为是整型的么
#includemain(){floatx=2.5,a=7,y=4.7;printf("%f",x+a%3*(x+y)%2/4);}#includemain(){inta=2,b=3;floatx=3
解a+b=3为单精度的3/2=1.5隐式类型转换3%2=1最终结果1.5+1=2.5O(∩_∩)O~
应该是7这里相当于两句x*2/3;//11*2/3=22/3=7,注意是整除x++;再问:为什么写整数,如果算出来是7点8,最后也要写7吗再答:没有的,这个是int类型,是整除,得到7
首先1是int型,同理,3也是int型,int型在做除法时,如果分子小于分母,则答案为0.所以这个题只要看1/3就行了,答案就是0
a%3*(int)(x+y)%2/4,这是从左到右执行,但先执行(int)x+y=7,则a%3*(int)(x+y)%2/4=a%3*7%2/4;然后依次从左到右执行,a%3=1,1*7=7,7%2=
%是取余,/是取整7%3=1;7/3=2;
一共出现这么几个操作符:(),+,*,%,/,()优先级顺序依次为:(分块),(强制类型转换),*,+,/,%,其中/和%优先级相同所以运算的顺序应该是:1.执行分块(x+y)=2.5+4.7=7.2
可以查看运算符的优先级表表达式等价于(((x++)*1)/3)表达式值是3,x值是12
按如下顺序运算:(x+y)=7.2(int)(x+Y)=7a%3=1a%3*(int)(x+y)%2/4=1*7%2/4=7%2/4=1/4=0(注意,所有变量均是Int型)x+0=2.5所以答案是2
按从左到右结合律计算,优先顺序,求余-〉乘法,除法-〉加法a%3=1(int)(x+y)=71*7=77%2=11/4=0x+0=2.5
(1)执行x*x,此时x=6,执行完x*x=36(2)执行x-=36,此时x=6,结果x=-30(3)执行x+=-30,此时x=-30,结果x=-60所以最终的结果是-60
结果是7x+x=2222*1=2222/3=7整数运算会取整
inta=7;floatx=2.5,y=4.7;x+a%3*(int)(x+y)%2/4=>4.7+7%3*(int)(2.5+4.7)%2/4=>4.7+1*(int)(7.2)%2/4=>4.7+
||是逻辑或,就是A||B,A和B里面有一个是真的就是真的C里只要不是0就是真,0就是假这题x
表达式的值为0,因为先计算1/3,两个1,和3都是整数,最后的结果也要转换为整数,为0在计算0*x++,所以结果也是0,计算完之后将x的值加1,最终x的值是12
这个表达式会先执行y++==--x,y++==--x的结果为true,执行结束后y==3x==2;接着执行y++,执行结果y==4;所以这个表达式的值为3.再说一下y++==--x:++(或者--)运