若有定义:int a=0,b=0,c=0,d=0;,以下关于C语言表达式:(++a ‖++b)?++c:++d执行顺序的您述正确的是( )。

admin2016-04-07  26

问题 若有定义:int a=0,b=0,c=0,d=0;,以下关于C语言表达式:(++a ‖++b)?++c:++d执行顺序的您述正确的是(    )。

选项 A、先执行++a,表达式++a的值为1;再执行++b,表达式++b的值为1,由此可确定(++a ‖++b)值为1因此执行++c
B、先执行++a,表达式++a的值为1,由此可确定(++a ‖ ++b)值为1,因此执行++c
C、先执行++b,表达式++b的值为1;再执行++a,表达式++a的值为1,由此可确定(++a ‖ ++b)值为1因此执行++c
D、先执行++a,++b,++c,++d,使得a,b,c,d的值都为1,由此可确定(++a ‖ ++b)值为1,因此执行++c

答案B

解析 表达式17表达式2:表达式3,若表达式1为真,则执行表达式2,否则执行表达式3,++a表示先将变量a+1,再执行其他操作,逻辑或运算符遵循“短路求值”策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数,表达式(++a‖++b)中,左操作数++a的值为1,已经可以确定整个逻辑表达式的结果为1,因此右操作数++b不再求解,直接执行表达式2,即++c,答案为B选项。
转载请注明原文地址:https://kaotiyun.com/show/VtDp777K
0

最新回复(0)