选择题   若有以下程序
    #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);
    }
则程序的输出结果是______。
 
【正确答案】 A
【答案解析】[考点] 字符、选择和程序结构 第一个if语句的判断条件中是逻辑或表达式,所以只要有一个运算对象为真结果就为真,且如果前面的已经为真,后面的表达式不再进行执行判断,执行第一个if判断条件时a的值为2,整个表达式的值为真,b的值不变,c的值为2。判断第二个if条件为逻辑与表达式,只有两个运算对象均非零,才为真,第一个表达式c==3,不成立,不再判断第二个运算对象,所以不执行d=-1操作和a=5操作,所以,结果为2,2,2,4。