有以下程序: #include<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);

admin2019-06-12  11

问题 有以下程序:
#include<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);
}
程序运行后的输出结果是(    )。

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

答案C

解析 首先a=1,b=2,c=3,d=0;因为a为1,b++本身为b加之前的值,即b++为2,所以第一个if语句的判断条件为真,进入if语句。b经过b++运算后值为3,所以第二个if语句为真(或运算时,一个为真,整体都为真,并且第一个为真时第二个不会被执行运算),这时后面的运算都忽略。
转载请注明原文地址:https://kaotiyun.com/show/fjRp777K
0

最新回复(0)