第1题:
publicclassTestOneimplementsRunnable{publicstaticvoidmain(String[]args)throwsException{Threadt=newThread(newTestOne());t.start();System.out.print(”Started”);t.join();System.out.print(”Complete”);}publicvoidrun(){for(inti=0;i<4;i++){System.out.print(i);}}}Whatcanbearesult?()
A.Compilationfails.
B.Anexceptionisthrownatruntime.
C.Thecodeexecutesandprints“StartedComplete”.
D.Thecodeexecutesandprints“StartedComplete0123”.
E.Thecodeexecutesandprints“Started0l23Complete”.
第2题:
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改变后的值。
第3题:
3、下列循环语句合法的是()
A.while(int i<7){ System.out.println(“i is ”+i); i++; }
B.int i=1; while(i){ System.out.println(“i is ”+i); }
C.int i=0; for(int i=0;i<7;i++){ System.out.println(“i is ”+i); }
D.int i=0; do{ System.out.println(“i is ”+i++); if(i==3) continue; }while(i<7);
第4题:
请阅读下面程序 publicclassThreadTest{ publicstaticvoidmain(Stringargs[])throwsException{ inti=0; Hellot=newHello(); ______, while(true){ System.out.println("GoodMoming"+i++); if(i==2&&t.isAlive()){ System.out.println("MainwaitingforHello!"); t.join();//等待t运行结束 } if(i==5)break;} } } classHelloextendsThread{ inti; publicvoidrun(){ while(true){ System.out.println("Hello"+i++); if(i==5)break;}}} 为使该程序正确执行, 下划线处的语句应是( )。
A.t.sleep()
B.t.yield()
C.t.interrupt()
D.t.start()
第5题:
下列选项中,循环会无限执行的是______。
A.int i = 1 ; while (i < 10) System .out .print(“ ” + i) ;
B.for(int i = 1 ; i < 10 ;i ++) System .out .print(“ ” + i);
C.for(int i = 10 ; i > 0 ;i --) System .out .print(“ ” + i);
D.int i = 1 ; while (true) { System .out .print(“ ” + i); i ++ ; if (i > 5) break ;
第6题:
已知s0=8,则表达式out = s0 ? i1 : i2的结果是 。
A.out=i1
B.out=i2
C.out=1
D.out=0