if语句的一个问题

(1)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2B)k%2==1C)(k%2)!=0D)!k%2==1(2)设有... (1)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是
A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1
(2)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是
A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m
请详细解答下、、帮帮忙、、谢谢了
展开
 我来答
wolinxuebin
2010-08-09 · TA获得超过719个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:260万
展开全部
A)k%2: 当k=2*n时 为0 为2*n+1时 为1
B)k%2==1: k%2 当k=2*n时 为0 所以k%2==1 还是为0;为2*n+1时 k%2 为1
所以 k%2==1 成立 为1;

C)(k%2)!=0 k%2 当k=2*n时 为0 所以(k%2)!=0 还是为0;为2*n+1时 k%2 为1
所以(k%2)!=0 成立 为1;
所以上面的三个都是相同的
D)!k%2==1
k=0时 成立 为1 否则 为0 因为非零是 !k为0

第二题中 C中k%int(f);%一定要是 int型的 所以也是对的;A K=K=>K 等效于K=(K=>K),也是没有问题的。
B a=-k++的话,最后a=-1,k=2。也没问题。D不能这么写 编译器会出问题的。
passion_wu128
2010-08-09 · TA获得超过1168个赞
知道小有建树答主
回答量:370
采纳率:0%
帮助的人:548万
展开全部
(1),不管k为奇数还是偶数ABC的真值都相同(比如K为偶数,真值都为0)。故选D
(2),
A中k>=k是个布尔表达式,值为1,然后赋值给k
B中先K++运算,然后取相反数
C中先将f转换为int类型然后求模
D中先求布尔表达式K>=f的值,为0.然后再求布尔表达式0>=m的值。
在VS中各表达式都可以通过编译,但D中">="的操作数为布尔类型会不安全,有些编译器就通不过。
故选D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一角岩的鱼儿
2010-08-09 · TA获得超过3230个赞
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:448万
展开全部
(1)选D
前三个都是k为偶数的时候表达式值为0, k为奇数的时候表达式值为1。 D选项!的优先级最高,所以先算!k,k为0时表达式的值为0,k为1时表达式的值为1
(2)选D
把逻辑值和整型数比较大小没有意义,这样写虽然编译能通过,但没有达到三个数连续比较大小的目的,应该写为k>=f&&f>=m
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yjmsir
2010-08-09 · 贡献了超过124个回答
知道答主
回答量:124
采纳率:0%
帮助的人:38.6万
展开全部
D)!k%2==1

A)k=k>=k
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式