1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐÁP ÁN LÂP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐẠI HỌC THAI NGUYÊN HỆ TỪ XA TNU C

42 706 8

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đáp án lập trình hướng đối tượng
Trường học Đại học Thái Nguyên
Chuyên ngành Lập trình hướng đối tượng
Thể loại Đáp án
Định dạng
Số trang 42
Dung lượng 246,48 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐÁP ÁN LÂP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐẠI HỌC THAI NGUYÊN HỆ TỪ XA TNU Câu 1 Xét 2 câu sau Câu 1 Trong khi tạo một gói, mã nguồn phải được đặt trong cùng một thư mục với tên của gói Câu 2 Scanner là lớp thuộc gói java util Câu nào đúng? Câu nào sai? A Cả hai câu đều đúng B Cả hai câu đều sai C Câu 1 đúng, câu 2 sai D Câu 2 đúng, câu 1 sai Câu 2 Đoạn mã sau có lỗi biên dịch gì? public class Person { private String name; private int age; public static void main(.

Trang 1

ĐÁP ÁN LÂP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐẠI HỌC THAI NGUYÊN HỆ TỪ XA TNU

Câu 1: Xét 2 câu sau:

Câu 1: Trong khi tạo một gói, mã nguồn phải được đặt trong cùng một thư mục với tên của gói

Câu 2: Scanner là lớp thuộc gói java.util

Câu nào đúng? Câu nào sai?

A Cả hai câu đều đúng

B.Cả hai câu đều sai

C.Câu 1 đúng, câu 2 sai

D.Câu 2 đúng, câu 1 sai

Câu 2 :Đoạn mã sau có lỗi biên dịch gì?

public class Person {

private String name;

private int age;

public static void main(String[] args) {

Person p = new Person();

Trang 2

Cho lớp Student như sau:

public class Student {

private String mark;

public String getMark() {

return mark;

}

public void setMark(String mark) {

Trang 3

this.mark = mark;

}

}

và s là thể hiện của lớp Student

Đoạn mã nào sau cho phép thay đổi điểm của s thành "10"? Chọn một:

Đáp án đúng là: s.setMark("10")

Câu 7 :Đoạn mã sau có lỗi biên dịch gì?

class Person {

protected String name;

public int age;

};

public class Main {

public static void main(String[] args) {

Person p = new Person();

p.name="Tom";

}

}

Đáp án đúng là: Không có lỗi biên dịch

Câu 8 :Lớp Scanner thuộc gói nào trong java?

9:public static void main(String[] args){

10:A a = new A();

11:System.out.println(a.toString());

12:}

Trang 4

13:}

Chương trình sẽ in ra cái gì?

Đáp án đúng là: Lỗi dòng khởi tạo lớp A: A a = new A();

Câu 10: Xét 2 câu sau:

Câu 1: Một thành viên protected của một lớp có thể được truy xuất từ bất kỳ lớp nào trong cùng một gói và từ một lớp con nằm bên ngoài gói nếu lớp bên ngoài đó là lớp con Câu 2: Một thành viên của một lớp được khai báo là private không những không thể được truy xuất từ bên trong lớp mà còn không nơi nào bên ngoài lớp

Câu nào đúng? Câu nào sai?

Đáp án đúng là: Câu 1 đúng, câu 2 sai

public class Main {

public static void main(String[] args) {

java.school.Student s = new java.school.Student();

}

}

Khi biên dịch lớp Main có lỗi biên dịch không? Nếu có là lỗi nào sau:

Đáp án đúng là: Không có lỗi biên dịch

Câu 13 :Đoạn mã sau có lỗi biên dịch gì?

Trang 5

class Person {

private String name;

public int age;

};

public class Main {

public static void main(String[] args) {

Person p = new Person();

p.name="Tom";

}

}

Đáp án đúng là: Lỗi vì biến name ở chế độ private

Câu 14: Bạn đang viết một đoạn mã cho 1 lớp, lớp này nằm trong package test và sử dụng các thành phần trong gói java.util Lựa chọn đoạn mã để khởi đầu cho file dữ liệu nguồn

Đáp án đúng là:

package test;

Câu 15 :Đoạn mã sau có lỗi biên dịch gì?

class Person {

protected String name;

public int age;

};

public class Main {

public static void main(String[] args) {

Person p = new Person();

p.name="Tom";

}

}

Đáp án đúng là: Không có lỗi biên dịch

Câu 16 :Đâu là khai báo lớp Student trong package java.school đúng:

Đáp án đúng là:

package java.school;

public class Student {}

Câu 17 : Xét 2 câu sau:

Trang 6

Câu 1: Trong khi tạo một gói, mã nguồn phải được đặt trong cùng một thư mục với tên của gói

Câu 2: Scanner là lớp thuộc gói java.util

Câu nào đúng? Câu nào sai?

Đáp án đúng là: Cả hai câu đều đúng

Câu 18 : Cho hai lớp Student và Main như sau:

package java.school;

public class Student {}

package java.test;

public class Main {

public static void main(String[] args) {

java.school.Student s = new java.school.Student();

}

}

Khi biên dịch lớp Main có lỗi biên dịch không? Nếu có là lỗi nào sau:

Đáp án đúng là: Không có lỗi biên dịch

Câu 19 :Đoạn mã sau có lỗi biên dịch gì?

class Person {

private String name;

public int age;

};

public class Main {

public static void main(String[] args) {

Person p = new Person();

p.name="Tom";

}

}

Đáp án đúng là: Lỗi vì biến name ở chế độ private

Câu 20 :Bạn đang viết một đoạn mã cho 1 lớp, lớp này nằm trong package test và sử dụng các thành phần trong gói java.util Lựa chọn đoạn mã để khởi đầu cho file dữ liệu nguồn

Đáp án đúng là:

package test;

import java.util.*;

Trang 7

Câu 21: Khai báo lớp Student trong package java.class sau có lỗi biên dịch hay không, nếu có thì là lỗi gì?

package java.class;

class Student {}

Đáp án đúng là: Lỗi tên package không hợp lệ

Câu 22 :Đoạn mã sau có lỗi biên dịch gì?

public class Person {

private String name;

private int age;

public static void main(String[] args) {

Person p = new Person();

p.name="Tom";

System.out.println(p.name);

}

}

Đáp án đúng là: Không có lỗi biên dịch

Câu 23 :Cho hai lớp Student và Main như sau:

package java.school;

public class Student {}

package java.test;

public class Main {

public static void main(String[] args) {

Student s = new Student();

}

}

Kết quả khi biên dịch lớp Main:

Đáp án đúng là: Có lỗi biên dịch vì chưa khai báo lớp Student

Câu 24 :Khả năng truy xuất vào các thành phần của một đối tượng trong khi vẫn đảm bảo che giấu các đặc tính riêng tư bên trong đối tượng được gọi là tính chất gì trong lập trình hướng đối tượng?

Đáp án đúng là: Tính bao gói

Câu 25:Trong 2 câu sau, câu nào đúng? Câu nào sai?

Câu 1: Một chương trình Java có thể chạy trên bất kỳ hệ điều hành nào?

Câu 2: Java là ngôn ngữ lập trình hướng đối tượng

Trang 8

Đáp án đúng là: Cả hai câu đều đúng

Câu 26:Trong 2 câu sau, câu nào đúng? Câu nào sai?

Câu 1: Tất cả các đối tượng thuộc vào cùng một lớp có cùng thuộc tính và hành vi có thể có Câu 2: Một phương thức được gọi là constructor sử dụng để hủy một đối tượng

Đáp án đúng là: Câu 1 đúng, câu 2 sai

Câu 27 :Đâu là câu SAI nói về hàm tạo?

Đáp án đúng là: Trong một lớp chỉ có một và chỉ một hàm tạo được khai báo

Câu 28 :Đâu KHÔNG phải là đặc điểm của ngôn ngữ Java?

Đáp án đúng là: Đa dạng

Câu 29:Hai đối tượng có thể giao tiếp với nhau thông qua:

Đáp án đúng là: Lời gọi hàm của đối tượng được yêu cầu

Câu 30:Việc định nghĩa một lớp mới bằng cách mở rộng một lớp đã có là tính chất gì trong lập trình hướng đối tượng?

Câu 34: Đọc đoạn mã lệnh sau

1:public class Main {

2: public static void main(String[] args) {

Câu 35 : Một đối tượng sau khi được khởi tạo sẽ kết thúc vòng đời khi nào?

Đáp án đúng là: Đối tượng được gán bằng null

Câu 36 :Đọc đoạn mã lệnh sau

1:public class Test {

2: int x;

Trang 9

3: public void Test() {

Câu 38: Đọc đoạn mã lệnh sau

1:public class Main {

2: public static void main(String[] args) {

3: int x;

4: System.out.println("x = " + x);

5: }

6:}

Sau khi thực thi chương trình sẽ in ra kết quả gì?

Đáp án đúng là: Lỗi biên dịch : Uncompilable source code - variable x might not have been

Trang 10

1:public class Test {

2:public int aMethod() {

3:int i = 0;

4:i++;

5:return i;

6:}

7:public static void main (String[]args){

8:Test test = new Test();

Câu 47: Xét 2 câu sau:

Câu 1: Biến được khai báo bên trong lớp được dùng để lưu trữ các giá trị thuộc tính của đối tượng

Câu 2: Biến địa phương là biến được khai báo bên trong phương thức và các khối lệnh Câu nào đúng? Câu nào sai?

Đáp án đúng là: Cả 2 câu đều đúng

Câu 48: Đâu là khai báo biến đúng trong java?

(1) rollNumber

Trang 11

Câu 52: Đọc đoạn code sau

1: public class ReturnIt {

2: public <return_Type> methodA(int x, double y) {

Câu 53: Xét 2 câu sau:

Câu 1: Biến được khai báo bên trong lớp được dùng để lưu trữ các giá trị thuộc tính của đối tượng

Câu 2: Biến địa phương là biến được khai báo bên trong phương thức và các khối lệnh Câu nào đúng? Câu nào sai?

Đáp án đúng là: Cả 2 câu đều đúng

Trang 12

Câu 54: Đọc đoạn mã sau:

Trang 13

Câu 59 :Phát biểu nào đúng?

Đáp án đúng là: Tên biến $bank_account và _1account là hợp lệ

Câu 60: 1 public class X {

2 public static void main (String[] args) {

Đâu là câu đúng về đoạn mã trên?

Đáp án đúng là: Lỗi dòng 5 ngăn chương trình thực thi

Câu 61 :Sau lệnh khởi tạo dưới đây mảng a có bao nhiêu phần tử?

Đáp án đúng là: int a1[][] = new int[][3];

Câu 63 :StringBuffer s = new StringBuffer("hello how are you how?");

Trang 14

01: public class Main{

02: public static void main(String[] args) {

03: String names[] = {"John","Anna","Peter","Victor","David"}; 04: System.out.println(names[2]);

05: }

06:}

Đáp án đúng là: Peter

Câu 65 : 01: int index = 1;

02: int [] foo = new int [3];

03: int bar = foo [index];

04: int baz = bar + index;

Kết quả baz là?

Đáp án đúng là: baz có giá trị là 1

Câu 67: Lệnh nào SAI?

Chọn một:

Đáp án đúng là: float f2[] = new float[];

Câu 68 :Lệnh khai báo nào dưới đây là hợp lệ?

Chọn một:

Đáp án đúng là: int[] b = new int[100];

Câu 69: 1 public class Delta {

2 static boolean foo(char c) {

Trang 15

Câu 70 :Đọc đoạn mã sau

Câu 71: Chương trình sau in ra màn hình số mấy?

01: public class Main{

02: public static void main(String[] args) {

03: String names[] = {"John","Anna","Peter","Victor","David"}; 04: System.out.println(names.length);

05: }

06: }

Chọn một:

Đáp án đúng là: 5

Câu 72: Cho khai báo mảng sau:

1: String[][] str = {"lap", "trinh", "java"};

Đáp án đúng là: public int[] a = new int[3];

Câu 74: 1 public class ArrayTest {

2 public static void main(String[] args) {

3 float f1[], f2[];

Trang 16

Câu 75:Lệnh sau in ra cái gì?

1: final int ARRAY_SIZE = 5;

2: ARRAY_SIZE = 10;

3: System.out.println("size = " + ARRAY_SIZE);

Chọn một:

Đáp án đúng là: Lỗi ở dòng 2

Câu 76: Xét 2 câu sau:

Câu 1: Nếu 2 đối tượng bằng nhau trong cùng một mảng và mảng đó được sắp xếp, các phần

tử bằng nhau không thể thay đổi thứ tự của chúng?

Câu 2: Chỉ số mảng bắt đầu từ 1

Câu nào đúng? Câu nào sai?

Đáp án đúng là: Cả hai câu đều sai

Câu 77 : Khai báo nào sau đây được dùng để tạo ra hằng số?

Đáp án đúng là: final int ARRAY_SIZE = 10;

Câu 78: Các phương thức thuộc cùng một lớp và có cùng một tên nhưng khác nhau về số lượng các tham số truyền vào gọi là gì?

public class Man extends Student{

private String name;

}

Chọn một:

Đáp án đúng là: Không có lỗi biên dịch.

Câu 80 : Nếu phương thức của bạn ghi đè một trong số các phương thức của lớp cha, bạn có thể gọi phương thức bị ghi đè thông qua từ khóa nào?

Trang 17

Đáp án đúng là: Có thể khai báo lớp C kế thừa từ hai lớp A và B như đoạn mã tại dòng 3

Câu 83 : 01: class Base {

02: Base() { System.out.print("Base"); }

03: }

04: public class Alpha extends Base {

05: public static void main( String[] args ) {

Trang 18

6 public static void main (String [] args) {

public class Man extends Student{

public String sayHello() {

return super.sayHello();

}

public static void main(String[] args) {

Man m = new Man();

public class Man extends Student{

protected String name =”Peter”;

}

Đáp án đúng là: Không có lỗi biên dịch

Câu 87 : 1: class A {protected int x=0;}

2: class B extends A{

3: public void method(){

Trang 19

4: int x = 5; super.x = this.x;

Câu 88 :Xét 2 câu sau:

Câu 1: Một phương thức bị ghi đè (overriden method) có thể nằm trong cùng một lớp Câu 2: overloading method cho phép trong một lớp có thể có nhiều hơn một phương thức trùng tên nhau với tham số giống nhau

Câu nào đúng? Câu nào sai?

Đáp án đúng là: Cả 2 câu đều sai

Vì:

+ Nạp chồng phương thức thường thực hiện từ các lớp khác nhau (thường phương thức của lớp con sẽ ghi đè phương thức của lớp cha)

+ Trong một lớp muốn có nhiều phương thức trùng tên thì các tham số phải khác nhau

Tham khảo: Giáo trình: [1] mục 5.2.3

Câu trả lời đúng là: Cả 2 câu đều sai

Câu 89 :Đoạn văn câu hỏi

Trang 20

Vì: Lớp con không thể tạo ra một thể hiện của lớp cha do lớp con có thể có những thuộc tính

và phương thức khác so với lớp cha

Tham khảo: Giáo trình: [1] mục 5.2

Câu trả lời đúng là: B b = new A();

Trang 21

+ Lớp B kế thừa từ lớp A, do đó phương thức method1 phải có kiểu giống với method1 trong lớp A (kiểu int)

Tham khảo: Giáo trình: [1] mục 5.2

Câu trả lời đúng là: public int method1(int a, int b) { return 0; }, public short method1(int a, int b) { return 0: }

Câu 92 :Đọc đoạn mã sau:

1: class Super {

2: public Integer getLength() { return new Integer(4); }

3: }

4:

5: public class Sub extends Super {

6: public Long GetLength() { return new Long(5); }

7:

8: public static void main(String[] args) {

9: Super sooper = new Super();

10: Sub sub = new Sub();

Vì: Chương trình tạo ra 2 đối tượng sooper thuộc lớp Super và sub thuộc lớp Sub

Phương thức System.out.println sẽ in ra giá trị dạng chuỗi của phương thức getLenght() Phương thức này là phương thức của lớp Super nên trả về giá trị 4

Cần chú ý rằng phương thức getLenght của lớp Super khác phương thức GetLenght của lớp Sub (do Java phân biệt chữ hoa và chữ thường)

Tham khảo: Giáo trình: [1] mục 5.2

Câu trả lời đúng là:

4,4

Câu 93 Một lớp kế thừa từ một lớp khác được gọi là gì?

Trang 22

Chọn một:

Đáp án đúng là: sub-class

Vì: Một lớp kế thừa từ một lớp khác được gọi là lớp con (sub-class)

Tham khảo: Giáo trình: [1] mục 5.2

Câu trả lời đúng là: sub-class

Câu 94 :Đoạn mã sau có lỗi biên dịch nào?

class Student {

}

public class Man extends Student{

public static void main(String[] args) {

Student m = new Man();

}

}

Chọn một:

Câu trả lời của bạn chưa chính xác

Đáp án đúng là: Có lỗi biên dịch: Không thể khai báo biến m thuộc lớp Man

Vì: Java cho phép tạo một biến thuộc lớp cha nhưng trỏ về lớp con Tuy nhiên, biến đó không

được truy xuất tới các thành phần mở rộng của lớp con

Tham khảo: Giáo trình: [1] mục 5.2

Câu trả lời đúng là:

Có lỗi biên dịch: Không thể khai báo biến m thuộc lớp Man

Câu 95 :Đoạn mã sau có kết quả như thế nào?

class Student {

private String name;

}

public class Man extends Student{

private String name;

public static void main(String[] args) {

Student m = new Student();

Trang 23

+ Không thể truy xuất vào thuộc tính private từ bên ngoài lớp

Tham khảo: Giáo trình: [1] mục 5.2

Câu trả lời đúng là:

Có lỗi biên dịch

Câu 96 :Cho một phần của mã trong lớp Widget:

1: class Widget extends Thinggee {

2: private int widgetCount = 0;

8: public Widget(int mx, String t){

9: wName = "I am Widget #" + addWidget();

10: }

11: }

Ý nghĩa của từ private trong dòng 2 là gì?

Đáp án đúng là: Nếu một lớp khác cố gắng truy xuất biến widgetCount thì lỗi sẽ xảy ra Vì: Các thành phần private chỉ được phép truy cập từ bên trong lớp

Trường hợp phương án B chưa đủ vì các phương thức khác bên trong lớp cũng có thể truy xuất tới nó

Tham khảo: Giáo trình: [1] mục 3.3, 5.3

Trang 24

6: public static void main (String [] args) {

7:new TestSub(TestSuper(3););

8: }

9: }

Khẳng định nào sau đây là đúng?

Câu trả lời của bạn chính xác

Đáp án đúng là: Lỗi biên dịch

Vì: Lỗi ở dòng 7

Câu trả lời đúng là: Lỗi biên dịch

Câu 98: Đọc đoạn mã sau:

1: abstract class abstractIt {

2: abstract float getFloat ();

public class Test extends B implements A{

public void methodA(){ System.out.println("A"); } public static void main(String[]args){

Trang 25

Chương trình khi chạy sẽ in ra cái gì?

Đáp án đúng là: Lỗi biên dịch: B is abstract; cannot be instantiated

Vì: B là lớp abstract không cho phép tạo thể hiện

Tham khảo: Giáo trình: [1] mục 6.1.3

Câu trả lời đúng là:

Lỗi biên dịch: B is abstract; cannot be instantiated

Câu 100: Đâu là khai báo đúng về interface?

Đáp án đúng là: interface C{public void print();}

Vì: Trong interface các phương thức mặc định là abstract do đó không được cài đặt phần thân và luôn mặc định là public Các phương thức trong interface không được khai báo với private Tham khảo: Giáo trình: [1] mục 6.1.3

Câu trả lời đúng là: interface C{public void print();}

Câu 101: Xét 2 câu sau:

Câu 1: Tất cả các phương thức trong lớp abstract phải khai báo là abstract?

Câu 2: Phương thức abstract là phương thức chưa được cài đặt phần thân

Câu nào đúng? Câu nào sai?

Đáp án đúng là: Câu 1 sai, Câu 2 đúng

Vì:

+ Lớp trừu tượng có thể chứa các phương thức trừu tượng và các phương thức bình thường + Phương thức trừu tượng thì không được triển khai trong khi khai báo

Tham khảo: Giáo trình: [1] mục 6.1.2

Câu trả lời đúng là: Câu 1 sai, Câu 2 đúng

Ngày đăng: 25/04/2022, 16:27

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm