C语言几个题目

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:20:34
1 以知floatx=1,y 则y=++x*++x结果
2 main()
{int a=1,b=2,c=3;
c=(a+=a+2),(a=b,b+3);
printf(“%d,%d,%d”\n,a,b,c);
}结果为3
3以知int i,a 执行i=(a=2*3,a*5),a+6 i值为
3个题都要详细解说过程

一题:y=++x*++x
结果为6.000000
++x是2了再++x x值就变为了3 2*3=6 因为是float型的所以后面还有6个0

二题 a=2 b=2 c=4

c被赋成a+=a+2,这个表达式的结果为a=4,c也被赋成了4;
后面a又被赋成了b的值,所以a的值为2;
b+3只是一个运算,并没有对b进行赋值,所以b还是初始值2

三题 i的值是30

先计算括号内a的值 a被赋成了2*3也就是6,然后a又和5相乘
就是30赋给了i,逗号后的计算和i的赋值无关了,a的值是6

你还不明白的地方可以写再补充里

1、 6
2、2,2,4
3、30
++y运算为y=y+1,然后取y值,且++运算符优先级高于*运算符,表达式从左到右顺序运算,就变成++1*++2=2*3=6.
","表达式按从左到右的顺序进行,所以c=(a+=a+2),(a=b,b+3)
对c来说就是c=(a+=a+2),a=1,则a+=a+2=4,而后面的表达式为a=b,b+3,则为a=b,故a=2.
第三题也是一样。i=(a=2*3,a*5),括号中是一个","表达式,值为a*5,按从左到右的顺序计算,先a=2*3,然后a*5,最后把a*5返回给i.
关于",'表达式的计算,尤其是在函数参数中的","表达式,不同的编译器的计算顺序不尽相同,请参考编译器的说明。

看楼主不像是请教,倒像是在布置作业。
而且题目都没说清楚。