设有定义:int x=7, y=12;,则以下表达式值为3的是( )

A. (y%=x)-(x%=5) B. y%=(x%=5) C. y%=x-x%5 D. y%=(x-x%5)

答案:C

解析:

首先看选项A,这是一个比较复杂的表达式,其中涉及到了两个赋值运算符。需要注意的是,赋值运算符的优先级是最低的,因此整个表达式的计算顺序是从左到右的。具体来说,先计算(y%=x),这个表达式的值为0,因为y除以x的余数为12%7=5,赋值后y的值变为5;然后计算(x%=5),这个表达式的值为2,因为x除以5的余数为2,赋值后x的值变为2。最后整个表达式的值为0-2=-2,不是3,因此选项A不正确。

选项B比较简单,它相当于先计算(x%=5),然后将y对新的x取余数,也就是12%5=2,赋值后y的值变为2。整个表达式的值为2,不是3,因此选项B也不正确。

选项C和选项D都涉及到了x和y的取余数运算,因此它们的计算顺序是比较类似的。具体来说,选项C先计算x-x%5,也就是7-7%5=7-2=5,然后将5赋值给y的余数,也就是12%5=2,赋值后y的值变为2。整个表达式的值为2,不是3,因此选项D不正确。

选项C先计算x-x%5,也就是7-7%5=7-2=5,然后将5赋值给y的余数,也就是5%12=5,赋值后y的值变为5。整个表达式的值为3,因此选项C是正确的。

C语言表达式求值:设 int x=7, y=12; 哪个表达式值为 3?

原文地址: https://www.cveoy.top/t/topic/joyK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录