有以下程序: main() { int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d++ +1); else printf("%d",++d +1); pr

admin2009-04-15  28

问题 有以下程序:    main()    {  int  a=3,b=4,c=5,d=2;    if(a>b)    if(b>c)    printf("%d",d++ +1);    else    printf("%d",++d +1);    printf("%d\n",d);    }    程序运行后的输出结果是(  )。

选项 A、2
B、3
C、43
D、44

答案1

解析 首先看程序中if-else的匹配,由于C语言中规定else总是与最近的if搭配,因此程序中else与第二个if搭配,即该 if-else语句为第一个if语句的执行部分,接着判断第一个if后面括号里的表达式的值a>b为假(3>4为假),因此不执行后面if-else语句,程序将执行下面的输出语句输出d,而d一直未被改变故为原来的值2,所以,4个选项中选项A符合题意。
转载请注明原文地址:https://kaotiyun.com/show/hpXp777K
0

最新回复(0)