有以下程序   main( )   { int a=1,b=2,m=0,n=0,k;    k=(n=b>a)||(m=a    printf("%d,%d\n",k,m);   }   程序运行后的输出结果是

admin2013-02-23  25

问题 有以下程序

  main( )

  { int a=1,b=2,m=0,n=0,k;

   k=(n=b>a)||(m=a
   printf("%d,%d\n",k,m);

  }

  程序运行后的输出结果是

选项 A、0,0
B、0,1
C、1,0
D、1,1

答案C

解析 由于整个表达式中出现了“‖”运算符,则先计算“‖”前的表达式的值。若非0,则不再计算其后表达式的值,由于b>a为逻辑真1,1赋给n,n为1再赋给k,k值为1,则“‖”左边式子的值为1,故不再计算其后的式子,m值不发生变化。
转载请注明原文地址:https://kaotiyun.com/show/fsJp777K
0

最新回复(0)