有以下程序 #inelude<stdio.h> main() { int a=1,b=2,c=3,d=0; if(a==1&&b++==2) if(b!=2‖ c--!=3) printf(

admin2013-10-14  7

问题 有以下程序
#inelude<stdio.h>
    main()
    {  int a=1,b=2,c=3,d=0;
       if(a==1&&b++==2)
       if(b!=2‖ c--!=3)
          printf("%d,%d,%d\n",a,b,c);
       else printf("%d,%d,%d\n",a,b,c);
      else printf("%d,%d,%d\n",a,b,c);
    }
    程序运行后的输出结果是(    )。【09年3月】

选项 A、1,2,3
B、1,3,2
C、1,3,3
D、3,2,1

答案C

解析 a、b、c、d初始值分别为1、2、3、0。第一个if中,a==1成立,但由于运算符是&&,还需判断第二个表达式,b++==2,它同时也成立,之后b=b+1,此时b=3,执行第二个if语句,此时b!=2成立,由于运算符是‖,不管后面一个表达式的值是不是1,其整个表达式的值总是1,因此第二个表达式不执行,最后打印出a,b,c的值是1,3,3。
转载请注明原文地址:https://kaotiyun.com/show/iMJp777K
0

随机试题
最新回复(0)