设有变量定义“intx=1,y=2,z=3 ;”,计算下列表达式的值
答案:7 悬赏:10 手机版
解决时间 2021-03-23 04:46
- 提问者网友:难遇难求
- 2021-03-22 06:16
设有变量定义“intx=1,y=2,z=3 ;”,计算下列表达式的值
最佳答案
- 五星知识达人网友:七十二街
- 2021-03-22 06:50
1)这个是要求什么表达式的值呢?后面的除2(/2)完全没有作用啊,执行后x=2,因为x是整型;若是x=((float)(y)+0.5)/2,执行后x=1;
2)逗号(,)运算符求职顺序为自左至右,所以,执行--x,y++后x=0,y=3,z=3,然后求得最右边x+y+z=6并将此结果赋给z;
3)等号(=)运算符结合方向为自右至左,所以,先有y=z=3,然后x=y=3;
4)z=1是赋值运算,赋值成功,返回为1,所以x*=y-1;x=1,y=2,z=1;
5)y++引用y=2后y=3,--z是z自减为2后引用,所以,x=4,y=3,z=2;
6)z/=2后z=1,然后化为x=x%(z=1),与4)类似,x=x%1=0,y=2,z=1。
2)逗号(,)运算符求职顺序为自左至右,所以,执行--x,y++后x=0,y=3,z=3,然后求得最右边x+y+z=6并将此结果赋给z;
3)等号(=)运算符结合方向为自右至左,所以,先有y=z=3,然后x=y=3;
4)z=1是赋值运算,赋值成功,返回为1,所以x*=y-1;x=1,y=2,z=1;
5)y++引用y=2后y=3,--z是z自减为2后引用,所以,x=4,y=3,z=2;
6)z/=2后z=1,然后化为x=x%(z=1),与4)类似,x=x%1=0,y=2,z=1。
全部回答
- 1楼网友:动情书生
- 2021-03-22 12:11
这个要看是哪种C语言,是向左算还是向右算
- 2楼网友:平生事
- 2021-03-22 11:22
1. 1.250000
2. 6
3. 3
4 .2
5. 4
6. 0
2. 6
3. 3
4 .2
5. 4
6. 0
- 3楼网友:独行浪子会拥风
- 2021-03-22 09:56
都是很简单的,只要先注意 ++前置的先算了
- 4楼网友:上分大魔王
- 2021-03-22 09:42
1)1
2)6
3)3
4)1
5)4
6)0
有不明白的可以继续追问
2)6
3)3
4)1
5)4
6)0
有不明白的可以继续追问
- 5楼网友:动情书生
- 2021-03-22 08:39
解释没必要,知识点(自己去看):
1、表达式求值顺序
2、类型转换
3、前自增与后自增
4、复合操作符
提醒:表达式总会返回一个值
(希望以C/C++标准为准,而不是某个编译器)
1、表达式求值顺序
2、类型转换
3、前自增与后自增
4、复合操作符
提醒:表达式总会返回一个值
(希望以C/C++标准为准,而不是某个编译器)
- 6楼网友:怀裏藏嬌
- 2021-03-22 08:08
1)首先和语言有关:假设你是C或C++;
2)然后考察的是类型转换:显然二楼对第一个答案1.250000是不对的;
3)之后是考察编译器:这个比较麻烦第二题就是依赖编译器,优化编译器,那么可能3个值同时先赋值后计算,即(--1,2++,1+2+3),不优化就会默认从左往右。二楼的6可能有很多种解释。
4)考察运算符优先级:这个是基础,不解释
2)然后考察的是类型转换:显然二楼对第一个答案1.250000是不对的;
3)之后是考察编译器:这个比较麻烦第二题就是依赖编译器,优化编译器,那么可能3个值同时先赋值后计算,即(--1,2++,1+2+3),不优化就会默认从左往右。二楼的6可能有很多种解释。
4)考察运算符优先级:这个是基础,不解释
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯