if语句控制表达式 疑惑

optimisticgo 2009-09-16 09:37:31
当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他三个选项不同,这个选项是( )
A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1
答案选的是D,我对该题的理解:A是k对2求余,B是说明k是奇数,C是k对2 求余 所得余数不等于0,选项D我就看不懂了。
...全文
374 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 optimisticgo 的回复:]
当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他三个选项不同,这个选项是( )
A)k%2    B)k%2==1    C)(k%2)!=0    D)!k%2==1
答案选的是D,我对该题的理解:A是k对2求余,B是说明k是奇数,C是k对2 求余 所得余数不等于0,选项D我就看不懂了。

[/Quote]
弱智!
不会加括号啊。
basketballn 2009-09-17
  • 打赏
  • 举报
回复
A,B,C三项都是K能被2整除时,执行IF语句,当然选D哦!
woyunl 2009-09-17
  • 打赏
  • 举报
回复
我觉得这道题意思是如果K是奇数的话进行if语句,D的答案是不是少括号啊?
yyunffu 2009-09-17
  • 打赏
  • 举报
回复
说了半天,这几个表达式到底有什么不同?没看出有什么特殊不同啊?
accumulate 2009-09-17
  • 打赏
  • 举报
回复
if(k%2){ }表示k%2不等于0时执行花括号里的内容
shenzhe11 2009-09-16
  • 打赏
  • 举报
回复
逻辑非的优先级仅次于圆括号(),高于%
liem 2009-09-16
  • 打赏
  • 举报
回复
k k%2 k%2==1 (k%2)!=0 !k%2==1
偶数  0     0      0       0
奇数 1 1 1 0
optimisticgo 2009-09-16
  • 打赏
  • 举报
回复
哦,非的优先级最高。把这个给忘了。
HuaIng 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 abcdef0966 的回复:]
引用 8 楼 findusefulthings 的回复:
这题让我做的话,我选A
K%2结果不是0就是1,
作为if语句的控制表达式,你起码得给我个东西作比较吧!


晕!0就为false,1就为真啦,一定要写成k%2 == 1啊
[/Quote]

赞成~!
HuaIng 2009-09-16
  • 打赏
  • 举报
回复
同意2楼的。

! (逻辑非运算符)优先级为2级
% (取余运算符) 优先级为3级
在没有括号的情况下先进行"!"运算,在进行"%"运算
abcdef0966 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 findusefulthings 的回复:]
这题让我做的话,我选A
K%2结果不是0就是1,
作为if语句的控制表达式,你起码得给我个东西作比较吧!
[/Quote]

晕!0就为false,1就为真啦,一定要写成k%2 == 1啊
失落的凡凡 2009-09-16
  • 打赏
  • 举报
回复
!优先级高
findusefulthings 2009-09-16
  • 打赏
  • 举报
回复
这题让我做的话,我选A
K%2结果不是0就是1,
作为if语句的控制表达式,你起码得给我个东西作比较吧!
brookmill 2009-09-16
  • 打赏
  • 举报
回复
2楼是正解。
!的优先级很高,没想到
brookmill 2009-09-16
  • 打赏
  • 举报
回复
D 就是 !(k%2==1)
也就相当于 k%2!=1
niimp2 2009-09-16
  • 打赏
  • 举报
回复
关系运算符 == <= 等的值只有两种 假或真 假用零表示 真用非零表示
A,B,C 的结果都是非零(K为奇数的时候,当然k为偶数也一样)
当k为奇数, k%2 == 1 是真 加个!号就是假 和A,B,C都不一样
cphj 2009-09-16
  • 打赏
  • 举报
回复
D就是B的否定

!k%2==1等价于!(k%2==1)
whg01 2009-09-16
  • 打赏
  • 举报
回复
D里有个“!”。这个作用是逻辑取反。
!(k%2==1) 叹号的作用就是:如果括号里面是TRUE,则叹号运算后变为FALSE。反之亦然。
starcat 2009-09-16
  • 打赏
  • 举报
回复
D不是对B的逻辑“非”操作
而是“(!k)%2==1
优先级的问题
abcdef0966 2009-09-16
  • 打赏
  • 举报
回复 1
D的结果:

k为0时,D的结果为1
k为非0,D的结果为0

等价于
(!k)%2 == 1

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧