A.i=1,j=0
B.i=1,j=4
C.i=3,j=4
D.i=3,j=0
E.Compilationfails.
第1题:
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改变后的值。
第2题:
下面语句输出了多少次? for (int i = 0; i < 10; i++) for (int j = 0; j < i; j++) System.out.println(i * j)
A.100
B.20
C.10
D.45
第3题:
4、以下哪段代码可以编译:
A.int i,k; for (i=0, k=9; i<10 && k>0; i++, k--);
B.int i; for (i=5, int j=10; j<10; j-- ) ;
C.int i,j; for (i=0, j=10; i<10, j>0; i++, j--)
D.int i,j; for (i=0; j=10; i<10; i++, j--);
第4题:
println 语句执行了多少次? for (int i = 0; i < 10;i++) for (int j = 0;j < i;j++) System .out.println(i * j)
A.10
B.45
C.9
D.0
第5题:
【多选题】(4-3)初始了如下二维数组,()能够遍历该二维数组。 int [ ][ ] arr={{3,4,5},{7,8,2},{1},{6,2,8}};
A.for(int i=0;i<arr.length;i++) for(int j=0;j<arr.length;j++) System.out.println(arr[i][j]);
B.for(int i=0;i<arr.length;i++) for(int j=0;j<arr[i].length;j++) System.out.println(arr[i][j]);
C.for(int i=0;i<arr.length;i++) for(int x:arr[i]) System.out.println(x);
D.for(int list:arr) for(int x:list) System.out.println(x);
E.for(int[ ] list:arr) for(int x:list) System.out.println(x);