BaymaxSky / core-java-world

0 stars 0 forks source link

Core Java 01 #2

Open BaymaxSky opened 1 year ago

BaymaxSky commented 1 year ago

1. What is the output?

int[] xxx = {10, 20};
List<String> list = new ArrayList<String>(10);
list.add("01");
list.add("02");
System.out.println(xxx.length + ", " +list.size());

Output

a. Compile error
b. 1, 2
c. 2, 10
d. 2, 2
e. 10, 2

2. Consider the following code segment

int q = 0;
for(int p = 0; p< 10; p++){
q++;
p+=q;
System.out.print(p + " ");
}

What is printed as a result of executing the code segment?

A. 1 4 8 13
B. 1 4 8 13 19
C. 1 3 5 7 9
D. 1 3 5 7 9 11
E. 0 2 4 6 8 10

3. Consider the following code segment

int q = <some integer value greater than 0>
int p = <some integer value greater than q>
while(p>q){
    if(p%2==0)
        p--;
    else
        q++;
}
System.out.print(q + " " + p);

What kind of values are printed when the segment executes?

A. Two positive integers, such the p equals q
B. Two positive integers, which are the initial values of p and q
C. Two positive integers, such the p greater than q
D. Two positive integers, such the p less than q
E. Two positive integers, such the p equals q + 1

4. Consider the following code segment

int x = 10;
int y = 20;
swap(x,y);
System.out.print(x + " " + y);

public static void swap(int p, int q){
    int temp = p;
    p = q;
    q = temp;
}

What is printed as a result of executing the code segment?

A. 20 10
B. 10 20
C. 10 10
D. 20 20
D. 0 0

5. Consider the following code segment and class

Widget w1 = new Widget(66);
Widget w2 = new Widget(77);

System.out.println(w2.getWidgets() + " " + w1.getWidgets());
System.out.println(w2 + " " + w1);

Class Widget{
    private int numWidgets;

    public Widget(int num){
        numWidgets=num;
    }

    public int getWidgets(){
        return numWidgets;
    }
}

What is printed as a result of executing the code segment?

Note: Memory reference values will fluctuate different executions

A. 66 77
    Widget@2e81632f, Widget@2edge332f

B. 77 66
    77 66

C. 77 66
   Widget@2edge332f, Widget@2e81632f

D. 66 77
    66 77

E. 0 0
    0 0
binzunu1909 commented 1 year ago
  1. d: 2,2
  2. a: 1 4 8 13
  3. d: Two positive integers, such the p less than q (Wrong) a: Two positive integers, such the p equals q (Forget when p = q, loop will break)
  4. a: 20 10 (Wrong) b: 10 20 (Forget method parameters are passed by value, not by reference)
  5. c: 77 66 Widget@2edge332f, Widget@2e81632f
tuyenluong commented 1 year ago

1 = c 2 = e 3 = a 4 = a 5 = c

Sun2303 commented 1 year ago

E xin trình bày câu trả lời của mình. Ở đây e sẽ show cả đáp án sai và đáp án đúng, và cả giải thích vì sao đáp án đó đúng theo những gì e đã hiểu. Mong được mọi người đóng góp thêm nếu trong phần giải thích của e bị sai hoặc chưa rõ ràng.

1/ C => Đáp án đúng phải là: D. 2, 2 Vì giá trị 10 trong ArrayList(10) có nghĩa là khả năng chưa số lượng value trong list chứ không phải số lượng value. size của list sẽ phụ thuộc vào số lượng value được add vào.

2/ B => Đáp án đúng phải là: A. 1 4 8 13 Vì sau khi p = 13 thì vòng lặp đã được dừng lại do ko còn match với điều kiện (p<10)

3/ A. Two positive integers, such the p equals q

4/ A => Đáp án đúng phải là: B. 10, 20 Vì hàm swap chỉ thay đổi giá trị của các biến p và q trong chính hàm đó mà không làm ảnh hưởng đến các biến gốc. => Giá trị của x vẫn là 10 và giá trị của y vẫn là 20, không bị thay đổi sau khi gọi hàm swap(x, y).

5/ C => Vì:

BaymaxSky commented 1 year ago

Sự khác nhau giữa q++ và ++q là gì mọi người ?

tuyenluong commented 1 year ago

Sự khác nhau giữa q++ và ++q:

Sun2303 commented 1 year ago

Sự khác nhau giữa q++ và ++q:

Ví dụ: int q = 2; System.out.println("q ban đầu: " + q); // -->q ban đầu: 2 int check1= q++; System.out.println("Giá trị q được sử dụng trong q++: " + check1); // -->Giá trị q được sử dụng trong q++: 2 System.out.println("q sau khi thực hiện xong q++: " + q); // -->q sau khi thực hiện xong q++: 3


int q = 2; System.out.println("q ban đầu: " + q); // -->q ban đầu: 2 int check2 = ++q; System.out.println("Giá trị q được sử dụng trong ++q: " + check2); // -->Giá trị q được sử dụng trong ++q: 3 System.out.println("q sau khi thực hiện xong ++q: " + q); // -->q sau khi thực hiện xong q++: 3

nhungpham1512 commented 1 year ago

1.d 2.a 3.c =>đáp án đúng: a 4.a =>đáp án đúng: b 5.c