若有以下程序 #include<stdio.h> main( ){ inta=1,b=2,c=3,d=4; if((a=2)ll(b=1))c=2; if((c=3)&&(d=-1))a=5; printf(’’%d,%d,%d,%d\n’’,a,b

admin2020-05-19  22

问题 若有以下程序
#include<stdio.h>
main(    ){
inta=1,b=2,c=3,d=4;
if((a=2)ll(b=1))c=2;
if((c=3)&&(d=-1))a=5;
printf(’’%d,%d,%d,%d\n’’,a,b,C,d);}
则程序的输出结果是

选项 A、2,1,2,-1
B、2,2,2,4
C、5,1,2,-1
D、1,2,3,4

答案B

解析 代码中有两条并列的if语句,第一条if语句执行,(a=2)11(b=1)值为1,由于逻辑或表达式,根据其短路运算规则,a=2,b=2,即b值不变执行if分支c=2。并列的if语句中表达式(c=3)&&(d=-1)为逻辑与表达式,c=3不成立,不考虑d=-1表达式,d为5.逻辑表达式值为0,不执行相应if分支。
转载请注明原文地址:https://kaotiyun.com/show/xuCp777K
0

随机试题
最新回复(0)