C语言问题。以下程序段中与语句K=a>b?(b>c?1:0):0;功能等价的是()
else K=0;
C if (a<=B) k=0; D if (a>B)k=1;
else if (b<=c)k=1; else if (a>c)k=1;
else k=0; 展开
if (a>B)k=1;else if (b<=c)k=1; else if (a>c)k=1;else k=0。选D。
问号表达式 :
(表达式1)?(表达式2):(表达式3)。
如果表达式1成立则执行表达式2,否则执行表达式3。
注意事项:
问号表达式是从右向左运行
例如 :
int a=8,b=3,c=7;
printf("%d",a>b?a>c?a:c:b>c?b:c);
可以分成三步完成
第一步:b>c?b:c 结果为c
第二步:a>c?a:c 结果为a
第三步:前两步的结果分别对应表达式3和表达式2,即a>b?a:c。
最终输出结果为a即8。
扩展资料:
C语言特点:
1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。
2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。
先算有限的括号里的。
也就是说,当b>c的时候,取1;否则取0;
再看左边,当a>b的时候,取右边条件运算符的值;其他取0。
所以,当a>b而且b>c的时候,取1;其他的都取0。
那么答案是A
运算顺序如下:
K = ( a > b ? ( b > c ? 1 : 0 ) : 0 );
赋值运算符优先级最低。