C语言,printf(“%d\n”,(a=3*5,a*4,a5))为什么输出值为10?

如题所述

第1个回答  2012-06-19
如果a5=10, 那么输出就是10追问

我就是不明白为什么a^5=10

追答

a=3*5 之后 a=15了

15 ^ 5 = 1111b ^ 0101b = 1010b = 10

第2个回答  2012-06-19
100 的五次方 会产生 溢出, 溢出的结果就是 10追问

为什么会溢出

第3个回答  2012-06-19
因为返回的是最后一个a5追问

题目应该是a^5,不就应该是15的5次方吗

追答

^是异或运算。 不是开方。
15 二进制是 1111
5二进制是 101
1111 异或 101 就是1010,也就是10

本回答被提问者采纳
第4个回答  2012-06-19
把题!发过来我给你代码!追问

执行下面程序中输出语句后,a的值是( )
main( )
{int a;
printf(“%d\n”,(a=3*5,a*4,a5));
}
A)65 B)20 C)15 D)10

追答

1) 将3*5的结果15赋给变量a
2) 计算表达式a*4的值
3) 将c=()赋值运算符右侧括号内最右边的值赋给变量c,即将a*4的结果60赋给变量c
4) 计算表达式a+15的值