C语言大神帮忙解答,24题,题目中那个表达式是什么意思,选什么,给解释下,谢谢了,

如题所述

判断式?结果1:结果2
这个叫做问号条件,判断式为真,表达式结果就是结果1;否则为结果2.
x > 0 ? 1 : x < 0 ? -1 : 0
从右往左看,先是x < 0 ? -1 : 0,假设结果为a,再x > 0 ? 1 : a
翻译为if语句:
if (x>0)
return 1
else if(x<0)
return -1
else return 0追问

帮忙把这种嵌套的做法说一下行吗

左结合性,从左往右算吗

追答

追问

选项A中的case3是逗号,有什么区别吗

追答

你自己试验一下一个问题,按照题目编写一个C文件,选项A中的a+b分别换成1,0,3,你看一下输出。然后这样做:将case 1后面的 break; 不要,再看一下结果。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-07

选A,我已经试过了。这个可以理解成一个分段函数:当x>0时,y=1;x<0时,y=-1;x=0时,y=0。下面是运行结果,  希望对你有帮助。。

#include<iostream>

using namespace std;

int main()

{


int x;

int i,j;

cin>>i;

for(j=0;j<i;j++)

{

    cin>>x;

    cout<<(x>0?1:x<0?-1:0)<<endl;

}


return 0;

}

第2个回答  2014-01-07
经实验,选A无误
先匹配x大于0,不行后匹配x小于0,都不行时,返回-1
第3个回答  2014-01-07
答案为C,?的意思为 如果前面的语句为真,则执行冒号左边的语句,否则执行冒号右边的语句追问

抱歉,答案选的A,但是我不明白,

相似回答