选择题
若有定义: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
【答案解析】
表达式1?表达式2:表达式3,若表达式1为真,则执行表达式2,否则执行表达式3,++a表示先将变量a+1,再执行其他操作,逻辑或运算符遵循“短路求值”策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数,表达式(++a ‖++b)中,左操作数++a的值为1,已经可以确定整个逻辑表达式的结果为1,因此右操作数++b不再求解,直接执行表达式2,即++c,答案为B选项。
提交答案
关闭