编译如下Java程序片断:classtest{intcount=9;publicvoida(){intcount=10;System.out.println("count1="+count);}publicvoidcount(){System.out.println("count2="+count);}publicstaticvoidmain(Stringargs[]){testt=newtest();t.a();t.count();}}结果将()。
A.不能通过编译
B.输出: count1=10 count2=9
C.输出:count1=9 count2=9
第1题:
下面程序的正确输出是( )。 public class Hello { public static void main(String args[]) { int count,xPos=25; for(count=1;count<=10;count++) { if(count= =5) Break; system.Out.println(count); xPos+=10: } } }
A.1 2 3 4
B.1 3 4
C.编译错误
D.以上都不正确
第2题:
给定如下JAVA程序片断下述程序将()。
A.不能通过编译
B.通过编译,输出为:AB
C.通过编译,输出为:B
D.通过编译,输出为:A
第3题:
9、给定某Java程序片断,如下: int i=1; int j=i++; if((i>++j)&&(i++==j)) i+=j; System.out.println(i); 给程序运行后,i的输出结果是()。
A.1
B.2
C.3
D.4
第4题:
int i=3;
int count=(i++)+(i++)+(i++);
System.out.println(i);
System.out.println(count);
int j=3;
count=(++j)+(++j)+(++j);
System.out.println(j);
System.out.println(count);
在这个式子里面为什么i的值与j的值相等?
i++和++i都是对i进行+1的操作。
它们的不同点:i++是在i值被使用后才+1,而++i是i值在被使用之前就+1;
分析下您给的例子:
首先分析count=(i++)+(i++)+(i++);运算是从左到右的,由于i++是在i值被使用后才+1所以第一个括号的(i++)应该为3,但是i的值变成了4,当运算第二个括号(i++)此时i的值是4所以第二个括号的(i++)为4但是此时i的值变成5了,类推第三个括号的(i++)为5但是此时i的值变成了6;也是说该等式变为count=(3)+(4)+(5)=12此时i的值为6.
在分析int j=3;
count=(++j)+(++j)+(++j); ++j的操作顺序是先将j加1后在进行操作,所以第一个括号(++j)先将j加1此时j变为4,所以括号的值相当于4;
第二个括号将j加1后j的值变为5;第三个括号将j加1后j的值变为6所以等式相当于 count=(4)+(5)+(6)此时j的值是6 综上i与j 相当。
简单的说i++就是先使用的i的值然后再加1,而++i就是先将i+1,然后使用i改变后的值。
第5题:
3、给定Java代码如下,编译运行,结果是()。 class Test{ int i; public static void main(String args[]){ System.out.println("i="+i); } }
A.编译错误
B.运行时出现异常
C.正常运行,输出i=-1
D.正确运行,输出i=0