简单的C语言问题

若有定义语句:inta=7;floatx=2.5;y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()答案是2..500000为什么啊?(y=6,y+1... 若有定义语句:int a=7;floatx=2.5;y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )
答案是2..500000
为什么啊?

(y=6,y+1,x=y,x+1)
这个表达式的值为什么等于7啊?

'as' -0fff '\0xa' 0x48a 它们四个为啥是非法字符啊?
展开
 我来答
沐然123
2011-01-02 · TA获得超过227个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:115万
展开全部
第一个问题:2/4实际的值是0.5,但是由于是整型数值进行运算,所以,它的值系统会截断,即为0,那么后面的表达式为0,所以第一个式子的值为x,即2.5

第二个问题:这个表达式其实是一个逗号表达式,逗号表达式的值是最后一个语句,即x+1的值,但是这个过程里要从左至右依次进行运算

第三个问题:C语言里变量或常量的命名只能有:字符(a-z,A-Z),数字和下划线,而且首字母不能为数字
sun_siliang
2011-01-02 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4626万
展开全部
若有定义语句:int a=7;float x=2.5;y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )
x+a%3*(int)(x+y)%2/4
=2.5+7%3*(int)(2.5+4.7)%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

(y=6,y+1,x=y,x+1)
这个表达式的值为什么等于7啊?
逗号表达式的值是最后一个表达式x+1的值

'as' -0fff '\0xa' 0x48a 它们四个为啥是非法字符啊?
'as' 与'\0xa'超过一个字符
0x48a数值超过一个字节表求的最大值255
-0fff数值超过一个字节表求的最大值255
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chiconysun
2011-01-02 · TA获得超过2.2万个赞
知道大有可为答主
回答量:5410
采纳率:92%
帮助的人:2585万
展开全部
a%3就是7%3=1
1*(int)(2.5+4.7)=7
7%2 = 1
1/4=0
于是表达式的值与x相同,但是是浮点数,因此为2.5,输出6位小数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
butymas
2011-01-03 · 超过11用户采纳过TA的回答
知道答主
回答量:38
采纳率:100%
帮助的人:23.9万
展开全部
*由于(int)(x+y)%2/4的值是0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式