C语言中,z=x+a%3*(int)(x+y)%2/4;的运算顺序是什么?谢...

如题所述

解题步骤:

1、(int)(2.5+4.7)=(int)(7.2)=7,式子变 x + a%3 *7 %2/4;

2、a%3=1,式子变 x + 1 *7 %2/4;

3、1*7=7,式子变 x + 7 %2/4;

4、7 %2=1,式子变 x+1/4;

5、1/4 整数除整数的除法先做,商得 0,式子变 x + 0;

6、x+0=2.5 + 0=2.5,答案2.5。

字符解释:

(int)(x+y) -- 括号里的先做

2/4 -- 整数2除以整数4,得整数0,但这里前面还有运算符%,所以你不能先做2除以4的整数除法。

% 是整数与整数的除法求余数运算,得余数,(略去商)。

2.0/4.0 -- 浮点数除以浮点数,得浮点数的商 0.5。


扩展资料:

C语言算术编程示例:

#include <stdio.h>

int main()

{

int a = 21;

int b = 10;

int c ;

c = a + b;

printf("Line 1 - c 的值是 %d\n", c );

c = a - b;

printf("Line 2 - c 的值是 %d\n", c );

c = a * b;

printf("Line 3 - c 的值是 %d\n", c );

c = a / b;

printf("Line 4 - c 的值是 %d\n", c );

c = a % b;   printf("Line 5 - c 的值是 %d\n", c );

c = a++;  // 赋值后再加 1 ,c 为 21,a 为 22

printf("Line 6 - c 的值是 %d\n", c );

c = a--;  // 赋值后再减 1 ,c 为 22 ,a 为 21

printf("Line 7 - c 的值是 %d\n", c );

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-07
x+a%3*(int)(x+y)%2/4;

1. x+y
2. (int)(x+y)
3. a%3
4. a%3*(int)(x+y)
5. a%3*(int)(x+y)%2
6. a%3*(int)(x+y)%2/4
7. x + a%3*(int)(x+y)%2/4

如果是你自己写程序,强烈建议不要写这种“令人困惑的C”,如果是考试,就另当别论了。
参考资料:
8本回答被提问者采纳
第2个回答  2011-03-07
(1)计算a%3和(int)(x+y)
(2)计算a%3和(int)(x+y)相乘
(3)上述乘数%2,再/4
(5)x加上上述得数,赋值给z

x+a%3*(int)(x+y)%2\/4什么意思
这个表达式的最终结果就是原来x的值 根据运算符的优先级和结合性,先做后面那一串的乘除a%3*(int)(x+y)%2\/4。其中%为取余数。而这一串的乘除法是从左到右依次计算的。股倒数第二和第一的运算是%和\/。根据%取余数的规则,结果只能是0或1;而这个0或者1再\/4(注意这里是整数除法,只能得到...

求下面算术表达式的值 x+a%3*(int)(x+y)%2\/4 设x=2.5,a=7,y=4.7 要...
1. 先执行括号,即 (int)(2.5+4.7),即(int)7.2,得7 2. 全式相当于: 2.5 + 7 % 3 * 7 % 2 \/ 4,因%, * , \/ 优先级一样,从左向右计算:3. 2.5 + 1 * 7 % 2 \/ 4 = 2.5 + 7 % 2 \/ 4 = 2.5 + 1 \/ 4 4. 2.5 + 0 = 0, 1\/4因其前后均为整数,...

急求===《C语言程序设计实验·设计·习题》的答案
printf("%c%c\\n",c1,c2); printf("%d%d\\n",c1,c2); } 解:可以.因为在可输出的字符范围内,用整型和字符型作用相同. 3.9求下面算术表达式的值. (1)x+a%3*(int)(x+y)%2\/4=2.5(x=2.5,a=7,y=4.7) (2)(float)(a+b)\/2+(int)x%(int)y=3.5(设a=2,b=3,x=3.5,y=2.5) 3.10写出下...

C语言 中 x+a%3*(int)(x+y)%2\/4 设x=2.5 a=7 y=4.7 结果是什么啊?
首先是(int)(x+y)=7 \/\/(int)为取整 然后a%3=1 1*7=7 7%2=1 1\/4 = 0 \/\/注意:两个整数相除,结果取整 所以结果是2.5

c语言中运算符有哪几种,优先级顺序是怎样
C语言中,运算符除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符。运算符的运算优先级共分为15 级,1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定...

求C语言程序设计习题集与上机指导-第三版 (及答案)...
4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。a=_3_ _b=_4_ _c=_5x=1.200000,y=2.400000,z=-3.600000x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40c1=ˊaˊ_or_97(ASCII)c2=ˊbˊ_or...

C++ %是怎么计算的
a%3*(int)(x=y)%2\/4 --> a%3*4%2\/4 -->7%3*4%2\/4 对于运算符号 * \/ % ,其运算顺序是 left to right 7%3*4%2\/4 --> 1*4%2\/4 --> 4%2\/4 --> 0\/4 --> 0 故 x + a%3*(int)(x=y)%2\/4 --> x + 0 --> x --> 2.5 不知以上解释是否清楚,请...

int a=7; float x=2.5.y=4.7;则x+a%3*(int)(x+y)%2\/4的值是,求解释
根据运算符优先级,先算x+后面的。a%3就是7对3取余,至此算式简化为:x+1*(int)(x+y)%2\/4。1*可以省略,先算括号里的,再次简化为x+(int)7.2%2\/4。此时将7.2转为int型,算式变为x+7%2\/4,先算7%2,结果为1,算式至此简化为x+1\/4。而1\/4为0,因为1除以4商0余1。这...

在C语言中,逗号运算符的优先级最低对吗
而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级...

设X=2.5,a=7,y=4.7,表达式x+a%3*(int)(x+y)%2\/4的值是?
答案是:2.5 1.程序 include void main(){ double x=2.5,y=4.7,mun;int a=7;mun = x+a%3*(int)(x+y)%2\/4;printf("%lf",mun);} 2.分析:%取余 乘 \/取整 x+a%3*(int)(x+y)%2\/4;中%,*和\/优先级相同,顺序计算。a%3=7%3=1 ,(x+y)=7.2,7.2%2=1,1\/4...

相似回答