24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1499  |  回复: 6

时飞

银虫 (小有名气)

[求助] c语言

1.若有表达式(w)?(--x)++y),则其中与W等价的表达式是(D)
Aw==1  B w==0    C  w!=1    D  w!=0
为什么 啊?怎么做的啊


{int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf("%d\n",a);
}
输出什么值?为什么、详细点。。谢谢!!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
dubo: 金币+1, 欢迎讨论 2012-03-17 22:12:13
时飞: 金币+1, ★★★★★最佳答案, 谢谢,,头像也很个性 2012-03-18 08:15:38
第一个问题:
CODE:
表达式(w)?(--x):(++y)里面,w原则上应该是一个条件判断语句,其值应该为false或者true.

如果w是一个int类型,那么w非零时,默认类型转化成true,如果w为0则为false. 所以,跟(w)?(--x):(++y)等价的是(w!=0)?(--x):(++y)

第二个问题, 输出3:
CODE:
a=(int)((double)(3/2)+0.5+(int)1.99*2);
/*
具体过程如下
a = (int)((double)(1) + 0.5 + 1*2)
    = (int)(1.0 + 0.5 + 2)
    = (int)3.5
    = 3
*/

很女子很弓虽大
2楼2012-03-17 22:05:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

emanlee

木虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
时飞: 金币+1, ★★★很有帮助, 谢谢参与 2012-03-18 08:16:06
(w)?(--x) : ++y),

等价的是 W!=0 ,选择D。
意思是判断W的值,非零执行 --x, 是0则执行++y。
3楼2012-03-18 07:54:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sen2010071

金虫 (小有名气)

看书比较快点
。。。???爱问
4楼2012-03-18 13:48:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

litwjing

禁虫 (小有名气)

本帖内容被屏蔽

5楼2012-03-18 16:05:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

时飞

银虫 (小有名气)

引用回帖:
2楼: Originally posted by lurencyj at 2012-03-17 22:05:54:
第一个问题:

表达式(w)?(--x)++y)里面,w原则上应该是一个条件判断语句,其值应该为false或者true.

如果w是一个int类型,那么w非零时,默认类型转化成true,如果w为0则为false. 所以,跟(w)?(--x)++y ...

(double)(3/2)不是等于1.5吗?double不是双精度实型吗???、
6楼2012-03-20 21:19:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)


jjdg: 金币+1, 感谢参与 2012-03-21 01:42:03
引用回帖:
6楼: Originally posted by 时飞 at 2012-03-20 21:19:28:
(double)(3/2)不是等于1.5吗?double不是双精度实型吗???、

(double)(3/2)分成两步:

首先3/2是等于1
然后(double)1 = 1.0

参见任何一本C语言教程的int类型除法部分。
很女子很弓虽大
7楼2012-03-20 22:56:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 时飞 的主题更新
信息提示
请填处理意见