问题详情

已定义:int a=25,b=14,c=19;,以下三目运算符(?:)所构成语句的执行后a<=25 &&b--<=2 &&c? printf("***a=%d,b=%d,c=%d\n",a,b, c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序输出的结果是A.* * *a=25,b=13,c=19 B.* * *a=26,b=14,c=19 C.### a=25,b=13,c=19 D.### a=26,b=14,c=19


A、* * *a=25,b=13,c=19

B、* * *a=26,b=14,c=19

C、### a=25,b=13,c=19

D、### a=26,b=14,c=19

时间:2022-01-03 04:54 关键词:

答案解析

C
本题主要考查三目运算符(?:)。在本题中,有三个整型变量a、b、c,它们的初值分别为25、14、19,然后执行三目运算,a<=25&&b--<=2 &&c等价于(a<=25)&&(b--<=2)&&c。由于变量a的初值为25,因此,(a<=25)的结果为真;由于变量b的初值为14,(b--<=2)的结果为假,根据&&的性质可知,其中的操作数只要有假,则计算结束,返回最终的结果为假,因此,后面的程序执行printf(″###a=%d,b=%d,c=%d\n″,a,b,c)部分,那么答案只能在C和D中产生,从这两个选项中给出的结果可以看出,它们的区别只有b的输出结果,一个是13,而一个是14。从上面的程序分析,变量b进行了一次自减操作,最后的结果应该是13。因此,本题的正确答案是C。