C#中,设置 int a = 3.从以下选项中,选出所有变量 result 的值为true的表达式().

A、boolresult=(~a==-4)B、boolresult=(a++>=3)C、boolresult=(++a>3)D、boolresult=!(a++>3)... A、bool result = (~a == -4)
B、bool result = (a ++ >= 3)
C、bool result = ( ++a >3)
D、bool result = !(a ++ >3)
展开
 我来答
liuwp526
2010-10-31 · TA获得超过727个赞
知道小有建树答主
回答量:488
采纳率:87%
帮助的人:86.1万
展开全部
这个题很典型,就是考你对运算符的优先顺序的掌握程度.

解题前先说说C#基本的东西:运算符优先顺序.

1 基本(x.y f(x) a[x] x++ x-- new typeof checked unchecked ->
2 一元(+ - ! ~ ++x --x (T)x true false & sizeof
3 乘除法(* / %
4 加法 + -
5 移位 << >>
6 关系和类型检测 < > <= >= is as
7 相等性 == !=
8 逻辑“与” &
9 逻辑“异或” ^
10 逻辑“或” |
11 条件“与” &&
12 条件“或” ||
13 null合并 ??
14 条件运算 ?:
15 赋值和lambda 表达式: = += -= *= /= %= &= |= ^= <<= >>= => Lambda 运算符

在此,特别强调一下++x和x++的区别,
第一种形式是前缀增量操作。该操作的结果是操作数加 1 之后的值。
第二种形式是后缀增量操作。该运算的结果是操作数增加之前的值。(摘自:MSDN)

A、bool result = (~a == -4)
这个无需多说了吧,
先~a(优先级别为2级),
然后 == (优先级别7)
最后是 = (优先级别15)
~3 就是-4了.
result = true;

B、bool result = (a ++ >= 3)
这是后缀增量,可以吧(a++)从两点分开解读它,
一点:它包含一个动作:a加了1
第二点(a++)看做是一个int型的数,引用我上边那句话"第二种形式是后缀增量操作。该运算的结果是操作数增加之前的值"
把他分解后得到如下几个表达式:
bool result = (a >= 3) ;
a = a + 1;
result得到的结果是(3 >= 3) 当然是true了

C、bool result = ( ++a >3)
这个同上,区别是"第一种形式是前缀增量操作。该操作的结果是操作数加 1 之后的值"
分解后为如下2个表达式:
a = 3;
a = a + 1;
bool result = ( a > 3)
result为(4 > 3) 是 true;
注意和上边的那个的区别,一个是先加1运算,再逻辑关系. 一个是先用a值逻辑关系运算完了再加1。

D、bool result = !(a ++ >3)

这个分解基本上同B,就不解释了.
bool result = !(a > 3);
a = a + 1;

结果:
result = !(3 > 3);
result = !(false);
result = true;

所以,答案是ABCD
司琅0Iid5b
2010-10-31 · TA获得超过802个赞
知道小有建树答主
回答量:319
采纳率:0%
帮助的人:619万
展开全部
你好,答案为ABCD

A项,~a,求a的反,转换为整数就是-4,具体的转换涉及到补码,反码的知识;
B项,a++>=3,可以分解为a>=3,a++,所以result为true;
C项,++a>3,分解为a++,a>3,此时a都等于4了,所以也为true;
D项,!(a++ > 3)可以分解为!(a>3),a++,因为a>3不成立,所以其否定为true。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tjw_tjw
2010-10-31 · TA获得超过3178个赞
知道大有可为答主
回答量:3078
采纳率:100%
帮助的人:1674万
展开全部
B、C、D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式