鱼C论坛

 找回密码
 立即注册
查看: 1481|回复: 10

05年9月二级C选择题求解?

[复制链接]
发表于 2015-7-30 21:38:39 | 显示全部楼层 |阅读模式
18鱼币
当把下列四个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是()。
A、 k%2
B、 k%2==1
C、 (k%2)!=0
D、 !k%2==1
请解释具体一点!本人不胜感激!

最佳答案

查看完整内容

这个地方主要有if()的执行条件的判断0假,其他真,还有4个选项分别表示的含义的比较 A k%2 其结果有 0 或1;在if的中意思就是 结果为1执行语句 完全写出来就是 if(k % 2 == 1) 执行{} B k % 2 == 1 不在作解释 同上 if(k % 2 == 1) 执行{}; C 是B的 相反的写法, 因为结果只有 0 和 1 那么 != 0 就是 k%2 == 1 的意思,同上 if(k % 2 == 1) 执行{}; D 就正好不是 先是 k%2 == 1 然后 去表达式结果的 非(!) 其含义就 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-30 21:38:40 | 显示全部楼层
这个地方主要有if()的执行条件的判断0假,其他真,还有4个选项分别表示的含义的比较
A k%2 其结果有 0 或1;在if的中意思就是 结果为1执行语句  完全写出来就是 if(k % 2 == 1) 执行{}
B k % 2 == 1 不在作解释 同上 if(k % 2 == 1) 执行{};
C 是B的 相反的写法, 因为结果只有 0 和 1 那么 != 0  就是 k%2 == 1 的意思,同上 if(k % 2 == 1) 执行{};
D 就正好不是 先是 k%2 == 1 然后 去表达式结果的 非(!)  其含义就是 if(k % 2 != 1)执行{}。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-30 21:50:59 | 显示全部楼层
D
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-30 21:52:29 | 显示全部楼层
#include <stdio.h>
void main()
{
        int k;
        scanf("%d",&k);
        if(   )
                printf("it is true.\n");
        else
                printf("It's  not.\n");
}
可以这样,当是奇数时条件为真,偶数时条件为假。只有D是不成立的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-30 21:55:27 | 显示全部楼层
A, B, C 都是 k%2 为 真 的时候 if语句 执行, D k%2 为 假 的时候 if语句 执行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-30 22:44:44 | 显示全部楼层
d
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-31 10:22:54 | 显示全部楼层
本帖最后由 ryxcaixia 于 2015-7-31 10:30 编辑

if的判定很简单 也有点过于简单 因为他只认识一个数字  那就是0 (判断条件不成立自动返回一个0) 除此之外的 他一律都认为是真 这就是传说中的 0位假 非0即为真 少年 切记切记
if(XXX) 此时XXX如果是0, 不管是直接填写的为if(0), 还是if(a=0)这种赋值语句  还是条件判断失败 默认返回一个0 编译器一看 卧槽 这都是0啊 我认识啊 唯一认识的数字啊 是假的啊  判定条件不成立啊 也就不会执行接下来的语句

如果if(XXX) 此时XXX如果不是0, 哪怕他是1, -1, 3.1415926, 或者是if(a=201314),以及判断成功默认返回一个真值 编译器一看 咦 这个貌似不是0哎 不认识啊  那么这个东西肯定就是真了 那么就会执行接下来的语句

楼主如果看懂了 就知道选神马了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-5 11:35:09 | 显示全部楼层
d
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-6 11:51:17 | 显示全部楼层
默默路过 发表于 2015-7-30 21:38
这个地方主要有if()的执行条件的判断0假,其他真,还有4个选项分别表示的含义的比较
A k%2 其结果有 0  ...

D解释有问题吧,!的优先级要高,应该是先对k取非然 后在取2的余数与等于1为真执行if {},不等于1就不执行{},
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-6 15:54:00 | 显示全部楼层
桃花飞舞 发表于 2015-8-6 11:51
D解释有问题吧,!的优先级要高,应该是先对k取非然 后在取2的余数与等于1为真执行if {},不等于1就不执行{} ...

谢谢提醒,确实有问题,没有考虑到 ! 的优先级高与后面。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-6 16:00:32 | 显示全部楼层
桃花兄说的对,我没有考虑到 “!”的 优先级问题; 加上优先级的话, 前面三个的 结果是 求 k 本身摸 2 后的结果是否为1; 而 D是 求 k的逻辑非 摸2 之后的结果是否为1。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 05:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表