下列程序的输出结果为(  )。 public class Test { public static void main (String[] args) { int i,j,k,a=3,b=2;

admin2010-12-17  24

问题 下列程序的输出结果为(  )。    public class Test {        public static void main (String[] args) {             int i,j,k,a=3,b=2;             i=(--a==b++)? --a:++b;             j=a++;             k=b;             System. out. println("i="+i+" ,j =" +j+",k ="+k);        }        }

选项 A、i=2, j=1, k=3
B、i=1, j=1, k=2
C、i=4, j=2, k=4
D、i=1, j=1, k=3

答案D

解析 本题的关键是要弄清条件表达式的执行步骤和自增(或自减)运算的求值过程。
程序的执行过程如下:
①首先求出关系表达式--a==b++的值为“真”。注意:--a是先使当前的a值(为3)减1后才参加关系运算;而b++则是先使当前的b值(为2)参加关系运算后再增1。
②由于关系表达式的结果为“真”,因此进行--a运算。由于a的当前值已为2,所以运算结果的值是1(注意:这时对++b不进行运算),即整个条件表达式的值为1,从而得到i=1。这时a和b的值分别为1和3。
③执行j=a++和k=b后,将分别得到:j=1(把a的当前值1赋给j后,a再增1),k=3。
转载请注明原文地址:https://kaotiyun.com/show/Cp9p777K
0

最新回复(0)