纠错

来源:互联网 发布:matlab 二维数组赋值 编辑:程序博客网 时间:2024/04/29 03:19

例题:


2017-11-14

9.
(单选题)以下程序的输出结果为:

1   public static void main(String args[]) {       2       int a=10;      3       int b=20;      4       boolean flag=a++>b--&&b++>a--;     5       System.out.println(flag+",a="+a+",b="+b);      6    }  

A.
false,a=11,b=19
B.
false,a=10,b=20
C.
true,a=11,b=19
D.
true,a=10,b=20

注: 原答案为B 。正确答案为A
错误原因:
&& 的知识点为扎实。
&& 有开关之意,即 && 左面的式子如果不是true ,则右面不需要进行计算。
因此: boolean flag=a++>b–&&b++>a–; 此句在得出 a++ > b– – 后 b++>a– – 不计算。
结果 : a == 11 ,b == 19。 故选A


13.(单选题)下列代码的输出结果是:()。01  public static void main(String[] args) {       02    int i = 24, j = 32, h = 58;      03    switch (j - i) {     04    case 7:      05     h++;    06    case 8:      07     h++;    08    case 9:      09     h += 2;     10    case 10:     11     h += 3;     12    default:     13     h /= j;     14    }    15    System.out.println(h);       16   }    A.59   B.61  C.2   D.1

注: 原答案为 A , 正确答案为 C
错误原因:
break 语句的用法;
当switch 语句中 ,case 语句满足后,后面的条件无需判断,直接执行,直到遇到break,才结束switch语句。
因此:case 8 满足后 ,后面 h++ , h += 2 , h += 3 , h /= j 都会执行
所以结果为 h == 2 。


10.
(单选题)请看下列代码:

01  public void testType() {       02    if (isType(1)) {     03     System.out.println("Type");     04    } else {     05     System.out.println("Not type");     06    }    07   }     08   public boolean isType(int type) {     09    if (type == 1) {     10     return false;       11    }    12    return true;     13   }  

调用testType方法,程序编译和运行的结果是:()。B
A.
输出:Type
B.
输出:Not Type
C.
代码 if (isType(1)) { 行,编译错误
D.
代码 return true; 行,编译错误

注:正确答案为 B
本题考点 对if语句的理解
** if (条件语句){
条件语句为true时执行

else {
条件为false时执行
} **


原创粉丝点击