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

admin2009-09-28  35

问题 有以下程序        #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);          else printf("%d,%d,%o\n",a,b,c);        }         程序运行后的输出结果是______。

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

答案C

解析 本题主要考查的是自加,自减运算符以及逻辑运算符的应用,需要注意“&&”和“||”的“短路”运算。当运算符“&&”左边表达式的值为0时,则右边表达式就不再进行运算,整个表达式的值即为0;当运算符“||”左边表达式的值为非零时 ,则右边表达式就不再进行运算,整个表达式的值为1。
程序首先对变量a、b、c初始化,然后执行第一个个if语句,计算表达式“a=1&&b++=2”的值,因为a=1,所以左边表达式的值为1,因此接着判断b++=2是否成立,由于b++表示在使用用后再将b加1,因此b++=2的值为1所以表达式a=1&&b++=2的值为1,即if语句的条件成立。接着执行第二个if语句,计算表达式“b!=2||c-!=3”的值,因b=3 ,所以b!=2的值为1,则表达式c-!=3就不再进行运算,整个表达式的值为1,因为第二个if语句的条件成立,执行其后的printf("%d,%d,%d\n",a,b,c) 语句,输出变量a、b、c的值,此时a=1、 b=1、c=3,因此输出1,3,3。
转载请注明原文地址:https://kaotiyun.com/show/l9Wp777K
0

相关试题推荐
最新回复(0)