C语言 就下面算术表达式的值

1.
x+a%3*(int)(x+y)%2/4
其中x=2.5,a=7,y=4.7

2.
(float)(a+b)/2+(int)x%(int)y
其中a=2,b=3,x=3.5,y=2.5
大侠们,请把详细过程写下来!
我是菜鸟
请大侠们注意一下, 第一题标准答案:2.5,第二题标准答案:3.5.
但是我不知道过程是怎么来的?

1、注意运算符的优先级。括号的优先级最高,%,*,/的优先级相同。(int)是强制类型转换,把int后面的数转换成int型,float同理。
所以计算是:2.5+2%3*(int)(3.5+2.5)%2/4=2.5+2*0/4=2.5
这里2.5+3.5=6.0,6.0被强制转换成int型,变成整数6。
2.先进行强制转换再计算值。
(float)(2+3)/2+3%2=2.5+1=3.5
这里(2+3)被转换成float型,所以(2+3)/2=2.5。
ps:现在c++里强制转换不用这样的形式了,用static_cast<int>(x)这样的形式。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-10-27
1、x + a%3 *(int)(x+y)%2/4
= 2.5+ 1 * 7 %2 %4
= 2.5+ 7%2%4
= 2.5+ 1%4 =2.5+1=3.5

2、(float)(a+b)/2 +(int)x%(int)y
= 5.0/2 + 3 % 2
= 2.5 + 1 =3.5

写个程序,在TC运行输出就是两个3.5啊!

C语言 就下面算术表达式的值
所以计算是:2.5+2%3*(int)(3.5+2.5)%2\/4=2.5+2*0\/4=2.5 这里2.5+3.5=6.0,6.0被强制转换成int型,变成整数6。2.先进行强制转换再计算值。(float)(2+3)\/2+3%2=2.5+1=3.5 这里(2+3)被转换成float型,所以(2+3)\/2=2.5。ps:现在c++里强制转换不用这样的形式...

写出下列数学式的C语言算术表达式的值:
{ int a,b,c,x,p,k,m,n;printf("请输入各变量的值");scanf("%d,%d,%d,%d,%d,%d,%d,%d",&a,&b,&c,&x,&p,&k,&m,&n);k=a*x*x+b*x+c;p=(a+b)\/(a-b);m=sqrt(c);n=a+b*m;printf("%d,%d,%d",k,p,n);} ...

在C语言中 请求出下列算术表达式的值 最好说出是怎么算的
((double)(8+2)\/3)+((int)13.5%(int)10.5)注意(int)10.5=10,(int)13.5=13, 还有最后结果必定是double类型的

求下面算术表达式的值 x+a%3*(int)(x+y)%2\/4 设x=2.5,a=7,y=4.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因其前后均为整数,故0.25只取其整得0 ...

C语言,求此算术表达式的求值程序x+a%3*(int)(x+y)%2\/4
include <stdio.h> main(){ float x=2.5;int a=7;float y=4.7;double z;z=x+a%3*(int)(x+y)%2\/4;printf("z=%10f\\n",z);}

(x>=y>=2)?1:0 C语言中这个算术表达式的值是多少?为什么?设x=4,y=...
在C语言中,它等价于:(x>=y)>=2 即,先计算x>=y是否成立,并用计算的结果(0或者1)与后面的2进行大小比较的运算,因此,当x=4,y=3时,x>=y成立,所以(x>=y)的值是1(或者是其它的非0数字,对系统有依赖性),然后再计算1>=2 ...

C语言,此算术表达式如何运算?a+=a-=a*=a;
c语言中,计算的顺序,大多是从右向左的。建议你上机试一下,结果总是0;include<iostream> using namespace std;int main(){ double a;cout<<"请输入a的值:"<<endl;cin>>a;double m=a+=a-=a*=a;cout<<"a+=a-=a*=a:的值是:"<<m<<endl;} 原因是输入一个值,经过一次运算,a...

算术表达式求值 C语言
clude<iostream.h> \/\/#define MaxLen 100\/\/存储空间 int tran(char str[], char expr[]) \/\/将中缀表达式转换成后缀表达式 if(tran(str,expr)==0)\/\/原来表达式,后缀表达式 { int st[100]; \/\/转化过程使用的过度栈 char ch;int i=0,exindex=0,stindex=-1; \/\/i是str下标,...

c语言有下列表达式3+2*6,表达式值为多少,并写出运算过程?
您好,很高兴回答您的问题。在c语言中,算术表达式的运算顺序是先乘除再加减,所以对于您给定的表达式是先计算2*6=12,然后再计算加法,最终的结果为15。

表达式的求值(c语言)
c语言有丰富的表达式,这是它的特点之一,表达式主要有4类,算术表达式,赋值表达式,逗号表达式,关系表达式 1.算术表达式就是包含算术运算符(如+ - \/ * %等)的表达式(不是语句,后面没有分号),如:a+b ,a%b,a+b-c*d,3+5等,算术表达式的值就是最后算出的结果,如3+5这个表达式的...

相似回答
大家正在搜