Home > Java > javaTutorial > Share a Java introductory question

Share a Java introductory question

PHP中文网
Release: 2017-06-21 09:37:46
Original
1534 people have browsed it

Description

I saw a question like this on Zhihu a few days ago. I just did it casually and checked the answers. Yesterday there was another advanced question, some of which still need to be recorded, so I started with this introductory question.
Questions and answers are from Alibaba Cloud University - Zhihu Column

Questions

  1. Now assume that there is the following program

    class Happy {public static void main(String args[])     {int i = 1 ;    int j = i++ ;if((i==(++j))&&((i++)==j))     {
                i += j ;
            }
            System.out.println("i = "+i);
        }
    }
    Copy after login

    What is the value of i output after running the above code?

    A. 4

    B. 5

    C. 3

    D. 6

  2. The following Which one of data declaration and assignment is error-free?

    A. float f = 1.3;

    B. char c = "a"

    C. byte b = 257

    D. int i = 10

  3. Extension of the bytecode file generated by compiling Java source program files Name?

    A. java

    B. class

    C. html

    D. exe

  4. Now suppose There is the following program:

    public class Demo {public static void main(String args[]) {boolean flag = 10%2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ;
            System.out.println(flag ? "aliyunedu" : "yootk") ;
        }
    }
    Copy after login

    What is the final execution result of the above program?

    A. aliyunedu

    B. yootk

    C. true

    D. Program error

  5. Now Suppose there is the following program:

    public class Demo {public static void main(String args[]) {int x = 10 ;double y = 20.2 ;long z = 10L;
            String str = "" + x + y * z ;
            System.out.println(str) ;
        }
    }
    Copy after login
    Copy after login

    What is the final execution result of the above program?

    A. 10202.0

    B. 0212.0

    C. 302.0

    D. 1020.210

  6. Now assume There is the following program:

    public class Demo {public static void main(String args[]) {
            String str = "" ;for (int x = 0 ; x < 5 ; x ++) {
                str += x ;
            }
            System.out.println(str) ;
        }
    }
    Copy after login

    What is the final execution result of the above program?

    A. 01234

    B. 10

    C. 14

    D. 25

  7. Now suppose There is the following program:

    public class Demo {public static void main(String args[]) {
            System.out.println(inc(10) + inc(8) + inc(-10)) ;
        }public static int inc(int temp) {if (temp > 0) {return temp * 2 ;
            }return -1 ;
        }
    }
    Copy after login

    What is the final execution result of the above program?

    A. 35

    #B. 8

    C. 28

    D. 12

  8. Now suppose There is the following program:

    public class Demo {public static void main(String args[]) {char c = &#39;A&#39; ;int num = 10 ;switch(c) {case &#39;B&#39; :
                    num ++ ;case &#39;A&#39; :
                    num ++ ;case &#39;Y&#39; :
                    num ++ ;break ;default :
                    num -- ;
            }
            System.out.println(num) ;
        }
    }
    Copy after login

    What is the final execution result of the above program?

    A. 11

    B. 13

    C. 12

    D. 10

  9. Now suppose There is the following program:

    public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 1 ; x < 10 ; x ++) {
                sum += x ;if (x % 3 == 0) {continue ;
                }
            }
            System.out.println(sum) ;
        }
    }
    Copy after login
    Copy after login

    What is the final execution result of the above program?

    A. 6

    #B. 0

    C. Program error, infinite loop

    D. 45

  10. Now assume that there is the following program:

    public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 0 ; x < 10 ; x ++) {
                sum += x ;if (x % 3 == 0) {break ;
                }
            }
            System.out.println(sum) ;
        }
    }
    Copy after login
    Copy after login

    What is the final execution result of the above program?

    A. 6

    #B. 0

    C. Program error, infinite loop

    D. 45

Answer

BDBBA AACDB

Personal analysis

  1. Main testi++ and++i The difference is as long as you remember "++ first, self-increment first; second ++, then self-increment", this question will only test your carefulness.

    class Happy {public static void main(String[] args) {int i = 1;int j = i++; // i = 2, j = 1if ((i == (++j)) && ((i++) == j)) { // 第一个判断:j先自增1变为2后与i比较// 第二个判断:i先与j比较后再自增1,// if内为true,i = 3, j = 2i += j; // i = 5, j = 2}
    
            System.out.println("i = " + i);
        }
    }
    Copy after login
  2. If option A does not have that ; at the end, then this question will not be controversial

    • int b = 257;

    • byte b = 57;

    • char c = 'a';

    • ##String c = "a";

    • float f = 1.3f;

    • double f = 1.3;

    • float f =(float) 1.3;

    • ##double f = 1.3f;

    • A.

      float f = 1.3;##1.3The default is double type , the conversion of basic data types in Java from high-level to low-level requires forced conversion.

    • B.
    • char c = "a"

      Character constants in java should be enclosed in single quotes and double quotes It is a string. (There is a semicolon missing at the end)

    • C.
    • byte b = 257

      The range of byte is -128~127. (There is a semicolon missing at the end)

    • D.
    • int i = 10

      # (There is a semicolon missing at the end)

      ##None
  3. public class Demo {public static void main(String args[]) {boolean flag = 10 % 2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ;// 10对2取余为0,故flag为falseSystem.out.println(flag ? "aliyunedu" : "yootk") ;
        }
    }
    Copy after login

  4. &&
    (Short circuit AND) Once the previous condition is If false, the following conditions will be skipped.

    X = Condition? A : B is a ternary expression, which has the same meaning as

    if (条件) {
        X = A;
    } else {
        X = B;
    }
    Copy after login

    public class Demo {public static void main(String args[]) {int x = 10 ;double y = 20.2 ;long z = 10L;
            String str = "" + x + y * z ;
            System.out.println(str) ;
        }
    }
    Copy after login
    Copy after login

  5. *
    has a higher priority than
    +

    , so the multiplication is calculated first, followed by + from left to right. When a string participates in the + operation, the addition becomes string concatenation, and the result is a string. Therefore, the final result is the concatenation of the strings "10" and 202.0. See above

  6. public class Demo {public static void main(String args[]) {
            System.out.println(inc(10) + inc(8) + inc(-10)) ; // 20 + 16 - 1}public static int inc(int temp) {if (temp > 0) {return temp * 2 ;
            }return -1 ;
        }
    }
    Copy after login

  7. If it is a positive number, return 2 times the value of the parameter; if it is not a positive number, Return -1. The result is
  8. 20 + 16 + (-1)

    public class Demo {public static void main(String args[]) {char c = &#39;A&#39; ;int num = 10 ;switch(c) {case &#39;B&#39; :
                    num ++ ;case &#39;A&#39; :// 匹配成功,开始执行num ++ ; // num = 11case &#39;Y&#39; :
                    num ++ ; // num = 12break ;// 因break跳出switchdefault :
                    num -- ;
            }
            System.out.println(num) ;
        }
    }
    Copy after login

  9. The importance of break in switch-case statement block
  10. public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 1 ; x < 10 ; x ++) {
                sum += x ;if (x % 3 == 0) {continue ;
                }
            }
            System.out.println(sum) ;
        }
    }
    Copy after login
    Copy after login

  11. I feel that the position of
  12. sum += x
    for this question may be wrong. It should be after if, or it may just be the same as the next question. Compared. Now there is almost no use of if in this code. The result is the same as without if, which is 1+2+…+9=45.

    public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 0 ; x < 10 ; x ++) {
                sum += x ;if (x % 3 == 0) {break ;
                }
            }
            System.out.println(sum) ;
        }
    }
    Copy after login
    Copy after login

    Similar to the previous question, but the initial value of i becomes 0, and the continue in if becomes break. Since the remainder of 0 to 3 is 0, we jump out of the loop directly and output the value of sum 0.

The above is the detailed content of Share a Java introductory question. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template