单选题 若有以下程序#include<stdio.h>main(){int a=1,b=2,c=3,d=4; if((a=2)‖(b=1))c=2; if((c==3)&&(d=-1))a=5; printf("%d,%d,%d,%d\n",a,b,c,d);}则程序的输出结果是
【正确答案】 B
【答案解析】解析:代码中有两条并列的if语句,第一条if语句执行,(a=2)‖(b=1)值为1,由于逻辑或表达式,根据其短路运算规则,a=2,b=2,即b值不变执行if分支c=2。并列的if语句中表达式(c==3)&&(d=-1)为逻辑与表达式,c=3不成立,不考虑d=-1表达式,d为5,逻辑表达式值为0,不执行相应if分支。